From owner-svn-src-user@FreeBSD.ORG Wed Nov 3 12:12:29 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A15A1065672; Wed, 3 Nov 2010 12:12:29 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 499748FC14; Wed, 3 Nov 2010 12:12:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id oA3CCTxc020270; Wed, 3 Nov 2010 12:12:29 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oA3CCTN0020268; Wed, 3 Nov 2010 12:12:29 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201011031212.oA3CCTN0020268@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Wed, 3 Nov 2010 12:12:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r214737 - user/ae/usr.sbin/sade X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Nov 2010 12:12:29 -0000 Author: ae Date: Wed Nov 3 12:12:29 2010 New Revision: 214737 URL: http://svn.freebsd.org/changeset/base/214737 Log: Add simple commit/undo support. Modified: user/ae/usr.sbin/sade/ufsed.c Modified: user/ae/usr.sbin/sade/ufsed.c ============================================================================== --- user/ae/usr.sbin/sade/ufsed.c Wed Nov 3 10:46:39 2010 (r214736) +++ user/ae/usr.sbin/sade/ufsed.c Wed Nov 3 12:12:29 2010 (r214737) @@ -230,12 +230,17 @@ set_statusline(char *msg) static int ufsed_history_rollback(void *pentry) { + + free(pentry); return (0); } static int ufsed_history_play(void *pentry) { + + /* system(pentry); */ + free(pentry); return (0); } @@ -248,8 +253,21 @@ ufslist_reread(struct ufslist *fslist) } static int +ufsed_history_add(history_t hist, const char *cmd) +{ + char *entry; + + entry = strdup(cmd); + if (entry == NULL) + return (ENOMEM); + + return (history_add_entry(hist, entry)); +} + +static int tunefs_keyhndl(int key) { + switch (key) { case ' ': case KEY_UP: @@ -366,7 +384,7 @@ again: } if (flags != pfs->flags || ret != 0) { /* something changed */ snprintf(buf, sizeof(buf), "%s -L \"%s\"", PATH_TUNEFS, - (s != NULL && *s != '\0') ? s: ""); + (s != NULL) ? s: ""); for (i = 0; i < sizeof(checkbox) / sizeof(checkbox[0]); i++) { snprintf(buf, sizeof(buf), "%s %s %s", buf, checkbox[i].arg, @@ -376,6 +394,17 @@ again: snprintf(buf, sizeof(buf), "%s %s%s", buf, _PATH_DEV, pfs->partname); /* add command to history */ + ret = ufsed_history_add(hist, buf); + if (ret) + dmenu_open_errormsg("Operation failed."); + else { /* do fake changes to update current view */ + pfs->flags = flags; + free(pfs->volname); + if (s != NULL && *s != '\0') + pfs->volname = strndup(s, MAXVOLLEN); + else + pfs->volname = NULL; + } } done: restorescr(win);