diff --git a/util/cgg/main.c b/util/cgg/main.c index 16d5b2561..449e79add 100644 --- a/util/cgg/main.c +++ b/util/cgg/main.c @@ -547,7 +547,11 @@ finishio() { while (*p) { register int c = (*p) & BMASK; if (! isascii(c) || iscntrl(c)) { - fprintf(cfile,"\\%c%c%c",((c>>6) &03)+'0', + /* The next line used to have (c>>6)&03, + but this triggered a bug in GCC 2.4.5 + on SPARC. + */ + fprintf(cfile,"\\%c%c%c",((*p>>6) &03)+'0', ((c>>3)&07)+'0',(c&07)+'0'); } else putc(c, cfile); @@ -559,7 +563,7 @@ finishio() { for(i=0;i