Cut down some clang warnings
Edit C code to reduce warnings from clang. Most warnings are for
implicit declarations of functions, but some warnings want me to add
parentheses or curly braces, or to cast arguments for printf().
Make a few other changes, like declaring float_cst() in h/con_float to
be static, and using C99 bool in ego/ra/makeitems.c and
ego/share/makecldef.c. Such changes don't silence warnings; I make
such changes while I silence warnings in the same file. In
float_cst(), rename parameter `str` to `float_str`, so it doesn't
share a name with the global variable `str`.
Remove `const` from `newmodule(const char *)` in mach/proto/as to
silence a warning. I wrongly added the `const` in d347207
.
For warnings about implicit declarations of functions, the fix is to
declare the function before calling it. For example, my OpenBSD
system needs <sys/wait.h> to declare wait().
In util/int, add "whatever.h" to declare more functions. Remove old
declarations from "mem.h", to prefer the newer declarations of the
same functions in "data.h" and "stack.h".
This commit is contained in:
parent
8bb395b147
commit
36f16b0cb8
|
@ -97,8 +97,7 @@ int sz;
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <flt_arith.h>
|
#include <flt_arith.h>
|
||||||
|
|
||||||
int float_cst(str, sz, buf) char *str, *buf;
|
static int float_cst(const char *float_str, int sz, char *buf)
|
||||||
int sz;
|
|
||||||
{
|
{
|
||||||
int overflow = 0;
|
int overflow = 0;
|
||||||
flt_arith e;
|
flt_arith e;
|
||||||
|
@ -107,7 +106,7 @@ int sz;
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
flt_str2flt(str, &e);
|
flt_str2flt(float_str, &e);
|
||||||
#ifdef IEEEFLOAT
|
#ifdef IEEEFLOAT
|
||||||
if (sz == 4)
|
if (sz == 4)
|
||||||
{
|
{
|
||||||
|
@ -115,7 +114,7 @@ int sz;
|
||||||
#ifdef PDPFLOAT
|
#ifdef PDPFLOAT
|
||||||
e.flt_exp += 129;
|
e.flt_exp += 129;
|
||||||
#else
|
#else
|
||||||
e.flt_exp += 127;
|
e.flt_exp += 127;
|
||||||
#endif
|
#endif
|
||||||
if (e.flt_mantissa.flt_h_32 == 0)
|
if (e.flt_mantissa.flt_h_32 == 0)
|
||||||
e.flt_exp = 0;
|
e.flt_exp = 0;
|
||||||
|
|
|
@ -25,7 +25,7 @@ Something very wrong here!
|
||||||
#define SYNTAX_68020 1
|
#define SYNTAX_68020 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* #define FANCY_MODES 1
|
/* #define FANCY_MODES 1 */
|
||||||
/* On the M68020, there are some real fancy addressing modes.
|
/* On the M68020, there are some real fancy addressing modes.
|
||||||
Their use makes the code a bit shorter, but also much slower.
|
Their use makes the code a bit shorter, but also much slower.
|
||||||
The FANCY_MODES #define enables the use of these addressing
|
The FANCY_MODES #define enables the use of these addressing
|
||||||
|
|
|
@ -106,7 +106,7 @@ extern int curr_token;
|
||||||
int yyparse(void);
|
int yyparse(void);
|
||||||
/* comm4.c */
|
/* comm4.c */
|
||||||
void stop(void);
|
void stop(void);
|
||||||
void newmodule(const char *);
|
void newmodule(char *);
|
||||||
/* comm5.c */
|
/* comm5.c */
|
||||||
int yylex(void);
|
int yylex(void);
|
||||||
void putval(int);
|
void putval(int);
|
||||||
|
|
|
@ -35,6 +35,10 @@ void stop(void) {
|
||||||
exit(nerrors != 0);
|
exit(nerrors != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void stop_on_signal(int sig) {
|
||||||
|
stop();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
@ -54,9 +58,9 @@ main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
progname = *argv++; argc--;
|
progname = *argv++; argc--;
|
||||||
for (p = sigs; i = *p++; )
|
for (p = sigs; (i = *p++) != 0; )
|
||||||
if (signal(i, SIG_IGN) != SIG_IGN)
|
if (signal(i, SIG_IGN) != SIG_IGN)
|
||||||
signal(i, stop);
|
signal(i, stop_on_signal);
|
||||||
for (i = 0; i < argc; i++) {
|
for (i = 0; i < argc; i++) {
|
||||||
p = argv[i];
|
p = argv[i];
|
||||||
if (*p++ != '-')
|
if (*p++ != '-')
|
||||||
|
@ -433,7 +437,7 @@ pass_23(int n)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
newmodule(const char *s)
|
newmodule(char *s)
|
||||||
{
|
{
|
||||||
static char nmbuf[STRINGMAX];
|
static char nmbuf[STRINGMAX];
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ int flt_cmp(flt_arith *e1, flt_arith *e2);
|
||||||
* digits. They may not both be missing. The decimal point, the e and the
|
* digits. They may not both be missing. The decimal point, the e and the
|
||||||
* exponent may be missing.
|
* exponent may be missing.
|
||||||
*/
|
*/
|
||||||
void flt_str2flt(char *s, flt_arith *e);
|
void flt_str2flt(const char *s, flt_arith *e);
|
||||||
/** Converts the number indicated by `e` into a string, in a scientific
|
/** Converts the number indicated by `e` into a string, in a scientific
|
||||||
* notation acceptable for EM. The result is stored in `buf`. At most
|
* notation acceptable for EM. The result is stored in `buf`. At most
|
||||||
* `bufsize` characters are stored. The maximum length needed is
|
* `bufsize` characters are stored. The maximum length needed is
|
||||||
|
|
|
@ -216,7 +216,7 @@ static void add_exponent(register flt_arith *e, int exp)
|
||||||
flt_status = status;
|
flt_status = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
void flt_str2flt(char *s, flt_arith *e)
|
void flt_str2flt(const char *s, flt_arith *e)
|
||||||
{
|
{
|
||||||
register int c;
|
register int c;
|
||||||
int dotseen = 0;
|
int dotseen = 0;
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
*/
|
*/
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -64,6 +64,9 @@ typedef struct
|
||||||
|
|
||||||
/* Own routines */
|
/* Own routines */
|
||||||
|
|
||||||
|
/* files.h */
|
||||||
|
extern void rmtemps(void);
|
||||||
|
|
||||||
/* rmach.c */
|
/* rmach.c */
|
||||||
extern void setlist(char*);
|
extern void setlist(char*);
|
||||||
|
|
||||||
|
@ -80,6 +83,7 @@ extern void fatal(const char*, ...);
|
||||||
extern void vprint(const char*, ...);
|
extern void vprint(const char*, ...);
|
||||||
extern void fuerror(const char*, ...);
|
extern void fuerror(const char*, ...);
|
||||||
extern void werror(const char*, ...);
|
extern void werror(const char*, ...);
|
||||||
|
extern void error(const char*, ...);
|
||||||
extern void quit(int);
|
extern void quit(int);
|
||||||
extern char* keeps(const char*);
|
extern char* keeps(const char*);
|
||||||
#define throws(str) free(str)
|
#define throws(str) free(str)
|
||||||
|
|
|
@ -169,7 +169,7 @@ static void varinit(void)
|
||||||
register char* envstr;
|
register char* envstr;
|
||||||
extern char* em_dir;
|
extern char* em_dir;
|
||||||
|
|
||||||
if (envstr = getenv("ACKDIR"))
|
if ((envstr = getenv("ACKDIR")) != NULL)
|
||||||
{
|
{
|
||||||
em_dir = keeps(envstr);
|
em_dir = keeps(envstr);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,10 +22,12 @@ FILE *dmach ;
|
||||||
|
|
||||||
int offset ;
|
int offset ;
|
||||||
|
|
||||||
void readm();
|
void start(const char *) ;
|
||||||
|
void stop(int) ;
|
||||||
|
void readm(void) ;
|
||||||
|
|
||||||
main(argc,argv) char **argv ; {
|
int main(int argc, char **argv) {
|
||||||
register i ;
|
int i ;
|
||||||
|
|
||||||
start(argv[1]) ;
|
start(argv[1]) ;
|
||||||
for ( i=2 ; i<argc ; i++ ) {
|
for ( i=2 ; i<argc ; i++ ) {
|
||||||
|
@ -36,7 +38,7 @@ main(argc,argv) char **argv ; {
|
||||||
return 0 ;
|
return 0 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
start(dir) char *dir ; {
|
void start(const char *dir) {
|
||||||
tail= dname ;
|
tail= dname ;
|
||||||
while ( *dir ) {
|
while ( *dir ) {
|
||||||
*tail++ = *dir ++ ;
|
*tail++ = *dir ++ ;
|
||||||
|
@ -53,14 +55,14 @@ start(dir) char *dir ; {
|
||||||
fprintf(intab,"char intable[] = {\n") ;
|
fprintf(intab,"char intable[] = {\n") ;
|
||||||
}
|
}
|
||||||
|
|
||||||
stop(filled) {
|
void stop(int filled) {
|
||||||
fprintf(dmach,"\t{\"\",\t-1\t}\n} ;\n") ;
|
fprintf(dmach,"\t{\"\",\t-1\t}\n} ;\n") ;
|
||||||
if ( !filled ) fprintf(intab,"\t0\n") ;
|
if ( !filled ) fprintf(intab,"\t0\n") ;
|
||||||
fprintf(intab,"\n} ;\n") ;
|
fprintf(intab,"\n} ;\n") ;
|
||||||
fclose(dmach); fclose(intab) ;
|
fclose(dmach); fclose(intab) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
FILE *do_open(file) char *file ; {
|
FILE *do_open(const char *file) {
|
||||||
FILE *fd;
|
FILE *fd;
|
||||||
|
|
||||||
strcpy(tail,file) ;
|
strcpy(tail,file) ;
|
||||||
|
@ -100,7 +102,7 @@ readm() {
|
||||||
fprintf(stderr,"warning: non-ascii in %s\n",fname) ;
|
fprintf(stderr,"warning: non-ascii in %s\n",fname) ;
|
||||||
fprintf(intab,"%4d,",token) ;
|
fprintf(intab,"%4d,",token) ;
|
||||||
} else {
|
} else {
|
||||||
fprintf(intab," 0,",token) ;
|
fprintf(intab," 0,") ;
|
||||||
break ;
|
break ;
|
||||||
}
|
}
|
||||||
} else if ( isprint(token) ) {
|
} else if ( isprint(token) ) {
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <sys/wait.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
|
@ -113,12 +113,12 @@ static void try(list_elem *f_scan, const char *suffix) {
|
||||||
*/
|
*/
|
||||||
register trf *sneak ;
|
register trf *sneak ;
|
||||||
sneak= trafo ;
|
sneak= trafo ;
|
||||||
while( sneak=sneak->t_next ) {
|
while( (sneak=sneak->t_next) ) {
|
||||||
sneak->t_scan=YES ;
|
sneak->t_scan=YES ;
|
||||||
}
|
}
|
||||||
scan_found() ;
|
scan_found() ;
|
||||||
sneak= trafo ;
|
sneak= trafo ;
|
||||||
while( sneak=sneak->t_next ) {
|
while( (sneak=sneak->t_next) ) {
|
||||||
sneak->t_scan=NO ;
|
sneak->t_scan=NO ;
|
||||||
}
|
}
|
||||||
return ;
|
return ;
|
||||||
|
|
|
@ -317,7 +317,8 @@ static growstring scanvars(const char* line)
|
||||||
{
|
{
|
||||||
case A_VAR:
|
case A_VAR:
|
||||||
gr_add(&name, 0);
|
gr_add(&name, 0);
|
||||||
if (tr = getvar(gr_start(name)))
|
tr = getvar(gr_start(name));
|
||||||
|
if (tr != NULL)
|
||||||
{
|
{
|
||||||
while (*tr)
|
while (*tr)
|
||||||
{
|
{
|
||||||
|
@ -333,7 +334,8 @@ static growstring scanvars(const char* line)
|
||||||
break;
|
break;
|
||||||
case C_VAR:
|
case C_VAR:
|
||||||
gr_add(&name, 0);
|
gr_add(&name, 0);
|
||||||
if (tr = getvar(gr_start(name)))
|
tr = getvar(gr_start(name));
|
||||||
|
if (tr != NULL)
|
||||||
{
|
{
|
||||||
while (*tr)
|
while (*tr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -50,7 +50,6 @@ int setfiles(trf *);
|
||||||
void disc_files(trf *);
|
void disc_files(trf *);
|
||||||
void disc_inputs(trf *);
|
void disc_inputs(trf *);
|
||||||
void rmfile(path *);
|
void rmfile(path *);
|
||||||
void rmtemps(void);
|
|
||||||
void add_input(path *, trf *);
|
void add_input(path *, trf *);
|
||||||
|
|
||||||
/* run.c */
|
/* run.c */
|
||||||
|
|
|
@ -785,7 +785,7 @@ static void verbose(void)
|
||||||
fprintf(stderr, "Sets %d(%d)\n", nmachsets, MAXSETS);
|
fprintf(stderr, "Sets %d(%d)\n", nmachsets, MAXSETS);
|
||||||
fprintf(stderr, "Tokeninstances %d(%d)\n", narinstance, MAXINSTANCE);
|
fprintf(stderr, "Tokeninstances %d(%d)\n", narinstance, MAXINSTANCE);
|
||||||
fprintf(stderr, "Strings %d(%d)\n", ncodestrings, MAXSTRINGS);
|
fprintf(stderr, "Strings %d(%d)\n", ncodestrings, MAXSTRINGS);
|
||||||
fprintf(stderr, "Enodes %d(%d)\n", lastnode - nodes, MAXNODES);
|
fprintf(stderr, "Enodes %d(%d)\n", (int)(lastnode - nodes), MAXNODES);
|
||||||
fprintf(stderr, "Patbytes %d(%d)\n", npatbytes, MAXPATTERN);
|
fprintf(stderr, "Patbytes %d(%d)\n", npatbytes, MAXPATTERN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
optimizer itself one day ...
|
optimizer itself one day ...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
@ -121,14 +122,15 @@ cleanup()
|
||||||
}
|
}
|
||||||
|
|
||||||
/*VARARGS1*/
|
/*VARARGS1*/
|
||||||
static void
|
static void fatal(const char *s, ...)
|
||||||
fatal(s, s2) char* s;
|
|
||||||
char* s2;
|
|
||||||
{
|
{
|
||||||
/* A fatal error occurred; exit gracefully */
|
/* A fatal error occurred; exit gracefully */
|
||||||
|
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, s);
|
||||||
|
|
||||||
fprint(STDERR, "%s: ", prog_name);
|
fprint(STDERR, "%s: ", prog_name);
|
||||||
fprint(STDERR, s, s2);
|
doprnt(STDERR, s, ap);
|
||||||
fprint(STDERR, "\n");
|
fprint(STDERR, "\n");
|
||||||
cleanup();
|
cleanup();
|
||||||
sys_stop(S_EXIT);
|
sys_stop(S_EXIT);
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
||||||
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -20,16 +21,20 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#define TRUE 1
|
void error(const char *s)
|
||||||
#define FALSE 0
|
{
|
||||||
|
fprintf(stderr,"%s\n",s);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
convert(mnemfile,itemfile)
|
|
||||||
FILE *mnemfile, *itemfile;
|
void convert(FILE *mnemfile, FILE *itemfile)
|
||||||
{
|
{
|
||||||
char mnem1[20], mnem2[20],def[20],itemtype[20];
|
char mnem1[20], mnem2[20],def[20],itemtype[20];
|
||||||
int newcl,opc,index;
|
int opc,index;
|
||||||
|
bool newcl;
|
||||||
|
|
||||||
newcl = TRUE;
|
newcl = true;
|
||||||
printf("struct item_descr itemtab[] = {\n");
|
printf("struct item_descr itemtab[] = {\n");
|
||||||
for (;;) {
|
for (;;) {
|
||||||
fscanf(mnemfile,"%19s%19s%d",def,mnem1,&opc);
|
fscanf(mnemfile,"%19s%19s%d",def,mnem1,&opc);
|
||||||
|
@ -47,28 +52,17 @@ convert(mnemfile,itemfile)
|
||||||
* it has no type.
|
* it has no type.
|
||||||
*/
|
*/
|
||||||
printf("{NO_ITEM,0}, /* %s */\n", mnem1);
|
printf("{NO_ITEM,0}, /* %s */\n", mnem1);
|
||||||
newcl = FALSE;
|
newcl = false;
|
||||||
} else {
|
} else {
|
||||||
printf("{%s,%d}, /* %s */\n",itemtype,index, mnem1);
|
printf("{%s,%d}, /* %s */\n",itemtype,index, mnem1);
|
||||||
newcl = TRUE;
|
newcl = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("};\n");
|
printf("};\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
error(s)
|
|
||||||
char *s;
|
|
||||||
{
|
|
||||||
fprintf(stderr,"%s\n",s);
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
main(argc,argv)
|
|
||||||
int argc;
|
|
||||||
char *argv[];
|
|
||||||
{
|
{
|
||||||
FILE *f1,*f2;
|
FILE *f1,*f2;
|
||||||
|
|
||||||
|
|
|
@ -136,7 +136,7 @@ STATIC lset getlset(void *(*p)(short))
|
||||||
int id;
|
int id;
|
||||||
|
|
||||||
s = Lempty_set();
|
s = Lempty_set();
|
||||||
while (id = getshort()) {
|
while ((id = getshort()) != 0) {
|
||||||
Ladd( (*p) (id), &s);
|
Ladd( (*p) (id), &s);
|
||||||
}
|
}
|
||||||
return s;
|
return s;
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
||||||
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -23,16 +24,20 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#define TRUE 1
|
void error(const char *s)
|
||||||
#define FALSE 0
|
{
|
||||||
|
fprintf(stderr,"%s\n",s);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
convert(mnemfile,classfile)
|
|
||||||
FILE *mnemfile, *classfile;
|
void convert(FILE *mnemfile, FILE *classfile)
|
||||||
{
|
{
|
||||||
char mnem1[10], mnem2[10],def[10];
|
char mnem1[10], mnem2[10],def[10];
|
||||||
int src,res,newcl,opc;
|
int src,res,opc;
|
||||||
|
bool newcl;
|
||||||
|
|
||||||
newcl = TRUE;
|
newcl = true;
|
||||||
printf("struct class classtab[] = {\n");
|
printf("struct class classtab[] = {\n");
|
||||||
printf("\tNOCLASS,\tNOCLASS,\n");
|
printf("\tNOCLASS,\tNOCLASS,\n");
|
||||||
/* EM mnemonics start at 1, arrays in C at 0 */
|
/* EM mnemonics start at 1, arrays in C at 0 */
|
||||||
|
@ -52,29 +57,18 @@ convert(mnemfile,classfile)
|
||||||
* it has no class.
|
* it has no class.
|
||||||
*/
|
*/
|
||||||
printf("\tNOCLASS,\tNOCLASS,\n");
|
printf("\tNOCLASS,\tNOCLASS,\n");
|
||||||
newcl = FALSE;
|
newcl = false;
|
||||||
} else {
|
} else {
|
||||||
printf("\tCLASS%d,\t\tCLASS%d,\n",src,res);
|
printf("\tCLASS%d,\t\tCLASS%d,\n",src,res);
|
||||||
/* print a line like "CLASS8, CLASS1," */
|
/* print a line like "CLASS8, CLASS1," */
|
||||||
newcl = TRUE;
|
newcl = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("};\n");
|
printf("};\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
error(s)
|
|
||||||
char *s;
|
|
||||||
{
|
|
||||||
fprintf(stderr,"%s\n",s);
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
main(argc,argv)
|
|
||||||
int argc;
|
|
||||||
char *argv[];
|
|
||||||
{
|
{
|
||||||
FILE *f1,*f2;
|
FILE *f1,*f2;
|
||||||
|
|
||||||
|
|
|
@ -9,5 +9,10 @@ sed '
|
||||||
s/.*"/#define /
|
s/.*"/#define /
|
||||||
'
|
'
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo 'void init_wmsg(void);'
|
||||||
|
echo 'void do_warn(int, int, const char *);'
|
||||||
|
echo 'void set_wmask(int);'
|
||||||
|
echo
|
||||||
echo '#define warning(n) do_warn((n), __LINE__, __FILE__)'
|
echo '#define warning(n) do_warn((n), __LINE__, __FILE__)'
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "memdirect.h"
|
#include "memdirect.h"
|
||||||
#include "proctab.h"
|
#include "proctab.h"
|
||||||
#include "alloc.h"
|
#include "alloc.h"
|
||||||
|
#include "whatever.h"
|
||||||
|
|
||||||
PRIVATE ptr TC;
|
PRIVATE ptr TC;
|
||||||
PRIVATE void do_pr_instr(unsigned int);
|
PRIVATE void do_pr_instr(unsigned int);
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include "rsb.h"
|
#include "rsb.h"
|
||||||
#include "io.h"
|
#include "io.h"
|
||||||
#include "linfil.h"
|
#include "linfil.h"
|
||||||
|
#include "whatever.h"
|
||||||
|
|
||||||
extern int running; /* from main.c */
|
extern int running; /* from main.c */
|
||||||
|
|
||||||
|
@ -32,13 +33,9 @@ ptr FIL;
|
||||||
|
|
||||||
PRIVATE void index_jump(size), range_check(size), search_jump(size);
|
PRIVATE void index_jump(size), range_check(size), search_jump(size);
|
||||||
PRIVATE void gto(ptr);
|
PRIVATE void gto(ptr);
|
||||||
void putLIN(long);
|
|
||||||
void putFIL(ptr);
|
|
||||||
|
|
||||||
#define asp(l) newSP(SP + arg_f(l))
|
#define asp(l) newSP(SP + arg_f(l))
|
||||||
|
|
||||||
extern void moncall(void);
|
|
||||||
|
|
||||||
/** ASP f: Adjust the stack pointer by f */
|
/** ASP f: Adjust the stack pointer by f */
|
||||||
void DoASP(register long l)
|
void DoASP(register long l)
|
||||||
{
|
{
|
||||||
|
|
|
@ -19,12 +19,12 @@
|
||||||
#include "fra.h"
|
#include "fra.h"
|
||||||
#include "rsb.h"
|
#include "rsb.h"
|
||||||
#include "linfil.h"
|
#include "linfil.h"
|
||||||
|
#include "whatever.h"
|
||||||
|
|
||||||
extern int running; /* from main.c */
|
extern int running; /* from main.c */
|
||||||
|
|
||||||
/* Forward declarations */
|
/* Forward declarations */
|
||||||
PRIVATE void lfr(size), ret(size);
|
PRIVATE void lfr(size), ret(size);
|
||||||
void call(long, int);
|
|
||||||
|
|
||||||
/** CAI -: Call procedure (procedure identifier on stack) */
|
/** CAI -: Call procedure (procedure identifier on stack) */
|
||||||
void DoCAI(void) /* proc identifier on top of stack */
|
void DoCAI(void) /* proc identifier on top of stack */
|
||||||
|
|
|
@ -21,10 +21,12 @@
|
||||||
#include "alloc.h"
|
#include "alloc.h"
|
||||||
#include "warn.h"
|
#include "warn.h"
|
||||||
#include "mem.h"
|
#include "mem.h"
|
||||||
|
#include "m_sigtrp.h"
|
||||||
#include "io.h"
|
#include "io.h"
|
||||||
#include "shadow.h"
|
#include "shadow.h"
|
||||||
#include "trap.h"
|
#include "trap.h"
|
||||||
#include "read.h"
|
#include "read.h"
|
||||||
|
#include "whatever.h"
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************
|
/****************************************************************
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include "warn.h"
|
#include "warn.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "linfil.h"
|
#include "linfil.h"
|
||||||
|
#include "whatever.h"
|
||||||
|
|
||||||
extern int running; /* from main.c */
|
extern int running; /* from main.c */
|
||||||
extern char *prog_name; /* from main.c */
|
extern char *prog_name; /* from main.c */
|
||||||
|
|
|
@ -2,3 +2,7 @@
|
||||||
|
|
||||||
#define LOGGING 1 /* Includes logging when defined */
|
#define LOGGING 1 /* Includes logging when defined */
|
||||||
|
|
||||||
|
#ifdef LOGGING
|
||||||
|
/* warn.c */
|
||||||
|
void warningcont(int);
|
||||||
|
#endif /* LOGGING */
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "mem.h"
|
#include "mem.h"
|
||||||
#include "warn.h"
|
#include "warn.h"
|
||||||
|
#include "whatever.h"
|
||||||
|
|
||||||
#ifdef WANT_SGTTY
|
#ifdef WANT_SGTTY
|
||||||
#include <sgtty.h>
|
#include <sgtty.h>
|
||||||
|
@ -42,9 +43,7 @@
|
||||||
* (0 for success, -1 for failure) *
|
* (0 for success, -1 for failure) *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
|
||||||
int do_ioctl(fd, req, addr)
|
int do_ioctl(int fd, int req, ptr addr)
|
||||||
int fd, req;
|
|
||||||
ptr addr;
|
|
||||||
{
|
{
|
||||||
register long e;
|
register long e;
|
||||||
#ifdef WANT_SGTTY
|
#ifdef WANT_SGTTY
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include "trap.h"
|
#include "trap.h"
|
||||||
#include "m_sigtrp.h"
|
#include "m_sigtrp.h"
|
||||||
#include "io.h"
|
#include "io.h"
|
||||||
|
#include "whatever.h"
|
||||||
|
|
||||||
/*************************** SIGTRP *************************************
|
/*************************** SIGTRP *************************************
|
||||||
* The monitor call "sigtrp()" is handled by "do_sigtrp()". The first *
|
* The monitor call "sigtrp()" is handled by "do_sigtrp()". The first *
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#include "opcode.h"
|
#include "opcode.h"
|
||||||
#include "m_sigtrp.h"
|
#include "m_sigtrp.h"
|
||||||
#include "rsb.h"
|
#include "rsb.h"
|
||||||
|
#include "whatever.h"
|
||||||
|
|
||||||
char mess_file[64] = "int.mess"; /* name of message file */
|
char mess_file[64] = "int.mess"; /* name of message file */
|
||||||
|
|
||||||
|
@ -39,12 +40,6 @@ extern long inr; /* from log.c */
|
||||||
|
|
||||||
PRIVATE char *dflt_av[] = {"e.out", 0}; /* default arguments */
|
PRIVATE char *dflt_av[] = {"e.out", 0}; /* default arguments */
|
||||||
|
|
||||||
/* External definitions - too lazy to create a header file for each. */
|
|
||||||
extern void init(int , char **);
|
|
||||||
extern void disassemble(void);
|
|
||||||
extern void tally(void);
|
|
||||||
extern void out_tally(void);
|
|
||||||
|
|
||||||
/** Check dynamically that the interpreter can run on the target machine. */
|
/** Check dynamically that the interpreter can run on the target machine. */
|
||||||
static void check_requirements(char *name)
|
static void check_requirements(char *name)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
|
#include "data.h"
|
||||||
#include "stack.h"
|
#include "stack.h"
|
||||||
|
|
||||||
/******** Memory address & location defines ********/
|
/******** Memory address & location defines ********/
|
||||||
|
@ -65,12 +66,3 @@
|
||||||
|
|
||||||
#define st_inc(n) newSP(SP - (n)) /* stack grows */
|
#define st_inc(n) newSP(SP - (n)) /* stack grows */
|
||||||
#define st_dec(n) newSP(SP + (n)) /* stack shrinks */
|
#define st_dec(n) newSP(SP + (n)) /* stack shrinks */
|
||||||
|
|
||||||
|
|
||||||
/******** Function return types ********/
|
|
||||||
|
|
||||||
extern ptr st_ldip(), dt_ldip();
|
|
||||||
extern ptr st_lddp(), dt_lddp(), dppop();
|
|
||||||
extern long st_lds(), st_ldsw(), dt_lds(), dt_ldsw(), spop(), swpop(), wpop();
|
|
||||||
extern unsigned long st_ldu(), st_lduw(), dt_ldu(), dt_lduw(), upop(), uwpop();
|
|
||||||
|
|
||||||
|
|
|
@ -5,16 +5,24 @@
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
#include "sysidf.h"
|
#include "sysidf.h"
|
||||||
|
#include "io.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "alloc.h"
|
#include "alloc.h"
|
||||||
#include "shadow.h"
|
#include "shadow.h"
|
||||||
|
#include "m_sigtrp.h"
|
||||||
|
#include "monstruct.h"
|
||||||
|
#include "whatever.h"
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <sys/times.h>
|
#include <sys/times.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <signal.h>
|
||||||
|
#include <string.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <utime.h>
|
||||||
|
|
||||||
extern int running; /* from main.c */
|
extern int running; /* from main.c */
|
||||||
extern int fd_limit; /* from io.c */
|
extern int fd_limit; /* from io.c */
|
||||||
|
@ -1091,7 +1099,7 @@ PRIVATE int vec(n1, n2, addr, vecvec)
|
||||||
|
|
||||||
/* copy the elements */
|
/* copy the elements */
|
||||||
for ( cp1 = buf[n1], n_ent = 0, p = addr;
|
for ( cp1 = buf[n1], n_ent = 0, p = addr;
|
||||||
ldp = mem_lddp(p);
|
(ldp = mem_lddp(p)) != 0;
|
||||||
p += psize, n_ent++
|
p += psize, n_ent++
|
||||||
) {
|
) {
|
||||||
if (!savestr(n2, ldp)) {
|
if (!savestr(n2, ldp)) {
|
||||||
|
@ -1099,7 +1107,7 @@ PRIVATE int vec(n1, n2, addr, vecvec)
|
||||||
}
|
}
|
||||||
(*vecvec)[n_ent] = cp1;
|
(*vecvec)[n_ent] = cp1;
|
||||||
cp2 = buf[n2];
|
cp2 = buf[n2];
|
||||||
while (*cp1++ = *cp2++) {
|
while ((*cp1++ = *cp2++) != '\0') {
|
||||||
/* nothing */
|
/* nothing */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1107,9 +1115,7 @@ PRIVATE int vec(n1, n2, addr, vecvec)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int memfault(addr, length)
|
int memfault(ptr addr, size length)
|
||||||
ptr addr;
|
|
||||||
size length;
|
|
||||||
{
|
{
|
||||||
/* centralizes (almost) all memory access tests in MON */
|
/* centralizes (almost) all memory access tests in MON */
|
||||||
if (!is_in_mem(addr, length)) {
|
if (!is_in_mem(addr, length)) {
|
||||||
|
@ -1119,17 +1125,14 @@ int memfault(addr, length)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
efault(wrn)
|
void efault(int wrn /* warning number */)
|
||||||
int wrn; /* warning number */
|
|
||||||
{
|
{
|
||||||
warning(wrn);
|
warning(wrn);
|
||||||
errno = 14; /* EFAULT */
|
errno = 14; /* EFAULT */
|
||||||
}
|
}
|
||||||
|
|
||||||
einval(wrn)
|
void einval(int wrn /* warning number */)
|
||||||
int wrn; /* warning number */
|
|
||||||
{
|
{
|
||||||
warning(wrn);
|
warning(wrn);
|
||||||
errno = 22; /* EINVAL */
|
errno = 22; /* EINVAL */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "mem.h"
|
#include "mem.h"
|
||||||
#include "monstruct.h"
|
#include "monstruct.h"
|
||||||
|
#include "whatever.h"
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
@ -42,9 +43,7 @@ PRIVATE mem_stfld(addr, offset, length, val)
|
||||||
mem_stn(addr + offset, val, length);
|
mem_stn(addr + offset, val, length);
|
||||||
}
|
}
|
||||||
|
|
||||||
int stat2mem(addr, statb)
|
int stat2mem(ptr addr, struct stat *statb)
|
||||||
ptr addr;
|
|
||||||
struct stat *statb;
|
|
||||||
{
|
{
|
||||||
if (memfault(addr, V7st_sz))
|
if (memfault(addr, V7st_sz))
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -62,9 +61,7 @@ int stat2mem(addr, statb)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int timeb2mem(addr, timebb)
|
int timeb2mem(ptr addr, struct timeb *timebb)
|
||||||
ptr addr;
|
|
||||||
struct timeb *timebb;
|
|
||||||
{
|
{
|
||||||
if (memfault(addr, V7tb_sz))
|
if (memfault(addr, V7tb_sz))
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -75,9 +72,7 @@ int timeb2mem(addr, timebb)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tms2mem(addr, tmsb)
|
int tms2mem(ptr addr, struct tms *tmsb)
|
||||||
ptr addr;
|
|
||||||
struct tms *tmsb;
|
|
||||||
{
|
{
|
||||||
if (memfault(addr, V7tms_sz))
|
if (memfault(addr, V7tms_sz))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
|
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
|
#include "global.h" /* ptr */
|
||||||
|
|
||||||
/* struct stat */
|
/* struct stat */
|
||||||
#define V7st_dev 0L, 2L /* short */
|
#define V7st_dev 0L, 2L /* short */
|
||||||
#define V7st_ino 2L, 2L /* unsigned short */
|
#define V7st_ino 2L, 2L /* unsigned short */
|
||||||
|
@ -67,3 +69,10 @@
|
||||||
#define V7t_lnextc 5L, 1L /* char */
|
#define V7t_lnextc 5L, 1L /* char */
|
||||||
#define V7t_sz_ltch 6L
|
#define V7t_sz_ltch 6L
|
||||||
|
|
||||||
|
struct stat;
|
||||||
|
struct timeb;
|
||||||
|
struct tms;
|
||||||
|
|
||||||
|
int stat2mem(ptr, struct stat *);
|
||||||
|
int timeb2mem(ptr, struct timeb *);
|
||||||
|
int tms2mem(ptr, struct tms *);
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include "segment.h"
|
#include "segment.h"
|
||||||
#include "text.h"
|
#include "text.h"
|
||||||
#include "warn.h"
|
#include "warn.h"
|
||||||
|
#include "whatever.h"
|
||||||
|
|
||||||
/* offsets to be added to a local base */
|
/* offsets to be added to a local base */
|
||||||
int rsb_rsbcode;
|
int rsb_rsbcode;
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "linfil.h"
|
#include "linfil.h"
|
||||||
#include "alloc.h"
|
#include "alloc.h"
|
||||||
|
#include "whatever.h"
|
||||||
|
|
||||||
struct line_tally
|
struct line_tally
|
||||||
{ /* one for each line */
|
{ /* one for each line */
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
#include "linfil.h"
|
#include "linfil.h"
|
||||||
#include "rsb.h"
|
#include "rsb.h"
|
||||||
#include "fra.h"
|
#include "fra.h"
|
||||||
|
#include "whatever.h"
|
||||||
|
|
||||||
extern jmp_buf trapbuf; /* from main.c */
|
extern jmp_buf trapbuf; /* from main.c */
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ PRIVATE long count_wrn(int nr)
|
||||||
PRIVATE int latest_warning_printed; /* set if ... */
|
PRIVATE int latest_warning_printed; /* set if ... */
|
||||||
|
|
||||||
/*ARGSUSED*/
|
/*ARGSUSED*/
|
||||||
void do_warn(int nr, int L, char *F)
|
void do_warn(int nr, int L, const char *F)
|
||||||
{
|
{
|
||||||
latest_warning_printed = 0;
|
latest_warning_printed = 0;
|
||||||
if (nr < WMSG) {
|
if (nr < WMSG) {
|
||||||
|
|
43
util/int/whatever.h
Normal file
43
util/int/whatever.h
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
/* Copyright (c) 2019 ACK Project.
|
||||||
|
* See the copyright notice in the ACK home directory,
|
||||||
|
* in the file "Copyright".
|
||||||
|
*
|
||||||
|
* Created on: 2019-10-23
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#ifndef WHATEVER_H_
|
||||||
|
#define WHATEVER_H_
|
||||||
|
|
||||||
|
#include "global.h" /* ptr, size */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This header is for _whatever_ isn't in another header.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* disassemble.c */
|
||||||
|
void disassemble(void);
|
||||||
|
|
||||||
|
/* do_misc.c */
|
||||||
|
void putLIN(long);
|
||||||
|
void putFIL(ptr);
|
||||||
|
|
||||||
|
/* do_proc.c */
|
||||||
|
void call(long, int);
|
||||||
|
|
||||||
|
/* init.c */
|
||||||
|
void init(int , char **);
|
||||||
|
|
||||||
|
/* m_ioctl.c */
|
||||||
|
int do_ioctl(int, int, ptr);
|
||||||
|
|
||||||
|
/* moncalls.c */
|
||||||
|
void moncall(void);
|
||||||
|
int memfault(ptr, size);
|
||||||
|
void efault(int);
|
||||||
|
void einval(int);
|
||||||
|
|
||||||
|
/* tally.c */
|
||||||
|
void tally(void);
|
||||||
|
void out_tally(void);
|
||||||
|
|
||||||
|
#endif /* WHATEVER_H_ */
|
|
@ -11,7 +11,7 @@ g/^#/d
|
||||||
.r tokendefs
|
.r tokendefs
|
||||||
a
|
a
|
||||||
|
|
||||||
enterkeyw() {
|
void enterkeyw(void) {
|
||||||
register symbol *sy_p;
|
register symbol *sy_p;
|
||||||
|
|
||||||
.
|
.
|
||||||
|
|
|
@ -38,8 +38,23 @@ extern int maxtokensize;
|
||||||
extern int nprocargs, maxprocargs;
|
extern int nprocargs, maxprocargs;
|
||||||
extern int use_tes;
|
extern int use_tes;
|
||||||
|
|
||||||
extern void error(const char* s, ...);
|
/* genenerated files */
|
||||||
|
extern void enterkeyw(void);
|
||||||
|
extern int yyparse(void);
|
||||||
|
|
||||||
|
/* emlookup.c */
|
||||||
|
extern void initemhash(void);
|
||||||
|
|
||||||
|
/* error.c */
|
||||||
extern void fatal(const char* s, ...);
|
extern void fatal(const char* s, ...);
|
||||||
|
extern void error(const char* s, ...);
|
||||||
extern int tabovf(char *string);
|
extern int tabovf(char *string);
|
||||||
extern int strlookup(char *str);
|
|
||||||
|
/* output.c */
|
||||||
extern void errorexit(void);
|
extern void errorexit(void);
|
||||||
|
extern void initio(void);
|
||||||
|
extern void finishio(void);
|
||||||
|
extern void statistics(void);
|
||||||
|
|
||||||
|
/* strlookup.c */
|
||||||
|
extern int strlookup(char *str);
|
||||||
|
|
|
@ -174,11 +174,12 @@ iocc_t descr_iocc(char *ident)
|
||||||
default:
|
default:
|
||||||
assert(0);
|
assert(0);
|
||||||
case TYPINT:
|
case TYPINT:
|
||||||
if (tp->tk_att[i].ta_type != -1)
|
if (tp->tk_att[i].ta_type != -1) {
|
||||||
if (tp->tk_att[i].ta_type == -2)
|
if (tp->tk_att[i].ta_type == -2)
|
||||||
arexp[i] = iextoaddr(arexp[i]);
|
arexp[i] = iextoaddr(arexp[i]);
|
||||||
else
|
else
|
||||||
typerr++;
|
typerr++;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case TYPBOOL:
|
case TYPBOOL:
|
||||||
typerr++;
|
typerr++;
|
||||||
|
|
|
@ -12,16 +12,10 @@ static char rcsid[] = "$Id$";
|
||||||
#include "hall.h"
|
#include "hall.h"
|
||||||
#include "expr.h"
|
#include "expr.h"
|
||||||
#include "extern.h"
|
#include "extern.h"
|
||||||
|
#include "lookup.h"
|
||||||
|
|
||||||
char *filename;
|
char *filename;
|
||||||
|
|
||||||
extern void enterkeyw(void);
|
|
||||||
extern void initio(void);
|
|
||||||
extern void initemhash(void);
|
|
||||||
extern void finishio(void);
|
|
||||||
extern void statistics(void);
|
|
||||||
extern int yyparse(void);
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
extern int nerrors;
|
extern int nerrors;
|
||||||
|
|
|
@ -349,7 +349,7 @@ void printnodes(void)
|
||||||
printf("};\n\nshort lastind = %d;\n\nexpr_t enodes[] = {\n",prevind);
|
printf("};\n\nshort lastind = %d;\n\nexpr_t enodes[] = {\n",prevind);
|
||||||
for (p=nodes;p<lastnode;p++)
|
for (p=nodes;p<lastnode;p++)
|
||||||
printf("/* %3d */\t{%3d,%6u,%6u},\n",
|
printf("/* %3d */\t{%3d,%6u,%6u},\n",
|
||||||
p-nodes,p->ex_operator,p->ex_lnode,p->ex_rnode);
|
(int)(p-nodes),p->ex_operator,p->ex_lnode,p->ex_rnode);
|
||||||
printf("};\n\niarg_t iargs[%d];\n", (maxpatlen>0 ? maxpatlen : 1));
|
printf("};\n\niarg_t iargs[%d];\n", (maxpatlen>0 ? maxpatlen : 1));
|
||||||
if (patid[0])
|
if (patid[0])
|
||||||
printf("static char rcsid[] = %s;\n",patid);
|
printf("static char rcsid[] = %s;\n",patid);
|
||||||
|
|
Loading…
Reference in a new issue