|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T m
Length: 1230 (0x4ce) Types: TextFile Names: »m_replace.c«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit └─⟦3658e588a⟧ »EurOpenD3/mail/mh/mh-6.7.tar.Z« └─⟦c75e36ecb⟧ └─⟦this⟧ »mh-6.7/sbr/m_replace.c«
/* m_replace.c - replace an entry in the profile */ #include "../h/mh.h" #include <stdio.h> void m_replace (key, value) register char *key, *value; { register struct node *np; m_getdefs (); if (m_defs == NULL) { np = m_defs = (struct node *) malloc (sizeof *np); if (np == NULL) adios (NULLCP, "unable to allocate profile storage"); np -> n_name = getcpy (key); np -> n_field = getcpy (value); np -> n_context = 1; np -> n_next = NULL; ctxflags |= CTXMOD; return; } for (np = m_defs;; np = np -> n_next) { if (uleq (np -> n_name, key)) { if (strcmp (value, np -> n_field) != 0) { if (!np -> n_context) admonish (NULLCP, "bug: m_replace(key=\"%s\",value=\"%s\")", key, value); if (np -> n_field) free (np -> n_field); np -> n_field = getcpy (value); ctxflags |= CTXMOD; } return; } if (!np -> n_next) break; } np -> n_next = (struct node *) malloc (sizeof *np); if (np -> n_next == NULL) adios (NULLCP, "unable to allocate profile storage"); np = np -> n_next; np -> n_name = getcpy (key); np -> n_field = getcpy (value); np -> n_context = 1; np -> n_next = NULL; ctxflags |= CTXMOD; }