Skip to content
Snippets Groups Projects
Commit 48281049 authored by rswindell's avatar rswindell
Browse files

Added conveniences for adding a lot of subdirectories for a common root/parent

directory: support for a library "root" directory
and support for importing "raw" directory listings (containing just dir names).
parent 4404499e
No related branches found
No related tags found
No related merge requests found
...@@ -35,6 +35,8 @@ ...@@ -35,6 +35,8 @@
#include "scfg.h" #include "scfg.h"
#define DEFAULT_DIR_OPTIONS (DIR_FCHK|DIR_MULT|DIR_DUPES|DIR_CDTUL|DIR_CDTDL|DIR_DIZ)
void xfer_cfg() void xfer_cfg()
{ {
static int libs_dflt,libs_bar,dflt; static int libs_dflt,libs_bar,dflt;
...@@ -188,6 +190,8 @@ library, select Yes. ...@@ -188,6 +190,8 @@ library, select Yes.
j=0; j=0;
sprintf(opt[j++],"%-27.27s%s","Long Name",cfg.lib[i]->lname); sprintf(opt[j++],"%-27.27s%s","Long Name",cfg.lib[i]->lname);
sprintf(opt[j++],"%-27.27s%s","Short Name",cfg.lib[i]->sname); sprintf(opt[j++],"%-27.27s%s","Short Name",cfg.lib[i]->sname);
sprintf(opt[j++],"%-27.27s%.40s","Root Directory"
,cfg.lib[i]->root);
sprintf(opt[j++],"%-27.27s%.40s","Access Requirements" sprintf(opt[j++],"%-27.27s%.40s","Access Requirements"
,cfg.lib[i]->arstr); ,cfg.lib[i]->arstr);
strcpy(opt[j++],"Clone Options"); strcpy(opt[j++],"Clone Options");
...@@ -234,10 +238,21 @@ file transfer menu prompt. ...@@ -234,10 +238,21 @@ file transfer menu prompt.
,cfg.lib[i]->sname,LEN_GSNAME,K_EDIT); ,cfg.lib[i]->sname,LEN_GSNAME,K_EDIT);
break; break;
case 2: case 2:
SETHELP(WHERE);
/*
Root Directory:
This an optional path to be used as the physical "root" or "parent"
directory for all logical directories in this library.
*/
uifc.input(WIN_MID|WIN_SAV,0,0,"Root"
,cfg.lib[i]->root,LEN_DIR,K_EDIT);
break;
case 3:
sprintf(str,"%s Library",cfg.lib[i]->sname); sprintf(str,"%s Library",cfg.lib[i]->sname);
getar(str,cfg.lib[i]->arstr); getar(str,cfg.lib[i]->arstr);
break; break;
case 3: /* clone options */ case 4: /* clone options */
j=0; j=0;
strcpy(opt[0],"Yes"); strcpy(opt[0],"Yes");
strcpy(opt[1],"No"); strcpy(opt[1],"No");
...@@ -280,7 +295,7 @@ extension, and sort type. ...@@ -280,7 +295,7 @@ extension, and sort type.
cfg.dir[j]->seqdev=cfg.dir[k]->seqdev; cfg.dir[j]->seqdev=cfg.dir[k]->seqdev;
cfg.dir[j]->sort=cfg.dir[k]->sort; } } } cfg.dir[j]->sort=cfg.dir[k]->sort; } } }
break; break;
case 4: case 5:
k=0; k=0;
ported=0; ported=0;
q=uifc.changes; q=uifc.changes;
...@@ -303,7 +318,6 @@ export to. ...@@ -303,7 +318,6 @@ export to.
sprintf(str,"%sDIRS.TXT",cfg.ctrl_dir); sprintf(str,"%sDIRS.TXT",cfg.ctrl_dir);
else if(k==1) else if(k==1)
sprintf(str,"FILEBONE.NA"); sprintf(str,"FILEBONE.NA");
strupr(str);
if(uifc.input(WIN_MID|WIN_SAV,0,0,"Filename" if(uifc.input(WIN_MID|WIN_SAV,0,0,"Filename"
,str,40,K_EDIT)<=0) { ,str,40,K_EDIT)<=0) {
uifc.changes=q; uifc.changes=q;
...@@ -368,7 +382,7 @@ export to. ...@@ -368,7 +382,7 @@ export to.
uifc.changes=q; uifc.changes=q;
break; break;
case 5: case 6:
ported=0; ported=0;
k=0; k=0;
SETHELP(WHERE); SETHELP(WHERE);
...@@ -377,9 +391,13 @@ export to. ...@@ -377,9 +391,13 @@ export to.
This menu allows you to choose the format of the area file you wish to This menu allows you to choose the format of the area file you wish to
import into the current file library. import into the current file library.
A "raw" directory listing can be created in DOS with the following
command: DIR /ON /AD /B > DIRS.RAW
*/ */
strcpy(opt[k++],"DIRS.TXT (Synchronet)"); strcpy(opt[k++],"DIRS.TXT (Synchronet)");
strcpy(opt[k++],"FILEBONE.NA (Fido)"); strcpy(opt[k++],"FILEBONE.NA (Fido)");
strcpy(opt[k++],"DIRS.RAW (Raw)");
opt[k][0]=0; opt[k][0]=0;
k=0; k=0;
k=uifc.list(WIN_MID|WIN_SAV,0,0,0,&k,0 k=uifc.list(WIN_MID|WIN_SAV,0,0,0,&k,0
...@@ -390,7 +408,11 @@ import into the current file library. ...@@ -390,7 +408,11 @@ import into the current file library.
sprintf(str,"%sDIRS.TXT",cfg.ctrl_dir); sprintf(str,"%sDIRS.TXT",cfg.ctrl_dir);
else if(k==1) else if(k==1)
sprintf(str,"FILEBONE.NA"); sprintf(str,"FILEBONE.NA");
strupr(str); else {
strcpy(str,cfg.lib[i]->root);
backslash(str);
strcat(str,"dirs.raw");
}
if(uifc.input(WIN_MID|WIN_SAV,0,0,"Filename" if(uifc.input(WIN_MID|WIN_SAV,0,0,"Filename"
,str,40,K_EDIT)<=0) ,str,40,K_EDIT)<=0)
break; break;
...@@ -403,29 +425,40 @@ import into the current file library. ...@@ -403,29 +425,40 @@ import into the current file library.
truncsp(str); truncsp(str);
if(!str[0]) if(!str[0])
continue; continue;
if(k) { memset(&tmpdir,0,sizeof(dir_t));
p=str; tmpdir.misc=DEFAULT_DIR_OPTIONS;
while(*p && *p<=SP) p++; tmpdir.maxfiles=1000;
tmpdir.up_pct=cfg.cdt_up_pct;
tmpdir.dn_pct=cfg.cdt_dn_pct;
p=str;
while(*p && *p<=SP) p++;
if(k==2) { /* raw */
SAFECOPY(tmpdir.code,p);
SAFECOPY(tmpdir.lname,p);
SAFECOPY(tmpdir.sname,p);
SAFECOPY(tmpdir.path,p);
ported++;
}
else if(k==1) {
if(strnicmp(p,"AREA ",5)) if(strnicmp(p,"AREA ",5))
continue; continue;
memset(&tmpdir,0,sizeof(dir_t)); p+=5;
tmpdir.misc|= while(*p && *p<=SP) p++;
(DIR_FCHK|DIR_DUPES|DIR_CDTUL|DIR_CDTDL|DIR_DIZ); sprintf(tmpdir.code,"%.8s",p);
if(k==1) { truncsp(tmpdir.code);
p+=5; while(*p>SP) p++; /* Skip areaname */
while(*p && *p<=SP) p++; while(*p && *p<=SP) p++; /* Skip space */
sprintf(tmpdir.code,"%.8s",p); while(*p>SP) p++; /* Skip level */
truncsp(tmpdir.code); while(*p && *p<=SP) p++; /* Skip space */
while(*p>SP) p++; /* Skip areaname */ while(*p>SP) p++; /* Skip flags */
while(*p && *p<=SP) p++; /* Skip space */ while(*p && *p<=SP) p++; /* Skip space */
while(*p>SP) p++; /* Skip level */ SAFECOPY(tmpdir.sname,p);
while(*p && *p<=SP) p++; /* Skip space */ SAFECOPY(tmpdir.lname,p);
while(*p>SP) p++; /* Skip flags */ ported++;
while(*p && *p<=SP) p++; /* Skip space */ }
sprintf(tmpdir.lname,"%.*s",LEN_SLNAME,p); }
ported++; }
else { else {
memset(&tmpdir,0,sizeof(dir_t));
sprintf(tmpdir.lname,"%.*s",LEN_SLNAME,str); sprintf(tmpdir.lname,"%.*s",LEN_SLNAME,str);
if(!fgets(str,128,stream)) break; if(!fgets(str,128,stream)) break;
truncsp(str); truncsp(str);
...@@ -486,7 +519,9 @@ import into the current file library. ...@@ -486,7 +519,9 @@ import into the current file library.
while(!feof(stream) while(!feof(stream)
&& strcmp(str,"***END-OF-DIR***")) { && strcmp(str,"***END-OF-DIR***")) {
if(!fgets(str,128,stream)) break; if(!fgets(str,128,stream)) break;
truncsp(str); } } truncsp(str);
}
}
for(j=0;j<cfg.total_dirs;j++) { for(j=0;j<cfg.total_dirs;j++) {
if(cfg.dir[j]->lib!=i) if(cfg.dir[j]->lib!=i)
...@@ -507,29 +542,31 @@ import into the current file library. ...@@ -507,29 +542,31 @@ import into the current file library.
errormsg(WHERE,ERR_ALLOC,"dir",sizeof(dir_t)); errormsg(WHERE,ERR_ALLOC,"dir",sizeof(dir_t));
break; } break; }
memset(cfg.dir[j],0,sizeof(dir_t)); } memset(cfg.dir[j],0,sizeof(dir_t)); }
if(!k) if(k==1) {
memcpy(cfg.dir[j],&tmpdir,sizeof(dir_t));
else {
strcpy(cfg.dir[j]->code,tmpdir.code); strcpy(cfg.dir[j]->code,tmpdir.code);
strcpy(cfg.dir[j]->sname,tmpdir.code); strcpy(cfg.dir[j]->sname,tmpdir.code);
strcpy(cfg.dir[j]->lname,tmpdir.lname); strcpy(cfg.dir[j]->lname,tmpdir.lname);
if(j==cfg.total_dirs) { if(j==cfg.total_dirs) {
cfg.dir[j]->maxfiles=1000; cfg.dir[j]->maxfiles=1000;
cfg.dir[j]->up_pct=cfg.cdt_up_pct; cfg.dir[j]->up_pct=cfg.cdt_up_pct;
cfg.dir[j]->dn_pct=cfg.cdt_dn_pct; } cfg.dir[j]->dn_pct=cfg.cdt_dn_pct;
} }
} else
memcpy(cfg.dir[j],&tmpdir,sizeof(dir_t));
cfg.dir[j]->lib=i; cfg.dir[j]->lib=i;
if(j==cfg.total_dirs) { if(j==cfg.total_dirs) {
cfg.dir[j]->misc=tmpdir.misc; cfg.dir[j]->misc=tmpdir.misc;
cfg.total_dirs++; } cfg.total_dirs++;
uifc.changes=1; } }
uifc.changes=1;
}
fclose(stream); fclose(stream);
uifc.pop(0); uifc.pop(0);
sprintf(str,"%lu File Areas Imported Successfully",ported); sprintf(str,"%lu File Areas Imported Successfully",ported);
uifc.msg(str); uifc.msg(str);
break; break;
case 6: case 7:
dir_cfg(i); dir_cfg(i);
break; } } } break; } } }
...@@ -648,8 +685,7 @@ this directory will be stored. Example: C:\XFER\GAMES ...@@ -648,8 +685,7 @@ this directory will be stored. Example: C:\XFER\GAMES
cfg.dir[dirnum[i]]->lib=libnum; cfg.dir[dirnum[i]]->lib=libnum;
cfg.dir[dirnum[i]]->maxfiles=MAX_FILES<500 ? MAX_FILES:500; cfg.dir[dirnum[i]]->maxfiles=MAX_FILES<500 ? MAX_FILES:500;
if(stricmp(str2,"OFFLINE")) if(stricmp(str2,"OFFLINE"))
cfg.dir[dirnum[i]]->misc=(DIR_FCHK|DIR_MULT|DIR_DUPES cfg.dir[dirnum[i]]->misc=DEFAULT_DIR_OPTIONS;
|DIR_CDTUL|DIR_CDTDL|DIR_DIZ);
strcpy(cfg.dir[dirnum[i]]->code,code); strcpy(cfg.dir[dirnum[i]]->code,code);
strcpy(cfg.dir[dirnum[i]]->lname,str); strcpy(cfg.dir[dirnum[i]]->lname,str);
strcpy(cfg.dir[dirnum[i]]->sname,str2); strcpy(cfg.dir[dirnum[i]]->sname,str2);
......
...@@ -35,6 +35,8 @@ ...@@ -35,6 +35,8 @@
#include "scfg.h" #include "scfg.h"
#define DEFAULT_DIR_OPTIONS (DIR_FCHK|DIR_MULT|DIR_DUPES|DIR_CDTUL|DIR_CDTDL|DIR_DIZ)
void xfer_cfg() void xfer_cfg()
{ {
static int libs_dflt,libs_bar,dflt; static int libs_dflt,libs_bar,dflt;
...@@ -188,6 +190,8 @@ library, select Yes. ...@@ -188,6 +190,8 @@ library, select Yes.
j=0; j=0;
sprintf(opt[j++],"%-27.27s%s","Long Name",cfg.lib[i]->lname); sprintf(opt[j++],"%-27.27s%s","Long Name",cfg.lib[i]->lname);
sprintf(opt[j++],"%-27.27s%s","Short Name",cfg.lib[i]->sname); sprintf(opt[j++],"%-27.27s%s","Short Name",cfg.lib[i]->sname);
sprintf(opt[j++],"%-27.27s%.40s","Root Directory"
,cfg.lib[i]->root);
sprintf(opt[j++],"%-27.27s%.40s","Access Requirements" sprintf(opt[j++],"%-27.27s%.40s","Access Requirements"
,cfg.lib[i]->arstr); ,cfg.lib[i]->arstr);
strcpy(opt[j++],"Clone Options"); strcpy(opt[j++],"Clone Options");
...@@ -234,10 +238,21 @@ file transfer menu prompt. ...@@ -234,10 +238,21 @@ file transfer menu prompt.
,cfg.lib[i]->sname,LEN_GSNAME,K_EDIT); ,cfg.lib[i]->sname,LEN_GSNAME,K_EDIT);
break; break;
case 2: case 2:
SETHELP(WHERE);
/*
Root Directory:
This an optional path to be used as the physical "root" or "parent"
directory for all logical directories in this library.
*/
uifc.input(WIN_MID|WIN_SAV,0,0,"Root"
,cfg.lib[i]->root,LEN_DIR,K_EDIT);
break;
case 3:
sprintf(str,"%s Library",cfg.lib[i]->sname); sprintf(str,"%s Library",cfg.lib[i]->sname);
getar(str,cfg.lib[i]->arstr); getar(str,cfg.lib[i]->arstr);
break; break;
case 3: /* clone options */ case 4: /* clone options */
j=0; j=0;
strcpy(opt[0],"Yes"); strcpy(opt[0],"Yes");
strcpy(opt[1],"No"); strcpy(opt[1],"No");
...@@ -280,7 +295,7 @@ extension, and sort type. ...@@ -280,7 +295,7 @@ extension, and sort type.
cfg.dir[j]->seqdev=cfg.dir[k]->seqdev; cfg.dir[j]->seqdev=cfg.dir[k]->seqdev;
cfg.dir[j]->sort=cfg.dir[k]->sort; } } } cfg.dir[j]->sort=cfg.dir[k]->sort; } } }
break; break;
case 4: case 5:
k=0; k=0;
ported=0; ported=0;
q=uifc.changes; q=uifc.changes;
...@@ -303,7 +318,6 @@ export to. ...@@ -303,7 +318,6 @@ export to.
sprintf(str,"%sDIRS.TXT",cfg.ctrl_dir); sprintf(str,"%sDIRS.TXT",cfg.ctrl_dir);
else if(k==1) else if(k==1)
sprintf(str,"FILEBONE.NA"); sprintf(str,"FILEBONE.NA");
strupr(str);
if(uifc.input(WIN_MID|WIN_SAV,0,0,"Filename" if(uifc.input(WIN_MID|WIN_SAV,0,0,"Filename"
,str,40,K_EDIT)<=0) { ,str,40,K_EDIT)<=0) {
uifc.changes=q; uifc.changes=q;
...@@ -368,7 +382,7 @@ export to. ...@@ -368,7 +382,7 @@ export to.
uifc.changes=q; uifc.changes=q;
break; break;
case 5: case 6:
ported=0; ported=0;
k=0; k=0;
SETHELP(WHERE); SETHELP(WHERE);
...@@ -377,9 +391,13 @@ export to. ...@@ -377,9 +391,13 @@ export to.
This menu allows you to choose the format of the area file you wish to This menu allows you to choose the format of the area file you wish to
import into the current file library. import into the current file library.
A "raw" directory listing can be created in DOS with the following
command: DIR /ON /AD /B > DIRS.RAW
*/ */
strcpy(opt[k++],"DIRS.TXT (Synchronet)"); strcpy(opt[k++],"DIRS.TXT (Synchronet)");
strcpy(opt[k++],"FILEBONE.NA (Fido)"); strcpy(opt[k++],"FILEBONE.NA (Fido)");
strcpy(opt[k++],"DIRS.RAW (Raw)");
opt[k][0]=0; opt[k][0]=0;
k=0; k=0;
k=uifc.list(WIN_MID|WIN_SAV,0,0,0,&k,0 k=uifc.list(WIN_MID|WIN_SAV,0,0,0,&k,0
...@@ -390,7 +408,11 @@ import into the current file library. ...@@ -390,7 +408,11 @@ import into the current file library.
sprintf(str,"%sDIRS.TXT",cfg.ctrl_dir); sprintf(str,"%sDIRS.TXT",cfg.ctrl_dir);
else if(k==1) else if(k==1)
sprintf(str,"FILEBONE.NA"); sprintf(str,"FILEBONE.NA");
strupr(str); else {
strcpy(str,cfg.lib[i]->root);
backslash(str);
strcat(str,"dirs.raw");
}
if(uifc.input(WIN_MID|WIN_SAV,0,0,"Filename" if(uifc.input(WIN_MID|WIN_SAV,0,0,"Filename"
,str,40,K_EDIT)<=0) ,str,40,K_EDIT)<=0)
break; break;
...@@ -403,29 +425,40 @@ import into the current file library. ...@@ -403,29 +425,40 @@ import into the current file library.
truncsp(str); truncsp(str);
if(!str[0]) if(!str[0])
continue; continue;
if(k) { memset(&tmpdir,0,sizeof(dir_t));
p=str; tmpdir.misc=DEFAULT_DIR_OPTIONS;
while(*p && *p<=SP) p++; tmpdir.maxfiles=1000;
tmpdir.up_pct=cfg.cdt_up_pct;
tmpdir.dn_pct=cfg.cdt_dn_pct;
p=str;
while(*p && *p<=SP) p++;
if(k==2) { /* raw */
SAFECOPY(tmpdir.code,p);
SAFECOPY(tmpdir.lname,p);
SAFECOPY(tmpdir.sname,p);
SAFECOPY(tmpdir.path,p);
ported++;
}
else if(k==1) {
if(strnicmp(p,"AREA ",5)) if(strnicmp(p,"AREA ",5))
continue; continue;
memset(&tmpdir,0,sizeof(dir_t)); p+=5;
tmpdir.misc|= while(*p && *p<=SP) p++;
(DIR_FCHK|DIR_DUPES|DIR_CDTUL|DIR_CDTDL|DIR_DIZ); sprintf(tmpdir.code,"%.8s",p);
if(k==1) { truncsp(tmpdir.code);
p+=5; while(*p>SP) p++; /* Skip areaname */
while(*p && *p<=SP) p++; while(*p && *p<=SP) p++; /* Skip space */
sprintf(tmpdir.code,"%.8s",p); while(*p>SP) p++; /* Skip level */
truncsp(tmpdir.code); while(*p && *p<=SP) p++; /* Skip space */
while(*p>SP) p++; /* Skip areaname */ while(*p>SP) p++; /* Skip flags */
while(*p && *p<=SP) p++; /* Skip space */ while(*p && *p<=SP) p++; /* Skip space */
while(*p>SP) p++; /* Skip level */ SAFECOPY(tmpdir.sname,p);
while(*p && *p<=SP) p++; /* Skip space */ SAFECOPY(tmpdir.lname,p);
while(*p>SP) p++; /* Skip flags */ ported++;
while(*p && *p<=SP) p++; /* Skip space */ }
sprintf(tmpdir.lname,"%.*s",LEN_SLNAME,p); }
ported++; }
else { else {
memset(&tmpdir,0,sizeof(dir_t));
sprintf(tmpdir.lname,"%.*s",LEN_SLNAME,str); sprintf(tmpdir.lname,"%.*s",LEN_SLNAME,str);
if(!fgets(str,128,stream)) break; if(!fgets(str,128,stream)) break;
truncsp(str); truncsp(str);
...@@ -486,7 +519,9 @@ import into the current file library. ...@@ -486,7 +519,9 @@ import into the current file library.
while(!feof(stream) while(!feof(stream)
&& strcmp(str,"***END-OF-DIR***")) { && strcmp(str,"***END-OF-DIR***")) {
if(!fgets(str,128,stream)) break; if(!fgets(str,128,stream)) break;
truncsp(str); } } truncsp(str);
}
}
for(j=0;j<cfg.total_dirs;j++) { for(j=0;j<cfg.total_dirs;j++) {
if(cfg.dir[j]->lib!=i) if(cfg.dir[j]->lib!=i)
...@@ -507,29 +542,31 @@ import into the current file library. ...@@ -507,29 +542,31 @@ import into the current file library.
errormsg(WHERE,ERR_ALLOC,"dir",sizeof(dir_t)); errormsg(WHERE,ERR_ALLOC,"dir",sizeof(dir_t));
break; } break; }
memset(cfg.dir[j],0,sizeof(dir_t)); } memset(cfg.dir[j],0,sizeof(dir_t)); }
if(!k) if(k==1) {
memcpy(cfg.dir[j],&tmpdir,sizeof(dir_t));
else {
strcpy(cfg.dir[j]->code,tmpdir.code); strcpy(cfg.dir[j]->code,tmpdir.code);
strcpy(cfg.dir[j]->sname,tmpdir.code); strcpy(cfg.dir[j]->sname,tmpdir.code);
strcpy(cfg.dir[j]->lname,tmpdir.lname); strcpy(cfg.dir[j]->lname,tmpdir.lname);
if(j==cfg.total_dirs) { if(j==cfg.total_dirs) {
cfg.dir[j]->maxfiles=1000; cfg.dir[j]->maxfiles=1000;
cfg.dir[j]->up_pct=cfg.cdt_up_pct; cfg.dir[j]->up_pct=cfg.cdt_up_pct;
cfg.dir[j]->dn_pct=cfg.cdt_dn_pct; } cfg.dir[j]->dn_pct=cfg.cdt_dn_pct;
} }
} else
memcpy(cfg.dir[j],&tmpdir,sizeof(dir_t));
cfg.dir[j]->lib=i; cfg.dir[j]->lib=i;
if(j==cfg.total_dirs) { if(j==cfg.total_dirs) {
cfg.dir[j]->misc=tmpdir.misc; cfg.dir[j]->misc=tmpdir.misc;
cfg.total_dirs++; } cfg.total_dirs++;
uifc.changes=1; } }
uifc.changes=1;
}
fclose(stream); fclose(stream);
uifc.pop(0); uifc.pop(0);
sprintf(str,"%lu File Areas Imported Successfully",ported); sprintf(str,"%lu File Areas Imported Successfully",ported);
uifc.msg(str); uifc.msg(str);
break; break;
case 6: case 7:
dir_cfg(i); dir_cfg(i);
break; } } } break; } } }
...@@ -648,8 +685,7 @@ this directory will be stored. Example: C:\XFER\GAMES ...@@ -648,8 +685,7 @@ this directory will be stored. Example: C:\XFER\GAMES
cfg.dir[dirnum[i]]->lib=libnum; cfg.dir[dirnum[i]]->lib=libnum;
cfg.dir[dirnum[i]]->maxfiles=MAX_FILES<500 ? MAX_FILES:500; cfg.dir[dirnum[i]]->maxfiles=MAX_FILES<500 ? MAX_FILES:500;
if(stricmp(str2,"OFFLINE")) if(stricmp(str2,"OFFLINE"))
cfg.dir[dirnum[i]]->misc=(DIR_FCHK|DIR_MULT|DIR_DUPES cfg.dir[dirnum[i]]->misc=DEFAULT_DIR_OPTIONS;
|DIR_CDTUL|DIR_CDTDL|DIR_DIZ);
strcpy(cfg.dir[dirnum[i]]->code,code); strcpy(cfg.dir[dirnum[i]]->code,code);
strcpy(cfg.dir[dirnum[i]]->lname,str); strcpy(cfg.dir[dirnum[i]]->lname,str);
strcpy(cfg.dir[dirnum[i]]->sname,str2); strcpy(cfg.dir[dirnum[i]]->sname,str2);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment