=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tic/dump_entry.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- src/usr.bin/tic/dump_entry.c 1999/11/28 17:58:57 1.8 +++ src/usr.bin/tic/dump_entry.c 1999/12/06 02:14:34 1.9 @@ -1,4 +1,4 @@ -/* $OpenBSD: dump_entry.c,v 1.8 1999/11/28 17:58:57 millert Exp $ */ +/* $OpenBSD: dump_entry.c,v 1.9 1999/12/06 02:14:34 millert Exp $ */ /**************************************************************************** * Copyright (c) 1998,1999 Free Software Foundation, Inc. * @@ -40,7 +40,7 @@ #include /* this C file is generated */ #include /* so is this */ -MODULE_ID("$From: dump_entry.c,v 1.38 1999/11/27 23:00:21 tom Exp $") +MODULE_ID("$From: dump_entry.c,v 1.41 1999/12/05 02:03:59 tom Exp $") #define INDENT 8 @@ -74,8 +74,14 @@ #define V_AIX 3 /* AIX */ #define V_BSD 4 /* BSD */ +#if NCURSES_XNAMES +#define OBSOLETE(n) (!_nc_user_definable && (n[0] == 'O' && n[1] == 'T')) +#else #define OBSOLETE(n) (n[0] == 'O' && n[1] == 'T') +#endif +#define isObsolete(f,n) ((f == F_TERMINFO || f == F_VARIABLE) && OBSOLETE(n)) + #if NCURSES_XNAMES #define BoolIndirect(j) ((j >= BOOLCOUNT) ? (j) : ((sortmode == S_NOSORT) ? j : bool_indirect[j])) #define NumIndirect(j) ((j >= NUMCOUNT) ? (j) : ((sortmode == S_NOSORT) ? j : num_indirect[j])) @@ -406,6 +412,8 @@ { int percent = 0; int n; + bool if_then = strstr(src, "%?") != 0; + bool params = !if_then && (strlen(src) > 50) && (strstr(src, "%p") != 0); dst += strlen(dst); while (*src != '\0') { @@ -452,6 +460,15 @@ _nc_warning("%%; without %%?"); } break; + case 'p': + if (percent && params) { + dst[-1] = '\n'; + for (n = 0; n <= level; n++) + *dst++ = '\t'; + *dst++ = '%'; + } + percent = 0; + break; default: percent = 0; break; @@ -500,8 +517,7 @@ if (!version_filter(BOOLEAN, i)) continue; - else if ((outform == F_LITERAL || outform == F_TERMINFO || outform == F_VARIABLE) - && (OBSOLETE(name) && outform != F_LITERAL)) + else if (isObsolete(outform,name)) continue; predval = pred(BOOLEAN, i); @@ -524,8 +540,7 @@ if (!version_filter(NUMBER, i)) continue; - else if ((outform == F_LITERAL || outform == F_TERMINFO || outform == F_VARIABLE) - && (OBSOLETE(name) && outform != F_LITERAL)) + else if (isObsolete(outform,name)) continue; predval = pred(NUMBER, i); @@ -557,8 +572,7 @@ if (!version_filter(STRING, i)) continue; - else if ((outform == F_LITERAL || outform == F_TERMINFO || outform == F_VARIABLE) - && (OBSOLETE(name) && outform != F_LITERAL)) + else if (isObsolete(outform,name)) continue; /* @@ -608,7 +622,7 @@ sprintf(buffer, "%s@", name); else if (outform == F_TERMCAP || outform == F_TCONVERR) { - char *srccap = _nc_tic_expand(tterm->Strings[i], FALSE, numbers); + char *srccap = _nc_tic_expand(tterm->Strings[i], TRUE, numbers); char *cv = _nc_infotocap(name, srccap, parametrized[i]); if (cv == 0) @@ -819,8 +833,7 @@ i = BoolIndirect(j); name = ExtBoolname(tp,i,bool_names); - if ((outform == F_LITERAL || outform == F_TERMINFO || outform == F_VARIABLE) - && (OBSOLETE(name) && outform != F_LITERAL)) + if (isObsolete(outform,name)) continue; (*hook)(BOOLEAN, i, name); @@ -832,8 +845,7 @@ i = NumIndirect(j); name = ExtNumname(tp,i,num_names); - if ((outform==F_LITERAL || outform==F_TERMINFO || outform==F_VARIABLE) - && (OBSOLETE(name) && outform != F_LITERAL)) + if (isObsolete(outform,name)) continue; (*hook)(NUMBER, i, name); @@ -845,8 +857,7 @@ i = StrIndirect(j); name = ExtStrname(tp,i,str_names); - if ((outform==F_LITERAL || outform==F_TERMINFO || outform==F_VARIABLE) - && (OBSOLETE(name) && outform != F_LITERAL)) + if (isObsolete(outform,name)) continue; (*hook)(STRING, i, name);