diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/backup.c | 251 | ||||
-rw-r--r-- | src/builtin.c | 337 | ||||
-rw-r--r-- | src/builtin.h | 14 | ||||
-rw-r--r-- | src/cmdline.opt | 93 | ||||
-rw-r--r-- | src/config.c | 2398 | ||||
-rw-r--r-- | src/dictionary.c | 305 | ||||
-rw-r--r-- | src/directive.c | 1152 | ||||
-rw-r--r-- | src/diskio.c | 1155 | ||||
-rw-r--r-- | src/exec.c | 253 | ||||
-rw-r--r-- | src/gpg.c | 527 | ||||
-rw-r--r-- | src/interval.c | 161 | ||||
-rw-r--r-- | src/job.c | 572 | ||||
-rw-r--r-- | src/lock.c | 434 | ||||
-rw-r--r-- | src/mail.c | 1069 | ||||
-rw-r--r-- | src/mail.h | 9 | ||||
-rw-r--r-- | src/meta.c | 221 | ||||
-rw-r--r-- | src/net.c | 415 | ||||
-rw-r--r-- | src/null.c | 68 | ||||
-rw-r--r-- | src/pidfile.c | 104 | ||||
-rw-r--r-- | src/process.c | 469 | ||||
-rw-r--r-- | src/pushd.c | 206 | ||||
-rw-r--r-- | src/report.c | 45 | ||||
-rw-r--r-- | src/sql.c | 272 | ||||
-rw-r--r-- | src/sql.h | 55 | ||||
-rw-r--r-- | src/tcpwrap.c | 85 | ||||
-rw-r--r-- | src/timer.c | 309 | ||||
-rw-r--r-- | src/triplet.c | 1270 | ||||
-rw-r--r-- | src/txtacc.c | 228 | ||||
-rw-r--r-- | src/userprivs.c | 160 | ||||
-rw-r--r-- | src/verify.c | 538 | ||||
-rw-r--r-- | src/vtab.c | 97 | ||||
-rw-r--r-- | src/watcher.c | 379 | ||||
-rw-r--r-- | src/wydawca.c | 608 | ||||
-rw-r--r-- | src/wydawca.h | 735 |
35 files changed, 7197 insertions, 7799 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index e042272..2c8f3c4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,5 +1,5 @@ # This file is part of Wydawca -# Copyright (C) 2007, 2009-2011 Sergey Poznyakoff +# Copyright (C) 2007, 2009-2013 Sergey Poznyakoff # # Wydawca is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/backup.c b/src/backup.c index c5c55de..7119ae1 100644 --- a/src/backup.c +++ b/src/backup.c @@ -1,5 +1,5 @@ /* wydawca - automatic release submission daemon - Copyright (C) 2011, 2012 Sergey Poznyakoff + Copyright (C) 2011-2013 Sergey Poznyakoff Wydawca is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -19,147 +19,138 @@ char const *simple_backup_suffix = "~"; static const char * -split_filename (char const *file, char **pdir) +split_filename(char const *file, char **pdir) { - const char *p = strrchr (file, '/'); - - if (!p) - { - *pdir = grecs_strdup ("."); - p = file; - } - else - { - size_t len = p - file; - char *dir = grecs_malloc (len + 1); - memcpy (dir, file, len); - dir[len] = 0; - *pdir = dir; - p++; - } - return p; + const char *p = strrchr(file, '/'); + + if (!p) { + *pdir = grecs_strdup("."); + p = file; + } else { + size_t len = p - file; + char *dir = grecs_malloc(len + 1); + memcpy(dir, file, len); + dir[len] = 0; + *pdir = dir; + p++; + } + return p; } #define MINSUFSIZE 8 #define ISDIGIT(c) ('0' <= (c) && (c) <= '9') static char * -get_backup_suffix (char const *file, enum backup_type type) +get_backup_suffix(char const *file, enum backup_type type) { - char *dirname; - const char *basename; - size_t baselen; - DIR *dir; - struct dirent *ent; - char *lastsuf = NULL; - size_t lastsuflen = 0; - size_t lastsufsize = 0; - int carry = 0; - char *newsuf; - char *q; - - if (type == simple_backups) - return grecs_strdup (simple_backup_suffix); - - basename = split_filename (file, &dirname); - baselen = strlen (basename); - dir = opendir (dirname); - if (!dir) - { - int ec = errno; - free (dirname); - errno = ec; - return NULL; - } - - while ((ent = readdir (dir))) - { - size_t len = strlen (ent->d_name); - const char *p; - size_t suflen; - - if (len < baselen + 4 || memcmp (ent->d_name, basename, baselen)) - continue; - p = ent->d_name + baselen; - suflen = len - baselen; - if (p[0] == '.' && p[1] == '~' && p[suflen-1] == '~' && - (suflen > lastsuflen - || (suflen == lastsuflen && - memcmp (p, lastsuf, lastsuflen) > 0))) - { - carry = 1; - for (q = (char*) p + suflen - 2; q > p + 1 && ISDIGIT (*q); q--) - if (*q != '9') - carry = 0; - q++; - if (!ISDIGIT (*q)) - continue; - - if (suflen > lastsufsize) - { - lastsufsize = suflen; - if (!lastsuf) - { - if (lastsufsize < MINSUFSIZE) - lastsufsize = MINSUFSIZE; - lastsuf = grecs_malloc (lastsufsize); + char *dirname; + const char *basename; + size_t baselen; + DIR *dir; + struct dirent *ent; + char *lastsuf = NULL; + size_t lastsuflen = 0; + size_t lastsufsize = 0; + int carry = 0; + char *newsuf; + char *q; + + if (type == simple_backups) + return grecs_strdup(simple_backup_suffix); + + basename = split_filename(file, &dirname); + baselen = strlen(basename); + dir = opendir(dirname); + if (!dir) { + int ec = errno; + free(dirname); + errno = ec; + return NULL; + } + + while ((ent = readdir(dir))) { + size_t len = strlen(ent->d_name); + const char *p; + size_t suflen; + + if (len < baselen + 4 || + memcmp(ent->d_name, basename, baselen)) + continue; + p = ent->d_name + baselen; + suflen = len - baselen; + if (p[0] == '.' && p[1] == '~' && p[suflen - 1] == '~' && + (suflen > lastsuflen + || (suflen == lastsuflen && + memcmp(p, lastsuf, lastsuflen) > 0))) { + carry = 1; + for (q = (char *)p + suflen - 2; + q > p + 1 && ISDIGIT(*q); q--) + if (*q != '9') + carry = 0; + q++; + if (!ISDIGIT(*q)) + continue; + + if (suflen > lastsufsize) { + lastsufsize = suflen; + if (!lastsuf) { + if (lastsufsize < MINSUFSIZE) + lastsufsize = MINSUFSIZE; + lastsuf = grecs_malloc(lastsufsize); + } else + lastsuf = grecs_realloc(lastsuf, + lastsufsize); + } + memcpy(lastsuf, p, suflen); + lastsuflen = suflen; } - else - lastsuf = grecs_realloc (lastsuf, lastsufsize); - } - memcpy (lastsuf, p, suflen); - lastsuflen = suflen; } - } - closedir (dir); - free (dirname); - - if (lastsuf) - { - size_t newsuflen; - - newsuflen = lastsuflen + carry; - newsuf = grecs_malloc (newsuflen + 1); - newsuf[0] = '.'; - newsuf[1] = '~'; - newsuf[2] = '0'; - memcpy (newsuf + 2 + carry, lastsuf + 2, lastsuflen - 3); - newsuf[newsuflen-1] = '~'; - newsuf[newsuflen] = 0; - - for (q = newsuf + newsuflen - 2; *q == '9'; q--) - *q = '0'; - ++*q; - free (lastsuf); - } - else if (type == numbered_existing_backups) - newsuf = grecs_strdup (simple_backup_suffix); - else - newsuf = grecs_strdup (".~1~"); - return newsuf; + closedir(dir); + free(dirname); + + if (lastsuf) { + size_t newsuflen; + + newsuflen = lastsuflen + carry; + newsuf = grecs_malloc(newsuflen + 1); + newsuf[0] = '.'; + newsuf[1] = '~'; + newsuf[2] = '0'; + memcpy(newsuf + 2 + carry, lastsuf + 2, lastsuflen - 3); + newsuf[newsuflen - 1] = '~'; + newsuf[newsuflen] = 0; + + for (q = newsuf + newsuflen - 2; *q == '9'; q--) + *q = '0'; + ++*q; + free(lastsuf); + } else if (type == numbered_existing_backups) + newsuf = grecs_strdup(simple_backup_suffix); + else + newsuf = grecs_strdup(".~1~"); + return newsuf; } char * -find_backup_file_name (char const *file, enum backup_type type) +find_backup_file_name(char const *file, enum backup_type type) { - size_t flen; - char *suffix; - char *newname; - - if (type == no_backups) - { - errno = 0; - return NULL; - } - - suffix = get_backup_suffix (file, type); - if (!suffix) - return NULL; - flen = strlen (file); - newname = grecs_malloc (flen + strlen (suffix) + 1); - memcpy (newname, file, flen); - strcpy (newname + flen, suffix); - free (suffix); - /* FIXME: Check newname length */ - return newname; + size_t flen; + char *suffix; + char *newname; + + if (type == no_backups) { + errno = 0; + return NULL; + } + + suffix = get_backup_suffix(file, type); + if (!suffix) + return NULL; + flen = strlen(file); + newname = grecs_malloc(flen + strlen(suffix) + 1); + memcpy(newname, file, flen); + strcpy(newname + flen, suffix); + free(suffix); + /* FIXME: Check newname length */ + return newname; } diff --git a/src/builtin.c b/src/builtin.c index f031897..72b73cd 100644 --- a/src/builtin.c +++ b/src/builtin.c @@ -1,5 +1,5 @@ /* wydawca - automatic release submission daemon - Copyright (C) 2009-2011 Sergey Poznyakoff + Copyright (C) 2009-2013 Sergey Poznyakoff Wydawca is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -22,21 +22,21 @@ #endif int -builtin_init (struct dictionary *dict) +builtin_init(struct dictionary *dict) { - return 0; + return 0; } int -builtin_done (struct dictionary *dict) +builtin_done(struct dictionary *dict) { - return 0; + return 0; } void * -builtin_open (struct dictionary *dict) +builtin_open(struct dictionary *dict) { - return dict; + return dict; } #define CMP_EXACT 0 @@ -52,216 +52,203 @@ builtin_open (struct dictionary *dict) typedef int (*strcmp_fn) (const char *, const char *, int flags); static int -cmp_exact (const char *pat, const char *str, int flags) +cmp_exact(const char *pat, const char *str, int flags) { - return strcmp (pat, str) == 0; + return strcmp(pat, str) == 0; } static int -cmp_exact_ci (const char *pat, const char *str, int flags) +cmp_exact_ci(const char *pat, const char *str, int flags) { - return strcmp (pat, str) == 0; + return strcmp(pat, str) == 0; } static int -cmp_fnmatch (const char *pat, const char *str, int flags) +cmp_fnmatch(const char *pat, const char *str, int flags) { - return fnmatch (pat, str, flags) == 0; + return fnmatch(pat, str, flags) == 0; } static int -cmp_regex (const char *pat, const char *str, int flags) +cmp_regex(const char *pat, const char *str, int flags) { - int rc; - regex_t regex; - - rc = regcomp (®ex, pat, flags); - if (rc) - { - char errbuf[512]; - - regerror (rc, ®ex, errbuf, sizeof (errbuf)); - logmsg (LOG_ERR, _("%s: cannot compile regexp: %s"), pat, errbuf); - return 0; - } - - rc = regexec (®ex, str, 0, NULL, 0); - regfree (®ex); - return rc == 0; + int rc; + regex_t regex; + + rc = regcomp(®ex, pat, flags); + if (rc) { + char errbuf[512]; + + regerror(rc, ®ex, errbuf, sizeof(errbuf)); + logmsg(LOG_ERR, _("%s: cannot compile regexp: %s"), pat, + errbuf); + return 0; + } + + rc = regexec(®ex, str, 0, NULL, 0); + regfree(®ex); + return rc == 0; } int -parse_cmp_type (const char *pat, strcmp_fn *cmpfn, int *rf) +parse_cmp_type(const char *pat, strcmp_fn * cmpfn, int *rf) { - size_t len = strcspn (pat, ","); - int flags = 0; - int cmp; - - if (STRMATCH ("exact", pat, len)) - cmp = CMP_EXACT; - else if (STRMATCH ("fnmatch", pat, len)) - cmp = CMP_FNMATCH; - else if (STRMATCH ("regex", pat, len)) - cmp = CMP_REGEX; - else - return 1; - - pat += len; - if (*pat) - { - while (*++pat) - { - switch (*pat) - { - case 'i': - flags |= RF_ICASE; - break; - - case 'b': - flags |= RF_BASIC; - break; - - default: - logmsg (LOG_NOTICE, _("unrecognized comparison flag: %c"), *pat); - } + size_t len = strcspn(pat, ","); + int flags = 0; + int cmp; + + if (STRMATCH("exact", pat, len)) + cmp = CMP_EXACT; + else if (STRMATCH("fnmatch", pat, len)) + cmp = CMP_FNMATCH; + else if (STRMATCH("regex", pat, len)) + cmp = CMP_REGEX; + else + return 1; + + pat += len; + if (*pat) { + while (*++pat) { + switch (*pat) { + case 'i': + flags |= RF_ICASE; + break; + + case 'b': + flags |= RF_BASIC; + break; + + default: + logmsg(LOG_NOTICE, + _("unrecognized comparison flag: %c"), + *pat); + } + } + } + + switch (cmp) { + case CMP_EXACT: + *cmpfn = (flags & RF_ICASE) ? cmp_exact_ci : cmp_exact; + break; + + case CMP_FNMATCH: + *cmpfn = cmp_fnmatch; + *rf = FNM_NOESCAPE | FNM_PERIOD | + ((flags & RF_ICASE) ? FNM_CASEFOLD : 0); + break; + + case CMP_REGEX: + *cmpfn = cmp_regex; + *rf = ((flags & RF_BASIC) ? 0 : REG_EXTENDED) | REG_NOSUB; + if (flags & RF_ICASE) + *rf |= REG_ICASE; + break; } - } - - switch (cmp) - { - case CMP_EXACT: - *cmpfn = (flags & RF_ICASE) ? cmp_exact_ci : cmp_exact; - break; - - case CMP_FNMATCH: - *cmpfn = cmp_fnmatch; - *rf = FNM_NOESCAPE | FNM_PERIOD | - ((flags & RF_ICASE) ? FNM_CASEFOLD : 0); - break; - - case CMP_REGEX: - *cmpfn = cmp_regex; - *rf = ((flags & RF_BASIC) ? 0 : REG_EXTENDED) | REG_NOSUB; - if (flags & RF_ICASE) - *rf |= REG_ICASE; - break; - } - return 0; + return 0; } -struct builtin_data_storage -{ - struct txtacc *acc; - char **wp; +struct builtin_data_storage { + struct txtacc *acc; + char **wp; }; static int default_ncol[] = { - 4, /* project-uploader: name, realname, email, pubkey */ - 2, /* project-owner: email, realname */ + 4, /* project-uploader: name, realname, email, pubkey */ + 2, /* project-owner: email, realname */ }; int -builtin_lookup (struct dictionary *dict, void *handle, const char *req) +builtin_lookup(struct dictionary *dict, void *handle, const char *req) { - int i; - int rc; - size_t count = 0; - struct txtacc *acc; - int flags = 0; - strcmp_fn cmpfn = cmp_exact; - struct builtin_data_storage *bds; - int ncol = default_ncol[dict->id]; - - if (dict->parmc == 0) - { - dict->nrow = dict->ncol = 0; - return 0; - } + int i; + int rc; + size_t count = 0; + struct txtacc *acc; + int flags = 0; + strcmp_fn cmpfn = cmp_exact; + struct builtin_data_storage *bds; + int ncol = default_ncol[dict->id]; + + if (dict->parmc == 0) { + dict->nrow = dict->ncol = 0; + return 0; + } - acc = txtacc_create (); + acc = txtacc_create(); - for (i = 0; i < dict->parmc; i++) - { - char *pat = dict->parmv[i]; + for (i = 0; i < dict->parmc; i++) { + char *pat = dict->parmv[i]; - if (pat[0] == '/') - { - pat++; - if (*pat != '/' && parse_cmp_type (pat, &cmpfn, &flags) == 0) - continue; - } + if (pat[0] == '/') { + pat++; + if (*pat != '/' + && parse_cmp_type(pat, &cmpfn, &flags) == 0) + continue; + } + + if (i + ncol >= dict->parmc) + break; + + if (cmpfn(pat, req, flags)) { + size_t j; + for (j = 1; j <= ncol; j++) { + char *val = dict->parmv[i + j]; + txtacc_grow(acc, val, strlen(val) + 1); + } + count++; + } - if (i + ncol >= dict->parmc) - break; - - if (cmpfn (pat, req, flags)) - { - size_t j; - for (j = 1; j <= ncol; j++) - { - char *val = dict->parmv[i + j]; - txtacc_grow (acc, val, strlen (val) + 1); - } - count++; + i += ncol; } - i += ncol; - } - - dict->nrow = count; - dict->ncol = ncol; - - if (count == 0) - { - txtacc_free (acc); - bds = NULL; - rc = 1; - } - else - { - size_t i; - char *p; - - bds = grecs_malloc (sizeof (*bds)); - count *= ncol; - bds->wp = grecs_calloc (count, sizeof (bds->wp[0])); - bds->acc = acc; - p = txtacc_finish (acc, 0); - - for (i = 0; i < count; i++) - { - bds->wp[i] = p; - p += strlen (p) + 1; + dict->nrow = count; + dict->ncol = ncol; + + if (count == 0) { + txtacc_free(acc); + bds = NULL; + rc = 1; + } else { + size_t i; + char *p; + + bds = grecs_malloc(sizeof(*bds)); + count *= ncol; + bds->wp = grecs_calloc(count, sizeof(bds->wp[0])); + bds->acc = acc; + p = txtacc_finish(acc, 0); + + for (i = 0; i < count; i++) { + bds->wp[i] = p; + p += strlen(p) + 1; + } + rc = 0; } - rc = 0; - } - dict->storage = bds; + dict->storage = bds; - return rc; + return rc; } int -builtin_free_result (struct dictionary *dict, void *handle) +builtin_free_result(struct dictionary *dict, void *handle) { - if (dict->storage) - { - struct builtin_data_storage *bds = dict->storage; - txtacc_free (bds->acc); - free (bds->wp); - free (bds); - dict->storage = NULL; - } - return 0; + if (dict->storage) { + struct builtin_data_storage *bds = dict->storage; + txtacc_free(bds->acc); + free(bds->wp); + free(bds); + dict->storage = NULL; + } + return 0; } int -builtin_get (struct dictionary *dict, void *handle, - unsigned nrow, unsigned ncol) +builtin_get(struct dictionary *dict, void *handle, unsigned nrow, + unsigned ncol) { - struct builtin_data_storage *bds = dict->storage; - char *str = bds->wp[nrow * dict->ncol + ncol]; - dictionary_copy_result (dict, str, strlen (str)); - return 0; + struct builtin_data_storage *bds = dict->storage; + char *str = bds->wp[nrow * dict->ncol + ncol]; + dictionary_copy_result(dict, str, strlen(str)); + return 0; } - diff --git a/src/builtin.h b/src/builtin.h index 7e5245d..a5bcfbc 100644 --- a/src/builtin.h +++ b/src/builtin.h @@ -1,5 +1,5 @@ /* wydawca - automatic release submission daemon - Copyright (C) 2009-2011 Sergey Poznyakoff + Copyright (C) 2009-2013 Sergey Poznyakoff This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -14,9 +14,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ -int builtin_init (struct dictionary *); -int builtin_done (struct dictionary *); -void *builtin_open (struct dictionary *); -int builtin_get (struct dictionary *, void *, unsigned, unsigned); -int builtin_lookup (struct dictionary *, void *, const char *); -int builtin_free_result (struct dictionary *, void *); +int builtin_init(struct dictionary *); +int builtin_done(struct dictionary *); +void *builtin_open(struct dictionary *); +int builtin_get(struct dictionary *, void *, unsigned, unsigned); +int builtin_lookup(struct dictionary *, void *, const char *); +int builtin_free_result(struct dictionary *, void *); diff --git a/src/cmdline.opt b/src/cmdline.opt index c9554b8..6f2fbf6 100644 --- a/src/cmdline.opt +++ b/src/cmdline.opt @@ -1,5 +1,5 @@ /* wydawca - automatic release submission daemon -*- c -*- - Copyright (C) 2007, 2009-2012 Sergey Poznyakoff + Copyright (C) 2007, 2009-2013 Sergey Poznyakoff Wydawca is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -22,29 +22,30 @@ static struct grecs_list *tag_list; static int string_cmp (const void *elt1, const void *elt2) { - return strcmp ((const char *)elt1, (const char *)elt2); + return strcmp ((const char *)elt1, (const char *)elt2); } int selected_spools () { - return (source_list != NULL || tag_list != NULL); + return (source_list != NULL || tag_list != NULL); } int enabled_spool_p (const struct spool *spool) { - if (source_list || tag_list) - return (source_list && grecs_list_locate (source_list, spool->source_dir)) - || (tag_list && grecs_list_locate (tag_list, spool->tag)); - return 1; + if (source_list || tag_list) + return (source_list && + grecs_list_locate (source_list, spool->source_dir)) || + (tag_list && grecs_list_locate (tag_list, spool->tag)); + return 1; } OPTIONS_BEGIN("wydawca", [<wydawca synchronizes files from a set of upload directories with the corresponding distribution sites>], [<UID [UID...]>], [<gnu>], - [<copyright_year=2007-2012>], + [<copyright_year=2007-2013>], [<copyright_holder=Sergey Poznyakoff>]) GROUP(Selecting program mode) @@ -105,23 +106,21 @@ END OPTION(spool,S,TAG, [<process only spool with the given tag (may be used multiple times)>]) BEGIN - if (!tag_list) - { - tag_list = grecs_list_create (); - tag_list->cmp = string_cmp; - } - grecs_list_append (tag_list, optarg); + if (!tag_list) { + tag_list = grecs_list_create(); + tag_list->cmp = string_cmp; + } + grecs_list_append(tag_list, optarg); END OPTION(source,s,SOURCE-DIR, [<process only spool with the given source (may be used multiple times)>]) BEGIN - if (!source_list) - { - source_list = grecs_list_create (); - source_list->cmp = string_cmp; - } - grecs_list_append (source_list, optarg); + if (!source_list) { + source_list = grecs_list_create(); + source_list->cmp = string_cmp; + } + grecs_list_append(source_list, optarg); END GROUP(Logging) @@ -143,7 +142,7 @@ GROUP(Preprocessor control) OPTION(include-directory,I,DIR, [<add include directory>]) BEGIN - grecs_preproc_add_include_dir (optarg); + grecs_preproc_add_include_dir(optarg); END OPTION(define,D,SYMBOL[=VALUE], @@ -152,15 +151,14 @@ BEGIN char *p; if (!pp_cmd_acc) - pp_cmd_acc = txtacc_create (); - txtacc_grow (pp_cmd_acc, " \"-D", 4); - for (p = optarg; *p; p++) - { - if (*p == '\\' || *p == '"') - txtacc_1grow (pp_cmd_acc, '\\'); - txtacc_1grow (pp_cmd_acc, *p); - } - txtacc_1grow (pp_cmd_acc, '"'); + pp_cmd_acc = txtacc_create (); + txtacc_grow(pp_cmd_acc, " \"-D", 4); + for (p = optarg; *p; p++) { + if (*p == '\\' || *p == '"') + txtacc_1grow(pp_cmd_acc, '\\'); + txtacc_1grow(pp_cmd_acc, *p); + } + txtacc_1grow(pp_cmd_acc, '"'); END OPTION(preprocessor,,COMMAND, @@ -186,21 +184,21 @@ END OPTION(dump-grammar-trace,,, [<dump configuration grammar traces>]) BEGIN - grecs_gram_trace (1); + grecs_gram_trace(1); END OPTION(dump-lex-trace,,, [<dump lexical analyzer traces>]) BEGIN - grecs_lex_trace (1); + grecs_lex_trace(1); END GROUP([<Additional help>]) OPTION(config-help,,, [<show configuration file summary>]) BEGIN - config_help (); - exit (0); + config_help(); + exit(0); END OPTIONS_END @@ -208,18 +206,17 @@ OPTIONS_END void parse_options(int argc, char *argv[]) { - GETOPT(argc, argv) - if (pp_cmd_acc && grecs_preprocessor) - { - char *cmd; - size_t len = strlen (grecs_preprocessor); - txtacc_1grow (pp_cmd_acc, 0); - txtacc_grow (pp_cmd_acc, grecs_preprocessor, len + 1); - cmd = txtacc_finish (pp_cmd_acc, 1); - txtacc_free (pp_cmd_acc); - memmove (cmd + len + 1, cmd, strlen (cmd) + 1); - memcpy (cmd, grecs_preprocessor, len); - cmd[len] = ' '; - grecs_preprocessor = cmd; - } + GETOPT(argc, argv); + if (pp_cmd_acc && grecs_preprocessor) { + char *cmd; + size_t len = strlen(grecs_preprocessor); + txtacc_1grow(pp_cmd_acc, 0); + txtacc_grow(pp_cmd_acc, grecs_preprocessor, len + 1); + cmd = txtacc_finish(pp_cmd_acc, 1); + txtacc_free(pp_cmd_acc); + memmove(cmd + len + 1, cmd, strlen(cmd) + 1); + memcpy(cmd, grecs_preprocessor, len); + cmd[len] = ' '; + grecs_preprocessor = cmd; + } } diff --git a/src/config.c b/src/config.c index 509b0d5..7cc667a 100644 --- a/src/config.c +++ b/src/config.c @@ -17,48 +17,42 @@ #include "wydawca.h" #include "sql.h" #include <mail.h> - -struct keyword -{ - char *name; - int tok; +struct keyword { + char *name; + int tok; }; static int -keyword_to_tok (const char *str, struct keyword *kw, int *pres) +keyword_to_tok(const char *str, struct keyword *kw, int *pres) { - for (; kw->name; kw++) - if (strcmp (kw->name, str) == 0) - { - *pres = kw->tok; - return 0; - } - return 1; + for (; kw->name; kw++) + if (strcmp(kw->name, str) == 0) { + *pres = kw->tok; + return 0; + } + return 1; } static int -tok_to_keyword (int tok, struct keyword *kw, const char **pres) +tok_to_keyword(int tok, struct keyword *kw, const char **pres) { - for (; kw->name; kw++) - if (kw->tok == tok) - { - *pres = kw->name; - return 0; - } - return 1; + for (; kw->name; kw++) + if (kw->tok == tok) { + *pres = kw->name; + return 0; + } + return 1; } - static struct archive_descr default_archive_descr = { |