Skip to content

Commit

Permalink
Import dialog 1.3-20180621
Browse files Browse the repository at this point in the history
  • Loading branch information
bapt committed Oct 20, 2018
1 parent e53d5c4 commit f8604a5
Show file tree
Hide file tree
Showing 92 changed files with 27,525 additions and 13,129 deletions.
323 changes: 321 additions & 2 deletions CHANGES

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
11:1:0 1.2 20130923
15:0:0 1.3 20180621
3,011 changes: 2,223 additions & 788 deletions aclocal.m4

Large diffs are not rendered by default.

71 changes: 57 additions & 14 deletions argv.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/*
* $Id: argv.c,v 1.2 2012/11/30 20:28:23 tom Exp $
* $Id: argv.c,v 1.12 2018/06/12 22:47:23 tom Exp $
*
* argv - Reusable functions for argv-parsing.
*
* Copyright 2011,2012 Thomas E. Dickey
* Copyright 2011-2017,2018 Thomas E. Dickey
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License, version 2.1
Expand Down Expand Up @@ -32,19 +32,42 @@
char **
dlg_string_to_argv(char *blob)
{
size_t n;
size_t n, k;
int pass;
size_t length = strlen(blob);
char **result = 0;

#ifdef HAVE_DLG_TRACE
if (dialog_state.trace_output) {
DLG_TRACE(("# dlg_string_to_argv:\n"));
DLG_TRACE(("# given:\n"));
for (n = k = 0; n < length; ++n) {
if (blob[n] == '\n') {
DLG_TRACE(("#%s\t%.*s\\n\n",
k ? "+" : "",
(int) (n - k), blob + k));
k = n + 1;
}
}
if (n > k) {
DLG_TRACE(("#%s\t%.*s\n",
k ? "+" : "",
(int) (n - k), blob + k));
}
DLG_TRACE(("# result:\n"));
}
#endif
for (pass = 0; pass < 2; ++pass) {
bool inparm = FALSE;
bool quoted = FALSE;
bool escape = FALSE;
char *param = blob;
size_t count = 0;

for (n = 0; n < length; ++n) {
if (quoted && blob[n] == '"') {
if (escape) {
;
} else if (quoted && blob[n] == '"') {
quoted = FALSE;
} else if (blob[n] == '"') {
quoted = TRUE;
Expand All @@ -54,20 +77,32 @@ dlg_string_to_argv(char *blob)
++count;
inparm = TRUE;
}
} else if (blob[n] == '\\') {
if (quoted && !isspace(UCH(blob[n + 1]))) {
} else if (!quoted && isspace(UCH(blob[n]))) {
if (inparm) {
if (pass) {
*param++ = blob[n];
*param++ = blob[n + 1];
*param++ = '\0';
}
}
++n;
} else if (!quoted && isspace(UCH(blob[n]))) {
inparm = FALSE;
if (pass) {
*param++ = '\0';
inparm = FALSE;
}
} else {
if (blob[n] == '\\') {
if (n + 1 == length) {
break; /* The string is terminated by a backslash */
} else if ((blob[n + 1] == '\\') ||
(blob[n + 1] == '"') ||
(!quoted && blob[n + 1] == '\n')) {
/* eat the backslash */
if (pass) {
--length;
for (k = n; k < length; ++k)
blob[k] = blob[k + 1];
blob[length] = '\0';
} else {
escape = TRUE;
continue;
}
}
}
if (!inparm) {
if (pass)
result[count] = param;
Expand All @@ -78,6 +113,7 @@ dlg_string_to_argv(char *blob)
*param++ = blob[n];
}
}
escape = FALSE;
}

if (!pass) {
Expand All @@ -91,6 +127,13 @@ dlg_string_to_argv(char *blob)
*param = '\0';
}
}
#ifdef HAVE_DLG_TRACE
if (result != 0) {
for (n = 0; result[n] != 0; ++n) {
DLG_TRACE(("#\targv[%d] = %s\n", (int) n, result[n]));
}
}
#endif
return result;
}

Expand Down
26 changes: 13 additions & 13 deletions arrows.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/*
* $Id: arrows.c,v 1.51 2013/09/02 15:10:09 tom Exp $
* $Id: arrows.c,v 1.52 2018/06/18 22:10:54 tom Exp $
*
* arrows.c -- draw arrows to indicate end-of-range for lists
*
* Copyright 2000-2012,2013 Thomas E. Dickey
* Copyright 2000-2013,2018 Thomas E. Dickey
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License, version 2.1
Expand Down Expand Up @@ -125,31 +125,31 @@ dlg_draw_arrows2(WINDOW *win,
if (draw_top) {
(void) wmove(win, top, x);
if (top_arrow) {
(void) wattrset(win, merge_colors(uarrow_attr, attr));
dlg_attrset(win, merge_colors(uarrow_attr, attr));
(void) add_acs(win, ACS_UARROW);
(void) waddstr(win, "(-)");
} else {
(void) wattrset(win, attr);
dlg_attrset(win, attr);
(void) whline(win, dlg_boxchar(ACS_HLINE), ON_LEFT);
}
}
mouse_mkbutton(top, x - 1, 6, KEY_PPAGE);

(void) wmove(win, bottom, x);
if (bottom_arrow) {
(void) wattrset(win, merge_colors(darrow_attr, borderattr));
dlg_attrset(win, merge_colors(darrow_attr, borderattr));
(void) add_acs(win, ACS_DARROW);
(void) waddstr(win, "(+)");
} else {
(void) wattrset(win, borderattr);
dlg_attrset(win, borderattr);
(void) whline(win, dlg_boxchar(ACS_HLINE), ON_LEFT);
}
mouse_mkbutton(bottom, x - 1, 6, KEY_NPAGE);

(void) wmove(win, cur_y, cur_x);
wrefresh(win);

(void) wattrset(win, save);
dlg_attrset(win, save);
}

void
Expand Down Expand Up @@ -188,12 +188,12 @@ dlg_draw_scrollbar(WINDOW *win,
else if (percent > 100)
percent = 100;

(void) wattrset(win, position_indicator_attr);
dlg_attrset(win, position_indicator_attr);
(void) sprintf(buffer, "%d%%", percent);
(void) wmove(win, bottom, right - 7);
(void) waddstr(win, buffer);
if ((len = dlg_count_columns(buffer)) < 4) {
(void) wattrset(win, border_attr);
dlg_attrset(win, border_attr);
whline(win, dlg_boxchar(ACS_HLINE), 4 - len);
}
}
Expand All @@ -220,7 +220,7 @@ dlg_draw_scrollbar(WINDOW *win,

wmove(win, top + 1, right);

(void) wattrset(win, save);
dlg_attrset(win, save);
wvline(win, ACS_VLINE | A_REVERSE, all_high);

bar_y = ORDSIZE(this_data);
Expand All @@ -232,8 +232,8 @@ dlg_draw_scrollbar(WINDOW *win,

wmove(win, top + 1 + bar_y, right);

(void) wattrset(win, position_indicator_attr);
wattron(win, A_REVERSE);
dlg_attrset(win, position_indicator_attr);
dlg_attron(win, A_REVERSE);
#if defined(WACS_BLOCK) && defined(NCURSES_VERSION) && defined(USE_WIDE_CURSES)
wvline_set(win, WACS_BLOCK, bar_last - bar_y);
#else
Expand All @@ -251,7 +251,7 @@ dlg_draw_scrollbar(WINDOW *win,
attr,
borderattr);

(void) wattrset(win, save);
dlg_attrset(win, save);
wmove(win, oldy, oldx);
}

Expand Down
Loading

0 comments on commit f8604a5

Please sign in to comment.