diff options
Diffstat (limited to 'Build/source/utils/vlna/vlna.w')
-rw-r--r-- | Build/source/utils/vlna/vlna.w | 65 |
1 files changed, 27 insertions, 38 deletions
diff --git a/Build/source/utils/vlna/vlna.w b/Build/source/utils/vlna/vlna.w index c5b9faaf4a0..da84b8711b6 100644 --- a/Build/source/utils/vlna/vlna.w +++ b/Build/source/utils/vlna/vlna.w @@ -59,9 +59,7 @@ int status; @ Základní rozvržení funkce |main|. @<Hlavní program@>= -int main (argc,argv) - int argc; - char **argv; +int main (int argc, char **argv) { @<Lokální proměnné funkce |main|@>; prog_name=argv[0]; status = OK; @@ -108,7 +106,7 @@ možných parametrů. Nepodařilo se mi zjistit, jak se ve WEBu napíše kulturně dlouhý string obsahující \.{\char92n} s formátovacími požadavky. Byl jsem nucen to takto nehezky zapsat. @<Pomocné funkce@>= -void printusage () +static void printusage (void) { fprintf(stderr, "usage: vlna [opt] [filenames]\n" @@ -166,8 +164,7 @@ int j; @ Definujeme funkci pro výpis chybového hlášení při neúspěšném otevření souboru. @<Pomocné funkce@>= -void ioerr (f) - char *f; +static void ioerr (char *f) { fprintf(stderr, "%s: cannot open file %s\n", prog_name, f); } @@ -297,7 +294,7 @@ typedef struct PATITEM { /* jedna pozice patternu */ } PATITEM; typedef struct PATTERN { /* jeden pattern */ PATITEM *patt; /* ukazatel na prvni pozici */ - void (*proc)(); /* procedura spustena pri souhlasu patternu */ + void (*proc)(void); /* procedura spustena pri souhlasu patternu */ struct PATTERN *next ; /* nasledujici v seznamu vsech patternu */ } PATTERN; @@ -345,7 +342,7 @@ výstupního proudu neaktivovali zbytečně často. PATITEM *lapi[MAXPATT]; /* pole ukazatelu na aktualni pozice */ PATTERN *lapt[MAXPATT]; /* pole odpovidajicich ukazatelu na patterny */ PATTERN *listpatt, *normallist, *commentlist, *pt, *lastpt=NULL; -PATITEM *pi, *lastpi=NULL; +PATITEM *lastpi=NULL; char c; /* zrovna nacetny znak */ char buff[MAXBUFF]; /* prechodny buffer */ int ind; /* aktualni pozice prechodneho bufferu */ @@ -355,8 +352,7 @@ Tyto funkce alokují paměť pomocí standardní funkce |malloc|. Abychom mohli ohlídat případnou chybu při alokaci, budeme allokovat paměť zprostředkovaně pomocí funkce |myalloc|. @<Pomocné funkce@>= -void *myalloc (size) - int size; +static void *myalloc (int size) { void *p; p = malloc (size); @@ -373,8 +369,7 @@ ji pomocí proměnné |lastpt| na už alokovaný řetěz patternů. Vrátí ukazatel na nově alokované místo. Jednotlivé pozice patternu se musí následovně alokovat pomocí |setpi|. @<Pomocné funkce@>= -PATTERN *setpattern (proc) @/ - void (*proc)(); +static PATTERN *setpattern (void (*proc)(void)) { PATTERN *pp; pp = myalloc (sizeof (PATTERN)); @@ -392,9 +387,7 @@ zřetězení tak, aby první pozice řetězu pozic byla zaznamenána v položce |patt| ve struktuře |PATTERN| a další byly provázány položkou |next| ve struktuře |PATITEM|. Poslední pozice má |next==NULL|. @<Pomocné funkce@>= -void setpi (str, flag) - char *str; - int flag; +static void setpi (char *str, int flag) { PATITEM* p; p = myalloc (sizeof (PATITEM)); @@ -427,9 +420,7 @@ for (i=0; i<256; i++) { @ Definujme funkci |normalpattern|. @<Pomocné funkce@>= -PATTERN *normalpattern (proc, str) @/ - void (*proc)(); - char *str; +static PATTERN *normalpattern (void (*proc)(void), const char *str) { PATTERN *pp; int j=0; @@ -465,8 +456,7 @@ symetrické podle nuly, např. |ANY==-ANY_NOT|. @d FOUND -1 @d NOFOUND -2 @<Pomocné funkce@>= -int match (p) - PATITEM *p; +static int match (PATITEM *p) { int m; if (strchr (p->str, c) != NULL) m = 1; /* Znak nalezen */ @@ -513,8 +503,7 @@ strukturu patternů. Výhodné je (z důvodu rychlosti) \uv{natvrdo} zde implementovat jen přepínání mezi stavem čtení z oblasti komentáře (|listpatt==commentlist|) a mimo komentář (|listpatt==normallist|); @<Vlnkovací funkce |tie|@>= -void tie (input, output) - FILE *input, *output; +static void tie (FILE *input, FILE *output) { int ap; /* ap je pocet otevrenych patternu */ register int k, m, n; @@ -668,7 +657,7 @@ setpi (nochar, ONE_NOT); listpatt = normallist = vlnkalist; @ @<Pomocné funkce@>= -void vlnkain() +static void vlnkain(void) { char p; ind--; @@ -707,7 +696,7 @@ ošetření tohoto fenoménu můžeme dokonce narazit na situaci situaci pouze zrušíme stávající (v pořadí druhé) \uv{\.{\char92n}} a nebudeme vytvářet nové. Na výstupu bude soubor o jeden řádek kratší. @<Pomocné funkce@>= -void vlnkacr() +static void vlnkacr(void) { char p; int i, j; @@ -773,7 +762,7 @@ nových patternů pro tento znak teprve budou následovat a testují se na hodnotu proměnné |c|. Stačí tedy změnit hodnotu |c| a vlnkovací patterny se neotevřou. @<Pomocné funkce@>= -void tielock () +static void tielock (void) { c = 1; } @@ -782,7 +771,7 @@ void tielock () módu vlnky neděláme. Při zjištěném nesouladu v přechodech mezi math-módy spustíme následující proceduru. @<Pomocné funkce@>= -void printwarning () +static void printwarning (void) { if (!silent) fprintf (stderr, @@ -807,13 +796,13 @@ if (!nomath) { } @ @<Pomocné funkce@>= -void mathin () +static void mathin (void) { if (mode!=TEXTMODE) printwarning (); mode = MATHMODE; normallist = listpatt = mathlist; } -void mathout () +static void mathout (void) { if (mode!=MATHMODE) printwarning (); mode = TEXTMODE; @@ -825,7 +814,7 @@ sekvence \.{\char92\$}. V tom případě akci ignorujeme. Podobně u sekvence \.{\$\$} souhlasí ten druhý dolar s naším patternem, ale to už jsme uvnitř display módu. V takovém případě také nic neděláme. @<Pomocné funkce@>= -void onedollar () +static void onedollar (void) { if (buff[ind-3]=='\\' || (buff[ind-3]=='$' && buff[ind-4]!='\\')) return; if (mode==DISPLAYMODE) printwarning (); @@ -844,7 +833,7 @@ setpi (blanks, ANY); setpi (cr, ONE); @ @<Pomocné funkce@>= -void checkmode () +static void checkmode (void) { if (mode!=TEXTMODE) { printwarning (); @@ -870,17 +859,17 @@ if (!nomath) { } @ @<Pomocné funkce@>= -void displayin () +static void displayin (void) { if (mode!=TEXTMODE) printwarning (); mode = DISPLAYMODE; normallist = listpatt = parcheck; } -void displayout () +static void displayout (void) { if (mode!=DISPLAYMODE) printwarning(); mode = TEXTMODE; normallist = listpatt = vlnkalist; } -void twodollars () +static void twodollars (void) { if (buff[ind-3]=='\\') return; if (mode==DISPLAYMODE) displayout (); @@ -922,7 +911,7 @@ Proto druhý výskyt této hodnoty verbatim režim ukončí. int prevmode; PATTERN *prevlist, *verboutlist[4]; char verbchar[2]; -void verbinchar () +static void verbinchar (void) { prevmode = mode; verbchar[0] = c; @@ -940,7 +929,7 @@ oblasti vstoupili, abychom se k němu mohli vrátit (např. uvnitř math. módu může být \.{\char92hbox} a v něm lokálně verbatim konstrukce). @<Pomocné funkce@>= -void verbin () +static void verbin (void) { int i; i = 0; @@ -960,7 +949,7 @@ void verbin () } @ @<Pomocné funkce@>= -void verbout () +static void verbout (void) { if (mode!=VERBMODE) return; if (web && buff[ind-2] == '@@' && buff[ind-3] == '@@') return; @@ -982,11 +971,11 @@ commentlist = normalpattern (tieoff, "%.~.-"); normalpattern (tieon, "%.~.+"); @ @<Pomocné funkce@>= -void tieoff () +static void tieoff (void) { normallist = NULL; } -void tieon () +static void tieon (void) { normallist = vlnkalist; } |