diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-13 10:21:43 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-13 10:33:34 +0300 |
commit | de3fbe3e8d4dd2a89f7755906d76055784c437cc (patch) | |
tree | 65356dd7b5a9010499550c468e960c93515a7e15 /src/triplet.c | |
parent | f569a6f2628b9ddef4dfb4424aff2dad644a8f19 (diff) | |
download | wydawca-de3fbe3e8d4dd2a89f7755906d76055784c437cc.tar.gz wydawca-de3fbe3e8d4dd2a89f7755906d76055784c437cc.tar.bz2 |
Drop gnulib.
* bootstrap: Rewrite.
* bootstrap.conf: Remove.
* configure.ac: Remove gl_EARLY/gl_INIT
* src/backup.c: New file.
* src/txtacc.c (txtacc_finish): Make sure a new entry is
appended only once to the list.
* (all sources): Use grecs memory allocation functions.
* src/wydawca.h" Include fnmatch.h and regex.h
(backup_type): New enum.
(simple_backup_suffix): New extern.
(find_backup_file_name): New proto.
* tests/bkupname.c: New file.
* tests/backup00.at: New file.
* tests/backup01.at: New file.
* tests/backup02.at: New file.
* tests/backup03.at: New file.
* tests/Makefile.am: Add new tests.
* tests/testsuite.at: Add new tests.
* grecs: Update.
Diffstat (limited to 'src/triplet.c')
-rw-r--r-- | src/triplet.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/triplet.c b/src/triplet.c index 3083c64..9dfdf2c 100644 --- a/src/triplet.c +++ b/src/triplet.c @@ -51,24 +51,25 @@ hash_triplet_free (void *data) free (tp->file[i].name); } free (tp->directive); free (tp->blurb); free (tp->tmp); txtacc_free (tp->acc); /* Free uploader list */ for (up = tp->uploader_list; up; ) { struct uploader_info *next = up->next; + free (up->fpr); free (up); up = next; } free (tp); } char * triplet_strdup (struct file_triplet *tp, const char *str) { size_t len = strlen (str); txtacc_grow (tp->acc, str, len + 1); @@ -85,25 +86,25 @@ register_file (struct file_info *finfo, const struct spool *spool) if (!triplet_table) { triplet_table = grecs_symtab_create (sizeof (struct file_triplet), hash_triplet_hasher, hash_triplet_compare, NULL, NULL, hash_triplet_free); if (!triplet_table) grecs_alloc_die (); } - key.name = xmalloc (finfo->root_len + 1); + key.name = grecs_malloc (finfo->root_len + 1); memcpy (key.name, finfo->name, finfo->root_len); key.name[finfo->root_len] = 0; ret = grecs_symtab_lookup_or_install (triplet_table, &key, &install); if (!ret) grecs_alloc_die (); free (key.name); if (install) { ret->spool = spool; ret->acc = txtacc_create (); } @@ -369,58 +370,58 @@ format_file_data (struct file_triplet *trp, enum file_type type, char **pret) user_name = "unknown"; else user_name = pw->pw_name; grp = getgrgid (TRIPLET_GID (trp)); if (!grp) group_name = "unknown"; /* should not happen */ else group_name = grp->gr_name; /* Size */ if (grecs_asprintf (&sptr, &slen, "%lu", (unsigned long) info->sb.st_size)) - xalloc_die (); + grecs_alloc_die (); /* Figure out padding and format the buffer */ slen = strlen (sptr); pad = strlen (user_name) + 1 + strlen (group_name) + 1 + slen; if (pad > ugswidth) ugswidth = pad; if (grecs_asprintf (&buf, &size, "%s %s %s %*s %s %s", modes, user_name, group_name, ugswidth - pad + slen, sptr, timebuf, info->name)) - xalloc_die (); + grecs_alloc_die (); free (sptr); *pret = buf; return 0; } static const char * expand_triplet_ls_full (struct metadef *def, void *data) { struct file_triplet *trp = data; char *buf[FILE_TYPE_COUNT] = { NULL, NULL, NULL }; size_t size = 0; if (format_file_data (trp, file_dist, &buf[file_dist]) == 0) size += strlen (buf[file_dist]) + 1; if (format_file_data (trp, file_signature, &buf[file_signature]) == 0) size += strlen (buf[file_signature]) + 1; if (format_file_data (trp, file_directive, &buf[file_directive]) == 0) size += strlen (buf[file_directive]) + 1; - def->value = def->storage = xmalloc (size + 1); + def->value = def->storage = grecs_malloc (size + 1); def->value[0] = 0; if (buf[file_dist]) { strcat (def->value, buf[file_dist]); strcat (def->value, "\n"); } if (buf[file_signature]) { strcat (def->value, buf[file_signature]); strcat (def->value, "\n"); } if (buf[file_directive]) @@ -437,25 +438,25 @@ expand_triplet_ls_full (struct metadef *def, void *data) static const char * expand_triplet_ls_upload (struct metadef *def, void *data) { struct file_triplet *trp = data; char *buf[2] = { NULL, NULL }; size_t size = 0; if (format_file_data (trp, file_dist, &buf[file_dist]) == 0) size += strlen (buf[file_dist]) + 1; if (format_file_data (trp, file_signature, &buf[file_signature]) == 0) size += strlen (buf[file_signature]) + 1; - def->value = def->storage = xmalloc (size + 1); + def->value = def->storage = grecs_malloc (size + 1); def->value[0] = 0; if (buf[file_dist]) { strcat (def->value, buf[file_dist]); strcat (def->value, "\n"); } if (buf[file_signature]) { strcat (def->value, buf[file_signature]); strcat (def->value, "\n"); } @@ -543,25 +544,25 @@ expand_user_email (struct metadef *def, void *data) return def->value; } static const char * expand_email_user (struct metadef *def, void *data) { struct file_triplet *trp = data; if (trp->uploader) { size_t size = 0; if (grecs_asprintf (&def->storage, &size, "\"%s\" <%s>", trp->uploader->realname, trp->uploader->email)) - xalloc_die (); + grecs_alloc_die (); def->value = def->storage; } return def->value; } static const char * expand_report (struct metadef *def, void *data) { return report_string; } static const char * @@ -585,33 +586,33 @@ expand_check_result (struct metadef *def, void *data) { struct file_triplet *trp = data; int status = trp->check_result; if (status == 0) return def->value = "0"; else if (WIFEXITED (status)) { size_t size = 0; def->storage = NULL; if (grecs_asprintf (&def->storage, &size, "%d", WEXITSTATUS (status))) - xalloc_die (); + grecs_alloc_die (); } else if (WIFSIGNALED (status)) { size_t size = 0; def->storage = NULL; if (grecs_asprintf (&def->storage, &size, "SIG+%d", WTERMSIG (status))) - xalloc_die (); + grecs_alloc_die (); } else return def->value = "[unrecognized return code]"; return def->value = def->storage; } #define DECL_EXPAND_TIMER(what) \ static const char * \ __cat2__(expand_timer_,what) (struct metadef *def, void *data) \ { \ wydawca_timer_t t = timer_stop ((char*)def->data); \ def->storage = timer_format_time (__cat2__(timer_get_,what) (t)); \ |