WriteINIStr now works with an empty value ("")

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2300 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2003-03-15 13:54:23 +00:00
parent 3c87d7089c
commit 76c8418de5
2 changed files with 7 additions and 4 deletions

View file

@ -1116,7 +1116,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
{ {
key=process_string_fromparm_tobuf(0x11); key=process_string_fromparm_tobuf(0x11);
} }
if (parm2) if (parm4)
{ {
str=process_string_fromparm_tobuf(0x22); str=process_string_fromparm_tobuf(0x22);
} }

View file

@ -3248,19 +3248,21 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char
case TOK_DELETEINISEC: case TOK_DELETEINISEC:
case TOK_DELETEINISTR: case TOK_DELETEINISTR:
{ {
char *vname="<section>"; char *vname="";
char *space="";
ent.which=EW_WRITEINI; ent.which=EW_WRITEINI;
ent.offsets[0]=add_string(line.gettoken_str(2)); // section name ent.offsets[0]=add_string(line.gettoken_str(2)); // section name
if (line.getnumtokens() > 3) if (line.getnumtokens() > 3)
{ {
vname=line.gettoken_str(3); vname=line.gettoken_str(3);
ent.offsets[1]=add_string(vname); // value name ent.offsets[1]=add_string(vname); // value name
space=" ";
} }
else ent.offsets[1]=0; else ent.offsets[1]=0;
ent.offsets[2]=0; ent.offsets[2]=0;
ent.offsets[3]=add_string(line.gettoken_str(1)); ent.offsets[3]=add_string(line.gettoken_str(1));
SCRIPT_MSG("DeleteINI%s: [%s] %s in %s\n",vname?"Str":"Sec", SCRIPT_MSG("DeleteINI%s: [%s] %s%sin %s\n",*vname?"Str":"Sec",
line.gettoken_str(2),vname,line.gettoken_str(1)); line.gettoken_str(2),vname,space,line.gettoken_str(1));
} }
return add_entry(&ent); return add_entry(&ent);
case TOK_WRITEINISTR: case TOK_WRITEINISTR:
@ -3269,6 +3271,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char
ent.offsets[1]=add_string(line.gettoken_str(3)); ent.offsets[1]=add_string(line.gettoken_str(3));
ent.offsets[2]=add_string(line.gettoken_str(4)); ent.offsets[2]=add_string(line.gettoken_str(4));
ent.offsets[3]=add_string(line.gettoken_str(1)); ent.offsets[3]=add_string(line.gettoken_str(1));
ent.offsets[4]=1; // write
SCRIPT_MSG("WriteINIStr: [%s] %s=%s in %s\n", SCRIPT_MSG("WriteINIStr: [%s] %s=%s in %s\n",
line.gettoken_str(2),line.gettoken_str(3),line.gettoken_str(4),line.gettoken_str(1)); line.gettoken_str(2),line.gettoken_str(3),line.gettoken_str(4),line.gettoken_str(1));
return add_entry(&ent); return add_entry(&ent);