svn commit: r228175 - head/usr.sbin/sade
Max Khon
fjoe at FreeBSD.org
Thu Dec 1 09:01:52 UTC 2011
Author: fjoe
Date: Thu Dec 1 09:01:51 2011
New Revision: 228175
URL: http://svn.freebsd.org/changeset/base/228175
Log:
Fix dialog autosizing: dlg_count_columns() does not handle NL characters.
Modified:
head/usr.sbin/sade/misc.c
Modified: head/usr.sbin/sade/misc.c
==============================================================================
--- head/usr.sbin/sade/misc.c Thu Dec 1 07:41:30 2011 (r228174)
+++ head/usr.sbin/sade/misc.c Thu Dec 1 09:01:51 2011 (r228175)
@@ -233,6 +233,23 @@ xdialog_count_rows(const char *p)
return rows ? rows : 1;
}
+static int
+xdialog_count_columns(const char *p)
+{
+ int len;
+ int max_len = 0;
+ const char *q;
+
+ for (; (q = strchr(p, '\n')) != NULL; p = q + 1) {
+ len = q - p;
+ max_len = MAX(max_len, len);
+ }
+
+ len = strlen(p);
+ max_len = MAX(max_len, len);
+ return max_len;
+}
+
int
xdialog_menu(const char *title, const char *cprompt, int height, int width,
int menu_height, int item_no, dialogMenuItem *ditems)
@@ -270,7 +287,7 @@ xdialog_menu(const char *title, const ch
tag_x = MAX(tag_x, l + k + 2);
}
}
- width = MAX(dlg_count_columns(cprompt), title != NULL ? dlg_count_columns(title) : 0);
+ width = MAX(xdialog_count_columns(cprompt), title != NULL ? xdialog_count_columns(title) : 0);
width = MAX(width, tag_x + 4) + 4;
}
width = MAX(width, 24);
@@ -345,7 +362,7 @@ xdialog_radiolist(const char *title, con
check_x = MAX(check_x, l + k + 6);
}
}
- width = MAX(dlg_count_columns(cprompt), title != NULL ? dlg_count_columns(title) : 0);
+ width = MAX(xdialog_count_columns(cprompt), title != NULL ? xdialog_count_columns(title) : 0);
width = MAX(width, check_x + 4) + 4;
}
width = MAX(width, 24);
@@ -397,8 +414,8 @@ xdialog_msgbox(const char *title, const
/* calculate width */
if (width < 0) {
- width = title != NULL ? dlg_count_columns(title) : 0;
- width = MAX(width, dlg_count_columns(cprompt)) + 4;
+ width = title != NULL ? xdialog_count_columns(title) : 0;
+ width = MAX(width, xdialog_count_columns(cprompt)) + 4;
}
if (pauseopt)
width = MAX(width, 10);
More information about the svn-src-all
mailing list