Sync up to current state of development.

This commit is contained in:
Jordan K. Hubbard
1997-04-02 12:07:39 +00:00
parent b91ea324e7
commit 45dbe89080
13 changed files with 115 additions and 67 deletions
+2 -2
View File
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next * This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite. * generation being essentially a complete rewrite.
* *
* $Id: anonFTP.c,v 1.21 1997/02/07 04:25:16 jkh Exp $ * $Id: anonFTP.c,v 1.22 1997/03/09 22:25:38 jkh Exp $
* *
* Copyright (c) 1995 * Copyright (c) 1995
* Coranth Gryphon. All rights reserved. * Coranth Gryphon. All rights reserved.
@@ -168,7 +168,7 @@ createFtpUser(void)
return DITEM_SUCCESS; /* succeeds if already exists */ return DITEM_SUCCESS; /* succeeds if already exists */
} }
sprintf(pwline, "%s::%s:%d::0:0:%s:%s:/bin/date\n", FTP_NAME, tconf.uid, gid, tconf.comment, tconf.homedir); sprintf(pwline, "%s:*:%s:%d::0:0:%s:%s:/nonexistent\n", FTP_NAME, tconf.uid, gid, tconf.comment, tconf.homedir);
fptr = fopen(_PATH_MASTERPASSWD,"a"); fptr = fopen(_PATH_MASTERPASSWD,"a");
if (! fptr) { if (! fptr) {
+73 -31
View File
@@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next * This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite. * generation being slated to essentially a complete rewrite.
* *
* $Id: attr.c,v 1.15 1997/02/22 14:11:10 peter Exp $ * $Id: attr.c,v 1.8.2.8 1997/03/28 23:07:09 jkh Exp $
* *
* Copyright (c) 1995 * Copyright (c) 1995
* Jordan Hubbard. All rights reserved. * Jordan Hubbard. All rights reserved.
@@ -60,18 +60,36 @@ attr_parse(Attribs *attr, FILE *fp)
{ {
char hold_n[MAX_NAME+1]; char hold_n[MAX_NAME+1];
char hold_v[MAX_VALUE+1]; char hold_v[MAX_VALUE+1];
int n, v; char buf[BUFSIZ];
enum { LOOK, COMMENT, NAME, VALUE, COMMIT } state; int bp, n, v, max;
int lno, num_attribs; enum { LOOK, COMMENT, NAME, VALUE, MVALUE, COMMIT, FILL, STOP } state;
int ch; int num_attribs;
int ch = 0;
n = v = lno = num_attribs = 0; n = v = num_attribs = bp = max = 0;
state = LOOK; state = LOOK;
while (state == COMMIT || (fread(&ch, 1, 1, fp) == 1)) { while (state != STOP) {
/* Count lines */ if (state != COMMIT) {
if (ch == '\n') if (bp == max)
++lno; state = FILL;
else
ch = buf[bp++];
}
switch(state) { switch(state) {
case FILL:
if ((max = fread(buf, 1, sizeof buf, fp)) <= 0) {
state = STOP;
break;
}
else {
state = LOOK;
if (isDebug())
msgDebug("Read %d characters from attributes file on state FILL\n", max);
ch = buf[0];
bp = 1;
}
/* Fall through deliberately since we already have a character and state == LOOK */
case LOOK: case LOOK:
if (isspace(ch)) if (isspace(ch))
continue; continue;
@@ -81,11 +99,18 @@ attr_parse(Attribs *attr, FILE *fp)
continue; continue;
} }
else if (isalpha(ch) || ch == '_') { else if (isalpha(ch) || ch == '_') {
hold_n[n++] = ch; if (n >= MAX_NAME) {
state = NAME; msgDebug("Attribute name overflow at character %d, ignoring entry..\n", n);
n = 0;
state = COMMENT;
}
else {
hold_n[n++] = ch;
state = NAME;
}
} }
else { else {
msgDebug("Parse config: Invalid character '%c' at line %d\n", ch, lno); msgDebug("Parse config: Invalid character '%c (%0x)'\n", ch, ch);
state = COMMENT; /* Ignore the rest of the line */ state = COMMENT; /* Ignore the rest of the line */
} }
break; break;
@@ -96,15 +121,17 @@ attr_parse(Attribs *attr, FILE *fp)
break; break;
case NAME: case NAME:
if (ch == '\n') { if (ch == '\n' || !ch) {
hold_n[n] = '\0'; hold_n[n] = '\0';
hold_v[v = 0] = '\0'; hold_v[0] = '\0';
v = n = 0;
state = COMMIT; state = COMMIT;
} }
else if (isspace(ch)) else if (isspace(ch))
continue; continue;
else if (ch == '=') { else if (ch == '=') {
hold_n[n] = '\0'; hold_n[n] = '\0';
v = n = 0;
state = VALUE; state = VALUE;
} }
else else
@@ -114,39 +141,54 @@ attr_parse(Attribs *attr, FILE *fp)
case VALUE: case VALUE:
if (v == 0 && isspace(ch)) if (v == 0 && isspace(ch))
continue; continue;
else if (ch == '{') { else if (ch == '{')
/* multiline value */ state = MVALUE;
while (fread(&ch, 1, 1, fp) == 1 && ch != '}') { else if (ch == '\n' || !ch) {
if (v == MAX_VALUE)
msgFatal("Value length overflow at line %d", lno);
hold_v[v++] = ch;
}
hold_v[v] = '\0';
state = COMMIT;
}
else if (ch == '\n') {
hold_v[v] = '\0'; hold_v[v] = '\0';
v = n = 0;
state = COMMIT; state = COMMIT;
} }
else { else {
if (v == MAX_VALUE) if (v >= MAX_VALUE) {
msgFatal("Value length overflow at line %d", lno); msgDebug("Value length overflow at character %d\n", v);
state = COMMENT;
v = n = 0;
break;
}
else else
hold_v[v++] = ch; hold_v[v++] = ch;
} }
break; break;
case MVALUE:
/* multiline value */
if (v >= MAX_VALUE) {
msgDebug("Value length overflow at character %d\n", v);
state = COMMENT;
n = v = 0;
}
else if (ch == '}') {
hold_v[v] = '\0';
v = n = 0;
state = COMMIT;
}
else
hold_v[v++] = ch;
break;
case COMMIT: case COMMIT:
SAFE_STRCPY(attr[num_attribs].name, hold_n); SAFE_STRCPY(attr[num_attribs].name, hold_n);
SAFE_STRCPY(attr[num_attribs].value, hold_v); SAFE_STRCPY(attr[num_attribs].value, hold_v);
state = LOOK; state = LOOK;
v = n = 0; v = n = 0;
if (++num_attribs >= MAX_ATTRIBS) if (++num_attribs >= MAX_ATTRIBS) {
msgFatal("Attribute limit overflow; encountered a bad attributes file!"); msgDebug("Attribute limit overflow at %d; encountered a bad attributes file!\n", num_attribs);
return DITEM_FAILURE;
}
break; break;
default: default:
msgFatal("Unknown state at line %d??", lno); msgFatal("Unknown state in attr_parse??");
} }
} }
attr[num_attribs].name[0] = NULL; /* end marker */ attr[num_attribs].name[0] = NULL; /* end marker */
+2 -3
View File
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next * This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite. * generation being essentially a complete rewrite.
* *
* $Id: dist.c,v 1.103 1997/03/15 18:01:35 jkh Exp $ * $Id: dist.c,v 1.73.2.23 1997/03/25 02:45:37 jkh Exp $
* *
* Copyright (c) 1995 * Copyright (c) 1995
* Jordan Hubbard. All rights reserved. * Jordan Hubbard. All rights reserved.
@@ -390,7 +390,6 @@ distExtract(char *parent, Distribution *me)
char *path, *dist, buf[BUFSIZ]; char *path, *dist, buf[BUFSIZ];
const char *tmp; const char *tmp;
FILE *fp; FILE *fp;
Attribs *dist_attr;
WINDOW *w = savescr(); WINDOW *w = savescr();
struct timeval start, stop; struct timeval start, stop;
struct sigaction old, new; struct sigaction old, new;
@@ -432,7 +431,6 @@ distExtract(char *parent, Distribution *me)
* Try to get distribution as multiple pieces, locating and parsing an * Try to get distribution as multiple pieces, locating and parsing an
* info file which tells us how many we need for this distribution. * info file which tells us how many we need for this distribution.
*/ */
dist_attr = NULL;
numchunks = 0; numchunks = 0;
snprintf(buf, sizeof buf, "%s/%s.inf", path, dist); snprintf(buf, sizeof buf, "%s/%s.inf", path, dist);
@@ -457,6 +455,7 @@ distExtract(char *parent, Distribution *me)
} }
else if (fp > 0) { else if (fp > 0) {
int status; int status;
Attribs *dist_attr;
if (isDebug()) if (isDebug())
msgDebug("Parsing attributes file for distribution %s\n", dist); msgDebug("Parsing attributes file for distribution %s\n", dist);
+9 -6
View File
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next * This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite. * generation being essentially a complete rewrite.
* *
* $Id: install.c,v 1.178 1997/03/18 07:02:32 mpp Exp $ * $Id: install.c,v 1.134.2.40 1997/03/28 02:25:14 jkh Exp $
* *
* Copyright (c) 1995 * Copyright (c) 1995
* Jordan Hubbard. All rights reserved. * Jordan Hubbard. All rights reserved.
@@ -498,14 +498,15 @@ installNovice(dialogMenuItem *self)
"may do so by typing: /stand/sysinstall."); "may do so by typing: /stand/sysinstall.");
} }
if (mediaDevice->type != DEVICE_TYPE_FTP && mediaDevice->type != DEVICE_TYPE_NFS) { if (mediaDevice->type != DEVICE_TYPE_FTP && mediaDevice->type != DEVICE_TYPE_NFS) {
if (!msgYesNo("Would you like to configure any SLIP/PPP or network interface devices?")) { if (!msgYesNo("Would you like to configure any Ethernet or SLIP/PPP network devices?")) {
Device *tmp; Device *tmp;
dialog_clear_norefresh();
tmp = tcpDeviceSelect(); tmp = tcpDeviceSelect();
dialog_clear_norefresh();
if (tmp && !msgYesNo("Would you like to bring the %s interface up right now?", tmp->name)) if (tmp && !msgYesNo("Would you like to bring the %s interface up right now?", tmp->name))
if (!tmp->init(tmp)) if (!tmp->init(tmp))
msgConfirm("Initialization of %s device failed.", tmp->name); msgConfirm("Initialization of %s device failed.", tmp->name);
dialog_clear_norefresh();
} }
} }
@@ -585,11 +586,13 @@ installNovice(dialogMenuItem *self)
configUsers(self); configUsers(self);
dialog_clear_norefresh(); dialog_clear_norefresh();
if (!msgYesNo("Would you like to set the system manager's password now?\n\n" msgConfirm("Now you must set the system manager's password.\n"
"This is the password you'll use to log in as \"root\".")) { "This is the password you'll use to log in as \"root\".");
{
WINDOW *w = savescr(); WINDOW *w = savescr();
systemExecute("passwd root"); if (!systemExecute("passwd root"))
variable_set2("root_password", "YES");
restorescr(w); restorescr(w);
} }
+2 -1
View File
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next * This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite. * generation being essentially a complete rewrite.
* *
* $Id: installUpgrade.c,v 1.45 1997/03/07 16:39:17 jkh Exp $ * $Id: installUpgrade.c,v 1.46 1997/03/11 09:29:17 jkh Exp $
* *
* Copyright (c) 1995 * Copyright (c) 1995
* Jordan Hubbard. All rights reserved. * Jordan Hubbard. All rights reserved.
@@ -70,6 +70,7 @@ static HitList etc_files [] = {
{ JUST_COPY, "fbtab", TRUE, NULL }, { JUST_COPY, "fbtab", TRUE, NULL },
{ JUST_COPY, "fstab", FALSE, NULL }, { JUST_COPY, "fstab", FALSE, NULL },
{ JUST_COPY, "ftpusers", TRUE, NULL }, { JUST_COPY, "ftpusers", TRUE, NULL },
{ JUST_COPY, "gettytab", TRUE, NULL },
{ JUST_COPY, "gnats", TRUE, NULL }, { JUST_COPY, "gnats", TRUE, NULL },
{ JUST_COPY, "group", FALSE, NULL }, { JUST_COPY, "group", FALSE, NULL },
{ JUST_COPY, "host.conf", TRUE, NULL }, { JUST_COPY, "host.conf", TRUE, NULL },
+1 -2
View File
@@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next * This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite. * generation being slated to essentially a complete rewrite.
* *
* $Id: sysinstall.h,v 1.121 1997/03/15 16:24:32 jkh Exp $ * $Id: sysinstall.h,v 1.122 1997/03/19 10:09:26 jkh Exp $
* *
* Copyright (c) 1995 * Copyright (c) 1995
* Jordan Hubbard. All rights reserved. * Jordan Hubbard. All rights reserved.
@@ -44,7 +44,6 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#include <dialog.h> #include <dialog.h>
#include <dialog.h>
#include "ui_objects.h" #include "ui_objects.h"
#include "dir.h" #include "dir.h"
#include "colors.h" #include "colors.h"
+9 -6
View File
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next * This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite. * generation being essentially a complete rewrite.
* *
* $Id: install.c,v 1.178 1997/03/18 07:02:32 mpp Exp $ * $Id: install.c,v 1.134.2.40 1997/03/28 02:25:14 jkh Exp $
* *
* Copyright (c) 1995 * Copyright (c) 1995
* Jordan Hubbard. All rights reserved. * Jordan Hubbard. All rights reserved.
@@ -498,14 +498,15 @@ installNovice(dialogMenuItem *self)
"may do so by typing: /stand/sysinstall."); "may do so by typing: /stand/sysinstall.");
} }
if (mediaDevice->type != DEVICE_TYPE_FTP && mediaDevice->type != DEVICE_TYPE_NFS) { if (mediaDevice->type != DEVICE_TYPE_FTP && mediaDevice->type != DEVICE_TYPE_NFS) {
if (!msgYesNo("Would you like to configure any SLIP/PPP or network interface devices?")) { if (!msgYesNo("Would you like to configure any Ethernet or SLIP/PPP network devices?")) {
Device *tmp; Device *tmp;
dialog_clear_norefresh();
tmp = tcpDeviceSelect(); tmp = tcpDeviceSelect();
dialog_clear_norefresh();
if (tmp && !msgYesNo("Would you like to bring the %s interface up right now?", tmp->name)) if (tmp && !msgYesNo("Would you like to bring the %s interface up right now?", tmp->name))
if (!tmp->init(tmp)) if (!tmp->init(tmp))
msgConfirm("Initialization of %s device failed.", tmp->name); msgConfirm("Initialization of %s device failed.", tmp->name);
dialog_clear_norefresh();
} }
} }
@@ -585,11 +586,13 @@ installNovice(dialogMenuItem *self)
configUsers(self); configUsers(self);
dialog_clear_norefresh(); dialog_clear_norefresh();
if (!msgYesNo("Would you like to set the system manager's password now?\n\n" msgConfirm("Now you must set the system manager's password.\n"
"This is the password you'll use to log in as \"root\".")) { "This is the password you'll use to log in as \"root\".");
{
WINDOW *w = savescr(); WINDOW *w = savescr();
systemExecute("passwd root"); if (!systemExecute("passwd root"))
variable_set2("root_password", "YES");
restorescr(w); restorescr(w);
} }
+1 -2
View File
@@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next * This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite. * generation being slated to essentially a complete rewrite.
* *
* $Id: sysinstall.h,v 1.121 1997/03/15 16:24:32 jkh Exp $ * $Id: sysinstall.h,v 1.122 1997/03/19 10:09:26 jkh Exp $
* *
* Copyright (c) 1995 * Copyright (c) 1995
* Jordan Hubbard. All rights reserved. * Jordan Hubbard. All rights reserved.
@@ -44,7 +44,6 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#include <dialog.h> #include <dialog.h>
#include <dialog.h>
#include "ui_objects.h" #include "ui_objects.h"
#include "dir.h" #include "dir.h"
#include "colors.h" #include "colors.h"
+2 -2
View File
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next * This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite. * generation being essentially a complete rewrite.
* *
* $Id: anonFTP.c,v 1.21 1997/02/07 04:25:16 jkh Exp $ * $Id: anonFTP.c,v 1.22 1997/03/09 22:25:38 jkh Exp $
* *
* Copyright (c) 1995 * Copyright (c) 1995
* Coranth Gryphon. All rights reserved. * Coranth Gryphon. All rights reserved.
@@ -168,7 +168,7 @@ createFtpUser(void)
return DITEM_SUCCESS; /* succeeds if already exists */ return DITEM_SUCCESS; /* succeeds if already exists */
} }
sprintf(pwline, "%s::%s:%d::0:0:%s:%s:/bin/date\n", FTP_NAME, tconf.uid, gid, tconf.comment, tconf.homedir); sprintf(pwline, "%s:*:%s:%d::0:0:%s:%s:/nonexistent\n", FTP_NAME, tconf.uid, gid, tconf.comment, tconf.homedir);
fptr = fopen(_PATH_MASTERPASSWD,"a"); fptr = fopen(_PATH_MASTERPASSWD,"a");
if (! fptr) { if (! fptr) {
+2 -3
View File
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next * This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite. * generation being essentially a complete rewrite.
* *
* $Id: dist.c,v 1.103 1997/03/15 18:01:35 jkh Exp $ * $Id: dist.c,v 1.73.2.23 1997/03/25 02:45:37 jkh Exp $
* *
* Copyright (c) 1995 * Copyright (c) 1995
* Jordan Hubbard. All rights reserved. * Jordan Hubbard. All rights reserved.
@@ -390,7 +390,6 @@ distExtract(char *parent, Distribution *me)
char *path, *dist, buf[BUFSIZ]; char *path, *dist, buf[BUFSIZ];
const char *tmp; const char *tmp;
FILE *fp; FILE *fp;
Attribs *dist_attr;
WINDOW *w = savescr(); WINDOW *w = savescr();
struct timeval start, stop; struct timeval start, stop;
struct sigaction old, new; struct sigaction old, new;
@@ -432,7 +431,6 @@ distExtract(char *parent, Distribution *me)
* Try to get distribution as multiple pieces, locating and parsing an * Try to get distribution as multiple pieces, locating and parsing an
* info file which tells us how many we need for this distribution. * info file which tells us how many we need for this distribution.
*/ */
dist_attr = NULL;
numchunks = 0; numchunks = 0;
snprintf(buf, sizeof buf, "%s/%s.inf", path, dist); snprintf(buf, sizeof buf, "%s/%s.inf", path, dist);
@@ -457,6 +455,7 @@ distExtract(char *parent, Distribution *me)
} }
else if (fp > 0) { else if (fp > 0) {
int status; int status;
Attribs *dist_attr;
if (isDebug()) if (isDebug())
msgDebug("Parsing attributes file for distribution %s\n", dist); msgDebug("Parsing attributes file for distribution %s\n", dist);
+9 -6
View File
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next * This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite. * generation being essentially a complete rewrite.
* *
* $Id: install.c,v 1.178 1997/03/18 07:02:32 mpp Exp $ * $Id: install.c,v 1.134.2.40 1997/03/28 02:25:14 jkh Exp $
* *
* Copyright (c) 1995 * Copyright (c) 1995
* Jordan Hubbard. All rights reserved. * Jordan Hubbard. All rights reserved.
@@ -498,14 +498,15 @@ installNovice(dialogMenuItem *self)
"may do so by typing: /stand/sysinstall."); "may do so by typing: /stand/sysinstall.");
} }
if (mediaDevice->type != DEVICE_TYPE_FTP && mediaDevice->type != DEVICE_TYPE_NFS) { if (mediaDevice->type != DEVICE_TYPE_FTP && mediaDevice->type != DEVICE_TYPE_NFS) {
if (!msgYesNo("Would you like to configure any SLIP/PPP or network interface devices?")) { if (!msgYesNo("Would you like to configure any Ethernet or SLIP/PPP network devices?")) {
Device *tmp; Device *tmp;
dialog_clear_norefresh();
tmp = tcpDeviceSelect(); tmp = tcpDeviceSelect();
dialog_clear_norefresh();
if (tmp && !msgYesNo("Would you like to bring the %s interface up right now?", tmp->name)) if (tmp && !msgYesNo("Would you like to bring the %s interface up right now?", tmp->name))
if (!tmp->init(tmp)) if (!tmp->init(tmp))
msgConfirm("Initialization of %s device failed.", tmp->name); msgConfirm("Initialization of %s device failed.", tmp->name);
dialog_clear_norefresh();
} }
} }
@@ -585,11 +586,13 @@ installNovice(dialogMenuItem *self)
configUsers(self); configUsers(self);
dialog_clear_norefresh(); dialog_clear_norefresh();
if (!msgYesNo("Would you like to set the system manager's password now?\n\n" msgConfirm("Now you must set the system manager's password.\n"
"This is the password you'll use to log in as \"root\".")) { "This is the password you'll use to log in as \"root\".");
{
WINDOW *w = savescr(); WINDOW *w = savescr();
systemExecute("passwd root"); if (!systemExecute("passwd root"))
variable_set2("root_password", "YES");
restorescr(w); restorescr(w);
} }
+2 -1
View File
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next * This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite. * generation being essentially a complete rewrite.
* *
* $Id: installUpgrade.c,v 1.45 1997/03/07 16:39:17 jkh Exp $ * $Id: installUpgrade.c,v 1.46 1997/03/11 09:29:17 jkh Exp $
* *
* Copyright (c) 1995 * Copyright (c) 1995
* Jordan Hubbard. All rights reserved. * Jordan Hubbard. All rights reserved.
@@ -70,6 +70,7 @@ static HitList etc_files [] = {
{ JUST_COPY, "fbtab", TRUE, NULL }, { JUST_COPY, "fbtab", TRUE, NULL },
{ JUST_COPY, "fstab", FALSE, NULL }, { JUST_COPY, "fstab", FALSE, NULL },
{ JUST_COPY, "ftpusers", TRUE, NULL }, { JUST_COPY, "ftpusers", TRUE, NULL },
{ JUST_COPY, "gettytab", TRUE, NULL },
{ JUST_COPY, "gnats", TRUE, NULL }, { JUST_COPY, "gnats", TRUE, NULL },
{ JUST_COPY, "group", FALSE, NULL }, { JUST_COPY, "group", FALSE, NULL },
{ JUST_COPY, "host.conf", TRUE, NULL }, { JUST_COPY, "host.conf", TRUE, NULL },
+1 -2
View File
@@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next * This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite. * generation being slated to essentially a complete rewrite.
* *
* $Id: sysinstall.h,v 1.121 1997/03/15 16:24:32 jkh Exp $ * $Id: sysinstall.h,v 1.122 1997/03/19 10:09:26 jkh Exp $
* *
* Copyright (c) 1995 * Copyright (c) 1995
* Jordan Hubbard. All rights reserved. * Jordan Hubbard. All rights reserved.
@@ -44,7 +44,6 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#include <dialog.h> #include <dialog.h>
#include <dialog.h>
#include "ui_objects.h" #include "ui_objects.h"
#include "dir.h" #include "dir.h"
#include "colors.h" #include "colors.h"