svn commit: r216228 - user/ae/usr.sbin/sade
Andrey V. Elsukov
ae at FreeBSD.org
Mon Dec 6 10:58:14 UTC 2010
Author: ae
Date: Mon Dec 6 10:58:13 2010
New Revision: 216228
URL: http://svn.freebsd.org/changeset/base/216228
Log:
Add "title" field to describe what task is doing.
Modified:
user/ae/usr.sbin/sade/ufsed.c
Modified: user/ae/usr.sbin/sade/ufsed.c
==============================================================================
--- user/ae/usr.sbin/sade/ufsed.c Mon Dec 6 10:24:06 2010 (r216227)
+++ user/ae/usr.sbin/sade/ufsed.c Mon Dec 6 10:58:13 2010 (r216228)
@@ -91,6 +91,11 @@ struct ufsinfo {
char *mntonname; /* current mountpoint */
};
+struct ufsed_history_entry {
+ char *title;
+ char *cmd;
+};
+
static int ufslist_add(struct ufslist *, struct de_device *, struct de_part *);
static void ufslist_free(struct ufslist *);
static int ufslist_count(struct ufslist *);
@@ -227,11 +232,20 @@ set_statusline(char *msg)
}
}
+static void
+ufsed_history_free(struct ufsed_history_entry *entry)
+{
+
+ free(entry->title);
+ free(entry->cmd);
+ free(entry);
+}
+
static int
ufsed_history_rollback(void *pentry)
{
- free(pentry);
+ ufsed_history_free((struct ufsed_history_entry *)pentry);
return (0);
}
@@ -240,7 +254,7 @@ ufsed_history_play(void *pentry)
{
/* system(pentry); */
- free(pentry);
+ ufsed_history_free((struct ufsed_history_entry *)pentry);
return (0);
}
@@ -253,14 +267,17 @@ ufslist_reread(struct ufslist *fslist)
}
static int
-ufsed_history_add(history_t hist, const char *cmd)
+ufsed_history_add(history_t hist, const char *title, const char *cmd)
{
- char *entry;
+ struct ufsed_history_entry *entry;
- entry = strdup(cmd);
+ entry = malloc(sizeof(*entry));
if (entry == NULL)
return (ENOMEM);
-
+ entry->title = strdup(title);
+ entry->cmd = strdup(cmd);
+ if (entry->cmd == NULL || entry->title == NULL)
+ ufsed_history_free(entry);
return (history_add_entry(hist, entry));
}
@@ -289,7 +306,7 @@ ufsed_tunefs(history_t hist, struct ufsi
WINDOW *win;
uint32_t flags;
int q, h, w, ret, i;
- char buf[CMDLEN_MAX], *s;
+ char buf[CMDLEN_MAX], *s, *prompt;
struct {
DLG_CHECKBOX *item;
uint32_t flag;
@@ -306,9 +323,9 @@ ufsed_tunefs(history_t hist, struct ufsi
win = savescr();
dlg_init(&dlg);
- snprintf(buf, sizeof(buf),
- "Change a file system parameters for \"%s\":", pfs->partname);
- dlg_add_label(&dlg, 1, 2, 55, 2, buf);
+ asprintf(&prompt, "Change file system parameters for \"%s\":",
+ pfs->partname);
+ dlg_add_label(&dlg, 1, 2, 55, 2, prompt);
eLabel = dlg_add_edit(&dlg, 3, 2, 24, "Volume Label:",
MAXVOLLEN, pfs->volname);
for (i = 0; i < sizeof(checkbox) / sizeof(checkbox[0]); i++)
@@ -395,7 +412,7 @@ again:
snprintf(buf, sizeof(buf), "%s %s%s", buf, _PATH_DEV,
pfs->partname);
/* add command to history */
- ret = ufsed_history_add(hist, buf);
+ ret = ufsed_history_add(hist, prompt, buf);
if (ret)
dmenu_open_errormsg("Operation failed.");
else { /* do fake changes to update current view */
@@ -411,6 +428,7 @@ done:
restorescr(win);
dlg_close_dialog(&dlg);
dlg_free(&dlg);
+ free(prompt);
}
static void
@@ -425,7 +443,7 @@ ufsed_newfs(history_t hist, struct ufsin
WINDOW *win;
uint64_t num, tmp;
int q, h, w, ret, i;
- char buf[CMDLEN_MAX], *s, *volname;
+ char buf[CMDLEN_MAX], *s, *volname, *prompt;
struct {
DLG_CHECKBOX *item;
uint32_t flag;
@@ -444,9 +462,8 @@ ufsed_newfs(history_t hist, struct ufsin
win = savescr();
dlg_init(&dlg);
- snprintf(buf, sizeof(buf),
- "Create new file system on \"%s\":", pfs->partname);
- dlg_add_label(&dlg, 1, 2, 55, 2, buf);
+ asprintf(&prompt, "Create new file system on \"%s\":", pfs->partname);
+ dlg_add_label(&dlg, 1, 2, 55, 2, prompt);
eLabel = dlg_add_edit(&dlg, 3, 2, 24, "Volume Label:",
MAXVOLLEN, NULL);
eBlock = dlg_add_edit(&dlg, 7, 2, 24, "Block Size:", 8, "16384");
@@ -570,7 +587,7 @@ again:
}
snprintf(buf, sizeof(buf), "%s %s%s", buf, _PATH_DEV, pfs->partname);
/* add newfs command to history */
- ret = ufsed_history_add(hist, buf);
+ ret = ufsed_history_add(hist, prompt, buf);
if (ret)
dmenu_open_errormsg("Operation failed.");
else { /* do fake changes to update current view */
@@ -598,7 +615,10 @@ again:
if (num > 0) {
snprintf(buf, sizeof(buf), "%s %s%s", buf, _PATH_DEV,
pfs->partname);
- ret = ufsed_history_add(hist, buf);
+ free(prompt);
+ asprintf(&prompt, "Change file system parameters for \"%s\":",
+ pfs->partname);
+ ret = ufsed_history_add(hist, prompt, buf);
if (ret)
dmenu_open_errormsg("Operation failed.");
else { /* do fake changes to update current view */
@@ -609,6 +629,7 @@ done:
restorescr(win);
dlg_close_dialog(&dlg);
dlg_free(&dlg);
+ free(prompt);
}
More information about the svn-src-user
mailing list