/****************************************************************************
- * Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <dump_entry.h>
-MODULE_ID("$Id: infocmp.c,v 1.134 2015/08/22 23:54:25 tom Exp $")
-
-#define L_CURL "{"
-#define R_CURL "}"
+MODULE_ID("$Id: infocmp.c,v 1.140 2016/10/01 19:09:22 tom Exp $")
#define MAX_STRING 1024 /* maximum formatted string */
cp[0] != '\0' &&
cp != cap) {
len = strlen(cp);
- (void) strncpy(buf2, sp, len);
+ _nc_STRNCPY(buf2, sp, len);
buf2[len] = '\0';
if (_nc_capcmp(cp, buf2))
? "ECMA+"
: "ECMA-"),
sizeof(buf2));
- (void) strncpy(buf3, sp + csi, len);
+ _nc_STRNCPY(buf3, sp + csi, len);
buf3[len] = '\0';
len += (size_t) csi + 1;
? "DEC+"
: "DEC-"),
sizeof(buf2));
- (void) strncpy(buf3, sp + csi + 1, len);
+ _nc_STRNCPY(buf3, sp + csi + 1, len);
buf3[len] = '\0';
len += (size_t) csi + 2;
&& sp[next] == 'm') {
_nc_STRCPY(buf2, "SGR:", sizeof(buf2));
- (void) strncpy(buf3, sp + csi, len);
+ _nc_STRNCPY(buf3, sp + csi, len);
buf3[len] = '\0';
len += (size_t) csi + 1;
int i, n;
memset(heads, 0, sizeof(heads));
- dump_init((char *) 0, F_LITERAL, S_TERMINFO, 0, 65535, itrace, FALSE, FALSE);
+ dump_init((char *) 0, F_LITERAL, S_TERMINFO,
+ FALSE, 0, 65535, itrace, FALSE, FALSE, FALSE);
for (n = 0; n < argc && n < MAXCOMPARE; n++) {
if (freopen(argv[n], "r", stdin) == 0)
," -T eliminate size limits (test)"
," -U do not post-process entries"
," -V print version"
+ ," -W wrap long strings per -w[n]"
#if NCURSES_XNAMES
," -a with -F, list commented-out caps"
#endif
," -l output terminfo names"
," -n list capabilities in neither"
," -p ignore padding specifiers"
+ ," -Q number dump compiled description"
," -q brief listing, removes headers"
," -r with -C, output in termcap form"
," -r with -F, resolve use-references"
int initdump = 0;
bool init_analyze = FALSE;
bool suppress_untranslatable = FALSE;
+ int quickdump = 0;
+ bool wrap_strings = FALSE;
/* where is the terminfo database location going to default to? */
restdir = firstdir = 0;
while ((c = getopt(argc,
argv,
- "01A:aB:CcDdEeFfGgIiKLlnpqR:rs:TtUuVv:w:x")) != -1) {
+ "01A:aB:CcDdEeFfGgIiKLlnpQ:qR:rs:TtUuVv:Ww:x")) != -1) {
switch (c) {
case '0':
mwidth = 65535;
ignorepads = TRUE;
break;
+ case 'Q':
+ quickdump = optarg_to_number();
+ break;
+
case 'q':
quiet = TRUE;
s_absent = "-";
set_trace_level(itrace);
break;
+ case 'W':
+ wrap_strings = TRUE;
+ break;
+
case 'w':
mwidth = optarg_to_number();
break;
}
/* set up for display */
- dump_init(tversion, outform, sortmode, mwidth, mheight, itrace,
- formatted, FALSE);
+ dump_init(tversion, outform, sortmode,
+ wrap_strings, mwidth, mheight, itrace,
+ formatted, FALSE, quickdump);
if (!filecompare) {
/* grab the entries */
"%s: about to dump %s\n",
_nc_progname,
tname[0]);
- (void) printf("#\tReconstructed via infocmp from file: %s\n",
- tfile[0]);
+ if (!quiet)
+ (void)
+ printf("#\tReconstructed via infocmp from file: %s\n",
+ tfile[0]);
dump_entry(&entries[0].tterm,
suppress_untranslatable,
limited,