summaryrefslogtreecommitdiffstats
path: root/release
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1997-01-29 22:35:05 +0000
committerjkh <jkh@FreeBSD.org>1997-01-29 22:35:05 +0000
commitd81f278ab499fe210ce54d4619e7d0493e7dc5ef (patch)
tree7d7cf45a979cbefc53c292e7c179cbf345102660 /release
parent637e1706b92463dec23a7206b05852bd855c8e65 (diff)
downloadFreeBSD-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.c3
-rw-r--r--release/sysinstall/index.c25
-rw-r--r--release/sysinstall/sysinstall.h1
-rw-r--r--release/sysinstall/termcap.c2
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;
}
OpenPOWER on IntegriCloud