dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnet/dumpasm dump_ident.c,1.5,1.6


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/dumpasm dump_ident.c,1.5,1.6
Date: Fri, 28 Feb 2003 20:01:33 -0500

Update of /cvsroot/dotgnu-pnet/pnet/dumpasm
In directory subversions:/tmp/cvs-serv6201/dumpasm

Modified Files:
        dump_ident.c 
Log Message:


DumpIdentifier: apply the correct quoting to non-identifier characters.


Index: dump_ident.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/dumpasm/dump_ident.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** dump_ident.c        16 Nov 2001 00:18:31 -0000      1.5
--- dump_ident.c        1 Mar 2003 01:01:29 -0000       1.6
***************
*** 29,34 ****
--- 29,36 ----
        int len;
        int quote;
+       int hardQuote;
        len = 0;
        quote = ((flags & IL_DUMP_QUOTE_NAMES) != 0);
+       hardQuote = 0;
        while(name[len] != '\0')
        {
***************
*** 38,53 ****
                      name[len] == '_' || name[len] == '$' || name[len] == '.'))
                {
!                       quote = 1;
                }
                ++len;
        }
        if(!quote)
        {
                fwrite(name, 1, len, stream);
        }
!       else
        {
                putc('\'', stream);
                fwrite(name, 1, len, stream);
                putc('\'', stream);
        }
--- 40,78 ----
                      name[len] == '_' || name[len] == '$' || name[len] == '.'))
                {
!                       hardQuote = 1;
                }
                ++len;
        }
+       quote |= hardQuote;
        if(!quote)
        {
                fwrite(name, 1, len, stream);
        }
!       else if(!hardQuote)
        {
                putc('\'', stream);
                fwrite(name, 1, len, stream);
+               putc('\'', stream);
+       }
+       else
+       {
+               putc('\'', stream);
+               while(*name != '\0')
+               {
+                       if(*name == '\\' || *name == '\'')
+                       {
+                               putc('\\', stream);
+                               putc(*name, stream);
+                       }
+                       else if(*name < 0x20 || *name > 0x7E)
+                       {
+                               fprintf(stream, "\\x%02X", ((int)(*name)) & 
0xFF);
+                       }
+                       else
+                       {
+                               putc(*name, stream);
+                       }
+                       ++name;
+               }
                putc('\'', stream);
        }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]