X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fcontext_replace.c;h=bfa3daf8b4160baecdf7dcdf3105603a26dd2aef;hp=6b3aa2f9742b349e0a9d1ac0cd32e4b177a9b3cf;hb=641a9d953e86685f9ca2f3da72e9a94e5bcfd69e;hpb=714b5c530ece27ea2835a313013f5b770163403c diff --git a/sbr/context_replace.c b/sbr/context_replace.c index 6b3aa2f..bfa3daf 100644 --- a/sbr/context_replace.c +++ b/sbr/context_replace.c @@ -13,17 +13,17 @@ void context_replace(char *key, char *value) { - register struct node *np; + struct node *np; /* ** If list is emtpy, allocate head of profile/context list. */ if (!m_defs) { - m_defs = (struct node *) mh_xmalloc(sizeof(*np)); + m_defs = mh_xcalloc(1, sizeof(*np)); np = m_defs; - np->n_name = getcpy(key); - np->n_field = getcpy(value); + np->n_name = mh_xstrdup(key); + np->n_field = mh_xstrdup(value); np->n_context = 1; np->n_next = NULL; ctxflags |= CTXMOD; @@ -36,12 +36,12 @@ context_replace(char *key, char *value) */ for (np = m_defs;; np = np->n_next) { if (!mh_strcasecmp(np->n_name, key)) { - if (strcmp(value, np->n_field)) { + if (strcmp(value, np->n_field)!=0) { if (!np->n_context) admonish(NULL, "bug: context_replace(key=\"%s\",value=\"%s\")", key, value); if (np->n_field) - free(np->n_field); - np->n_field = getcpy(value); + mh_free0(&(np->n_field)); + np->n_field = mh_xstrdup(value); ctxflags |= CTXMOD; } return; @@ -53,11 +53,11 @@ context_replace(char *key, char *value) /* ** Else add this new entry at the end */ - np->n_next = (struct node *) mh_xmalloc(sizeof(*np)); + np->n_next = mh_xcalloc(1, sizeof(*np)); np = np->n_next; - np->n_name = getcpy(key); - np->n_field = getcpy(value); + np->n_name = mh_xstrdup(key); + np->n_field = mh_xstrdup(value); np->n_context = 1; np->n_next = NULL; ctxflags |= CTXMOD;