X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/0808f3e85977428948be17783e31c14c4f4b8622..037daf5b680717070873b637079db3cbb426d17a:/sbr/readconfig.c diff --git a/sbr/readconfig.c b/sbr/readconfig.c index 4cf05f1b..0efc9a5e 100644 --- a/sbr/readconfig.c +++ b/sbr/readconfig.c @@ -59,7 +59,8 @@ readconfig (struct node **npp, FILE *ib, char *file, int ctx) } for (state = FLD;;) { - switch (state = m_getfld (state, name, field, sizeof(field), ib)) { + int fieldsz = sizeof field; + switch (state = m_getfld (state, name, field, &fieldsz, ib)) { case FLD: case FLDPLUS: case FLDEOF: @@ -70,7 +71,8 @@ readconfig (struct node **npp, FILE *ib, char *file, int ctx) if (state == FLDPLUS) { cp = getcpy (field); while (state == FLDPLUS) { - state = m_getfld (state, name, field, sizeof(field), ib); + fieldsz = sizeof field; + state = m_getfld (state, name, field, &fieldsz, ib); cp = add (field, cp); } np->n_field = trimcpy (cp); @@ -106,6 +108,23 @@ 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. Except allow multiple profile entries named "#", because that's