mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-23 12:56:51 +03:00
* 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:
parent
711f268786
commit
3a40734373
@ -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.
|
||||||
|
@ -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
|
||||||
|
29
src/util.c
29
src/util.c
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user