diff options
author | jkh <jkh@FreeBSD.org> | 1997-01-29 22:35:05 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1997-01-29 22:35:05 +0000 |
commit | d81f278ab499fe210ce54d4619e7d0493e7dc5ef (patch) | |
tree | 7d7cf45a979cbefc53c292e7c179cbf345102660 /release | |
parent | 637e1706b92463dec23a7206b05852bd855c8e65 (diff) | |
download | FreeBSD-src-d81f278ab499fe210ce54d4619e7d0493e7dc5ef.zip FreeBSD-src-d81f278ab499fe210ce54d4619e7d0493e7dc5ef.tar.gz |
Allow user to delete as well as install packages from the package
installer menu.
Fix status line code so informationals show up properly again.
Diffstat (limited to 'release')
-rw-r--r-- | release/sysinstall/config.c | 3 | ||||
-rw-r--r-- | release/sysinstall/index.c | 25 | ||||
-rw-r--r-- | release/sysinstall/sysinstall.h | 1 | ||||
-rw-r--r-- | release/sysinstall/termcap.c | 2 |
4 files changed, 11 insertions, 20 deletions
diff --git a/release/sysinstall/config.c b/release/sysinstall/config.c index 84139dc..2e1a1cd 100644 --- a/release/sysinstall/config.c +++ b/release/sysinstall/config.c @@ -541,9 +541,10 @@ configPackages(dialogMenuItem *self) "(or path to media) and try again. If your local site does not\n" "carry the packages collection, then we recommend either a CD\n" "distribution or the master distribution on ftp.freebsd.org."); + mediaDevice->shutdown(mediaDevice); return DITEM_FAILURE | DITEM_RESTORE; } - msgNotify("Got INDEX successfully, now building packages menu.."); + msgNotify("Located INDEX, now reading package data from it..."); index_init(&top, &plist); if (index_read(fp, &top)) { msgConfirm("I/O or format error on packages/INDEX file.\n" diff --git a/release/sysinstall/index.c b/release/sysinstall/index.c index 736e257..0e2c20f 100644 --- a/release/sysinstall/index.c +++ b/release/sysinstall/index.c @@ -239,23 +239,6 @@ index_parse(FILE *fp, char *name, char *pathto, char *prefix, char *comment, cha } int -index_get(char *fname, PkgNodePtr papa) -{ - int i; - FILE *fp; - - fp = fopen(fname, "r"); - if (!fp) { - fprintf(stderr, "Unable to open index file `%s' for reading.\n", fname); - i = -1; - } - else - i = index_read(fp, papa); - fclose(fp); - return i; -} - -int index_read(FILE *fp, PkgNodePtr papa) { char name[127], pathto[255], prefix[255], comment[255], descr[127], maint[127], cats[511], deps[511]; @@ -429,6 +412,14 @@ pkg_fire(dialogMenuItem *self) plist->kids = np; msgInfo("Added %s to selection list", kp->name); } + else { + WINDOW *save = savescr(); + + if (!msgYesNo("Do you really want to delete %s from the system?", kp->name)) + if (vsystem("pkg_delete %s %s", isDebug() ? "-v" : "", kp->name)) + msgConfirm("Warning: pkg_delete of %s failed.\n Check debug output for details.", kp->name); + restorescr(save); + } } else { msgInfo("Removed %s from selection list", kp->name); diff --git a/release/sysinstall/sysinstall.h b/release/sysinstall/sysinstall.h index 4ed2476..2fd55f8 100644 --- a/release/sysinstall/sysinstall.h +++ b/release/sysinstall/sysinstall.h @@ -508,7 +508,6 @@ extern void mediaShutdownFTP(Device *dev); extern void globalsInit(void); /* index.c */ -int index_get(char *fname, PkgNodePtr papa); int index_read(FILE *fp, PkgNodePtr papa); int index_menu(PkgNodePtr top, PkgNodePtr plist, int *pos, int *scroll); void index_init(PkgNodePtr top, PkgNodePtr plist); diff --git a/release/sysinstall/termcap.c b/release/sysinstall/termcap.c index 4b93f1e..a72c0a4 100644 --- a/release/sysinstall/termcap.c +++ b/release/sysinstall/termcap.c @@ -77,6 +77,6 @@ set_termcap(void) msgDebug("Unable to get terminal size - errno %d\n", errno); ts.ts_lines = 0; } - StatusLine = ts.ts_lines ? ts.ts_lines : (OnVTY ? VTY_STATUS_LINE : TTY_STATUS_LINE); + StatusLine = ts.ts_lines ? ts.ts_lines - 1: (OnVTY ? VTY_STATUS_LINE : TTY_STATUS_LINE); return 0; } |