msi: Use the long file name in the WriteIniValues action.
This commit is contained in:
parent
7616a750ba
commit
bf9538f383
|
@ -3622,9 +3622,10 @@ end:
|
||||||
static UINT ITERATE_WriteIniValues(MSIRECORD *row, LPVOID param)
|
static UINT ITERATE_WriteIniValues(MSIRECORD *row, LPVOID param)
|
||||||
{
|
{
|
||||||
MSIPACKAGE *package = (MSIPACKAGE*)param;
|
MSIPACKAGE *package = (MSIPACKAGE*)param;
|
||||||
LPCWSTR component,section,key,value,identifier,filename,dirproperty;
|
LPCWSTR component, section, key, value, identifier, dirproperty;
|
||||||
LPWSTR deformated_section, deformated_key, deformated_value;
|
LPWSTR deformated_section, deformated_key, deformated_value;
|
||||||
LPWSTR folder, fullname = NULL;
|
LPWSTR folder, filename, fullname = NULL;
|
||||||
|
LPCWSTR filenameptr;
|
||||||
MSIRECORD * uirow;
|
MSIRECORD * uirow;
|
||||||
INT action;
|
INT action;
|
||||||
MSICOMPONENT *comp;
|
MSICOMPONENT *comp;
|
||||||
|
@ -3647,7 +3648,6 @@ static UINT ITERATE_WriteIniValues(MSIRECORD *row, LPVOID param)
|
||||||
comp->Action = INSTALLSTATE_LOCAL;
|
comp->Action = INSTALLSTATE_LOCAL;
|
||||||
|
|
||||||
identifier = MSI_RecordGetString(row,1);
|
identifier = MSI_RecordGetString(row,1);
|
||||||
filename = MSI_RecordGetString(row,2);
|
|
||||||
dirproperty = MSI_RecordGetString(row,3);
|
dirproperty = MSI_RecordGetString(row,3);
|
||||||
section = MSI_RecordGetString(row,4);
|
section = MSI_RecordGetString(row,4);
|
||||||
key = MSI_RecordGetString(row,5);
|
key = MSI_RecordGetString(row,5);
|
||||||
|
@ -3658,6 +3658,12 @@ static UINT ITERATE_WriteIniValues(MSIRECORD *row, LPVOID param)
|
||||||
deformat_string(package,key,&deformated_key);
|
deformat_string(package,key,&deformated_key);
|
||||||
deformat_string(package,value,&deformated_value);
|
deformat_string(package,value,&deformated_value);
|
||||||
|
|
||||||
|
filename = msi_dup_record_field(row, 2);
|
||||||
|
if (filename && (filenameptr = strchrW(filename, '|')))
|
||||||
|
filenameptr++;
|
||||||
|
else
|
||||||
|
filenameptr = filename;
|
||||||
|
|
||||||
if (dirproperty)
|
if (dirproperty)
|
||||||
{
|
{
|
||||||
folder = resolve_folder(package, dirproperty, FALSE, FALSE, TRUE, NULL);
|
folder = resolve_folder(package, dirproperty, FALSE, FALSE, TRUE, NULL);
|
||||||
|
@ -3673,7 +3679,7 @@ static UINT ITERATE_WriteIniValues(MSIRECORD *row, LPVOID param)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
fullname = build_directory_name(2, folder, filename);
|
fullname = build_directory_name(2, folder, filenameptr);
|
||||||
|
|
||||||
if (action == 0)
|
if (action == 0)
|
||||||
{
|
{
|
||||||
|
@ -3708,7 +3714,9 @@ static UINT ITERATE_WriteIniValues(MSIRECORD *row, LPVOID param)
|
||||||
MSI_RecordSetStringW(uirow,4,deformated_value);
|
MSI_RecordSetStringW(uirow,4,deformated_value);
|
||||||
ui_actiondata(package,szWriteIniValues,uirow);
|
ui_actiondata(package,szWriteIniValues,uirow);
|
||||||
msiobj_release( &uirow->hdr );
|
msiobj_release( &uirow->hdr );
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
|
msi_free(filename);
|
||||||
msi_free(fullname);
|
msi_free(fullname);
|
||||||
msi_free(folder);
|
msi_free(folder);
|
||||||
msi_free(deformated_key);
|
msi_free(deformated_key);
|
||||||
|
|
Loading…
Reference in New Issue