From 5fbe427853f2953863f06f3e00ac1b097d589d92 Mon Sep 17 00:00:00 2001 From: ceriel Date: Thu, 9 Apr 1987 14:15:25 +0000 Subject: [PATCH] variable length names --- util/ass/ass00.c | 8 ++++---- util/ass/ass00.h | 5 ++--- util/ass/ass60.c | 6 +++--- util/ass/ass70.c | 24 +++++++++++++----------- util/ass/assci.c | 3 +-- 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/util/ass/ass00.c b/util/ass/ass00.c index 0b4228840..85d11fa1a 100644 --- a/util/ass/ass00.c +++ b/util/ass/ass00.c @@ -386,7 +386,7 @@ enmd_pro() { limit = &mprocs[oursize->n_mproc]; for (p=mprocs; pp_name[0] == 0) + if (p->p_name == 0) continue; if ((p->p_status&DEF)==0) error("undefined local procedure '%s'",p->p_name); @@ -421,7 +421,7 @@ enmd_glo() { limit = &mglobs[oursize->n_mlab]; for ( mg = mglobs; mg < limit; mg++) { - if (mg->g_name[0] == 0) + if (mg->g_name == 0) continue; if ((mg->g_status&(EXT|DEF))==0) error("undefined local symbol '%s'",glostring(mg)); @@ -511,12 +511,12 @@ check_def() { printf("Unresolved references\n Procedures:\n"); count = oursize->n_xproc; for (p = xprocs; count--; p++) - if (p->p_name[0] && (p->p_status&DEF)==0) + if (p->p_name && (p->p_status&DEF)==0) printf(" %s\n",p->p_name); printf(" Data:\n"); count = oursize->n_glab; for (g = xglobs; count--; g++) - if (g->g_name[0] && (g->g_status&DEF)==0) + if (g->g_name && (g->g_status&DEF)==0) printf(" %s\n",glostring(g)); } } diff --git a/util/ass/ass00.h b/util/ass/ass00.h index 5d1b8e340..840d8204e 100644 --- a/util/ass/ass00.h +++ b/util/ass/ass00.h @@ -112,7 +112,6 @@ typedef union { #define TRUE 1 #define FALSE 0 -#define IDLENGTH 8 /* length of glo's and pro's */ #define MAXSTRING 200 /* Maximum string length accepted */ #define LOCLABSIZE 128 /* size of local label hash table */ /* may not be smaller */ @@ -169,7 +168,7 @@ struct loc_label { #define NOTPRESENT 4 /* Undefined and error message given */ struct glob_label { - char g_name[IDLENGTH+1]; /* name + null-byte */ + char *g_name; char g_status; /* see below */ union { cons_t g_addr; /* value if status&DEF */ @@ -241,7 +240,7 @@ struct sizes { }; struct procs { /* format of mprocs[] and xprocs[] */ - char p_name[IDLENGTH+1]; /* name + 1 null-byte */ + char *p_name; char p_status; /* same bits as g_status except REL */ int p_num; /* unique procedure descriptor */ }; diff --git a/util/ass/ass60.c b/util/ass/ass60.c index c6f2f711b..cb423d290 100644 --- a/util/ass/ass60.c +++ b/util/ass/ass60.c @@ -138,7 +138,7 @@ if ( ( (n==0 || n>=100) && d_flag) || (n<=1 && d_flag>=2) ) { printf("\n\t%8.8s %8.8s %8.8s\n", "g_name","g_status","g_addr"); for (gb = xglobs,i = 0;gb < &xglobs[oursize->n_glab]; gb++, i++) - if (gb->g_name[0] != 0) { + if (gb->g_name != 0) { printf("%5d\t%8.6s",i,gb->g_name); printf(" %8o %8ld\n",gb->g_status,gb->g_val.g_addr); } @@ -146,7 +146,7 @@ if ( ( (n==0 || n>=100) && d_flag) || (n<=1 && d_flag>=2) ) { printf("\n\t%8.8s%8s%8s\t%8s%8s\n", "name","status","num","off","locals"); for (pl=mprocs;pl< &mprocs[oursize->n_mproc]; pl++) - if (pl->p_name[0]) { + if (pl->p_name) { printf("%4d\t%-8s%8o%8d", pl-mprocs,pl->p_name,pl->p_status,pl->p_num); if (pl->p_status&DEF) @@ -158,7 +158,7 @@ if ( ( (n==0 || n>=100) && d_flag) || (n<=1 && d_flag>=2) ) { printf("\n\t%8s%8s%8s\t%8s%8s\n", "name","status","num","off","locals"); for (pl=xprocs;pl< &xprocs[oursize->n_xproc]; pl++) - if (pl->p_name[0]) { + if (pl->p_name) { printf("%4d\t%-8s%8o%8d", pl-xprocs,pl->p_name,pl->p_status,pl->p_num); if (pl->p_status&DEF) diff --git a/util/ass/ass70.c b/util/ass/ass70.c index 6c75bf476..7181418d8 100644 --- a/util/ass/ass70.c +++ b/util/ass/ass70.c @@ -96,20 +96,21 @@ int size; /* size for hash */ rem = glohash(name,size); j = 0; new=0; g = &table[rem]; - while (g->g_name[0] != 0 && strcmp(name,g->g_name) != 0) { + while (g->g_name != 0 && strcmp(name,g->g_name) != 0) { j++; if (j>size) fatal("global label table overflow"); rem = (rem + globstep) % size; g = &table[rem]; } - if (g->g_name[0] == 0) { + if (g->g_name == 0) { /* * This symbol is shining new. * Enter it in table except for status = SEARCHING */ if (status == SEARCHING) return(0); + g->g_name = (char *) getarea((unsigned) (strlen(name) + 1)); strcpy(g->g_name,name); g->g_status = 0; g->g_val.g_addr=0; @@ -211,12 +212,12 @@ proc_t *prolookup(name,status) char *name; { switch(status) { case PRO_OCC: p = searchproc(name,mprocs,oursize->n_mproc); - if (p->p_name[0]) { + if (p->p_name) { p->p_status |= OCC; return(p); } p = searchproc(name,xprocs,oursize->n_xproc); - if (p->p_name[0]) { + if (p->p_name) { p->p_status |= OCC; return(p); } @@ -225,20 +226,20 @@ proc_t *prolookup(name,status) char *name; { break; case PRO_INT: p = searchproc(name,xprocs,oursize->n_xproc); - if (p->p_name[0] && (p->p_status&EXT) ) + if (p->p_name && (p->p_status&EXT) ) error("pro '%s' conflicting use",name); p = searchproc(name,mprocs,oursize->n_mproc); - if (p->p_name[0]) + if (p->p_name) werror("INP must be first occurrence of '%s'",name); pstat = 0; break; case PRO_EXT: p = searchproc(name,mprocs,oursize->n_mproc); - if (p->p_name[0]) + if (p->p_name) error("pro '%s' exists already localy",name); p = searchproc(name,xprocs,oursize->n_xproc); - if (p->p_name[0]) { + if (p->p_name) { /* * The If statement is removed to be friendly * to Backend writers having to deal with assemblers @@ -255,7 +256,7 @@ proc_t *prolookup(name,status) char *name; { break; case PRO_DEF: p = searchproc(name,xprocs,oursize->n_xproc); - if (p->p_name[0] && (p->p_status&EXT) ) { + if (p->p_name && (p->p_status&EXT) ) { if (p->p_status&DEF) error("global pro '%s' redeclared",name); else @@ -264,7 +265,7 @@ proc_t *prolookup(name,status) char *name; { return(p); } else { p = searchproc(name,mprocs,oursize->n_mproc); - if (p->p_name[0]) { + if (p->p_name) { if (p->p_status&DEF) error("local pro '%s' redeclared", name); @@ -296,7 +297,7 @@ proc_t *searchproc(name,table,size) rem = glohash(name,size); j = 0; p = &table[rem]; - while (p->p_name[0] != 0 && strcmp(name,p->p_name) != 0) { + while (p->p_name != 0 && strcmp(name,p->p_name) != 0) { j++; if (j>size) fatal("procedure table overflow"); @@ -326,6 +327,7 @@ proc_t *place; { */ p=place; + p->p_name = (char *) getarea((unsigned) (strlen(name) + 1)); strcpy(p->p_name,name); p->p_status = status; if (procnum>=oursize->n_proc) diff --git a/util/ass/assci.c b/util/ass/assci.c index 58051f34e..f27c092b0 100644 --- a/util/ass/assci.c +++ b/util/ass/assci.c @@ -198,7 +198,6 @@ getstring() { inident() { getstring(); - string[IDLENGTH] = '\0'; } char *inproname() { @@ -220,7 +219,7 @@ int needed() { break ; case sp_pnam : p = searchproc(string,xprocs,oursize->n_xproc); - if (p->p_name[0]) { + if (p->p_name) { if ((p->p_status & DEF) != 0) continue ; } else continue ; -- 2.34.1