bzip2 header down to 34KB, 54 bytes away from 34.5KB zlib. Fixed a bug with ReadRegStr and $0.
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@1249 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
a3676511e6
commit
62abf21381
11 changed files with 87 additions and 175 deletions
|
@ -407,7 +407,7 @@ int CEXEBuild::add_string_main(const char *string, int process) // returns offse
|
|||
if (build_userlangstrings.find(cp, 0, &idx) < 0) idx = -1;
|
||||
}
|
||||
free(cp);
|
||||
if (idx >= 0) return -(idx+1);
|
||||
if (idx >= 0) return -(idx+1+(sizeof(common_strings)+sizeof(installer_strings))/sizeof(int));
|
||||
}
|
||||
|
||||
char buf[4096];
|
||||
|
@ -429,7 +429,7 @@ int CEXEBuild::add_string_uninst(const char *string, int process) // returns off
|
|||
if (ubuild_userlangstrings.find(cp, 0, &idx) < 0) idx = -1;
|
||||
}
|
||||
free(cp);
|
||||
if (idx >= 0) return -(idx+1);
|
||||
if (idx >= 0) return -(idx+1+(sizeof(common_strings)+sizeof(uninstall_strings))/sizeof(int));
|
||||
}
|
||||
|
||||
char buf[4096];
|
||||
|
|
|
@ -43,9 +43,7 @@ static char gDontFookWithFocus = 0;
|
|||
|
||||
// Added by Amir Szekely 3rd August 2002
|
||||
char *language_tables;
|
||||
common_strings *cur_common_strings_table;
|
||||
char *cur_install_strings_table; // installer_strings/uninstall_strings depending on installer type
|
||||
int *cur_user_strings_table;
|
||||
int *cur_language_table;
|
||||
|
||||
int g_quit_flag; // set when Quit has been called (meaning bail out ASAP)
|
||||
|
||||
|
@ -115,8 +113,8 @@ static int m_page=-1,m_abort;
|
|||
static HWND m_curwnd, m_bgwnd, m_hwndOK, m_hwndCancel;
|
||||
static int m_whichcfg;
|
||||
|
||||
static BOOL NSISCALL SetDlgItemTextFromLang_(HWND dlg, int id, langid_t lid) {
|
||||
return my_SetDialogItemText(dlg,id+1000,STR(GetLangString(lid)));
|
||||
static BOOL NSISCALL SetDlgItemTextFromLang_(HWND dlg, int id, int lid) {
|
||||
return my_SetDialogItemText(dlg,id+1000,LANG_STR(lid));
|
||||
}
|
||||
|
||||
#define SetDlgItemTextFromLang(dlg,id,lid) SetDlgItemTextFromLang_(dlg,(id)-1000,lid)
|
||||
|
@ -258,14 +256,7 @@ lang_again:
|
|||
for (i = 0; i < lang_num; i++) {
|
||||
language_table=language_tables+i*g_inst_cmnheader->language_table_size;
|
||||
if (!((lang ^ *(LANGID*)language_table) & lang_mask)) {
|
||||
cur_common_strings_table=(common_strings*)(language_table+sizeof(LANGID));
|
||||
cur_install_strings_table=(void*)(cur_common_strings_table+1);
|
||||
#ifdef NSIS_CONFIG_UNINSTALL_SUPPORT
|
||||
if (g_is_uninstaller)
|
||||
cur_user_strings_table=(int*)((uninstall_strings*)cur_install_strings_table+1);
|
||||
else
|
||||
#endif
|
||||
cur_user_strings_table=(int*)((installer_strings*)cur_install_strings_table+1);
|
||||
cur_language_table=(int*)(language_table+sizeof(LANGID));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -279,7 +270,7 @@ lang_again:
|
|||
|
||||
myitoa(state_language, *(LANGID*)language_table);
|
||||
|
||||
SendMessage(m_bgwnd, WM_SETTEXT, 0, (LPARAM)process_string_from_lang(g_caption,LANGID_CAPTION));
|
||||
SendMessage(m_bgwnd, WM_SETTEXT, 0, (LPARAM)process_string_fromtab(g_caption,LANG_CAPTION));
|
||||
}
|
||||
|
||||
int NSISCALL ui_doinstall(void)
|
||||
|
@ -352,7 +343,7 @@ int NSISCALL ui_doinstall(void)
|
|||
// Multilingual support
|
||||
{
|
||||
extern char *g_db_strtab;
|
||||
lang_num=g_inst_cmnheader->str_tables_num;
|
||||
lang_num=g_inst_cmnheader->language_tables_num;
|
||||
language_tables=(void*)(g_db_strtab+g_inst_cmnheader->num_string_bytes);
|
||||
|
||||
myitoa(state_language, GetUserDefaultLangID());
|
||||
|
@ -482,32 +473,32 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
g_hwnd=hwndDlg;
|
||||
m_hwndOK=GetDlgItem(hwndDlg,IDOK);
|
||||
m_hwndCancel=GetDlgItem(hwndDlg,IDCANCEL);
|
||||
SetDlgItemTextFromLang(hwndDlg,IDC_VERSTR,LANGID_BRANDING);
|
||||
SetDlgItemTextFromLang(hwndDlg,IDC_VERSTR,LANG_BRANDING);
|
||||
SetClassLong(hwndDlg,GCL_HICON,(long)g_hIcon);
|
||||
SetDlgItemTextFromLang(hwndDlg,IDCANCEL,LANGID_BTN_CANCEL);
|
||||
SetDlgItemTextFromLang(hwndDlg,IDCANCEL,LANG_BTN_CANCEL);
|
||||
#ifdef NSIS_CONFIG_UNINSTALL_SUPPORT
|
||||
if (!g_is_uninstaller)
|
||||
#endif
|
||||
SetDlgItemTextFromLang(hwndDlg,IDC_BACK,LANGID_BTN_BACK);
|
||||
SetDlgItemTextFromLang(hwndDlg,IDC_BACK,LANG_BTN_BACK);
|
||||
ShowWindow(hwndDlg,SW_SHOW);
|
||||
}
|
||||
|
||||
#ifdef NSIS_CONFIG_UNINSTALL_SUPPORT
|
||||
if (g_is_uninstaller)
|
||||
{
|
||||
islp = (LANG_UNINST_TEXT>0);
|
||||
islp = LANG_STR_TAB(LANG_UNINST_TEXT);
|
||||
iscp++;
|
||||
}
|
||||
else
|
||||
#endif//NSIS_CONFIG_UNINSTALL_SUPPORT
|
||||
{
|
||||
#ifdef NSIS_CONFIG_LICENSEPAGE
|
||||
islp = (LANG_LICENSE_DATA>0);
|
||||
islp = LANG_STR_TAB(LANG_LICENSE_DATA);
|
||||
#endif//NSIS_CONFIG_LICENSEPAGE
|
||||
#ifdef NSIS_CONFIG_COMPONENTPAGE
|
||||
iscp = (LANG_COMP_TEXT>0);
|
||||
iscp = LANG_STR_TAB(LANG_COMP_TEXT);
|
||||
#endif//NSIS_CONFIG_COMPONENTPAGE
|
||||
ispotentiallydp = (LANG_DIR_TEXT>0);
|
||||
ispotentiallydp = LANG_STR_TAB(LANG_DIR_TEXT);
|
||||
if (ispotentiallydp &&
|
||||
!((g_inst_cmnheader->misc_flags&2) &&
|
||||
is_valid_instpath(state_install_directory)
|
||||
|
@ -553,19 +544,19 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
else if (!m_curwnd)
|
||||
{
|
||||
HWND hwndtmp;
|
||||
langid_t langid =
|
||||
(m_page == g_max_page) ? LANGID_BTN_CLOSE :
|
||||
int str =
|
||||
(m_page == g_max_page) ? LANG_BTN_CLOSE :
|
||||
#ifdef NSIS_CONFIG_UNINSTALL_SUPPORT
|
||||
g_is_uninstaller ? LANGID_BTN_UNINST :
|
||||
g_is_uninstaller ? LANG_BTN_UNINST :
|
||||
#endif
|
||||
#ifdef NSIS_CONFIG_LICENSEPAGE
|
||||
(m_page == 0) ? LANGID_BTN_LICENSE :
|
||||
(m_page == 0) ? LANG_BTN_LICENSE :
|
||||
#endif
|
||||
(m_page == 2 || (m_page == 1 && !isdp)) ? LANGID_BTN_INSTALL :
|
||||
LANGID_BTN_NEXT;
|
||||
SetDlgItemTextFromLang(hwndDlg,IDOK,langid);
|
||||
(m_page == 2 || (m_page == 1 && !isdp)) ? LANG_BTN_INSTALL :
|
||||
LANG_BTN_NEXT;
|
||||
SetDlgItemTextFromLang(hwndDlg,IDOK,str);
|
||||
mystrcpy(g_tmp,g_caption);
|
||||
process_string_from_lang(g_tmp+mystrlen(g_tmp),LANGID_SUBCAPTION(m_page));
|
||||
process_string_fromtab(g_tmp+mystrlen(g_tmp),LANG_SUBCAPTION(m_page));
|
||||
|
||||
SetWindowText(hwndDlg,g_tmp);
|
||||
|
||||
|
@ -664,14 +655,14 @@ static BOOL CALLBACK LicenseProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM
|
|||
static HWND hwLicense;
|
||||
if (uMsg == WM_INITDIALOG)
|
||||
{
|
||||
EDITSTREAM es={(DWORD)STR(LANG_LICENSE_DATA),0,StreamLicense};
|
||||
EDITSTREAM es={(DWORD)LANG_STR(LANG_LICENSE_DATA),0,StreamLicense};
|
||||
hwLicense=GetUIItem(IDC_EDIT1);
|
||||
SendMessage(hwLicense,EM_AUTOURLDETECT,TRUE,0);
|
||||
SendMessage(hwLicense,EM_SETBKGNDCOLOR,0,g_inst_header->license_bg>=0?g_inst_header->license_bg:GetSysColor(COLOR_BTNFACE));
|
||||
SendMessage(hwLicense,EM_SETEVENTMASK,0,ENM_LINK|ENM_KEYEVENTS); //XGE 8th September 2002 Or'd in ENM_KEYEVENTS
|
||||
dwRead=0;
|
||||
SendMessage(hwLicense,EM_STREAMIN,(((char*)es.dwCookie)[0]=='{')?SF_RTF:SF_TEXT,(LPARAM)&es);
|
||||
SetUITextFromLang(IDC_INTROTEXT,LANGID_LICENSE_TEXT);
|
||||
SetUITextFromLang(IDC_INTROTEXT,LANG_LICENSE_TEXT);
|
||||
//XGE 5th September 2002 - place the initial focus in the richedit control
|
||||
gDontFookWithFocus++;
|
||||
SetFocus(hwLicense);
|
||||
|
@ -728,8 +719,8 @@ static BOOL CALLBACK UninstProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
|
|||
{
|
||||
if (uMsg == WM_INITDIALOG)
|
||||
{
|
||||
SetUITextFromLang(IDC_INTROTEXT,LANGID_UNINST_TEXT);
|
||||
SetUITextFromLang(IDC_UNINSTFROM,LANGID_UNINST_SUBTEXT);
|
||||
SetUITextFromLang(IDC_INTROTEXT,LANG_UNINST_TEXT);
|
||||
SetUITextFromLang(IDC_UNINSTFROM,LANG_UNINST_SUBTEXT);
|
||||
SetUITextNT(IDC_EDIT1,state_install_directory);
|
||||
}
|
||||
return HandleStaticBkColor();
|
||||
|
@ -769,9 +760,9 @@ static BOOL CALLBACK DirProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
|||
}
|
||||
#endif
|
||||
SetUITextNT(IDC_DIR,state_install_directory);
|
||||
SetUITextFromLang(IDC_INTROTEXT,LANGID_DIR_TEXT);
|
||||
SetUITextFromLang(IDC_BROWSE,LANGID_BTN_BROWSE);
|
||||
SetUITextFromLang(IDC_SELDIRTEXT,LANGID_DIR_SUBTEXT);
|
||||
SetUITextFromLang(IDC_INTROTEXT,LANG_DIR_TEXT);
|
||||
SetUITextFromLang(IDC_BROWSE,LANG_BTN_BROWSE);
|
||||
SetUITextFromLang(IDC_SELDIRTEXT,LANG_DIR_SUBTEXT);
|
||||
}
|
||||
if (uMsg == WM_COMMAND)
|
||||
{
|
||||
|
@ -862,12 +853,12 @@ static BOOL CALLBACK DirProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
|||
|
||||
// Added by Amir Szekely 24th July 2002
|
||||
// Allows 'SpaceTexts none'
|
||||
if (LANG_SPACE_REQ) {
|
||||
inttosizestr(total,mystrcpy(s,STR(LANG_SPACE_REQ)));
|
||||
if (LANG_STR_TAB(LANG_SPACE_REQ)) {
|
||||
inttosizestr(total,mystrcpy(s,LANG_STR(LANG_SPACE_REQ)));
|
||||
SetUITextNT(IDC_SPACEREQUIRED,s);
|
||||
if (available != -1)
|
||||
{
|
||||
inttosizestr(available,mystrcpy(s,STR(LANG_SPACE_AVAIL)));
|
||||
inttosizestr(available,mystrcpy(s,LANG_STR(LANG_SPACE_AVAIL)));
|
||||
SetUITextNT(IDC_SPACEAVAILABLE,s);
|
||||
}
|
||||
else
|
||||
|
@ -967,9 +958,9 @@ static BOOL CALLBACK SelProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
|||
hTreeItems=(HTREEITEM*)my_GlobalAlloc(sizeof(HTREEITEM)*num_sections);
|
||||
|
||||
hBMcheck1=LoadBitmap(g_hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
|
||||
SetUITextFromLang(IDC_INTROTEXT,LANGID_COMP_TEXT);
|
||||
SetUITextFromLang(IDC_TEXT1,LANGID_COMP_SUBTEXT(0));
|
||||
SetUITextFromLang(IDC_TEXT2,LANGID_COMP_SUBTEXT(1));
|
||||
SetUITextFromLang(IDC_INTROTEXT,LANG_COMP_TEXT);
|
||||
SetUITextFromLang(IDC_TEXT1,LANG_COMP_SUBTEXT(0));
|
||||
SetUITextFromLang(IDC_TEXT2,LANG_COMP_SUBTEXT(1));
|
||||
|
||||
oldTreeWndProc=SetWindowLong(hwndTree1,GWL_WNDPROC,(DWORD)newTreeWndProc);
|
||||
|
||||
|
@ -993,7 +984,7 @@ static BOOL CALLBACK SelProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
|||
{
|
||||
SendMessage(hwndCombo1,CB_ADDSTRING,0,(LPARAM)GetStringFromStringTab(g_inst_header->install_types_ptr[m_num_insttypes]));
|
||||
}
|
||||
if (g_inst_header->no_custom_instmode_flag!=1) SendMessage(hwndCombo1,CB_ADDSTRING,0,(LPARAM)STR(LANG_COMP_CUSTOM));
|
||||
if (g_inst_header->no_custom_instmode_flag!=1) SendMessage(hwndCombo1,CB_ADDSTRING,0,(LPARAM)LANG_STR(LANG_COMP_CUSTOM));
|
||||
SendMessage(hwndCombo1,CB_SETCURSEL,m_whichcfg,0);
|
||||
}
|
||||
|
||||
|
@ -1251,7 +1242,7 @@ static BOOL CALLBACK SelProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
|||
ShowWindow(GetUIItem(IDC_TEXT2),c);
|
||||
}
|
||||
|
||||
if (LANG_SPACE_REQ) {
|
||||
if (LANG_STR_TAB(LANG_SPACE_REQ)) {
|
||||
int x,total;
|
||||
char s[128];
|
||||
for (total=x=0; x < num_sections; x ++)
|
||||
|
@ -1259,7 +1250,7 @@ static BOOL CALLBACK SelProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
|||
if (g_inst_section[x].default_state&DFS_SET)
|
||||
total+=g_inst_section[x].size_kb;
|
||||
}
|
||||
inttosizestr(total,mystrcpy(s,STR(LANG_SPACE_REQ)));
|
||||
inttosizestr(total,mystrcpy(s,LANG_STR(LANG_SPACE_REQ)));
|
||||
SetUITextNT(IDC_SPACEREQUIRED,s);
|
||||
}
|
||||
}
|
||||
|
@ -1271,9 +1262,9 @@ static BOOL CALLBACK SelProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
|||
|
||||
int ui_st_updateflag=0x3;
|
||||
|
||||
void NSISCALL update_status_text_from_lang(langid_t id, const char *text2)
|
||||
void NSISCALL update_status_text_from_lang(int id, const char *text2)
|
||||
{
|
||||
update_status_text(STR(GetLangString(id)), text2);
|
||||
update_status_text(LANG_STR(id), text2);
|
||||
}
|
||||
|
||||
void NSISCALL update_status_text(const char *text1, const char *text2)
|
||||
|
@ -1358,7 +1349,7 @@ static BOOL CALLBACK InstProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||
#endif
|
||||
{
|
||||
int x;
|
||||
log_printf3("New install of \"%s\" to \"%s\"",STR(LANG_NAME),state_install_directory);
|
||||
log_printf3("New install of \"%s\" to \"%s\"",LANG_STR(LANG_NAME),state_install_directory);
|
||||
for (x=0; x < num_sections; x ++)
|
||||
{
|
||||
#ifdef NSIS_CONFIG_COMPONENTPAGE
|
||||
|
@ -1380,7 +1371,7 @@ static BOOL CALLBACK InstProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||
if (lb_fg >= 0) {
|
||||
ListView_SetTextColor(insthwnd, lb_fg);
|
||||
}
|
||||
SetWindowText(insthwndbutton,STR(LANG_BTN_DETAILS));
|
||||
SetWindowText(insthwndbutton,LANG_STR(LANG_BTN_DETAILS));
|
||||
if (g_inst_cmnheader->show_details)
|
||||
{
|
||||
ShowWindow(insthwndbutton,SW_HIDE);
|
||||
|
@ -1423,8 +1414,8 @@ static BOOL CALLBACK InstProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||
{
|
||||
ShowWindow(g_hwnd,SW_SHOWNA);
|
||||
mystrcpy(g_tmp,g_caption);
|
||||
process_string_from_lang(g_tmp+mystrlen(g_tmp),LANGID_SUBCAPTION(g_max_page+1));
|
||||
update_status_text_from_lang(LANGID_COMPLETED,"");
|
||||
process_string_fromtab(g_tmp+mystrlen(g_tmp),LANG_SUBCAPTION(g_max_page+1));
|
||||
update_status_text_from_lang(LANG_COMPLETED,"");
|
||||
SetWindowText(g_hwnd,g_tmp);
|
||||
SetFocus(h);
|
||||
}
|
||||
|
@ -1450,7 +1441,7 @@ static BOOL CALLBACK InstProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
|
|||
{
|
||||
DWORD pos = GetMessagePos();
|
||||
HMENU menu = CreatePopupMenu();
|
||||
AppendMenu(menu,MF_STRING,1,GetStringFromStringTab(GetLangString(LANGID_COPYDETAILS)));
|
||||
AppendMenu(menu,MF_STRING,1,LANG_STR(LANG_COPYDETAILS));
|
||||
if (1==TrackPopupMenu(
|
||||
menu,
|
||||
TPM_NONOTIFY|TPM_RETURNCMD,
|
||||
|
|
|
@ -234,10 +234,10 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
log_printf3("CreateDirectory: \"%s\" (%d)",buf1,parm1);
|
||||
if (parm1)
|
||||
{
|
||||
update_status_text_from_lang(LANGID_OUTPUTDIR,buf1);
|
||||
update_status_text_from_lang(LANG_OUTPUTDIR,buf1);
|
||||
mystrcpy(state_output_directory,buf1);
|
||||
}
|
||||
else update_status_text_from_lang(LANGID_CREATEDIR,buf1);
|
||||
else update_status_text_from_lang(LANG_CREATEDIR,buf1);
|
||||
{
|
||||
char *tp;
|
||||
char *p;
|
||||
|
@ -306,7 +306,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
log_printf2("Rename: %s",buf3);
|
||||
if (MoveFile(buf0,buf1))
|
||||
{
|
||||
update_status_text_from_lang(LANGID_RENAME,buf3);
|
||||
update_status_text_from_lang(LANG_RENAME,buf3);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -317,7 +317,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
exec_rebootflag++;
|
||||
#endif
|
||||
MoveFileOnReboot(buf0,buf1);
|
||||
update_status_text_from_lang(LANGID_RENAMEONREBOOT,buf3);
|
||||
update_status_text_from_lang(LANG_RENAMEONREBOOT,buf3);
|
||||
log_printf2("Rename on reboot: %s",buf3);
|
||||
}
|
||||
else
|
||||
|
@ -415,7 +415,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
{
|
||||
if (overwriteflag)
|
||||
{
|
||||
update_status_text_from_lang(LANGID_SKIPPED,buf3);
|
||||
update_status_text_from_lang(LANG_SKIPPED,buf3);
|
||||
if (overwriteflag==2) exec_errorflag++;
|
||||
log_printf3("File: skipped: \"%s\" (overwriteflag=%d)",buf0,overwriteflag);
|
||||
return 0;
|
||||
|
@ -424,7 +424,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
mystrcpy(buf2,g_usrvars[0]);//save $0
|
||||
mystrcpy(g_usrvars[0],buf0);
|
||||
|
||||
process_string_from_lang(buf1,LANGID_FILEERR);
|
||||
process_string_fromtab(buf1,LANG_FILEERR);
|
||||
mystrcpy(g_usrvars[0],buf2); // restore $0
|
||||
|
||||
switch (my_MessageBox(buf1,MB_ABORTRETRYIGNORE|MB_ICONSTOP))
|
||||
|
@ -438,12 +438,12 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
return 0;
|
||||
default:
|
||||
log_printf("File: error, user abort");
|
||||
update_status_text_from_lang(LANGID_CANTWRITE,buf0);
|
||||
update_status_text_from_lang(LANG_CANTWRITE,buf0);
|
||||
return EXEC_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
update_status_text_from_lang(LANGID_EXTRACT,buf3);
|
||||
update_status_text_from_lang(LANG_EXTRACT,buf3);
|
||||
ret=GetCompressedDataFromDataBlock(parm2,hOut);
|
||||
|
||||
log_printf3("File: wrote %d to \"%s\"",ret,buf0);
|
||||
|
@ -457,11 +457,11 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
{
|
||||
if (ret == -2)
|
||||
{
|
||||
wsprintf(buf0,"%s%s",STR(LANG_ERRORWRITING),buf3);
|
||||
wsprintf(buf0,"%s%s",LANG_STR(LANG_ERRORWRITING),buf3);
|
||||
}
|
||||
else
|
||||
{
|
||||
mystrcpy(buf0,STR(LANG_ERRORDECOMPRESSING));
|
||||
mystrcpy(buf0,LANG_STR(LANG_ERRORDECOMPRESSING));
|
||||
}
|
||||
log_printf2("%s",buf0);
|
||||
my_MessageBox(buf0,MB_OK|MB_ICONSTOP);
|
||||
|
@ -494,7 +494,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
if (DeleteFile(buf1))
|
||||
{
|
||||
log_printf2("Delete: DeleteFile(\"%s\")",buf1);
|
||||
update_status_text_from_lang(LANGID_DELETEFILE,buf1);
|
||||
update_status_text_from_lang(LANG_DELETEFILE,buf1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -505,7 +505,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
exec_rebootflag++;
|
||||
#endif
|
||||
log_printf2("Delete: DeleteFile on Reboot(\"%s\")",buf1);
|
||||
update_status_text_from_lang(LANGID_DELETEONREBOOT,buf1);
|
||||
update_status_text_from_lang(LANG_DELETEONREBOOT,buf1);
|
||||
MoveFileOnReboot(buf1,NULL);
|
||||
}
|
||||
else
|
||||
|
@ -802,7 +802,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
char *buf1=process_string_fromparm_tobuf(0x11);
|
||||
char *buf2=process_string_fromparm_tobuf(0x22);
|
||||
wsprintf(buf3,"%s %s",buf0,buf1);
|
||||
update_status_text_from_lang(LANGID_EXECSHELL, buf3);
|
||||
update_status_text_from_lang(LANG_EXECSHELL, buf3);
|
||||
x=(int)ShellExecute(g_hwnd,buf0[0]?buf0:NULL,buf1,buf2[0]?buf2:NULL,state_output_directory,parm3);
|
||||
if (x < 33)
|
||||
{
|
||||
|
@ -822,7 +822,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
HANDLE hProc;
|
||||
char *buf0=process_string_fromparm_tobuf(0x00);
|
||||
log_printf2("Exec: command=\"%s\"",buf0);
|
||||
update_status_text_from_lang(LANGID_EXECUTE,buf0);
|
||||
update_status_text_from_lang(LANG_EXECUTE,buf0);
|
||||
|
||||
hProc=myCreateProcess(buf0,*state_output_directory?state_output_directory:NULL);
|
||||
|
||||
|
@ -949,7 +949,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
}
|
||||
else
|
||||
{
|
||||
update_status_text_from_lang(LANGID_CANNOTFINDSYMBOL,buf1);
|
||||
update_status_text_from_lang(LANG_CANNOTFINDSYMBOL,buf1);
|
||||
log_printf3("Error registering DLL: %s not found in %s",buf1,buf0);
|
||||
}
|
||||
if (!parm3) FreeLibrary(h);
|
||||
|
@ -957,14 +957,14 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
}
|
||||
else
|
||||
{
|
||||
update_status_text_from_lang(LANGID_COULDNOTLOAD,buf0);
|
||||
update_status_text_from_lang(LANG_COULDNOTLOAD,buf0);
|
||||
log_printf2("Error registering DLL: Could not load %s",buf0);
|
||||
}
|
||||
OleUninitialize();
|
||||
}
|
||||
else
|
||||
{
|
||||
update_status_text_from_lang(LANGID_NOOLE,buf0);
|
||||
update_status_text_from_lang(LANG_NOOLE,buf0);
|
||||
log_printf("Error registering DLL: Could not initialize OLE");
|
||||
}
|
||||
}
|
||||
|
@ -1023,11 +1023,11 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
if (rv)
|
||||
{
|
||||
exec_errorflag++;
|
||||
update_status_text_from_lang(LANGID_ERRORCREATINGSHORTCUT,buf2);
|
||||
update_status_text_from_lang(LANG_ERRORCREATINGSHORTCUT,buf2);
|
||||
}
|
||||
else
|
||||
{
|
||||
update_status_text_from_lang(LANGID_CREATESHORTCUT,buf2);
|
||||
update_status_text_from_lang(LANG_CREATESHORTCUT,buf2);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
@ -1045,7 +1045,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
buf0[mystrlen(buf0)+1]=0;
|
||||
buf1[mystrlen(buf1)+1]=0;
|
||||
|
||||
wsprintf(buf2,"%s%s",STR(LANG_COPYTO),buf1);
|
||||
wsprintf(buf2,"%s%s",LANG_STR(LANG_COPYTO),buf1);
|
||||
|
||||
op.pFrom=buf0;
|
||||
op.pTo=buf1;
|
||||
|
@ -1055,7 +1055,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
res=SHFileOperation(&op);
|
||||
if (res)
|
||||
{ // some of these changes were from Edgewise (wiked_edge@yahoo.com)
|
||||
update_status_text_from_lang(LANGID_COPYFAILED,"");
|
||||
update_status_text_from_lang(LANG_COPYFAILED,"");
|
||||
exec_errorflag++;
|
||||
}
|
||||
}
|
||||
|
@ -1453,11 +1453,11 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
log_printf3("created uninstaller: %d, \"%s\"",ret,buf1);
|
||||
if (ret < 0)
|
||||
{
|
||||
update_status_text_from_lang(LANGID_ERRORCREATING,buf0);
|
||||
update_status_text_from_lang(LANG_ERRORCREATING,buf0);
|
||||
DeleteFile(buf1);
|
||||
}
|
||||
else
|
||||
update_status_text_from_lang(LANGID_CREATEDUNINST,buf0);
|
||||
update_status_text_from_lang(LANG_CREATEDUNINST,buf0);
|
||||
}
|
||||
return 0;
|
||||
#endif//NSIS_CONFIG_UNINSTALL_SUPPORT
|
||||
|
@ -1528,6 +1528,6 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
|||
return 0;
|
||||
#endif // NSIS_CONFIG_PLUGIN_SUPPORT
|
||||
}
|
||||
my_MessageBox(STR(LANG_INSTCORRUPTED),MB_OK|MB_ICONSTOP);
|
||||
my_MessageBox(LANG_STR(LANG_INSTCORRUPTED),MB_OK|MB_ICONSTOP);
|
||||
return EXEC_ERROR;
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include "util.h"
|
||||
#include "state.h"
|
||||
#include "resource.h"
|
||||
#include "lang.h"
|
||||
|
||||
#ifdef NSIS_CONFIG_COMPRESSION_SUPPORT
|
||||
#ifdef NSIS_COMPRESS_USE_ZLIB
|
||||
|
@ -112,11 +113,7 @@ const char * NSISCALL loadHeaders(void)
|
|||
|
||||
const char * NSISCALL GetStringFromStringTab(int offs)
|
||||
{
|
||||
/*if (offs < 0) {
|
||||
wsprintf(ps_tmpbuf, "my first user madasd %d->%d which should be %d\n%d", offs, cur_user_strings_table[-(offs+1)], cur_user_strings_table[0], LANG_COMP_TEXT);
|
||||
my_MessageBox(ps_tmpbuf, MB_OK);
|
||||
}*/
|
||||
return g_db_strtab+(offs < 0 ? cur_user_strings_table[-(offs+1)] : offs);
|
||||
return g_db_strtab+(offs < 0 ? LANG_STR_TAB(offs) : offs);
|
||||
}
|
||||
|
||||
#define IBUFSIZE 16384
|
||||
|
|
|
@ -279,7 +279,7 @@ typedef struct
|
|||
// Settings common to both installers and uninstallers
|
||||
typedef struct
|
||||
{
|
||||
int str_tables_num; // number of strings tables in array
|
||||
int language_tables_num; // number of strings tables in array
|
||||
int language_table_size; // size of each language table
|
||||
|
||||
int num_entries; // total number of entries
|
||||
|
|
|
@ -37,133 +37,77 @@
|
|||
// these IDs fall between -128 to +127 and compile to tiny 2-byte PUSH <8-bit>
|
||||
// instructions when being passed to the functions.
|
||||
|
||||
typedef void *langid_t; // Just so compiler can warn if an ID is given to a
|
||||
// function expecting a string offset and vice-versa.
|
||||
|
||||
// Please note that all LANG_* define the offset not the string itself.
|
||||
// To get the string itself use process_string_fromtab, GetStringFromStringTab or STR().
|
||||
// To get the string itself use process_string_fromtab, GetStringFromStringTab or LANG_STR().
|
||||
|
||||
#define STR(x) GetStringFromStringTab(x)
|
||||
#define LANG_STR(x) GetStringFromStringTab(x)
|
||||
#define LANG_STR_TAB(x) cur_language_table[-((int)x+1)]
|
||||
|
||||
#define INSTALL_STR(x) (((installer_strings *)cur_install_strings_table)->x)
|
||||
#define INSTALL_ID(x) ((langid_t)((~(UINT)0) - FIELD_OFFSET(installer_strings, x) / sizeof(int)))
|
||||
#define INSTALL_STR(x) (0 - ((sizeof(common_strings) + FIELD_OFFSET(installer_strings, x)) / sizeof(int) + 1))
|
||||
//#define INSTALL_STR(x) (-(int)((FIELD_OFFSET(installer_strings, x) / sizeof(int)) + (sizeof(common_strings) / sizeof(int))))
|
||||
|
||||
// Installer specific strings
|
||||
#define LANG_BTN_BACK (INSTALL_STR(backbutton))
|
||||
#define LANGID_BTN_BACK (INSTALL_ID(backbutton))
|
||||
#define LANG_BTN_NEXT (INSTALL_STR(nextbutton))
|
||||
#define LANGID_BTN_NEXT (INSTALL_ID(nextbutton))
|
||||
#define LANG_BTN_BROWSE (INSTALL_STR(browse))
|
||||
#define LANGID_BTN_BROWSE (INSTALL_ID(browse))
|
||||
#define LANG_BTN_INSTALL (INSTALL_STR(installbutton))
|
||||
#define LANGID_BTN_INSTALL (INSTALL_ID(installbutton))
|
||||
#define LANG_SPACE_REQ (INSTALL_STR(spacerequired))
|
||||
#define LANGID_SPACE_REQ (INSTALL_ID(spacerequired))
|
||||
#define LANG_SPACE_AVAIL (INSTALL_STR(spaceavailable))
|
||||
#define LANGID_SPACE_AVAIL (INSTALL_ID(spaceavailable))
|
||||
#define LANG_COMP_CUSTOM (INSTALL_STR(custom))
|
||||
#define LANGID_COMP_CUSTOM (INSTALL_ID(custom))
|
||||
#define LANG_DIR_TEXT (INSTALL_STR(text))
|
||||
#define LANGID_DIR_TEXT (INSTALL_ID(text))
|
||||
#define LANG_DIR_SUBTEXT (INSTALL_STR(dirsubtext))
|
||||
#define LANGID_DIR_SUBTEXT (INSTALL_ID(dirsubtext))
|
||||
#define LANG_COMP_TEXT (INSTALL_STR(componenttext))
|
||||
#define LANGID_COMP_TEXT (INSTALL_ID(componenttext))
|
||||
#define LANG_COMP_SUBTEXT(x) (INSTALL_STR(componentsubtext[x]))
|
||||
#define LANGID_COMP_SUBTEXT(x) (INSTALL_ID(componentsubtext[x]))
|
||||
#define LANG_LICENSE_TEXT (INSTALL_STR(licensetext))
|
||||
#define LANGID_LICENSE_TEXT (INSTALL_ID(licensetext))
|
||||
#define LANG_LICENSE_DATA (INSTALL_STR(licensedata))
|
||||
#define LANGID_LICENSE_DATA (INSTALL_ID(licensedata))
|
||||
#define LANG_BTN_LICENSE (INSTALL_STR(licensebutton))
|
||||
#define LANGID_BTN_LICENSE (INSTALL_ID(licensebutton))
|
||||
|
||||
#define UNINSTALL_STR(x) (((uninstall_strings *)cur_install_strings_table)->x)
|
||||
#define UNINSTALL_ID(x) ((langid_t)((~(UINT)0) - FIELD_OFFSET(uninstall_strings, x) / sizeof(int)))
|
||||
#define UNINSTALL_STR(x) (0 - ((sizeof(common_strings) + FIELD_OFFSET(uninstall_strings, x)) / sizeof(int) + 1))
|
||||
|
||||
// Uninstall specific strings
|
||||
#define LANG_BTN_UNINST (UNINSTALL_STR(uninstbutton))
|
||||
#define LANGID_BTN_UNINST (UNINSTALL_ID(uninstbutton))
|
||||
#define LANG_UNINST_TEXT (UNINSTALL_STR(uninstalltext))
|
||||
#define LANGID_UNINST_TEXT (UNINSTALL_ID(uninstalltext))
|
||||
#define LANG_UNINST_SUBTEXT (UNINSTALL_STR(uninstalltext2))
|
||||
#define LANGID_UNINST_SUBTEXT (UNINSTALL_ID(uninstalltext2))
|
||||
|
||||
#define COMMON_STR(x) (cur_common_strings_table->x)
|
||||
#define COMMON_ID(x) ((langid_t)(FIELD_OFFSET(common_strings, x) / sizeof(int)))
|
||||
#define COMMON_STR(x) (-1 - (int)(FIELD_OFFSET(common_strings, x) / sizeof(int)))
|
||||
|
||||
// Common strings
|
||||
#define LANG_BRANDING (COMMON_STR(branding))
|
||||
#define LANGID_BRANDING (COMMON_ID(branding))
|
||||
#define LANG_BTN_CANCEL (COMMON_STR(cancelbutton))
|
||||
#define LANGID_BTN_CANCEL (COMMON_ID(cancelbutton))
|
||||
#define LANG_BTN_DETAILS (COMMON_STR(showdetailsbutton))
|
||||
#define LANGID_BTN_DETAILS (COMMON_ID(showdetailsbutton))
|
||||
#define LANG_COMPLETED (COMMON_STR(completed))
|
||||
#define LANGID_COMPLETED (COMMON_ID(completed))
|
||||
#define LANG_BTN_CLOSE (COMMON_STR(closebutton))
|
||||
#define LANGID_BTN_CLOSE (COMMON_ID(closebutton))
|
||||
#define LANG_NAME (COMMON_STR(name))
|
||||
#define LANGID_NAME (COMMON_ID(name))
|
||||
#define LANG_CAPTION (COMMON_STR(caption))
|
||||
#define LANGID_CAPTION (COMMON_ID(caption))
|
||||
#define LANG_SUBCAPTION(x) (COMMON_STR(subcaptions[x]))
|
||||
#define LANGID_SUBCAPTION(x) (COMMON_ID(subcaptions[x]))
|
||||
|
||||
// instruction strings
|
||||
#define LANG_FILEERR (COMMON_STR(fileerrtext))
|
||||
#define LANGID_FILEERR (COMMON_ID(fileerrtext))
|
||||
#define LANG_DELETEFILE (COMMON_STR(del_file))
|
||||
#define LANGID_DELETEFILE (COMMON_ID(del_file))
|
||||
#define LANG_DLLREGERROR (COMMON_STR(err_reg_dll))
|
||||
#define LANGID_DLLREGERROR (COMMON_ID(err_reg_dll))
|
||||
#define LANG_REMOVEDIR (COMMON_STR(remove_dir))
|
||||
#define LANGID_REMOVEDIR (COMMON_ID(remove_dir))
|
||||
#define LANG_OUTPUTDIR (COMMON_STR(output_dir))
|
||||
#define LANGID_OUTPUTDIR (COMMON_ID(output_dir))
|
||||
#define LANG_CREATEDIR (COMMON_STR(create_dir))
|
||||
#define LANGID_CREATEDIR (COMMON_ID(create_dir))
|
||||
#define LANG_RENAME (COMMON_STR(rename))
|
||||
#define LANGID_RENAME (COMMON_ID(rename))
|
||||
#define LANG_RENAMEONREBOOT (COMMON_STR(rename_on_reboot))
|
||||
#define LANGID_RENAMEONREBOOT (COMMON_ID(rename_on_reboot))
|
||||
#define LANG_SKIPPED (COMMON_STR(skipped))
|
||||
#define LANGID_SKIPPED (COMMON_ID(skipped))
|
||||
#define LANG_CANTWRITE (COMMON_STR(cant_write))
|
||||
#define LANGID_CANTWRITE (COMMON_ID(cant_write))
|
||||
#define LANG_EXTRACT (COMMON_STR(extract))
|
||||
#define LANGID_EXTRACT (COMMON_ID(extract))
|
||||
#define LANG_ERRORWRITING (COMMON_STR(err_writing))
|
||||
#define LANGID_ERRORWRITING (COMMON_ID(err_writing))
|
||||
#define LANG_ERRORDECOMPRESSING (COMMON_STR(err_decompressing))
|
||||
#define LANGID_ERRORDECOMPRESSING (COMMON_ID(err_decompressing))
|
||||
#define LANG_DELETEONREBOOT (COMMON_STR(del_on_reboot))
|
||||
#define LANGID_DELETEONREBOOT (COMMON_ID(del_on_reboot))
|
||||
#define LANG_EXECSHELL (COMMON_STR(exec_shell))
|
||||
#define LANGID_EXECSHELL (COMMON_ID(exec_shell))
|
||||
#define LANG_EXECUTE (COMMON_STR(exec))
|
||||
#define LANGID_EXECUTE (COMMON_ID(exec))
|
||||
#define LANG_CANNOTFINDSYMBOL (COMMON_STR(symbol_not_found))
|
||||
#define LANGID_CANNOTFINDSYMBOL (COMMON_ID(symbol_not_found))
|
||||
#define LANG_COULDNOTLOAD (COMMON_STR(could_not_load))
|
||||
#define LANGID_COULDNOTLOAD (COMMON_ID(could_not_load))
|
||||
#define LANG_NOOLE (COMMON_STR(no_ole))
|
||||
#define LANGID_NOOLE (COMMON_ID(no_ole))
|
||||
#define LANG_ERRORCREATINGSHORTCUT (COMMON_STR(err_creating_shortcut))
|
||||
#define LANGID_ERRORCREATINGSHORTCUT (COMMON_ID(err_creating_shortcut))
|
||||
#define LANG_CREATESHORTCUT (COMMON_STR(create_shortcut))
|
||||
#define LANGID_CREATESHORTCUT (COMMON_ID(create_shortcut))
|
||||
#define LANG_COPYTO (COMMON_STR(copy_to))
|
||||
#define LANGID_COPYTO (COMMON_ID(copy_to))
|
||||
#define LANG_COPYFAILED (COMMON_STR(copy_failed))
|
||||
#define LANGID_COPYFAILED (COMMON_ID(copy_failed))
|
||||
#define LANG_ERRORCREATING (COMMON_STR(err_creating))
|
||||
#define LANGID_ERRORCREATING (COMMON_ID(err_creating))
|
||||
#define LANG_CREATEDUNINST (COMMON_STR(created_uninst))
|
||||
#define LANGID_CREATEDUNINST (COMMON_ID(created_uninst))
|
||||
#define LANG_INSTCORRUPTED (COMMON_STR(inst_corrupted))
|
||||
#define LANGID_INSTCORRUPTED (COMMON_ID(inst_corrupted))
|
||||
#define LANG_COPYDETAILS (COMMON_STR(copy_details))
|
||||
#define LANGID_COPYDETAILS (COMMON_ID(copy_details))
|
||||
|
||||
#endif//_NSIS_LANG_H_
|
||||
|
|
|
@ -1,16 +1,12 @@
|
|||
#ifndef _UI_H_
|
||||
#define _UI_H_
|
||||
|
||||
#include "lang.h"
|
||||
|
||||
// Added by Amir Szekely 3rd August 2002
|
||||
extern char *language_tables;
|
||||
extern common_strings *cur_common_strings_table;
|
||||
extern char *cur_install_strings_table; // installer_strings/uninstall_strings depending on installer type
|
||||
extern int *cur_user_strings_table;
|
||||
extern int *cur_language_table;
|
||||
|
||||
int NSISCALL ui_doinstall(void);
|
||||
void NSISCALL update_status_text_from_lang(langid_t id, const char *text2);
|
||||
void NSISCALL update_status_text_from_lang(int id, const char *text2);
|
||||
void NSISCALL update_status_text(const char *text1, const char *text2);
|
||||
extern int ui_st_updateflag;
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ void NSISCALL doRMDir(char *buf, int recurse)
|
|||
if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) doRMDir(buf,recurse);
|
||||
else
|
||||
{
|
||||
update_status_text_from_lang(LANGID_DELETEFILE,buf);
|
||||
update_status_text_from_lang(LANG_DELETEFILE,buf);
|
||||
if (fd.dwFileAttributes & FILE_ATTRIBUTE_READONLY)
|
||||
SetFileAttributes(buf,fd.dwFileAttributes^FILE_ATTRIBUTE_READONLY);
|
||||
DeleteFile(buf);
|
||||
|
@ -82,7 +82,7 @@ void NSISCALL doRMDir(char *buf, int recurse)
|
|||
buf[i]=0; // fix buffer
|
||||
}
|
||||
log_printf2("RMDir: RemoveDirectory(\"%s\")",buf);
|
||||
update_status_text_from_lang(LANGID_REMOVEDIR,buf);
|
||||
update_status_text_from_lang(LANG_REMOVEDIR,buf);
|
||||
RemoveDirectory(buf);
|
||||
}
|
||||
#endif//NSIS_SUPPORT_RMDIR
|
||||
|
@ -336,19 +336,6 @@ char * NSISCALL process_string_fromtab(char *out, int offs)
|
|||
return lstrcpyn(out,process_string(ps_tmpbuf,GetStringFromStringTab(offs)),NSIS_MAX_STRLEN);
|
||||
}
|
||||
|
||||
char * NSISCALL process_string_from_lang(char *out, langid_t id)
|
||||
{
|
||||
return process_string_fromtab(out, GetLangString(id));
|
||||
}
|
||||
|
||||
// Retrieve the string offset associated with the language string ID given
|
||||
int NSISCALL GetLangString(langid_t id)
|
||||
{
|
||||
return (int)id < 0 ?
|
||||
*((int *)cur_install_strings_table - 1 - (int)id) :
|
||||
*((int *)cur_common_strings_table + (int)id);
|
||||
}
|
||||
|
||||
void NSISCALL myitoa(char *s, int d) { wsprintf(s,"%d",d); }
|
||||
|
||||
int NSISCALL myatoi(char *s)
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
#include "config.h"
|
||||
#include "lang.h"
|
||||
|
||||
extern char ps_tmpbuf[NSIS_MAX_STRLEN*2];
|
||||
char * NSISCALL process_string(char *out, const char *in);
|
||||
char * NSISCALL process_string_fromtab(char *out, int offs);
|
||||
char * NSISCALL process_string_from_lang(char *out, langid_t id);
|
||||
int NSISCALL GetLangString(langid_t id);
|
||||
void NSISCALL myRegGetStr(HKEY root, const char *sub, const char *name, char *out);
|
||||
int NSISCALL myatoi(char *s);
|
||||
void NSISCALL myitoa(char *s, int d);
|
||||
|
|
|
@ -267,7 +267,7 @@ int CEXEBuild::WriteStringTables() {
|
|||
if (build_userlangstrings.getnum())
|
||||
build_langtables.add(string_tables[i]->user_strings.get(), string_tables[i]->user_strings.getlen());
|
||||
}
|
||||
build_header.common.str_tables_num = st_num;
|
||||
build_header.common.language_tables_num = st_num;
|
||||
build_header.common.language_table_size = sizeof(LANGID) + sizeof(common_strings) + sizeof(installer_strings) + (build_userlangstrings.getnum() * sizeof(int));
|
||||
|
||||
for (i = 0; i < st_num; i++) {
|
||||
|
@ -277,7 +277,7 @@ int CEXEBuild::WriteStringTables() {
|
|||
if (ubuild_userlangstrings.getnum())
|
||||
ubuild_langtables.add(string_tables[i]->user_ustrings.get(), string_tables[i]->user_ustrings.getlen());
|
||||
}
|
||||
build_uninst.common.str_tables_num = st_num;
|
||||
build_uninst.common.language_tables_num = st_num;
|
||||
build_uninst.common.language_table_size = sizeof(LANGID) + sizeof(common_strings) + sizeof(uninstall_strings) + (ubuild_userlangstrings.getnum() * sizeof(int));
|
||||
|
||||
SCRIPT_MSG("Done!\n");
|
||||
|
|
|
@ -2957,7 +2957,7 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char
|
|||
ent.offsets[0]=line.gettoken_enum(1,usrvars);
|
||||
int k=line.gettoken_enum(2,rootkeys[0]);
|
||||
if (k == -1) k=line.gettoken_enum(2,rootkeys[1]);
|
||||
if (!ent.offsets[0] || k == -1) PRINTHELP()
|
||||
if (ent.offsets[0] == -1 || k == -1) PRINTHELP()
|
||||
ent.offsets[1]=(int)rootkey_tab[k];
|
||||
ent.offsets[2]=add_string(line.gettoken_str(3));
|
||||
ent.offsets[3]=add_string(line.gettoken_str(4));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue