Merge pull request #1326 from xexyl/1991dds-clang-updates
This commit is contained in:
2 files changed
+32
-11
No files matched your search
+8
-8
@@ -9,11 +9,11 @@ R%PN4\nQ<g\\(aP3Q(^>aP2Q,2<n\\(aP3Q(^>aP4Hb%OD12D12N2!N3\nJVP3Q,,<jg)aP3Q=>n\
|
|||||||
\\(aP3Q(^*m>g\\(aP3Q(^<fmtf!m,,aHC%QN1!N1\nJ#Qqsjoug)#&e]o#-aP1Q*aHb%#Qqvut)\
|
\\(aP3Q(^*m>g\\(aP3Q(^<fmtf!m,,aHC%QN1!N1\nJ#Qqsjoug)#&e]o#-aP1Q*aHb%#Qqvut)\
|
||||||
aP1Q*aHb%FN1\nQm>::::aHC%VP3Q>bupj)ghfut)c-::-tuejo**aHb%JD12JON1!Qjg)a%LN1U\
|
aP1Q*aHb%FN1\nQm>::::aHC%VP3Q>bupj)ghfut)c-::-tuejo**aHb%JD12JON1!Qjg)a%LN1U\
|
||||||
P1D12JIQUaP1HL%IQ*m>aN2!N2\nP2Q<fmtf!m,,aHC%MN1!N2>P2Q>aN2\nP2Hbdd!.Xop.fssp\
|
P1D12JIQUaP1HL%IQ*m>aN2!N2\nP2Q<fmtf!m,,aHC%MN1!N2>P2Q>aN2\nP2Hbdd!.Xop.fssp\
|
||||||
s!.Xop.sfuvso.uzqf!.Xop.jnqmjdju.gvodujpo.efdmbsbujpo!.jodmvef!tuejp/i!b/d";
|
s!.Xop.sfuvso.uzqf!.Xop.jnqmjdju.gvodujpo.efdmbsbujpo!.Xop.jnqmjdju.jou!.jod\
|
||||||
int k;char R[4][99];main(c,v)char**v;{char*p,*r,*q;for(q=s;*q;q++)*q>' '&&(*
|
mvef!tuejp/i!b/d";int k;char R[4][99];main(c,v)char**v;{char*p,*r,*q;for(q=s;
|
||||||
q)--;{FILE*i=fopen(v[1],"r"),*o=fopen(q-3,"w");if(!i||!o)return 1;for(p=s;;p
|
*q;q++)*q>' '&&(* q)--;{FILE*i=fopen(v[1],"r"),*o=fopen(q-3,"w");if(!i||!o)
|
||||||
++)switch(*p++){B'M':Q(k=fgetc(i))!=EOF&&k!=*p)*r++=k;if(k==EOF){fputs("}}\n"
|
return 1;for(p=s;;p++)switch(*p++){B'M':Q(k=fgetc(i))!=EOF&&k!=*p)*r++=k;if(k
|
||||||
,o);fclose(o);return system(q-86);}*r=0 B'P':while(*p!='`')fputc(*p++,o)B'O':
|
==EOF){fputs("}}\n",o);fclose(o);return system(q-104);}*r=0 B'P':while(*p!='\
|
||||||
Q*r)fputc(*r++,o);p--B'C':k=0;Q k<*p-'0')(*r++=fgetc(i),k++);*r=0 B'I':k= *p;
|
`')fputc(*p++,o)B'O':Q*r)fputc(*r++,o);p--B'C':k=0;Q k<*p-'0')(*r++=fgetc(i),
|
||||||
if(**R==k)goto G B'G':k= *p;G:p=s;while(*p!='$'||p[1]!= k)p++;p++B'N':R[*p-'0'
|
k++);*r=0 B'I':k= *p;if(**R==k)goto G B'G':k= *p;G:p=s;while(*p!='$'||p[1]!=k
|
||||||
][0]++;}}}
|
)p++;p++B'N':R[*p-'0'][0]++;}}}
|
||||||
+24
-3
@@ -1151,9 +1151,9 @@ Furthermore he changed it so that the C from the BASIC uses `fgets()`, not
|
|||||||
`gets()`. For the magic of clang and `fgets()` see below.
|
`gets()`. For the magic of clang and `fgets()` see below.
|
||||||
|
|
||||||
Clang (at least in some systems?) defaults to having `-Werror` and the code that
|
Clang (at least in some systems?) defaults to having `-Werror` and the code that
|
||||||
the entry generates had some warnings that were causing compilation to fail as
|
the entry generates had some warnings that were causing compilation to fail if
|
||||||
it just ran `cc a.c`. It ran it by what was once `system(q-6);` but with clang
|
`cc` is clang as it just ran `cc a.c`. It ran it by what was once `system(q-6);`
|
||||||
this was not enough.
|
but if `cc` is clang like in macOS this is not enough.
|
||||||
|
|
||||||
(Cody stupidly did the below manually until he thought to write a simple program
|
(Cody stupidly did the below manually until he thought to write a simple program
|
||||||
to do the conversions which he used for `gets()` to `fgets()`.)
|
to do the conversions which he used for `gets()` to `fgets()`.)
|
||||||
@@ -1228,6 +1228,27 @@ which is the end of the warning disabled for clang as described above.
|
|||||||
|
|
||||||
But now the `system(q-69);` had to be changed to `system(q-86);`.
|
But now the `system(q-69);` had to be changed to `system(q-86);`.
|
||||||
|
|
||||||
|
Then, later on, Cody discovered that in some systems, clang triggers even more
|
||||||
|
warnings so this had to be corrected too. Thus the string had to be changed to,
|
||||||
|
in full:
|
||||||
|
|
||||||
|
```c
|
||||||
|
char s[]="Qjou!s\\311^-g\\311^-n\\311^-c\\::^-q-ma%mO1JBHm%BQ-aP1J[O1HB%[Q<nbj\
|
||||||
|
o)*|gps)<<*txjudi)m*|aQdbtf!::::;sfuvso<aQefgbvmu;aQ<m,,a%CQ<csfbla%bQ<aN2!Q\
|
||||||
|
\ndbtf!aP2Q;m>aP2Q<a%!D12J!JGJHJOJQJFJSJJJMHS%HD12D12N3!N4\nJUJT%UQm>aP4HC%T\
|
||||||
|
Qs\\q,,^>m,2<m>aP4HC%SD12N1\nJNQm>s\\..q^aHC%NHb%GN1!D32P3%RN1UP1D12JPQUaP1H\
|
||||||
|
R%PN4\nQ<g\\(aP3Q(^>aP2Q,2<n\\(aP3Q(^>aP4Hb%OD12D12N2!N3\nJVP3Q,,<jg)aP3Q=>n\
|
||||||
|
\\(aP3Q(^*m>g\\(aP3Q(^<fmtf!m,,aHC%QN1!N1\nJ#Qqsjoug)#&e]o#-aP1Q*aHb%#Qqvut)\
|
||||||
|
aP1Q*aHb%FN1\nQm>::::aHC%VP3Q>bupj)ghfut)c-::-tuejo**aHb%JD12JON1!Qjg)a%LN1U\
|
||||||
|
P1D12JIQUaP1HL%IQ*m>aN2!N2\nP2Q<fmtf!m,,aHC%MN1!N2>P2Q>aN2\nP2Hbdd!.Xop.fssp\
|
||||||
|
s!.Xop.sfuvso.uzqf!.Xop.jnqmjdju.gvodujpo.efdmbsbujpo!.Xop.jnqmjdju.jou!.jod\
|
||||||
|
mvef!tuejp/i!b/d";
|
||||||
|
```
|
||||||
|
|
||||||
|
and then the `system(q-86)` had to be changed to `system(q-104)`. It is hoped
|
||||||
|
that this is the last time the string has to be updated to work with all
|
||||||
|
versions of clang but if not the above is how it works.
|
||||||
|
|
||||||
With these changes in place it will compile and work with both gcc and clang and
|
With these changes in place it will compile and work with both gcc and clang and
|
||||||
the C code generated will use `fgets()`, not `gets()`, therefore removing the
|
the C code generated will use `fgets()`, not `gets()`, therefore removing the
|
||||||
annoying warnings. Note that the array passed to `fgets()` is an int but that
|
annoying warnings. Note that the array passed to `fgets()` is an int but that
|
||||||
|
|||||||
Reference in new issue
Block a user