X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Freadconfig.c;h=1ddd648f9feeef1563452102578e9e9fd89774e6;hb=eba408368603a3afe170ef61a334c3a479ea5a29;hp=65ca28af0285ab24fde31a9986678aacd3744346;hpb=2b72292fe9a76e3e70b63a7cd639499214097bf8;p=mmh diff --git a/sbr/readconfig.c b/sbr/readconfig.c index 65ca28a..1ddd648 100644 --- a/sbr/readconfig.c +++ b/sbr/readconfig.c @@ -106,13 +106,38 @@ readconfig (struct node **npp, FILE *ib, char *file, int ctx) break; } + /* + * Special handling for the pager processes: lproc and moreproc. + * + * If they are not set by the profile, use the callers $PAGER if + * available, otherwise set them to DEFAULT_PAGER. + */ + if (lproc == NULL) { + lproc = getenv("PAGER"); + if (lproc == NULL || lproc[0] == '\0') + lproc = DEFAULT_PAGER; + } + if (moreproc == NULL) { + moreproc = getenv("PAGER"); + if (moreproc == NULL || moreproc[0] == '\0') + moreproc = DEFAULT_PAGER; + } + if (opp == NULL) { - /* Check for duplicated non-null profile entries. Also ignore - profile entries that are just "#", because that's what the - mh-profile man page suggests using for comments. Only do - this check on the very first call from context_read(), when - opp is NULL. */ + /* Check for duplicated non-null profile entries. Except + allow multiple profile entries named "#", because that's + what the mh-profile man page suggests using for comments. + + Only do this check on the very first call from + context_read(), when opp is NULL. That way, entries in + mhn.defaults can be overridden without triggering + warnings. + + Note that that mhn.defaults, $MHN, $MHBUILD, $MHSHOW, and + $MHSTORE all put their entries into just one list, m_defs, + the same list that the profile uses. */ + struct node *np; for (np = m_defs; np; np = np->n_next) { /* Yes, this is O(N^2). The profile should be small enough so that's not a performance problem. */ @@ -120,7 +145,6 @@ readconfig (struct node **npp, FILE *ib, char *file, int ctx) struct node *np2; for (np2 = np->n_next; np2; np2 = np2->n_next) { if (! mh_strcasecmp (np->n_name, np2->n_name)) { - printf ("%d\n", strlen (np->n_name)); admonish (NULL, "multiple \"%s\" profile components " "in %s, ignoring \"%s\"", np->n_name, defpath, np2->n_field);