Subversion Repositories filter_foundry

Compare Revisions

Regard whitespace Rev 494 → Rev 495

/trunk/language.c
20,6 → 20,15
 
#include "ff.h"
 
void strcpy_advance_id(TCHAR** str, int msgid) {
TCHAR tmp[1000];
 
FF_GetMsg(*str, msgid);
 
FF_GetMsg(&tmp[0], msgid);
*str += xstrlen(&tmp[0]);
}
 
// Attention: No bounds checking!
void FF_GetMsg(TCHAR* ret, int MsgId) {
#ifdef WIN_ENV
/trunk/language.h
245,12 → 245,13
 
#define MSG_ABOUT_LATEST_VERSION_FROM_ID 56
#define MSG_ABOUT_LATEST_VERSION_FROM_ENUS "Latest version available from:"
#define MSG_ABOUT_LATEST_VERSION_FROM_DEDE "Aktuelle Version herunterladen:"
#define MSG_ABOUT_LATEST_VERSION_FROM_DEDE "Aktuelle Version hier herunterladen:"
 
#define MSG_ABOUT_CONTACT_AUTHOR_ID 57
#define MSG_ABOUT_CONTACT_AUTHOR_ENUS "Please contact the author with any bug reports,\nsuggestions or comments.\nIf you use this program and like it, please consider\nmaking a donation."
#define MSG_ABOUT_CONTACT_AUTHOR_DEDE "Bitte kontaktieren Sie den Autor für Fehlerberichte,\nAnregungen und Kommentare.\nWenn Sie dieses Programm mögen,\nerwägen Sie bitte eine Spende."
#define MSG_ABOUT_CONTACT_AUTHOR_DEDE "Bitte kontaktieren Sie den Autor für Fehlerberichte,\nAnregungen und Kommentare.\nWenn Sie dieses Programm mögen,\nerwägen Sie bitte eine kleine Spende."
 
 
void strcpy_advance_id(TCHAR** str, int msgid);
void FF_GetMsg(TCHAR* ret, int MsgId);
TCHAR* FF_GetMsg_Cpy(int MsgId);
/trunk/parser.y
67,7 → 67,7
if(arglistptr < (PARENSTACK-1))
inarglist[++arglistptr] = x;
else{
yyerror((TCHAR*)TEXT("too many nested parentheses or function calls"));
yyerror((TCHAR*)TEXT("too many nested parentheses or function calls")); // TODO: translate
return true;
}
return false;
159,8 → 159,8
| '-' expr %prec NEG { $$ = $1; $$->child[0] = 0; $$->child[1] = $2; }
| '+' expr %prec NEG { $$ = $2; }
/* error tokens */
| TOK_UNKNOWN { yyerror((TCHAR*)TEXT("unknown name")); YYERROR; }
| TOK_BADCHAR { yyerror((TCHAR*)TEXT("disallowed character")); YYERROR; }
| TOK_UNKNOWN { yyerror((TCHAR*)TEXT("unknown name")); YYERROR; } // TODO: translate
| TOK_BADCHAR { yyerror((TCHAR*)TEXT("disallowed character")); YYERROR; } // TODO: translate
;
 
%%
186,7 → 186,7
else /* ensure we don't leak memory, on an unsuccessful parse */
freeallnodes();
}else
yyerror((TCHAR*)TEXT("null string???"));
yyerror((TCHAR*)TEXT("null string???"));// TODO: translate
return 0;
}
 
/trunk/telegraphics_common/tt/str.c
27,7 → 27,22
#include "str.h"
#include "sprintf_tiny.h"
 
 
void strcpy_advance(TCHAR** str, TCHAR* append) {
xstrcpy(*str, append);
*str += xstrlen(append);
}
 
void strcpy_advance_a(TCHAR** str, char* append) {
#ifdef UNICODE
mbstowcs(*str, append, 1000);
*str += strlen(append);
#else
strcpy_advance(str, append);
#endif
}
 
#ifdef UNICODE
size_t xstrlen(wchar_t* s) {
return lstrlen(s);
}
/trunk/telegraphics_common/tt/str.h
17,10 → 17,25
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
 
#ifdef WIN_ENV
#include <windows.h>
#endif
 
#ifndef STR_H_
#define STR_H_
 
#ifdef MAC_ENV
#ifdef UNICODE
#define TCHAR wchar_t
#else
#define TCHAR char
#endif
#endif
 
void strcpy_advance(TCHAR** str, TCHAR* append);
void strcpy_advance_a(TCHAR** str, char* append);
 
#ifdef UNICODE
size_t xstrlen(wchar_t* s);
wchar_t* xstrcpy(wchar_t* dst, wchar_t* src);
wchar_t* xstrcat(wchar_t* dst, const wchar_t* src);
/trunk/ui.c
359,103 → 359,57
return false; // end dialog
case OPENITEM:
{
TCHAR filters[3000];
TCHAR *tmp1, *tmp2;
size_t len;
TCHAR* tmp1;
TCHAR* filters = (TCHAR*)malloc(4096);
if (filters == NULL) return false;
memset(filters, 0, 4096);
tmp1 = filters;
 
memset(&filters[0], 0, sizeof(filters));
tmp1 = &filters[0];
strcpy_advance_id(&tmp1, MSG_ALL_SUPPORTED_FILES_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.afs, *.8bf, *.pff, *.prm, *.bin, *.rsrc, *.txt, *.ffx)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.afs;*.8bf;*.pff;*.prm;*.bin;*.rsrc;*.txt;*.ffx")); tmp1++;
 
FF_GetMsg(tmp1, MSG_ALL_SUPPORTED_FILES_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.afs, *.8bf, *.pff, *.prm, *.bin, *.rsrc, *.txt, *.ffx)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.afs;*.8bf;*.pff;*.prm;*.bin;*.rsrc;*.txt;*.ffx"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
strcpy_advance_id(&tmp1, MSG_OPEN_AFS_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.afs)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.afs")); tmp1++;
 
FF_GetMsg(tmp1, MSG_OPEN_AFS_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.afs)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.afs"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
strcpy_advance_id(&tmp1, MSG_OPEN_TXT_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.txt)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.txt")); tmp1++;
 
FF_GetMsg(tmp1, MSG_OPEN_TXT_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.txt)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.txt"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
strcpy_advance_id(&tmp1, MSG_OPEN_8BF_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.8bf)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.8bf")); tmp1++;
 
FF_GetMsg(tmp1, MSG_OPEN_8BF_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.8bf)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.8bf"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
strcpy_advance_id(&tmp1, MSG_OPEN_PFF_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.pff)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.pff")); tmp1++;
 
FF_GetMsg(tmp1, MSG_OPEN_PFF_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.pff)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.pff"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
strcpy_advance_id(&tmp1, MSG_OPEN_PRM_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.prm)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.prm")); tmp1++;
 
FF_GetMsg(tmp1, MSG_OPEN_PRM_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.prm)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.prm"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
strcpy_advance_id(&tmp1, MSG_OPEN_RSRC_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.bin, *.rsrc)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.bin;*.rsrc")); tmp1++;
 
FF_GetMsg(tmp1, MSG_OPEN_RSRC_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.bin, *.rsrc)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.bin;*.rsrc"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
strcpy_advance_id(&tmp1, MSG_OPEN_FFX_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.ffx)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.ffx")); tmp1++;
 
FF_GetMsg(tmp1, MSG_OPEN_FFX_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.ffx)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.ffx"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
strcpy_advance_id(&tmp1, MSG_ALL_FILES_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.*)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.*")); tmp1++;
 
FF_GetMsg(tmp1, MSG_ALL_FILES_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.*)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.*"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
 
if (!gdata->standalone && choosefiletypes(
#ifdef MAC_ENV
(StringPtr)_strdup("\pChoose filter settings"), // "\p" means "Pascal string" // TODO (Not important yet): TRANSLATE
&sfr, &reply, types, 2,
&filters[0]
filters
#else
FF_GetMsg_Cpy(MSG_LOAD_FILTER_SETTINGS_TITLE_ID),
&sfr, &reply, types, 2,
&filters[0], gdata->hWndMainDlg
filters, gdata->hWndMainDlg
#endif
)) {
// Backup everything, otherwise we might lose parameter data if the loading fails
472,62 → 426,37
restoreInternalState(bakState);
}
}
free(filters);
break;
}
case SAVEITEM:
{
TCHAR filters[3000];
TCHAR* tmp1, * tmp2;
size_t len;
TCHAR* tmp1;
TCHAR* filters = (TCHAR*)malloc(4096);
if (filters == NULL) return false;
memset(filters, 0, 4096);
tmp1 = filters;
 
memset(&filters[0], 0, sizeof(filters));
tmp1 = &filters[0];
strcpy_advance_id(&tmp1, MSG_ALL_SUPPORTED_FILES_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.afs, *.pff, *.txt)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.afs;*.pff;*.txt")); tmp1++;
 
FF_GetMsg(tmp1, MSG_ALL_SUPPORTED_FILES_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.afs, *.pff, *.txt)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.afs;*.pff;*.txt"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
strcpy_advance_id(&tmp1, MSG_SAVE_AFS_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.afs)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.afs")); tmp1++;
 
FF_GetMsg(tmp1, MSG_SAVE_AFS_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.afs)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.afs"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
strcpy_advance_id(&tmp1, MSG_SAVE_PFF_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.pff)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.pff")); tmp1++;
 
FF_GetMsg(tmp1, MSG_SAVE_PFF_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.pff)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.pff"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
strcpy_advance_id(&tmp1, MSG_SAVE_TXT_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.txt)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.txt")); tmp1++;
 
FF_GetMsg(tmp1, MSG_SAVE_TXT_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.txt)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.txt"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
strcpy_advance_id(&tmp1, MSG_ALL_FILES_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT(" (*.*)")); tmp1++;
strcpy_advance(&tmp1, (TCHAR*)TEXT("*.*")); tmp1++;
 
FF_GetMsg(tmp1, MSG_ALL_FILES_ID);
tmp1 += xstrlen(tmp1);
len = xstrlen(tmp2 = TEXT(" (*.*)"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
len = xstrlen(tmp2 = TEXT("*.*"));
memcpy(tmp1, tmp2, len * sizeof(TCHAR));
tmp1 += (len + 1);
 
if (!gdata->standalone && putfile(
#ifdef MAC_ENV
(StringPtr)_strdup("\pSave filter settings"), // "\p" means "Pascal string" // TODO (Not important yet): TRANSLATE
534,13 → 463,13
(StringPtr)_strdup("\0"),
TEXT_FILETYPE, SIG_SIMPLETEXT, &reply, &sfr,
"afs",
& filters[0], 1
filters, 1
#else
FF_GetMsg_Cpy(MSG_SAVE_FILTER_SETTINGS_TITLE_ID),
TEXT("\0"),
TEXT_FILETYPE, SIG_SIMPLETEXT, &reply, &sfr,
TEXT("afs"),
& filters[0], 1, gdata->hWndMainDlg
filters, 1, gdata->hWndMainDlg
#endif
)) {
if (savefile_afs_pff_picotxt(&sfr)) {
576,6 → 505,7
 
}
}
free(filters);
break;
}
case MAKEITEM:
/trunk/ui_win.c
41,69 → 41,51
extern HINSTANCE hDllInstance;
 
void DoAbout(AboutRecordPtr pb){
PlatformData *p = (PlatformData*)pb->platformData;
TCHAR* tmp1;
TCHAR* filters = (TCHAR*)malloc(4096);
if (filters == NULL) return;
memset(filters, 0, 4096);
tmp1 = filters;
 
if (gdata && gdata->standalone) {
TCHAR filters[3000];
TCHAR* tmp1, * tmp2;
 
memset(&filters[0], 0, sizeof(filters));
tmp1 = &filters[0];
 
//strcpy(gdata->parm.szTitle, "TestTitle");
//strcpy(gdata->parm.szAuthor, "TestAuthor");
//strcpy(gdata->parm.szCopyright, "TestCopyright");
 
tmp1 += mbstowcs(tmp1, gdata->parm.szTitle, 100);
FF_GetMsg(tmp1, MSG_ABOUT_BY_ID); tmp1 += xstrlen(tmp1);
tmp1 += mbstowcs(tmp1, gdata->parm.szAuthor, 100);
tmp1 += mbstowcs(tmp1, "\n", 100);
strcpy_advance_a(&tmp1, gdata->parm.szTitle);
strcpy_advance_id(&tmp1, MSG_ABOUT_BY_ID);
strcpy_advance_a(&tmp1, gdata->parm.szAuthor);
strcpy_advance(&tmp1, (TCHAR*)TEXT("\n"));
 
tmp1 += mbstowcs(tmp1, gdata->parm.szCopyright, 100);
tmp1 += mbstowcs(tmp1, "\n\n", 100);
strcpy_advance_a(&tmp1, gdata->parm.szCopyright);
strcpy_advance(&tmp1, (TCHAR*)TEXT("\n\n"));
 
FF_GetMsg(tmp1, MSG_ABOUT_BUILT_USING_ID); tmp1 += xstrlen(tmp1);
tmp1 += mbstowcs(tmp1, VERSION_STR, 100);
 
strcpy_advance_id(&tmp1, MSG_ABOUT_BUILT_USING_ID);
#ifdef _WIN64
tmp1 += mbstowcs(tmp1, " (64 bit)\n", 100);
strcpy_advance(&tmp1, (TCHAR*)(TEXT(" ") TEXT(VERSION_STR) TEXT(" (64 bit)\n")));
#else
tmp1 += mbstowcs(tmp1, " (32 bit)\n", 100);
strcpy_advance(&tmp1, (TCHAR*)(TEXT(" ") TEXT(VERSION_STR) TEXT(" (32 bit)\n")));
#endif
 
tmp1 += mbstowcs(tmp1, "(C) 2003-2009 Toby Thain, 2018-" RELEASE_YEAR " Daniel Marschall\n", 100);
 
FF_GetMsg(tmp1, MSG_ABOUT_LATEST_VERSION_FROM_ID); tmp1 += xstrlen(tmp1);
tmp1 += mbstowcs(tmp1, "\n", 100);
tmp1 += mbstowcs(tmp1, PROJECT_URL, 100);
 
showmessage(&filters[0]);
strcpy_advance(&tmp1, (TCHAR*)(TEXT("(C) 2003-2009 Toby Thain, 2018-") TEXT(RELEASE_YEAR) TEXT(" Daniel Marschall\n")));
strcpy_advance_id(&tmp1, MSG_ABOUT_LATEST_VERSION_FROM_ID);
strcpy_advance(&tmp1, (TCHAR*)TEXT("\n"));
strcpy_advance(&tmp1, (TCHAR*)TEXT(PROJECT_URL));
} else {
TCHAR filters[3000];
TCHAR* tmp1, * tmp2;
 
memset(&filters[0], 0, sizeof(filters));
tmp1 = &filters[0];
 
tmp1 += mbstowcs(tmp1, "Filter Foundry " VERSION_STR, 100);
#ifdef _WIN64
tmp1 += mbstowcs(tmp1, " (64 bit)\n", 100);
strcpy_advance(&tmp1, (TCHAR*)(TEXT("Filter Foundry ") TEXT(VERSION_STR) TEXT(" (64 bit)\n")));
#else
tmp1 += mbstowcs(tmp1, " (32 bit)\n", 100);
strcpy_advance(&tmp1, (TCHAR*)(TEXT("Filter Foundry ") TEXT(VERSION_STR) TEXT(" (32 bit)\n")));
#endif
strcpy_advance(&tmp1, (TCHAR*)(TEXT("(C) 2003-2009 Toby Thain, 2018-") TEXT(RELEASE_YEAR) TEXT(" Daniel Marschall\n\n")));
strcpy_advance_id(&tmp1, MSG_ABOUT_LATEST_VERSION_FROM_ID);
strcpy_advance(&tmp1, (TCHAR*)(TEXT("\n") TEXT(PROJECT_URL) TEXT("\n\n")));
strcpy_advance_id(&tmp1, MSG_ABOUT_CONTACT_AUTHOR_ID);
}
 
tmp1 += mbstowcs(tmp1, "(C) 2003-2009 Toby Thain, 2018-" RELEASE_YEAR " Daniel Marschall\n\n", 100);
 
FF_GetMsg(tmp1, MSG_ABOUT_LATEST_VERSION_FROM_ID); tmp1 += xstrlen(tmp1);
tmp1 += mbstowcs(tmp1, "\n", 100);
tmp1 += mbstowcs(tmp1, PROJECT_URL, 100);
tmp1 += mbstowcs(tmp1, "\n\n", 100);
 
FF_GetMsg(tmp1, MSG_ABOUT_CONTACT_AUTHOR_ID); tmp1 += xstrlen(tmp1);
 
showmessage(&filters[0]);
showmessage(filters);
free(filters);
}
}
 
Boolean simplealert(TCHAR* s){
HWND hwnd;