diff --git a/log/src/log.c b/log/src/log.c index 8306da0eca71bb29b4197c4bfb8dd0bd71e06c7b..63b349fde59479225956bf68c33f1d6faf5331bf 100644 --- a/log/src/log.c +++ b/log/src/log.c @@ -7026,19 +7026,18 @@ static void getgategroup(strlist_t *grp) static void showpinname(log_grec *g, short i, short c, char *name) { - short j, j2, x, y, w, y0, y1, y2; + short x, y, w, y0, y1, y2; int small; char buf[256]; - short FORLIM; if (zoom < 2) { *buf = '\0'; small = true; - FORLIM = strlen(name); - for (j = 0; j < FORLIM; j++) + size_t namelenght = strlen(name); + for (size_t j = 0; j < namelenght; j++) { - j2 = strposc(nummap, name[j], 1L); + size_t j2 = strposc(nummap, name[j], 1L); if (j2 > 0) sprintf(buf + strlen(buf), "%c", j2 + 127); else if (isupper(name[j])) @@ -7283,27 +7282,14 @@ static void gatedefinitioncommand() /*= =*/ /*================================================*/ -static char *strreverse(char *Result, char *s) -{ - long i; - char s2[256]; - - *s2 = '\0'; - for (i = strlen(s) - 1; i >= 0; i--) - sprintf(s2 + strlen(s2), "%c", s[i]); - return strcpy(Result, s2); -} - - static librstrrec *findlibrstr(char *name_) { - char name[9]; - librstrrec *lsp; - char STR1[256]; + size_t name_length = strlen(name_); + char *name = malloc(sizeof(char) * name_length); + + librstrrec *lsp = librstrs; + strreverse(name, name_); - strcpy(name, name_); - lsp = librstrs; - strcpy(name, strreverse(STR1, name)); while (lsp != NULL && strcmp(lsp->name, name)) { if (strcmp(name, lsp->name) < 0) @@ -7311,6 +7297,8 @@ static librstrrec *findlibrstr(char *name_) else lsp = lsp->right; } + + free(name); return lsp; } @@ -7789,37 +7777,6 @@ static void setvlsimode(int flag) flag = false; } - /*$if false$ - var - i, j : log_shortint; - begin - remcursor; - if flag and (ptrans = nil) then - begin - -i := readlibrary('P'); -if i <> 0 then -j := readlibrary('N'); -if (i = 0) or (j = 0) then -flag := false -else -begin -new(ptrans); -ptrans^.g := i; -ptrans^.info.proc := kind[ptrans^.g]^.proc; -ptrans^.numpins := kind[ptrans^.g]^.numpins; -for i := 1 to ptrans^.numpins do -ptrans^.pin^[i] := nullnode; -new(ntrans); -ntrans^.g := j; -ntrans^.info.proc := kind[ntrans^.g]^.proc; -ntrans^.numpins := kind[ntrans^.g]^.numpins; -for i := 1 to ntrans^.numpins do -ntrans^.pin^[i] := nullnode; -end; -end; -$end$*/ - if (flag) curwcolor = log_wcol_blue; else @@ -9225,9 +9182,9 @@ static void setgattr(log_grec *g, short num, char *value_) short pg; log_tool *saveacttool; - strcpy(value, value_); if (num < 1 || num > g->kind->numattrs) return; + strcpy(value, value_); saveacttool = gg.acttool; gg.actgate = g; gg.actnode = NULL; @@ -9285,7 +9242,7 @@ const fliparr flips = { static short doflip(short rot, short mode) { - return (flips[mode][rot]); + return flips[mode][rot]; } @@ -11987,8 +11944,6 @@ static void savepage(short pgnum, char *filename_) if (n1->flag) { numnodes++; - /* n1^.temp.p := firstnode; -firstnode := n1; */ if (lastnode != NULL) lastnode->temp = (void *)n1; else @@ -13337,10 +13292,6 @@ static void loadcommand() { x = (gg.t.ax - 2) / 15; y = gg.t.ay - 2; - /* x := (gg.t.x-22) div 90; -y := (gg.t.y-46) div 15; -if gg.t.x < 22 then x := 0; -if gg.t.y < 46 then y := 0; */ if (x < 0 || (unsigned)y > dirmax || x > dircol || dirs[x] == NULL || *dirs[x][y] == '\0') { x = -1; @@ -14036,9 +13987,7 @@ static log_tool *counttool(long i) return tp; } -static char *onoff(Result, b) - char *Result; - int b; +static char *onoff(char *Result, int b) { if (b) return strcpy(Result, "ON "); @@ -14541,9 +14490,6 @@ static void popupmenu(short num) popup_grid = (cursortype == grid); remcursor(); clipoff(); - /* if menupicture <> nil then - m_disposepicture(menupicture); - m_getcpicture(kindgroupleft+1, baseline, kindgroupright-1, down, menupicture); */ m_color((long)gg.color.backgr); m_fillrect(kindgroupleft + 1L, (long)baseline, kindgroupright - 1L, (long)down); @@ -15348,15 +15294,6 @@ static void dofunction() } else if (!strcmp(gg.func, "TRAIN")) { - /* training := not training; - if training and firsttraining then - begin - gethelp('[Tutorial]'); -firsttraining := false; -end; -if not training then -m_graphics_on; -clearalpha; */ clearfunc(); } else if (!strcmp(gg.func, "STATUS")) @@ -15562,20 +15499,15 @@ static void initmacros() static void newmenu(logmenurec **menu) { - short i; - *menu = (logmenurec *)Malloc(sizeof(logmenutype)); - for (i = 0; i <= 7; i++) + for (short i = 0; i <= 7; i++) *(*menu)[i].name = '\0'; } - static void initmenus() { - short i; - - for (i = 0; i <= 3; i++) + for (short i = 0; i <= 3; i++) newmenu(&popupmenus[i]); definemenu(1, 1, "Box", "BOX", 0); definemenu(1, 2, "Label", "LABEL", 0); diff --git a/log/src/logsimed.c b/log/src/logsimed.c index ee99fc3909dbde39c5202676b63a122d7c71e6a5..0b93d6721673ea403b9a7fe285362621c5f673fa 100644 --- a/log/src/logsimed.c +++ b/log/src/logsimed.c @@ -1491,10 +1491,7 @@ struct LOC_edit_16 *LINK; nk_ungetkey(LINK->ch); pos = 1; -/* p2c: logsimed.text, line 1282: - * Warning: Type mismatch in VAR parameter term [295] */ - newci_inputstring(s, im_keep, "\015\n\037\003\004", - (char *)&LINK->ch, false, &pos); + newci_inputstring(s); } diff --git a/psys/include/p2c/newasm.h b/psys/include/p2c/newasm.h index 53d9bb840c24d5f575f8b9f1494287d364d982dc..a3c3344eb14908002b459624dee1e6988127496d 100644 --- a/psys/include/p2c/newasm.h +++ b/psys/include/p2c/newasm.h @@ -1,13 +1,6 @@ -/* Header for module newasm, generated by p2c */ #ifndef NEWASM_H #define NEWASM_H - -#define na_scale 65536L - -#define na_rbias 1023 - - /*32 bits*/ typedef union na_word { @@ -28,59 +21,7 @@ typedef union na_word { char str[2]; } na_word; -typedef na_word na_wordarray[]; - typedef void* na_long; -#define na_long na_longword - -typedef union na_long { - long i; - struct { - short i1, i2; - } U2; - struct { - short x, y; - } U3; - struct { - unsigned short u1, u2; - } U4; - struct { - char fill1; - signed int s3 : 24; - } U5; - struct { - uchar fill2; - unsigned u3 : 24; - } U6; - char c[4]; - uchar ub[4]; - long sb; - unsigned long b4; - unsigned long b2; - unsigned long b; - void* sr; - char str[4]; - char *sp; - void* p; - double *rp; - na_word *wp; - union na_long *lp; - union na_quadword *qp; - struct na_strlist_t *sl; - char *cap; - na_word *wap; - union na_long *lap; - union na_quadword *qap; - struct { - unsigned sign : 1, mag : 31; - } U27; - long *setp; - struct { - na_word w1, w2; - } U99; -} na_long; - -#undef na_long typedef union na_quadword { struct { diff --git a/psys/include/p2c/newci.h b/psys/include/p2c/newci.h index ffb4dbb36fbfa3b53b6ec00398ccc951dccb842d..f6a18aaa4c63257e9d3d6e982421cfd141d60a88 100644 --- a/psys/include/p2c/newci.h +++ b/psys/include/p2c/newci.h @@ -8,20 +8,6 @@ # define vextern extern #endif - -#define timers_userphase 0 - -/*must be zero*/ -#define timers_idlephase 1 -#define timers_sysphase 2 -#define timers_diskphase 3 - - - -/*user defined*/ - -typedef char *newci_argarr[100001L]; - typedef struct newci_parserec { char switch_[4]; size_t used; @@ -30,139 +16,26 @@ typedef struct newci_parserec { long i; double r; char *s; - _PROCEDURE p; - _PROCEDURE p1; } UU; } newci_parserec; -typedef struct newci_fshandle { - long a; - long b; -} newci_fshandle; - -typedef enum { - im_normal, im_keep, im_default, im_key, im_grab -} newci_imode; - -typedef struct timers_desc { - long rate; - _PROCEDURE proc; - long count; - int perm; - struct timers_desc *next; - void **user; -} timers_desc; - -#define newci_exitescapecode 18346 - - -vextern _PROCEDURE newci_progentryhook; -vextern _PROCEDURE newci_progexithook; extern int P_argc; extern char **P_argv; -vextern char *newci_programname; -vextern char *newci_programargs; -vextern int newci_rediroutput, newci_redirinput; -vextern char newci_inputhighlight; -vextern int newci_markuserflag, newci_ucfilenames, newci_verbose; -vextern short newci_errorcode; -vextern char *newci_shellname; -vextern int newci_shellflag, respond_flag, respond_enable; -vextern long newci_exitcode; -vextern _PROCEDURE newci_checkrespondhook; -vextern short timers_phase, timers_permphase; -vextern long timers_clocks[16]; -vextern FILE **newci_stdterm; - - -//extern FILE **newci_stdin (); -//extern FILE **newci_stdout (); -//extern FILE **newci_stderr (); -//extern void newci_parseargs (char *s); extern void newci_parseswitch (newci_parserec *tab, size_t size, char *bad); extern void newci_eatargument (); extern void newci_fixfname (char *s, char *ext, char *home); extern void newci_forcefname (char *s, char *ext, char *home); -//extern void newci_chainprogram (char *name); -//extern void newci_markprogram (long *id); -//extern void newci_loadprogram (char *name); -//extern void newci_reloadprogram (char *name); -//extern void newci_releaseprogram (long *id); -//extern void newci_runprogram (char *name); -//extern void newci_shellrunprogram (char *name, int debugging); -//extern void newci_basicrunprogram (char *name, int debugging); extern void newci_shellescape (char *args); extern void newci_fullshellescape (char *args, char *opts); extern void newci_fulleditescape (char *fn, char *opts, long ln, long pos); -//extern void newci_permanentprogram (); -//extern void newci_unpermanentprogram (); -//extern void newci_recursiveprogram (); -//extern void newci_flushexecutionbits (); -//extern void newci_getenv (char *variable, char *value, int *exists); -//extern int newci_canreleaseprogram (long id); -//extern void newci_exit (long code); -//extern void newci_assert (int flag, char *msg); -//extern void newci_ferror (char *msg); -//extern void newci_merror (char *s, char *msg); -//extern char *newci_showerror (char *newci_Result, char *msg); -//extern void newci_fescape (long esc, long ior, char *msg); -//extern void newci_mescape (char *s, long esc, long ior, char *msg); -//extern char *newci_showescape (char *newci_Result, long esc, long ior, -// char *msg); extern void newci_nullrecover (); -//extern void newci_reescape (); -//extern void newci_checkior (); -//extern void newci_iorecover (); -//extern void* *newci_findsymbol (char *name); - -/*case sensitive*/ -//extern void newci_initfindsymbol2 (newci_fshandle *handle); -//extern void* *newci_findsymbol2 (char *suffix, newci_fshandle *handle, -// char *name); -//extern int newci_findprogram (char *name); -//extern int newci_findprocedure (char *name, _PROCEDURE *start); -//extern int newci_findprocedure2 (char *name, _PROCEDURE *start); -//extern void* *newci_findglobal (char *name, long offset); -//extern void newci_findabove (long *addr, char *name); -//extern void newci_findbelow (long *addr, char *name); -//extern void push_var (long *v); - -/*also records, arrays*/ -//extern void push_varstr (char *s); -//extern void push_boolean (int b); -//extern void push_char (int c); -//extern void push_shortint (long i); - -/*also enumerated types, with ord()*/ -//extern void push_ptr (void* *p); -//extern void push_integer (long i); -//extern void push_real (double r); -//extern void push_string (char *s); -//extern void newci_callfunction (_PROCEDURE start, long *ret, long retsize); -//extern int newci_callboolean (_PROCEDURE start); -//extern void newci_inputbegin (); extern void newci_inputmap (); extern void newci_inputunmap (); -extern void newci_inputstring (char *s, int mode, char *possterm, char *term, int echoterm, long *pos); -//extern void newci_addrecallstr (char *s); -//extern void interrupt_input (int ch); -//extern void newci_streamopen (char *sfile, int report); -//extern void newci_streamclose (); -//extern void check_respond (); -//extern void timers_add (timers_desc *t); -//extern void timers_addperm (timers_desc *t); -//extern void timers_remove (timers_desc *t); +extern void newci_inputstring (char *s); extern long timers_sysclock (); -//extern void timers_refreshclock (); -//extern void timers_clockon (); -//extern void timers_clockoff (); -//extern void timers_setalarm (long hour, long min); extern long newci_fullseconds (); -//extern void newci_fulltime (long *sec, long *csec); -//extern long newci_dayofweek (); - #undef vextern diff --git a/psys/include/p2c/strings.h b/psys/include/p2c/strings.h index 966eee4444e20b54aa5d23988da4d9f4147cd8a7..165dd74609b696359c4a44cc49e9e1d6482f20e0 100644 --- a/psys/include/p2c/strings.h +++ b/psys/include/p2c/strings.h @@ -15,6 +15,7 @@ extern char *strupper (char *result, char *s); extern char *strlower (char *result, char *s); extern char *strpart (char *result, char *s, long fist, long last); extern char *strlast (char *result, char *s, size_t num); +extern char *strreverse (char *result, char*); //extern char *strljust (char *result, char *s, long wid); //extern char *strrjust (char *result, char *s, long wid); extern char *strcjust (char *result, char *s, size_t wid); diff --git a/psys/src/newci.c b/psys/src/newci.c index 86ded320b14495423ab637340e859f089b185ec8..6b3c2d1508cf455eabefb35be96637dfefb97f83 100644 --- a/psys/src/newci.c +++ b/psys/src/newci.c @@ -18,7 +18,7 @@ /* This procedure should be made to do something real. */ -void newci_inputstring(char *s, int mode, char *possterm, char *term, int echoterm, long *pos) +void newci_inputstring(char *s) { char buf[1024]; char *cp; diff --git a/psys/src/strings.c b/psys/src/strings.c index 82fdbea2113fadb94856b7c9d6dc1564718f598b..03b5a50c856863a72705d432ef63ef74fd5330b3 100644 --- a/psys/src/strings.c +++ b/psys/src/strings.c @@ -31,6 +31,21 @@ char *strlower(char *result, char *s) return result; } +char *strreverse(char *result, char *s) +{ + size_t len = strlen(s) + 1; + char *tmp = malloc(sizeof(char) * len); + + tmp[len] = '\0'; + for (size_t i = 0; i < len; i++) + { + tmp[i] = s[len - i]; + } + strcpy(result, tmp); + free(tmp); + return result; +} + char *strpart(char *result, char *s, long first, long last) { return strsub(result, s, first, last-first+1);