* util.h (msglen): Converted from a function to a procedure.

* util.c (msglen): Changed variable names and did a speedup.
	* hotlist.c (add_new_entry_input): Using new msglen function.
	* hotlist.c (add_new_group_input): Likewise.
	* wtools.c (query_dialog): Likewise.
	* wtools.c (fg_input_dialog_help): Likewise.
This commit is contained in:
Roland Illig 2005-02-05 13:03:11 +00:00
parent 711f268786
commit 3a40734373
5 changed files with 41 additions and 23 deletions

View File

@ -1,3 +1,12 @@
2005-02-05 Roland Illig <roland.illig@gmx.de>
* util.h (msglen): Converted from a function to a procedure.
* util.c (msglen): Changed variable names and did a speedup.
* hotlist.c (add_new_entry_input): Using new msglen function.
* hotlist.c (add_new_group_input): Likewise.
* wtools.c (query_dialog): Likewise.
* wtools.c (fg_input_dialog_help): Likewise.
2005-02-02 Andrew V. Samoilov <sav@bcs.zp.ua> 2005-02-02 Andrew V. Samoilov <sav@bcs.zp.ua>
* find.c: Implement non-recursive 'Find file' feature. * find.c: Implement non-recursive 'Find file' feature.

View File

@ -852,16 +852,19 @@ add_new_entry_input (const char *header, const char *text1, const char *text2,
0, 0, "label-lbl" }, 0, 0, "label-lbl" },
NULL_QuickWidget }; NULL_QuickWidget };
size_t len; int len;
int i; int i;
int lines1, lines2; int lines1, lines2;
int cols1, cols2;
#ifdef ENABLE_NLS #ifdef ENABLE_NLS
static int i18n_flag = 0; static int i18n_flag = 0;
#endif /* ENABLE_NLS */ #endif /* ENABLE_NLS */
len = max (strlen (header), (size_t) msglen (text1, &lines1)); msglen(text1, &lines1, &cols1);
len = max (len, (size_t) msglen (text2, &lines2)) + 4; msglen(text2, &lines2, &cols2);
len = max ((int) strlen (header), cols1);
len = max (len, cols2) + 4;
len = max (len, 64); len = max (len, 64);
#ifdef ENABLE_NLS #ifdef ENABLE_NLS
@ -949,13 +952,14 @@ add_new_group_input (const char *header, const char *label, char **result)
quick_widgets variable above */ quick_widgets variable above */
int len; int len;
int i; int i;
int lines; int lines, cols;
#ifdef ENABLE_NLS #ifdef ENABLE_NLS
static int i18n_flag = 0; static int i18n_flag = 0;
#endif /* ENABLE_NLS */ #endif /* ENABLE_NLS */
len = max (strlen (header), (size_t) msglen (label, &lines)) + 4; msglen (label, &lines, &cols);
len = max ((int) strlen (header), cols) + 4;
len = max (len, 64); len = max (len, 64);
#ifdef ENABLE_NLS #ifdef ENABLE_NLS

View File

@ -97,23 +97,26 @@ is_printable (int c)
#endif /* !HAVE_CHARSET */ #endif /* !HAVE_CHARSET */
} }
/* Returns the message dimensions (lines and columns) */ /* Calculates the message dimensions (lines and columns) */
int msglen (const char *text, int *lines) void msglen (const char *text, int *lines, int *columns)
{ {
int max = 0; int nlines = 1; /* even the empty string takes one line */
int line_len = 0; int ncolumns = 0;
int colindex = 0;
for (*lines = 1;*text; text++){
if (*text == '\n'){ for (; *text != '\0'; text++) {
line_len = 0; if (*text == '\n') {
(*lines)++; nlines++;
colindex = 0;
} else { } else {
line_len++; colindex++;
if (line_len > max) if (colindex > ncolumns)
max = line_len; ncolumns = colindex;
} }
} }
return max;
*lines = nlines;
*columns = ncolumns;
} }
/* /*

View File

@ -9,7 +9,7 @@ extern const char *cstrcasestr (const char *haystack, const char *needle);
void str_replace(char *s, char from, char to); void str_replace(char *s, char from, char to);
int is_printable (int c); int is_printable (int c);
int msglen (const char *text, int *lines); void msglen (const char *text, /*@out@*/ int *lines, /*@out@*/ int *columns);
/* Copy from s to d, and trim the beginning if necessary, and prepend /* Copy from s to d, and trim the beginning if necessary, and prepend
* "..." in this case. The destination string can have at most len * "..." in this case. The destination string can have at most len

View File

@ -131,7 +131,8 @@ query_dialog (const char *header, const char *text, int flags, int count, ...)
} }
/* count coordinates */ /* count coordinates */
cols = 6 + max (win_len, max ((int) strlen (header), msglen (text, &lines))); msglen (text, &lines, &cols);
cols = 6 + max (win_len, max ((int) strlen (header), cols));
lines += 4 + (count > 0 ? 2 : 0); lines += 4 + (count > 0 ? 2 : 0);
xpos = COLS / 2 - cols / 2; xpos = COLS / 2 - cols / 2;
ypos = LINES / 3 - (lines - 3) / 2; ypos = LINES / 3 - (lines - 3) / 2;
@ -446,7 +447,7 @@ fg_input_dialog_help (const char *header, const char *text, const char *help,
int len; int len;
int i; int i;
int lines; int lines, cols;
int ret; int ret;
char *my_str; char *my_str;
char histname[64] = "inp|"; char histname[64] = "inp|";
@ -457,7 +458,8 @@ fg_input_dialog_help (const char *header, const char *text, const char *help,
g_strlcpy (histname + 3, header, 61); g_strlcpy (histname + 3, header, 61);
quick_widgets[2].histname = histname; quick_widgets[2].histname = histname;
len = max ((int) strlen (header), msglen (text, &lines)) + 4; msglen (text, &lines, &cols);
len = max ((int) strlen (header), cols) + 4;
len = max (len, 64); len = max (len, 64);
/* The special value of def_text is used to identify password boxes /* The special value of def_text is used to identify password boxes