/trunk/Makefile.mac |
---|
52,7 → 52,7 |
# list of source files |
SRC_COMMON = main.c funcs.c process.c node.c symtab.c \ |
ui.c ui_build.c preview.c read.c save.c make.c obfusc.c ff_misc.c \ |
ui.c ui_build.c preview.c read.c save.c make.c obfusc.c ff_misc.c language.c \ |
scripting.c y.tab.c lex.yy.c str.c |
SRC_OSX = dbg_mac.c ui_mac.c make_mac.c load_mac.c ui_compat_mac.c \ |
choosefile_nav.c preview_mac.c \ |
/trunk/Makefile.win |
---|
51,7 → 51,7 |
# list of source files |
SRC_COMMON = main.c funcs.c process.c node.c symtab.c \ |
ui.c ui_build.c preview.c read.c save.c make.c obfusc.c ff_misc.c \ |
ui.c ui_build.c preview.c read.c save.c make.c obfusc.c ff_misc.c language.c \ |
scripting.c y.tab.c lex.yy.c str.c |
SRC_W32 = dbg_win.c manifest.c ui_win.c make_win.c versioninfo_modify_win.c load_win.c ui_compat_win.c \ |
choosefile_win.c ui_build_win.c compat_string.c compat_win.c compat_win_resource.c \ |
/trunk/ff.h |
---|
34,6 → 34,7 |
#include "PARM.h" |
#include "preview.h" |
#include "ff_misc.h" |
#include "language.h" |
#define HOSTSIG_GIMP 'PMIG' // sic: NOT 'GIMP' |
#define HOSTSIG_IRFANVIEW 'UP20' |
95,7 → 96,7 |
#define NUM_CELLS 0x100 |
extern struct node *tree[4]; |
extern char *err[4]; |
extern TCHAR *err[4]; |
extern int errpos[4],errstart[4];//,nplanes; |
extern uint8_t slider[8]; |
extern value_type cell[NUM_CELLS]; |
102,7 → 103,7 |
extern char *expr[4]; |
extern int tokpos,tokstart,varused[]; |
extern char *errstr; |
extern TCHAR *errstr; |
//#define DEBUG |
126,13 → 127,13 |
void restoreInternalState(InternalState state); |
// from read.c |
Boolean readparams_afs_pff(Handle h,char **reason); |
Boolean readparams_afs_pff(Handle h, TCHAR**reason); |
void convert_premiere_to_photoshop(PARM_T* photoshop, PARM_T_PREMIERE* premiere); |
Boolean readfile_8bf(StandardFileReply *sfr,char **reason); |
Boolean readfile_8bf(StandardFileReply *sfr, TCHAR**reason); |
Handle readfileintohandle(FILEREF r); |
Boolean readfile_afs_pff(StandardFileReply* sfr, char** reason); |
Boolean readfile_ffx(StandardFileReply* sfr, char** reason); |
Boolean readfile_picotxt(StandardFileReply* sfr, char** reason); |
Boolean readfile_afs_pff(StandardFileReply* sfr, TCHAR** reason); |
Boolean readfile_ffx(StandardFileReply* sfr, TCHAR** reason); |
Boolean readfile_picotxt(StandardFileReply* sfr, TCHAR** reason); |
Boolean readPARM(PARM_T* parm,Ptr h); |
// from save.c |
160,8 → 161,8 |
void deobfusc(PARM_T* pparm); |
// from loadfile_*.c |
Boolean loadfile(StandardFileReply *sfr,char **reason); |
Boolean readPARMresource(HMODULE hm,char **reason); |
Boolean loadfile(StandardFileReply *sfr, TCHAR**reason); |
Boolean readPARMresource(HMODULE hm, TCHAR**reason); |
// from main.c |
int64_t maxspace(); |
/trunk/language.c |
---|
0,0 → 1,46 |
/* |
This file is part of "Filter Foundry", a filter plugin for Adobe Photoshop |
Copyright (C) 2003-2009 Toby Thain, toby@telegraphics.com.au |
Copyright (C) 2018-2022 Daniel Marschall, ViaThinkSoft |
This program is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2 of the License, or |
(at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program; if not, write to the Free Software |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
*/ |
#include "ff.h" |
// Attention: No bounds checking! |
void FF_GetMsg(TCHAR* ret, int MsgId) { |
#ifdef WIN_ENV |
TCHAR* szMsg; |
int len; |
len = LoadString(hDllInstance, MsgId, (LPTSTR)&szMsg, 0); |
LoadString(hDllInstance, MsgId, ret, len); |
#else |
Str255 msg; |
GetIndString(msg, 1000, MsgId); |
myp2cstrcpy(ret, msg); |
#endif |
} |
TCHAR* FF_GetMsg_Cpy(int MsgId) { |
TCHAR* szMsg; |
int len; |
TCHAR* ret; |
len = LoadString(hDllInstance, MsgId, (LPTSTR)&szMsg, 0); |
ret = (TCHAR*)malloc((len+1) * sizeof(TCHAR)); // TODO: This leaks memory! Like _strdup() does... Not a good design! |
if (ret == NULL) return NULL; |
LoadString(hDllInstance, MsgId, ret, len); |
return ret; |
} |
/trunk/language.h |
---|
0,0 → 1,179 |
/* |
This file is part of "Filter Foundry", a filter plugin for Adobe Photoshop |
Copyright (C) 2003-2009 Toby Thain, toby@telegraphics.com.au |
Copyright (C) 2018-2022 Daniel Marschall, ViaThinkSoft |
This program is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2 of the License, or |
(at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program; if not, write to the Free Software |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
*/ |
// TODO: Search for more things to translate, e.g. in *_mac.* |
// TODO: Translate "TODO: Translate" in *.c |
// TODO: Translate dialogs |
// TODO: Deutsche Umlaute sind kaputt (UTF8 Zeichen werden gezeigt) |
// Hiermit geht es aber... |
// Meldung "Unbekanntes Pragma" (trotzdem bringt es was?!) |
#pragma code_page(65001) |
#define MSG_PREMIERE_COMPAT_ID 1 |
#define MSG_PREMIERE_COMPAT_ENUS "This version of Filter Foundry is not compatible with Adobe Premiere!"; |
#define MSG_PREMIERE_COMPAT_DEDE "Diese Version von Filter Foundry ist mit Adobe Premiere nicht kompatibel!" |
#define MSG_RUNDLL_ERR_ID 2 |
#define MSG_RUNDLL_ERR_ENUS "You tried to execute this DLL with RunDLL32. This is a Photoshop plugin!" |
#define MSG_RUNDLL_ERR_DEDE "Es wurde versucht, diese DLL mit RunDLL32 aufzurufen, aber dies ist ein Photoshop-Plugin!" |
#define MSG_INCOMPATIBLE_OBFUSCATION_ID 3 |
#define MSG_INCOMPATIBLE_OBFUSCATION_ENUS "Incompatible obfuscation." |
#define MSG_INCOMPATIBLE_OBFUSCATION_DEDE "Inkompatible Verschlüsselung." |
#define MSG_FILTER_PROTECTED_ID 4 |
#define MSG_FILTER_PROTECTED_ENUS "The filter is protected." |
#define MSG_FILTER_PROTECTED_DEDE "Der Filter ist geschützt." |
#define MSG_LOADFILE_UNKNOWN_FORMAT_ID 5 |
#define MSG_LOADFILE_UNKNOWN_FORMAT_ENUS "It is not a text parameter file, nor a standalone Mac/PC filter created by Filter Factory/Filter Foundry." |
#define MSG_LOADFILE_UNKNOWN_FORMAT_DEDE "Dies ist keine gültige Paramter-Datei, und auch kein Mac/PC Filter, der mit Filter Factory oder Filter Foundry erstellt wurde." |
#define MSG_INVALID_PARAMETER_DATA_ID 6 |
#define MSG_INVALID_PARAMETER_DATA_ENUS "Invalid parameter data." |
#define MSG_INVALID_PARAMETER_DATA_DEDE "Ungültige Parameter-Daten." |
#define MSG_CANNOT_ZOOM_ID 7 |
#define MSG_CANNOT_ZOOM_ENUS "Could not build preview at chosen zoom level." |
#define MSG_CANNOT_ZOOM_DEDE "Die Vorschau konnte nicht in dieser Vergrößerung erstellt werden." |
#define MSG_CANNOT_ZOOM_MEMFULL_ID 8 |
#define MSG_CANNOT_ZOOM_MEMFULL_ENUS "Could not build preview at chosen zoom level. The image is too large for available memory. Try zooming in.\nIf that does not help, cancel and retry the filter." |
#define MSG_CANNOT_ZOOM_MEMFULL_DEDE "Die Vorschau konnte nicht in dieser Vergrößerung erstellt werden, da das Bild zu groß für den verfügbaren Speicher ist. Versuchen Sie, die Vorschau zu vergrößern.\nWenn dies nicht hilft, brechen Sie den Filter ab und starten Sie ihn neu." |
#define MSG_BUILT32_ID 9 |
#define MSG_BUILT32_ENUS "32 bit standalone filter was successfully created" |
#define MSG_BUILT32_DEDE "32-Bit Filter wurde erfolgreich erzeugt" |
#define MSG_BUILT64_ID 10 |
#define MSG_BUILT64_ENUS "64 bit standalone filter was successfully created" |
#define MSG_BUILT64_DEDE "64-Bit Filter wurde erfolgreich erzeugt" |
#define MSG_CANNOT_OPEN_FILE_ID 11 |
#define MSG_CANNOT_OPEN_FILE_ENUS "Could not open the file." |
#define MSG_CANNOT_OPEN_FILE_DEDE "Kann Datei nicht öffnen." |
#define MSG_CANNOT_CREATE_FILE_ID 12 |
#define MSG_CANNOT_CREATE_FILE_ENUS "Could not create the file." |
#define MSG_CANNOT_CREATE_FILE_DEDE "Kann Datei nicht erstellen." |
#define MSG_EXPRESSION1024_FOUND_ID 13 |
#define MSG_EXPRESSION1024_FOUND_ENUS "Found an expression longer than 1024 characters." |
#define MSG_EXPRESSION1024_FOUND_DEDE "Es wurde eine Formel gefunden, die länger als 1024 Zeichen ist." |
#define MSG_EXPRESSION_OOM_ID 14 |
#define MSG_EXPRESSION_OOM_ENUS "Could not get memory for expression." |
#define MSG_EXPRESSION_OOM_DEDE "Kann nicht genügend Speicher für die Formel erhalten." |
#define MSG_FILTERS_UNLIMITED_WARNING_ID 15 |
#define MSG_FILTERS_UNLIMITED_WARNING_ENUS "Attention! You are loading a ""Filters Unlimited"" file. Please note that Filter Foundry only implements the basic Filter Factory functions. Therefore, most ""Filters Unlimited"" filters won't work with Filter Foundry." |
#define MSG_FILTERS_UNLIMITED_WARNING_DEDE "Achtung! Sie laden ein Datei, die mit ""Filters Unlimited"" erstellt wurde. Bitte beachten Sie, dass Filter Foundry nur die grundlegenden Filter Factory-Funktionalitäten implementiert. Deswegen werden die meisten ""Filters Unlimited"" Filter nicht mit Filter Foundry funktionieren." |
#define MSG_FORMULA_IR_1023_TRUNCATED_ID 16 |
#define MSG_FORMULA_IR_1023_TRUNCATED_ENUS "Attention! The formula for channel I/R was too long (longer than 1023 characters) and was truncated." |
#define MSG_FORMULA_IR_1023_TRUNCATED_DEDE "Achtung! Die Formel für den Rot/Intro-Kanal ist zu lang (länger als 1023 Zeichen) und wurde deshalb abgeschnitten." |
#define MSG_FORMULA_R_1023_TRUNCATED_ID 17 |
#define MSG_FORMULA_R_1023_TRUNCATED_ENUS "Attention! The formula for channel R was too long (longer than 1023 characters) and was truncated." |
#define MSG_FORMULA_R_1023_TRUNCATED_DEDE "Achtung! Die Formel für den Rot-Kanal ist zu lang (länger als 1023 Zeichen) und wurde deshalb abgeschnitten." |
#define MSG_FORMULA_G_1023_TRUNCATED_ID 18 |
#define MSG_FORMULA_G_1023_TRUNCATED_ENUS "Attention! The formula for channel G was too long (longer than 1023 characters) and was truncated." |
#define MSG_FORMULA_G_1023_TRUNCATED_DEDE "Achtung! Die Formel für den Grün-Kanal ist zu lang (länger als 1023 Zeichen) und wurde deshalb abgeschnitten." |
#define MSG_FORMULA_B_1023_TRUNCATED_ID 19 |
#define MSG_FORMULA_B_1023_TRUNCATED_ENUS "Attention! The formula for channel B was too long (longer than 1023 characters) and was truncated." |
#define MSG_FORMULA_B_1023_TRUNCATED_DEDE "Achtung! Die Formel für den Blau-Kanal ist zu lang (länger als 1023 Zeichen) und wurde deshalb abgeschnitten." |
#define MSG_FORMULA_A_1023_TRUNCATED_ID 20 |
#define MSG_FORMULA_A_1023_TRUNCATED_ENUS "Attention! The formula for channel A was too long (longer than 1023 characters) and was truncated." |
#define MSG_FORMULA_A_1023_TRUNCATED_DEDE "Achtung! Die Formel für den Alpha-Kanal ist zu lang (länger als 1023 Zeichen) und wurde deshalb abgeschnitten." |
#define MSG_CANNOT_CREATE_32BIT_FILTER_ID 21 |
#define MSG_CANNOT_CREATE_32BIT_FILTER_ENUS "Could not create 32 bit standalone filter" |
#define MSG_CANNOT_CREATE_32BIT_FILTER_DEDE "Konnte keinen 32-Bit Filter erzeugen" |
#define MSG_CANNOT_CREATE_64BIT_FILTER_ID 22 |
#define MSG_CANNOT_CREATE_64BIT_FILTER_ENUS "Could not create 64 bit standalone filter" |
#define MSG_CANNOT_CREATE_64BIT_FILTER_DEDE "Konnte keinen 64-Bit Filter erzeugen" |
#define MSG_CANNOT_SAVE_SETTINGS_ID 23 |
#define MSG_CANNOT_SAVE_SETTINGS_ENUS "Could not save settings." |
#define MSG_CANNOT_SAVE_SETTINGS_DEDE "Einstellungen konnten nicht gespeichert werden." |
#define MSG_CANNOT_LOAD_SETTINGS_ID 24 |
#define MSG_CANNOT_LOAD_SETTINGS_ENUS "Could not load settings." |
#define MSG_CANNOT_LOAD_SETTINGS_DEDE "Einstellungen konnten nicht geladen werden." |
#define MSG_SAVED_EXPR_ERR_ID 25 |
#define MSG_SAVED_EXPR_ERR_ENUS "Can't run this filter (there is a problem with the saved expressions)." |
#define MSG_SAVED_EXPR_ERR_DEDE "Dieser Filter kann nicht ausgeführt werden, da es ein Problem mit den enthaltenen Formeln gibt." |
#define MSG_CATEGORY_EMPTY_ERR_ID 26 |
#define MSG_CATEGORY_EMPTY_ERR_ENUS "Category must not be empty!" |
#define MSG_CATEGORY_EMPTY_ERR_DEDE "Kategorie darf nicht leer sein!" |
#define MSG_TITLE_EMPTY_ERR_ID 27 |
#define MSG_TITLE_EMPTY_ERR_ENUS "Title must not be empty!" |
#define MSG_TITLE_EMPTY_ERR_DEDE "Titel darf nicht leer sein!" |
#define MSG_UNICODE_DATA_WARNING_ID 28 |
#define MSG_UNICODE_DATA_WARNING_ENUS "The internal structures of Photoshop and Filter Factory are not compatible with Unicode characters. It is highly recommended that you only use characters of your current charset. Unicode characters will be converted into question mark symbols." |
#define MSG_UNICODE_DATA_WARNING_DEDE "Die internen Strukturen von Photoshop und Filter Factory sind nicht kompatibel mit Unicode-Zeichen. Es wird sehr stark empfohlen, dass Sie nur Zeichen aus Ihrem aktuellen Zeichensatz verwenden. Unicode-Zeichen werden in Fragezeichen-Symbole umgewandelt werden." |
#define MSG_EXTCHARSET_DATA_WARNING_ID 29 |
#define MSG_EXTCHARSET_DATA_WARNING_ENUS "You were using characters of an extended charset. The characters might look correct on your machine, but on a machine in a different country the characters might look wrong. Please consider using the ASCII character set only (i.e. Latin characters without accent marks)." |
#define MSG_EXTCHARSET_DATA_WARNING_DEDE "Sie verwenden besondere Zeichen wie z.B. Umlaute. Diese Zeichen werden auf Ihrem System normal aussehen, jedoch werden sie auf einem fremdsprachigen Computer falsch dargestellt werden. Bitte ziehen Sie in Betracht, nur ASCII-Zeichen zu verwenden (A-Z, ohne Umlaute)." |
#define MSG_SLIDER_UNAVAILABLE_ID 30 |
#define MSG_SLIDER_UNAVAILABLE_ENUS "Visual sliders are not available because neither PLUGIN.DLL (part of Photoshop), nor the Microsoft Trackbar Control (msctls_trackbar32) was found on your system." |
#define MSG_SLIDER_UNAVAILABLE_DEDE "Schiebe-Regler sind nicht verfügbar, da weder PLUGIN.DLL (Bestandteil von Photoshop), noch die Microsoft Trackbar Control (msctls_trackbar32) auf Ihrem System gefunden wurden." |
#define MSG_PICO_SAVED_ID 31 |
#define MSG_PICO_SAVED_ENUS "The file was successfully saved in the ""PluginCommander"" TXT format. The file will now be opened in a text editor, so that you can fill in the missing data: Category, Title, Copyright, Author, Filename, and Slider/Map names." |
#define MSG_PICO_SAVED_DEDE "Die Datei wurde erfolgreich im ""PluginCommander"" TXT-Format gespeichert. Die Datei wird nun in einem Text-Editor geöffnet, sodass Sie die fehlenden Angaben ergänzen können: Kategorie, Titel, Copyright, Autor, Dateiname und Regler-Namen." |
#define MSG_PLEASE_EDIT_MANUALLY_ID 32 |
#define MSG_PLEASE_EDIT_MANUALLY_ENUS "Please edit the file manually to enter the title, category, author, copyright, slider names, etc." |
#define MSG_PLEASE_EDIT_MANUALLY_DEDE "Bitte bearbeiten Sie die Datei manuell und tragen Sie dort ein: Titel, Kategorie, Autor, Copyright, Regler-Namen, usw." |
#define MSG_FIND_DOKU_HERE_ID 33 |
#define MSG_FIND_DOKU_HERE_ENUS "You can find the documentation here: https://github.com/danielmarschall/filter_foundry/tree/master/doc" |
#define MSG_FIND_DOKU_HERE_DEDE "Sie können die englisch-sprachige Dokumentation hier finden: https://github.com/danielmarschall/filter_foundry/tree/master/doc" |
#define MSG_ERROR_IN_EXPRESSION_CLICK_DETAILS_ID 34 |
#define MSG_ERROR_IN_EXPRESSION_CLICK_DETAILS_ENUS "Error in expression! Click to see details." |
#define MSG_ERROR_IN_EXPRESSION_CLICK_DETAILS_DEDE "Fehler in der Formel! Klicken für mehr Details." |
#define MSG_ZOOM_IN_ID 35 |
#define MSG_ZOOM_IN_ENUS "Zoom in" |
#define MSG_ZOOM_IN_DEDE "Vergrößern" |
#define MSG_ZOOM_OUT_ID 36 |
#define MSG_ZOOM_OUT_ENUS "Zoom out" |
#define MSG_ZOOM_OUT_DEDE "Verkleinern" |
#define MSG_FULLY_ZOOM_INOUT_ID 37 |
#define MSG_FULLY_ZOOM_INOUT_ENUS "Fully zoom in/out" |
#define MSG_FULLY_ZOOM_INOUT_DEDE "Vollständig rein/raus-zoomen" |
void FF_GetMsg(TCHAR* ret, int MsgId); |
TCHAR* FF_GetMsg_Cpy(int MsgId); |
/trunk/language_mac.r |
---|
0,0 → 1,64 |
/* |
This file is part of "Filter Foundry", a filter plugin for Adobe Photoshop |
Copyright (C) 2003-2009 Toby Thain, toby@telegraphics.com.au |
Copyright (C) 2018-2022 Daniel Marschall, ViaThinkSoft |
This program is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2 of the License, or |
(at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program; if not, write to the Free Software |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
*/ |
#include "language.h" |
resource 'STR#' (1000, purgeable) |
{ |
{ |
MSG_PREMIERE_COMPAT_ENUS, |
MSG_RUNDLL_ERR_ENUS, |
MSG_INCOMPATIBLE_OBFUSCATION_ENUS, |
MSG_FILTER_PROTECTED_ENUS, |
MSG_LOADFILE_UNKNOWN_FORMAT_ENUS, |
MSG_INVALID_PARAMETER_DATA_ENUS, |
MSG_CANNOT_ZOOM_ENUS, |
MSG_CANNOT_ZOOM_MEMFULL_ENUS, |
MSG_BUILT32_ENUS, |
MSG_BUILT64_ENUS, |
MSG_CANNOT_OPEN_FILE_ENUS, |
MSG_CANNOT_CREATE_FILE_ENUS, |
MSG_EXPRESSION1024_FOUND_ENUS, |
MSG_EXPRESSION_OOM_ENUS, |
MSG_FILTERS_UNLIMITED_WARNING_ENUS, |
MSG_FORMULA_IR_1023_TRUNCATED_ENUS, |
MSG_FORMULA_R_1023_TRUNCATED_ENUS, |
MSG_FORMULA_G_1023_TRUNCATED_ENUS, |
MSG_FORMULA_B_1023_TRUNCATED_ENUS, |
MSG_FORMULA_A_1023_TRUNCATED_ENUS, |
MSG_CANNOT_CREATE_32BIT_FILTER_ENUS, |
MSG_CANNOT_CREATE_64BIT_FILTER_ENUS, |
MSG_CANNOT_SAVE_SETTINGS_ENUS, |
MSG_CANNOT_LOAD_SETTINGS_ENUS, |
MSG_SAVED_EXPR_ERR_ENUS, |
MSG_CATEGORY_EMPTY_ERR_ENUS, |
MSG_TITLE_EMPTY_ERR_ENUS, |
MSG_UNICODE_DATA_WARNING_ENUS, |
MSG_EXTCHARSET_DATA_WARNING_ENUS, |
MSG_SLIDER_UNAVAILABLE_ENUS, |
MSG_PICO_SAVED_ENUS, |
MSG_PLEASE_EDIT_MANUALLY_ENUS, |
MSG_FIND_DOKU_HERE_ENUS, |
MSG_ERROR_IN_EXPRESSION_CLICK_DETAILS_ENUS, |
MSG_ZOOM_IN_ENUS, |
MSG_ZOOM_OUT_ENUS, |
MSG_FULLY_ZOOM_INOUT_ENUS |
} |
} |
/trunk/language_win.rc |
---|
0,0 → 1,107 |
/* |
This file is part of "Filter Foundry", a filter plugin for Adobe Photoshop |
Copyright (C) 2003-2009 Toby Thain, toby@telegraphics.com.au |
Copyright (C) 2018-2022 Daniel Marschall, ViaThinkSoft |
This program is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2 of the License, or |
(at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program; if not, write to the Free Software |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
*/ |
#include "language.h" |
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US |
STRINGTABLE |
{ |
// TODO: mingw windres does not want the MSG_* defines here :-( Why?! Even Watcom can do it! |
MSG_PREMIERE_COMPAT_ID, MSG_PREMIERE_COMPAT_ENUS |
MSG_RUNDLL_ERR_ID, MSG_RUNDLL_ERR_ENUS |
MSG_INCOMPATIBLE_OBFUSCATION_ID, MSG_INCOMPATIBLE_OBFUSCATION_ENUS |
MSG_FILTER_PROTECTED_ID, MSG_FILTER_PROTECTED_ENUS |
MSG_LOADFILE_UNKNOWN_FORMAT_ID, MSG_LOADFILE_UNKNOWN_FORMAT_ENUS |
MSG_INVALID_PARAMETER_DATA_ID, MSG_INVALID_PARAMETER_DATA_ENUS |
MSG_CANNOT_ZOOM_ID, MSG_CANNOT_ZOOM_ENUS |
MSG_CANNOT_ZOOM_MEMFULL_ID, MSG_CANNOT_ZOOM_MEMFULL_ENUS |
MSG_BUILT32_ID, MSG_BUILT32_ENUS |
MSG_BUILT64_ID, MSG_BUILT64_ENUS |
MSG_CANNOT_OPEN_FILE_ID, MSG_CANNOT_OPEN_FILE_ENUS |
MSG_CANNOT_CREATE_FILE_ID, MSG_CANNOT_CREATE_FILE_ENUS |
MSG_EXPRESSION1024_FOUND_ID, MSG_EXPRESSION1024_FOUND_ENUS |
MSG_EXPRESSION_OOM_ID, MSG_EXPRESSION_OOM_ENUS |
MSG_FILTERS_UNLIMITED_WARNING_ID, MSG_FILTERS_UNLIMITED_WARNING_ENUS |
MSG_FORMULA_IR_1023_TRUNCATED_ID, MSG_FORMULA_IR_1023_TRUNCATED_ENUS |
MSG_FORMULA_R_1023_TRUNCATED_ID, MSG_FORMULA_R_1023_TRUNCATED_ENUS |
MSG_FORMULA_G_1023_TRUNCATED_ID, MSG_FORMULA_G_1023_TRUNCATED_ENUS |
MSG_FORMULA_B_1023_TRUNCATED_ID, MSG_FORMULA_B_1023_TRUNCATED_ENUS |
MSG_FORMULA_A_1023_TRUNCATED_ID, MSG_FORMULA_A_1023_TRUNCATED_ENUS |
MSG_CANNOT_CREATE_32BIT_FILTER_ID, MSG_CANNOT_CREATE_32BIT_FILTER_ENUS |
MSG_CANNOT_CREATE_64BIT_FILTER_ID, MSG_CANNOT_CREATE_64BIT_FILTER_ENUS |
MSG_CANNOT_SAVE_SETTINGS_ID, MSG_CANNOT_SAVE_SETTINGS_ENUS |
MSG_CANNOT_LOAD_SETTINGS_ID, MSG_CANNOT_LOAD_SETTINGS_ENUS |
MSG_SAVED_EXPR_ERR_ID, MSG_SAVED_EXPR_ERR_ENUS |
MSG_CATEGORY_EMPTY_ERR_ID, MSG_CATEGORY_EMPTY_ERR_ENUS |
MSG_TITLE_EMPTY_ERR_ID, MSG_TITLE_EMPTY_ERR_ENUS |
MSG_UNICODE_DATA_WARNING_ID, MSG_UNICODE_DATA_WARNING_ENUS |
MSG_EXTCHARSET_DATA_WARNING_ID, MSG_EXTCHARSET_DATA_WARNING_ENUS |
MSG_SLIDER_UNAVAILABLE_ID, MSG_SLIDER_UNAVAILABLE_ENUS |
MSG_PICO_SAVED_ID, MSG_PICO_SAVED_ENUS |
MSG_PLEASE_EDIT_MANUALLY_ID, MSG_PLEASE_EDIT_MANUALLY_ENUS |
MSG_FIND_DOKU_HERE_ID, MSG_FIND_DOKU_HERE_ENUS |
MSG_ERROR_IN_EXPRESSION_CLICK_DETAILS_ID, MSG_ERROR_IN_EXPRESSION_CLICK_DETAILS_ENUS |
MSG_ZOOM_IN_ID, MSG_ZOOM_IN_ENUS |
MSG_ZOOM_OUT_ID, MSG_ZOOM_OUT_ENUS |
MSG_FULLY_ZOOM_INOUT_ID, MSG_FULLY_ZOOM_INOUT_ENUS |
} |
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN |
STRINGTABLE |
{ |
// TODO: mingw windres does not want the MSG_* defines here :-( Why?! Even Watcom can do it! |
MSG_PREMIERE_COMPAT_ID, MSG_PREMIERE_COMPAT_DEDE |
MSG_RUNDLL_ERR_ID, MSG_RUNDLL_ERR_DEDE |
MSG_INCOMPATIBLE_OBFUSCATION_ID, MSG_INCOMPATIBLE_OBFUSCATION_DEDE |
MSG_FILTER_PROTECTED_ID, MSG_FILTER_PROTECTED_DEDE |
MSG_LOADFILE_UNKNOWN_FORMAT_ID, MSG_LOADFILE_UNKNOWN_FORMAT_DEDE |
MSG_INVALID_PARAMETER_DATA_ID, MSG_INVALID_PARAMETER_DATA_DEDE |
MSG_CANNOT_ZOOM_ID, MSG_CANNOT_ZOOM_DEDE |
MSG_CANNOT_ZOOM_MEMFULL_ID, MSG_CANNOT_ZOOM_MEMFULL_DEDE |
MSG_BUILT32_ID, MSG_BUILT32_DEDE |
MSG_BUILT64_ID, MSG_BUILT64_DEDE |
MSG_CANNOT_OPEN_FILE_ID, MSG_CANNOT_OPEN_FILE_DEDE |
MSG_CANNOT_CREATE_FILE_ID, MSG_CANNOT_CREATE_FILE_DEDE |
MSG_EXPRESSION1024_FOUND_ID, MSG_EXPRESSION1024_FOUND_DEDE |
MSG_EXPRESSION_OOM_ID, MSG_EXPRESSION_OOM_DEDE |
MSG_FILTERS_UNLIMITED_WARNING_ID, MSG_FILTERS_UNLIMITED_WARNING_DEDE |
MSG_FORMULA_IR_1023_TRUNCATED_ID, MSG_FORMULA_IR_1023_TRUNCATED_DEDE |
MSG_FORMULA_R_1023_TRUNCATED_ID, MSG_FORMULA_R_1023_TRUNCATED_DEDE |
MSG_FORMULA_G_1023_TRUNCATED_ID, MSG_FORMULA_G_1023_TRUNCATED_DEDE |
MSG_FORMULA_B_1023_TRUNCATED_ID, MSG_FORMULA_B_1023_TRUNCATED_DEDE |
MSG_FORMULA_A_1023_TRUNCATED_ID, MSG_FORMULA_A_1023_TRUNCATED_DEDE |
MSG_CANNOT_CREATE_32BIT_FILTER_ID, MSG_CANNOT_CREATE_32BIT_FILTER_DEDE |
MSG_CANNOT_CREATE_64BIT_FILTER_ID, MSG_CANNOT_CREATE_64BIT_FILTER_DEDE |
MSG_CANNOT_SAVE_SETTINGS_ID, MSG_CANNOT_SAVE_SETTINGS_DEDE |
MSG_CANNOT_LOAD_SETTINGS_ID, MSG_CANNOT_LOAD_SETTINGS_DEDE |
MSG_SAVED_EXPR_ERR_ID, MSG_SAVED_EXPR_ERR_DEDE |
MSG_CATEGORY_EMPTY_ERR_ID, MSG_CATEGORY_EMPTY_ERR_DEDE |
MSG_TITLE_EMPTY_ERR_ID, MSG_TITLE_EMPTY_ERR_DEDE |
MSG_UNICODE_DATA_WARNING_ID, MSG_UNICODE_DATA_WARNING_DEDE |
MSG_EXTCHARSET_DATA_WARNING_ID, MSG_EXTCHARSET_DATA_WARNING_DEDE |
MSG_SLIDER_UNAVAILABLE_ID, MSG_SLIDER_UNAVAILABLE_DEDE |
MSG_PICO_SAVED_ID, MSG_PICO_SAVED_DEDE |
MSG_PLEASE_EDIT_MANUALLY_ID, MSG_PLEASE_EDIT_MANUALLY_DEDE |
MSG_FIND_DOKU_HERE_ID, MSG_FIND_DOKU_HERE_DEDE |
MSG_ERROR_IN_EXPRESSION_CLICK_DETAILS_ID, MSG_ERROR_IN_EXPRESSION_CLICK_DETAILS_DEDE |
MSG_ZOOM_IN_ID, MSG_ZOOM_IN_DEDE |
MSG_ZOOM_OUT_ID, MSG_ZOOM_OUT_DEDE |
MSG_FULLY_ZOOM_INOUT_ID, MSG_FULLY_ZOOM_INOUT_DEDE |
} |
/trunk/load_win.c |
---|
38,7 → 38,7 |
else return true; |
} |
Boolean readPARMresource(HMODULE hm, char** reason) { |
Boolean readPARMresource(HMODULE hm, TCHAR** reason) { |
HRSRC resinfo; |
HANDLE h; |
Ptr pparm; |
69,7 → 69,7 |
deobfusc(copy); |
res = readPARM(&gdata->parm, (Ptr)copy); |
if (!res) { |
*reason = _strdup("Incompatible obfuscation."); |
*reason = FF_GetMsg_Cpy(MSG_INCOMPATIBLE_OBFUSCATION_ID); |
} |
free(copy); |
gdata->obfusc = true; |
85,7 → 85,7 |
return false; |
} |
Boolean loadfile(StandardFileReply* sfr, char** reason) { |
Boolean loadfile(StandardFileReply* sfr, TCHAR** reason) { |
HMODULE hm; |
// The different read-functions will return true if the resource was successfully loaded, |
107,7 → 107,7 |
if (hm = LoadLibraryEx(sfr->sfFile.szName, NULL, LOAD_LIBRARY_AS_DATAFILE)) { |
if (readPARMresource(hm, reason)) { |
if (gdata->parm.iProtected) { |
*reason = _strdup("The filter is protected."); |
*reason = FF_GetMsg_Cpy(MSG_FILTER_PROTECTED_ID); |
//gdata->parmloaded = false; |
} |
else { |
142,7 → 142,7 |
if (readfile_8bf(sfr, reason)) { |
if (gdata->parm.iProtected) { |
// This is for purely protected filters before the time when obfuscation and protection was merged |
*reason = _strdup("The filter is protected."); |
*reason = FF_GetMsg_Cpy(MSG_FILTER_PROTECTED_ID); |
} |
else { |
gdata->parmloaded = true; |
154,7 → 154,7 |
// We didn't had success. If we have a clear reason, return false and the reason. |
// If we don't have a clear reason, set a generic reason and return false. |
if (*reason == NULL) { |
*reason = _strdup("It is not a text parameter file, nor a standalone Mac/PC filter created by Filter Factory/Filter Foundry."); |
*reason = FF_GetMsg_Cpy(MSG_LOADFILE_UNKNOWN_FORMAT_ID); |
} |
return false; |
} |
/trunk/main.c |
---|
40,7 → 40,7 |
// Here are working variables: |
struct node *tree[4]; |
char *err[4]; |
TCHAR *err[4]; |
int errpos[4],errstart[4],nplanes,cnvused,chunksize,toprow; |
uint8_t slider[8]; // this is the "working data". We cannot always use gdata->parm, because parm will not be loaded if a AFS file is read |
char* expr[4]; // this is the "working data". We cannot always use gdata->parm, because parm will not be loaded if a AFS file is read |
135,7 → 135,8 |
} |
*/ |
simplealert((TCHAR*)TEXT("You tried to execute this DLL with RunDLL32. This is a Photoshop plugin!")); |
simplealert_id(MSG_RUNDLL_ERR_ID); |
return; |
} |
202,7 → 203,7 |
void ENTRYPOINT(short selector, FilterRecordPtr pb, intptr_t *data, short *result){ |
static Boolean wantdialog = false; |
static Boolean premiereWarnedOnce = false; |
char *reason; |
TCHAR*reason; |
#ifdef SHOW_HOST_DEBUG |
char* tmp; |
275,7 → 276,7 |
// but the filter is not applied when you click "OK" (because it crashes internally; only the debugger sees it)... |
// Probably the canvas structure is different (maybe it contains frames to achieve transitions?) |
if (!premiereWarnedOnce) { |
simplealert((TCHAR*)TEXT("This version of Filter Foundry is not compatible with Adobe Premiere!")); |
simplealert_id(MSG_PREMIERE_COMPAT_ID); |
} |
premiereWarnedOnce = true; |
*result = errPlugInHostInsufficient; |
314,10 → 315,10 |
gdata->standalone = gdata->parmloaded = readPARMresource((HMODULE)hDllInstance,&reason); |
if (gdata->parmloaded && (gdata->parm.cbSize != PARM_SIZE) && (gdata->parm.cbSize != PARM_SIZE_PREMIERE) && (gdata->parm.cbSize != PARM_SIG_MAC)) { |
if (gdata->obfusc) { |
simplealert((TCHAR*)TEXT("Incompatible obfuscation.")); |
simplealert_id(MSG_INCOMPATIBLE_OBFUSCATION_ID); |
} |
else { |
simplealert((TCHAR*)TEXT("Invalid parameter data.")); |
simplealert_id(MSG_INVALID_PARAMETER_DATA_ID); |
} |
} |
else { |
448,7 → 449,7 |
} |
int checkandinitparams(Handle params){ |
char *reasonstr,*reason; |
TCHAR*reasonstr,*reason; |
int i; |
Boolean bUninitializedParams; |
Boolean showdialog; |
470,10 → 471,10 |
isStandalone = readPARMresource((HMODULE)hDllInstance, &reason); |
if (isStandalone && (gdata->parm.cbSize != PARM_SIZE) && (gdata->parm.cbSize != PARM_SIZE_PREMIERE) && (gdata->parm.cbSize != PARM_SIG_MAC)) { |
if (gdata->obfusc) { |
simplealert((TCHAR*)TEXT("Incompatible obfuscation.")); |
simplealert_id(MSG_INCOMPATIBLE_OBFUSCATION_ID); |
} |
else { |
simplealert((TCHAR*)TEXT("Invalid parameter data.")); |
simplealert_id(MSG_INVALID_PARAMETER_DATA_ID); |
} |
gdata->parmloaded = false; |
return false; |
516,10 → 517,10 |
gdata->standalone = gdata->parmloaded = readPARMresource((HMODULE)hDllInstance,&reason); |
if (gdata->parmloaded && (gdata->parm.cbSize != PARM_SIZE) && (gdata->parm.cbSize != PARM_SIZE_PREMIERE) && (gdata->parm.cbSize != PARM_SIG_MAC)) { |
if (gdata->obfusc) { |
simplealert((TCHAR*)TEXT("Incompatible obfuscation.")); |
simplealert_id(MSG_INCOMPATIBLE_OBFUSCATION_ID); |
} |
else { |
simplealert((TCHAR*)TEXT("Invalid parameter data.")); |
simplealert_id(MSG_INVALID_PARAMETER_DATA_ID); |
} |
gdata->parmloaded = false; |
return false; |
/trunk/make_win.c |
---|
42,7 → 42,7 |
TCHAR s[0x300] = {0}; |
xstrcpy(&s[0],func); |
xstrcat(&s[0],TEXT(" failed: ")); |
xstrcat(&s[0],TEXT(" failed: ")); // TODO (Not so important): TRANSLATE |
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0, s + xstrlen(s), 0x300 - (DWORD)xstrlen(s), NULL); |
simplealert(&s[0]); |
} |
454,7 → 454,7 |
// ====== Change version attributes |
if (changeVersionInfo(dst, hupdate, pparm, bits) != NOERROR) { |
simplewarning((TCHAR*)TEXT("changeVersionInfo failed")); |
simplewarning((TCHAR*)TEXT("changeVersionInfo failed")); // TODO (Not so important): TRANSLATE |
} |
// ====== Obfuscate pparm! |
514,17 → 514,17 |
if ((binary_replace_file(dst, cObfuscSeed, obfuscseed, /*align to 4*/1, /*maxamount=*/1) == 0) && |
(binary_replace_file(dst, cObfuscSeed, obfuscseed, /*align to 1*/0, /*maxamount=*/1) == 0)) |
{ |
simplewarning((TCHAR*)TEXT("binary_replace_file failed")); |
simplewarning((TCHAR*)TEXT("binary_replace_file failed")); // TODO (Not so important): TRANSLATE |
discard = true; |
} |
} |
if (!update_pe_timestamp(dst, (__time32_t)time(0))) { |
simplewarning((TCHAR*)TEXT("update_pe_timestamp failed")); |
simplewarning((TCHAR*)TEXT("update_pe_timestamp failed")); // TODO (Not so important): TRANSLATE |
} |
if (!repair_pe_checksum(dst)) { |
simplewarning((TCHAR*)TEXT("repair_pe_checksum failed")); |
simplewarning((TCHAR*)TEXT("repair_pe_checksum failed")); // TODO (Not so important): TRANSLATE |
} |
}else showLastError((TCHAR*)TEXT("EndUpdateResource")); |
621,10 → 621,6 |
} |
OSErr do_make_standalone(FSSpec* dst, int bits) { |
char errA[MAX_PATH + 200]; |
#ifdef UNICODE |
TCHAR errW[MAX_PATH + 200]; |
#endif |
Boolean res; |
//DeleteFile(dstname); |
638,14 → 634,7 |
res = doresources(dst, bits); |
if (!res) { |
DeleteFile(&dst->szName[0]); |
sprintf(errA, "Could not create %d bit standalone plugin (doresources failed).", bits); |
#ifdef UNICODE |
mbstowcs(errW, errA, MAX_PATH + 200); |
simplealert(&errW[0]); |
#else |
simplealert(&errA[0]); |
#endif |
alertuser_id(bits == 32 ? MSG_CANNOT_CREATE_32BIT_FILTER_ID : MSG_CANNOT_CREATE_64BIT_FILTER_ID, (TCHAR*)TEXT("doresources failed")); |
} |
} |
else { |
653,13 → 642,7 |
res = false; |
//DeleteFile(dstname); |
sprintf(errA, "Could not create %d bit standalone plugin (File extraction failed).", bits); |
#ifdef UNICODE |
mbstowcs(errW, errA, MAX_PATH + 200); |
simplealert(&errW[0]); |
#else |
simplealert(&errA[0]); |
#endif |
alertuser_id(bits == 32 ? MSG_CANNOT_CREATE_32BIT_FILTER_ID : MSG_CANNOT_CREATE_64BIT_FILTER_ID, (TCHAR*)TEXT("extract_file failed")); |
} |
return res ? noErr : ioErr; |
679,7 → 662,7 |
if (tmpErr != noErr) |
outErr = tmpErr; |
else |
showmessage((TCHAR*)TEXT("32 bit standalone filter was successfully created")); |
showmessage_id(MSG_BUILT32_ID); |
// Make 64 bit: |
// Destfile = no64_or_32(chosenname) + 64 |
690,7 → 673,7 |
if (tmpErr != noErr) |
outErr = tmpErr; |
else |
showmessage((TCHAR*)TEXT("64 bit standalone filter was successfully created")); |
showmessage_id(MSG_BUILT64_ID); |
return outErr; |
} |
/trunk/parser.y |
---|
23,6 → 23,16 |
#include <stdio.h> |
#include <string.h> |
#ifdef WIN_ENV |
#include <windows.h> // for TCHAR |
#else |
#ifdef UNICODE |
#define TCHAR wchar_t |
#else |
#define TCHAR char |
#endif |
#endif |
#ifndef false |
#define false 0 |
#define true 1 |
35,7 → 45,12 |
int yyparse(void); |
int yylex(void); // hack. correct prototype is buried in lex output |
//#endif |
void yyerror(char*); |
// DM 29.04.2022 |
#define YY_(Msg) ((TCHAR*)TEXT(Msg)) |
void yyerror(TCHAR*); |
int pushflag(int x); |
struct node *parseexpr(char *s); |
42,7 → 57,7 |
#define DPARSE |
struct node *parsetree; |
char *errstr; |
TCHAR *errstr; |
enum{ PARENSTACK = 100 }; |
52,7 → 67,7 |
if(arglistptr < (PARENSTACK-1)) |
inarglist[++arglistptr] = x; |
else{ |
yyerror(_strdup("too many nested parentheses or function calls")); |
yyerror((TCHAR*)TEXT("too many nested parentheses or function calls")); |
return true; |
} |
return false; |
144,8 → 159,8 |
| '-' expr %prec NEG { $$ = $1; $$->child[0] = 0; $$->child[1] = $2; } |
| '+' expr %prec NEG { $$ = $2; } |
/* error tokens */ |
| TOK_UNKNOWN { yyerror(_strdup("unknown name")); YYERROR; } |
| TOK_BADCHAR { yyerror(_strdup("disallowed character")); YYERROR; } |
| TOK_UNKNOWN { yyerror((TCHAR*)TEXT("unknown name")); YYERROR; } |
| TOK_BADCHAR { yyerror((TCHAR*)TEXT("disallowed character")); YYERROR; } |
; |
%% |
171,10 → 186,10 |
else /* ensure we don't leak memory, on an unsuccessful parse */ |
freeallnodes(); |
}else |
yyerror(_strdup("null string???")); |
yyerror((TCHAR*)TEXT("null string???")); |
return 0; |
} |
void yyerror(char *msg){ |
void yyerror(TCHAR *msg){ |
errstr = msg; |
} |
/trunk/preview.c |
---|
335,8 → 335,7 |
} |
if (e && !previewerr) { |
alertuser((TCHAR*)TEXT("Could not build preview at chosen zoom level."), |
e == memFullErr && !needall ? (TCHAR*)TEXT("The image is too large for available memory. Try zooming in.\nIf that does not help, cancel and retry the filter.") : (TCHAR*)TEXT("")); |
simplealert_id(e == memFullErr && !needall ? MSG_CANNOT_ZOOM_MEMFULL_ID : MSG_CANNOT_ZOOM_ID); |
previewerr = true; |
} |
470,8 → 469,7 |
} |
if (e && !previewerr) { |
alertuser((TCHAR*)TEXT("Could not build preview at chosen zoom level."), |
e == memFullErr && !needall ? (TCHAR*)TEXT("The image is too large for available memory. Try zooming in.\nIf that does not help, cancel and retry the filter.") : (TCHAR*)TEXT("")); |
simplealert_id(e == memFullErr && !needall ? MSG_CANNOT_ZOOM_MEMFULL_ID : MSG_CANNOT_ZOOM_ID); |
previewerr = true; |
} |
/trunk/read.c |
---|
38,7 → 38,7 |
MAXLINE = 0x200, |
}; |
Boolean readparams_afs_pff(Handle h,char **reason){ |
Boolean readparams_afs_pff(Handle h, TCHAR**reason){ |
Boolean res = false; |
char linebuf[MAXLINE + 1] = { 0 }; |
char curexpr[MAXEXPR + 1] = { 0 }; |
54,7 → 54,7 |
q = curexpr; |
linecnt = exprcnt = lineptr = 0; |
//*reason = _strdup("File was too short."); |
//*reason = _strdup("File was too short."); // TODO (Not so important): TRANSLATE |
while(p < dataend){ |
c = *p++; |
70,7 → 70,7 |
/* process complete line */ |
if(linecnt==0){ |
if(strcmp(linebuf,"%RGB-1.0")){ |
// *reason = _strdup("This doesn't look like a Filter Factory file (first line is not \"%RGB-1.0\")."); |
// *reason = _strdup("This doesn't look like a Filter Factory file (first line is not \"%RGB-1.0\")."); // TODO (Not so important): TRANSLATE |
break; |
} |
}else if(linecnt<=8){ |
83,7 → 83,8 |
if(lineptr){ |
/* it's not an empty line; append it to current expr string */ |
if( q+lineptr > curexpr+MAXEXPR ){ |
*reason = _strdup("Found an expression longer than 1024 characters."); |
// TODO: isn't the limit 1024?! (because we need to have the NUL too?) |
*reason = FF_GetMsg_Cpy(MSG_EXPRESSION1024_FOUND_ID); |
break; |
} |
q = cat(q,linebuf); |
93,7 → 94,7 |
free(expr[exprcnt]); |
*q = 0; |
if(!(expr[exprcnt] = my_strdup(curexpr))){ |
*reason = _strdup("Could not get memory for expression."); |
*reason = FF_GetMsg_Cpy(MSG_EXPRESSION_OOM_ID); |
break; |
} |
126,9 → 127,9 |
break; |
case '\\': break; |
//default: |
// if(alerts) alertuser((TCHAR*)TEXT("Warning:"),TEXT("Unknown escape sequence in input.")); |
// if(alerts) alertuser((TCHAR*)TEXT("Warning:"),TEXT("Unknown escape sequence in input.")); // TODO (Not so important): TRANSLATE |
} |
}//else if(alerts) alertuser((TCHAR*)TEXT("Warning:"),TEXT("truncated escape sequence ends input")); |
}//else if(alerts) alertuser((TCHAR*)TEXT("Warning:"),TEXT("truncated escape sequence ends input")); // TODO (Not so important): TRANSLATE |
} |
if(lineptr < MAXLINE) |
194,7 → 195,7 |
return val; |
} |
Boolean readfile_ffx(StandardFileReply* sfr, char** reason) { |
Boolean readfile_ffx(StandardFileReply* sfr, TCHAR** reason) { |
Handle h; |
Boolean res = false; |
FILEREF refnum; |
217,7 → 218,7 |
else if (strcmp(val, "FFX1.2") == 0) format_version = 12; |
free(val); |
if (format_version > 0) { |
simplewarning((TCHAR*)TEXT("Attention! You are loading a \"Filters Unlimited\" file. Please note that Filter Foundry only implements the basic Filter Factory functions. Therefore, most \"Filters Unlimited\" filters won't work with Filter Foundry.")); |
simplewarning_id(MSG_FILTERS_UNLIMITED_WARNING_ID); |
val = _ffx_read_str(&q); |
strcpy(gdata->parm.szTitle, val); |
259,16 → 260,16 |
} |
if (strlen(val) >= sizeof(gdata->parm.szFormula[i])) { |
if (i == 0) { |
simplealert((TCHAR*)TEXT("Attention! The formula for channel I/R was too long (longer than 1023 characters) and was truncated.")); |
simplealert_id(MSG_FORMULA_IR_1023_TRUNCATED_ID); |
} |
else if (i == 1) { |
simplealert((TCHAR*)TEXT("Attention! The formula for channel G was too long (longer than 1023 characters) and was truncated.")); |
simplealert_id(MSG_FORMULA_G_1023_TRUNCATED_ID); |
} |
else if (i == 2) { |
simplealert((TCHAR*)TEXT("Attention! The formula for channel B was too long (longer than 1023 characters) and was truncated.")); |
simplealert_id(MSG_FORMULA_B_1023_TRUNCATED_ID); |
} |
else if (i == 3) { |
simplealert((TCHAR*)TEXT("Attention! The formula for channel A was too long (longer than 1023 characters) and was truncated.")); |
simplealert_id(MSG_FORMULA_A_1023_TRUNCATED_ID); |
} |
// C++ wrong warning: Buffer overflow (C6386) |
#pragma warning(suppress : 6386) |
321,7 → 322,7 |
return res; |
} |
Boolean readfile_8bf(StandardFileReply *sfr,char **reason){ |
Boolean readfile_8bf(StandardFileReply *sfr, TCHAR**reason){ |
unsigned char magic[2]; |
FILECOUNT count; |
Handle h; |
350,7 → 351,7 |
} // else no point in proceeding |
FSClose(refnum); |
}else |
*reason = _strdup("Could not open file."); |
*reason = FF_GetMsg_Cpy(MSG_CANNOT_OPEN_FILE_ID); |
if (res) gdata->obfusc = false; |
return res; |
701,7 → 702,7 |
return true; |
} |
Boolean readfile_picotxt(StandardFileReply* sfr, char** reason) { |
Boolean readfile_picotxt(StandardFileReply* sfr, TCHAR** reason) { |
extern int ctls[], maps[]; |
Handle h; |
790,7 → 791,7 |
return res; |
} |
Boolean readfile_afs_pff(StandardFileReply *sfr,char **reason){ |
Boolean readfile_afs_pff(StandardFileReply *sfr, TCHAR**reason){ |
FILEREF r; |
Handle h; |
Boolean res = false; |
813,8 → 814,9 |
PIDISPOSEHANDLE(h); |
} |
FSClose(r); |
}else |
*reason = _strdup("Could not open the file."); |
} |
else |
*reason = FF_GetMsg_Cpy(MSG_CANNOT_OPEN_FILE_ID); |
return res; |
} |
/trunk/save.c |
---|
213,7 → 213,7 |
FILEREF r; |
Handle h; |
Boolean res = false; |
char *reasonstr = _strdup(""); |
TCHAR *reasonstr = NULL; |
FSpDelete(&sfr->sfFile); |
if(FSpCreate(&sfr->sfFile,SIG_SIMPLETEXT,TEXT_FILETYPE,sfr->sfScript) == noErr) |
252,17 → 252,11 |
} |
FSClose(r); |
}else reasonstr = _strdup("Could not open the file."); |
else reasonstr = _strdup("Could not create the file."); |
}else reasonstr = FF_GetMsg_Cpy(MSG_CANNOT_OPEN_FILE_ID); |
else reasonstr = FF_GetMsg_Cpy(MSG_CANNOT_CREATE_FILE_ID); |
if (!res) { |
#ifdef UNICODE |
TCHAR reasonstrW[0x300]; |
mbstowcs(reasonstrW, reasonstr, 0x300); |
alertuser((TCHAR*)TEXT("Could not save settings."), reasonstrW); |
#else |
alertuser((TCHAR*)TEXT("Could not save settings."), reasonstr); |
#endif |
alertuser_id(MSG_CANNOT_SAVE_SETTINGS_ID, reasonstr); |
} |
return res; |
/trunk/slider_win.c |
---|
164,7 → 164,7 |
clx.lpszClassName = targetClass; |
if (RegisterClass(&clx) == 0) { |
TCHAR s[0x300]; |
xstrcpy(s, (TCHAR*)TEXT("RegisterClass failed: ")); |
xstrcpy(s, (TCHAR*)TEXT("RegisterClass failed: ")); // TODO (Not so important): TRANSLATE |
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0, s + xstrlen(s), 0x300 - (DWORD)xstrlen(s), NULL); |
simplealert(&s[0]); |
return false; |
190,7 → 190,7 |
if (RegisterClass(&clx) == 0) { |
TCHAR s[0x300]; |
xstrcpy(s, (TCHAR*)TEXT("RegisterClass failed: ")); |
xstrcpy(s, (TCHAR*)TEXT("RegisterClass failed: ")); // TODO (Not so important): TRANSLATE |
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0, s + xstrlen(s), 0x300 - (DWORD)xstrlen(s), NULL); |
simplealert(&s[0]); |
return false; |
200,7 → 200,7 |
} |
} |
else { |
simplealert((TCHAR*)TEXT("GetClassInfo failed")); |
simplealert((TCHAR*)TEXT("GetClassInfo failed")); // TODO (Not so important): TRANSLATE |
} |
return false; |
} |
246,7 → 246,7 |
if (!gdata->pluginDllSliderInfo.initialized) return; |
if (!PluginDll_UnRegisterSlider(hDllInstance)) { |
simplealert((TCHAR*)TEXT("UnRegisterSlider failed")); |
simplealert((TCHAR*)TEXT("UnRegisterSlider failed")); // TODO (Not so important): TRANSLATE |
return; |
} |
/trunk/telegraphics_common/tt/dbg_win.c |
---|
22,7 → 22,7 |
void dbg(TCHAR *s){ |
#ifdef DEBUG |
MessageBox(NULL,s,TEXT("plugin debug"),0); |
MessageBox(NULL,s,TEXT("plugin debug"),0); // TODO (Not so important): TRANSLATE |
#else |
UNREFERENCED_PARAMETER(s); |
#endif |
/trunk/telegraphics_common/tt/ui_compat_win.c |
---|
86,7 → 86,7 |
return true; |
}else |
dbg((TCHAR*)TEXT("CreateDIBSection FAILED")); |
dbg((TCHAR*)TEXT("CreateDIBSection FAILED")); // TODO (Not so important): TRANSLATE |
} |
return false; |
} |
/trunk/ui.c |
---|
229,7 → 229,7 |
/* uh oh, couldn't parse one of the saved expressions...this is fatal */ |
DISABLEDLGITEM(dp,IDOK); |
if(gdata->standalone){ |
simplealert((TCHAR*)TEXT("Can't run this filter (there is a problem with the saved expressions).")); |
simplealert_id(MSG_SAVED_EXPR_ERR_ID); |
}else{ |
DISABLEDLGITEM(dp,SAVEITEM); |
DISABLEDLGITEM(dp,MAKEITEM); |
343,7 → 343,7 |
StandardFileReply sfr; |
NavReplyRecord reply; |
static OSType types[] = {TEXT_FILETYPE,PS_FILTER_FILETYPE}; |
char *reason; |
TCHAR*reason; |
HINSTANCE hShellRes; |
InternalState bakState; |
360,13 → 360,13 |
case OPENITEM: |
if(!gdata->standalone && choosefiletypes( |
#ifdef MAC_ENV |
(StringPtr)_strdup("\pChoose filter settings"), // "\p" means "Pascal string" |
(StringPtr)_strdup("\pChoose filter settings"), // "\p" means "Pascal string" // TODO: TRANSLATE |
& sfr, & reply, types, 2, |
"All supported files (*.afs, *.8bf, *.pff, *.prm, *.bin, *.rsrc, *.txt, *.ffx)\0*.afs;*.8bf;*.pff;*.prm;*.bin;*.rsrc;*.txt;*.ffx\0Filter Factory Settings (*.afs, *.txt)\0*.afs;*.txt\0PluginCommander or FFDecomp TXT file (*.txt)\0*.txt\0Filter Factory for Windows, Standalone Filter (*.8bf)\0*.8bf\0Premiere TF/FF Settings (*.pff)\0*.pff\0Premiere TT/FF for Windows, Standalone Filter (*.prm)\0*.prm\0FilterFactory for MacOS, Standalone Filter (*.bin, *.rsrc)\0*.bin\0\"Filters Unlimited\" filter (*.ffx)\0*.ffx\0All files (*.*)\0*.*\0\0" |
"All supported files (*.afs, *.8bf, *.pff, *.prm, *.bin, *.rsrc, *.txt, *.ffx)\0*.afs;*.8bf;*.pff;*.prm;*.bin;*.rsrc;*.txt;*.ffx\0Filter Factory Settings (*.afs, *.txt)\0*.afs;*.txt\0PluginCommander or FFDecomp TXT file (*.txt)\0*.txt\0Filter Factory for Windows, Standalone Filter (*.8bf)\0*.8bf\0Premiere TF/FF Settings (*.pff)\0*.pff\0Premiere TT/FF for Windows, Standalone Filter (*.prm)\0*.prm\0FilterFactory for MacOS, Standalone Filter (*.bin, *.rsrc)\0*.bin\0\"Filters Unlimited\" filter (*.ffx)\0*.ffx\0All files (*.*)\0*.*\0\0" // TODO: TRANSLATE |
#else |
TEXT("Choose filter settings"), |
TEXT("Choose filter settings"), // TODO: TRANSLATE |
& sfr, & reply, types, 2, |
TEXT("All supported files (*.afs, *.8bf, *.pff, *.prm, *.bin, *.rsrc, *.txt, *.ffx)\0*.afs;*.8bf;*.pff;*.prm;*.bin;*.rsrc;*.txt;*.ffx\0Filter Factory Settings (*.afs, *.txt)\0*.afs;*.txt\0PluginCommander or FFDecomp TXT file (*.txt)\0*.txt\0Filter Factory for Windows, Standalone Filter (*.8bf)\0*.8bf\0Premiere TF/FF Settings (*.pff)\0*.pff\0Premiere TT/FF for Windows, Standalone Filter (*.prm)\0*.prm\0FilterFactory for MacOS, Standalone Filter (*.bin, *.rsrc)\0*.bin\0\"Filters Unlimited\" filter (*.ffx)\0*.ffx\0All files (*.*)\0*.*\0\0") |
TEXT("All supported files (*.afs, *.8bf, *.pff, *.prm, *.bin, *.rsrc, *.txt, *.ffx)\0*.afs;*.8bf;*.pff;*.prm;*.bin;*.rsrc;*.txt;*.ffx\0Filter Factory Settings (*.afs, *.txt)\0*.afs;*.txt\0PluginCommander or FFDecomp TXT file (*.txt)\0*.txt\0Filter Factory for Windows, Standalone Filter (*.8bf)\0*.8bf\0Premiere TF/FF Settings (*.pff)\0*.pff\0Premiere TT/FF for Windows, Standalone Filter (*.prm)\0*.prm\0FilterFactory for MacOS, Standalone Filter (*.bin, *.rsrc)\0*.bin\0\"Filters Unlimited\" filter (*.ffx)\0*.ffx\0All files (*.*)\0*.*\0\0") // TODO: TRANSLATE |
,gdata->hWndMainDlg |
#endif |
)){ |
378,13 → 378,7 |
maindlgupdate(dp); |
} |
else { |
#ifdef UNICODE |
TCHAR reasonW[0x300]; |
mbstowcs(reasonW, reason, 0x300); |
alertuser((TCHAR*)TEXT("Could not load settings."), reasonW); |
#else |
alertuser((TCHAR*)TEXT("Could not load settings."), reason); |
#endif |
alertuser_id(MSG_CANNOT_LOAD_SETTINGS_ID, reason); |
// Restore |
restoreInternalState(bakState); |
394,17 → 388,17 |
case SAVEITEM: |
if(!gdata->standalone && putfile( |
#ifdef MAC_ENV |
(StringPtr)_strdup("\pSave filter settings"), // "\p" means "Pascal string" |
(StringPtr)_strdup("\pSave filter settings"), // "\p" means "Pascal string" // TODO: TRANSLATE |
(StringPtr)_strdup("\0"), |
TEXT_FILETYPE, SIG_SIMPLETEXT, & reply, & sfr, |
"afs", |
"All supported files (.afs, *.pff, .txt)\0*.afs;*.pff;*.txt\0Filter Factory Settings (*.afs)\0*.afs\0Premiere TF/FF Settings (*.pff)\0*.pff\0PluginCommander TXT file (*.txt)\0*.txt\0All files (*.*)\0*.*\0\0", 1 |
"All supported files (.afs, *.pff, .txt)\0*.afs;*.pff;*.txt\0Filter Factory Settings (*.afs)\0*.afs\0Premiere TF/FF Settings (*.pff)\0*.pff\0PluginCommander TXT file (*.txt)\0*.txt\0All files (*.*)\0*.*\0\0", 1 // TODO: TRANSLATE |
#else |
TEXT("Save filter settings"), |
TEXT("Save filter settings"), // TODO: TRANSLATE |
TEXT("\0"), |
TEXT_FILETYPE, SIG_SIMPLETEXT, & reply, & sfr, |
TEXT("afs"), |
TEXT("All supported files (.afs, *.pff, .txt)\0*.afs;*.pff;*.txt\0Filter Factory Settings (*.afs)\0*.afs\0Premiere TF/FF Settings (*.pff)\0*.pff\0PluginCommander TXT file (*.txt)\0*.txt\0All files (*.*)\0*.*\0\0"), 1 |
TEXT("All supported files (.afs, *.pff, .txt)\0*.afs;*.pff;*.txt\0Filter Factory Settings (*.afs)\0*.afs\0Premiere TF/FF Settings (*.pff)\0*.pff\0PluginCommander TXT file (*.txt)\0*.txt\0All files (*.*)\0*.*\0\0"), 1 // TODO: TRANSLATE |
,gdata->hWndMainDlg |
#endif |
)){ |
412,11 → 406,11 |
completesave(&reply); |
if (fileHasExtension(&sfr, TEXT(".txt"))) { |
showmessage((TCHAR*)TEXT("The file was successfully saved in the \"PluginCommander\" TXT format. The file will now be opened in a text editor, so that you can fill in the missing data: Category, Title, Copyright, Author, Filename, Slider/Map names.")); |
showmessage_id(MSG_PICO_SAVED_ID); |
#ifdef MAC_ENV |
// TODO: Open text file instead |
showmessage((TCHAR*)TEXT("Please edit the file manually to enter the title, category, authorname, copyright, slidernames etc.")); |
showmessage_id(MSG_PLEASE_EDIT_MANUALLY_ID); |
#else |
hShellRes = ShellExecute( |
gdata->hWndMainDlg, |
430,11 → 424,11 |
// MSDN states: "If the function succeeds, it returns a value greater than 32." |
TCHAR s[0x300]; |
xstrcpy(s, (TCHAR*)TEXT("ShellExecute failed: ")); |
xstrcpy(s, (TCHAR*)TEXT("ShellExecute failed: ")); // TODO (Not so important): TRANSLATE |
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0, s + xstrlen(s), 0x300 - (DWORD)xstrlen(s), NULL); |
simplealert(&s[0]); |
showmessage((TCHAR*)TEXT("Please edit the file manually to enter the title, category, author, copyright, filename, slidernames etc.")); |
showmessage_id(MSG_PLEASE_EDIT_MANUALLY_ID); |
} |
#endif |
} |
451,7 → 445,7 |
case HELPITEM: |
#ifdef MAC_ENV |
// TODO: Open web-browser instead |
showmessage((TCHAR*)TEXT("You can find the documentation here: https://github.com/danielmarschall/filter_foundry/tree/master/doc")); |
showmessage_id(MSG_FIND_DOKU_HERE_ID); |
#else |
hShellRes = ShellExecute( |
gdata->hWndMainDlg, |
469,11 → 463,11 |
// MSDN states: "If the function succeeds, it returns a value greater than 32." |
TCHAR s[0x300]; |
xstrcpy(s, (TCHAR*)TEXT("ShellExecute failed: ")); |
xstrcpy(s, (TCHAR*)TEXT("ShellExecute failed: ")); // TODO (Not so important): TRANSLATE |
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0, s + xstrlen(s), 0x300 - (DWORD)xstrlen(s), NULL); |
simplealert(&s[0]); |
showmessage((TCHAR*)TEXT("You can find the documentation here: https://github.com/danielmarschall/filter_foundry/tree/master/doc")); |
showmessage_id(MSG_FIND_DOKU_HERE_ID); |
} |
#endif |
break; |
525,13 → 519,7 |
case FIRSTICONITEM+3: |
item -= FIRSTICONITEM; |
{ |
#ifdef UNICODE |
TCHAR errW[0x300]; |
mbstowcs(errW, err[item], 0x300); |
simplealert(errW); |
#else |
simplealert(err[item]); |
#endif |
} |
SELECTCTLTEXT(dp,FIRSTEXPRITEM+item,errstart[item],errpos[item]); |
break; |
554,6 → 542,10 |
Boolean res; |
size_t i; |
if (more == NULL) { |
return simplealert(err); |
} |
s = (TCHAR*)malloc((xstrlen(err) + xstrlen(more) + 3) * sizeof(TCHAR)); // 3=CR+LF+NUL |
if (s == NULL) return false; |
578,3 → 570,27 |
free(s); |
return res; |
} |
Boolean alertuser_id(int MsgId, TCHAR* more) { |
TCHAR msg[1000]; |
FF_GetMsg(&msg[0], MsgId); |
return alertuser(&msg[0], more); |
} |
Boolean simplealert_id(int MsgId) { |
TCHAR msg[1000]; |
FF_GetMsg(&msg[0], MsgId); |
return simplealert(&msg[0]); |
} |
Boolean simplewarning_id(int MsgId) { |
TCHAR msg[1000]; |
FF_GetMsg(&msg[0], MsgId); |
return simplewarning(&msg[0]); |
} |
Boolean showmessage_id(int MsgId) { |
TCHAR msg[1000]; |
FF_GetMsg(&msg[0], MsgId); |
return showmessage(&msg[0]); |
} |
/trunk/ui.h |
---|
104,12 → 104,16 |
void DoAbout(AboutRecordPtr prec); |
Boolean maindialog(FilterRecordPtr pb); |
Boolean builddialog(FilterRecordPtr pb); |
Boolean simplealert(TCHAR* s); |
Boolean simplealert_id(int MsgId); |
Boolean simplewarning(TCHAR* s); |
Boolean simplewarning_id(int MsgId); |
Boolean showmessage(TCHAR *s); |
Boolean showmessage_id(int MsgId); |
Boolean alertuser(TCHAR *err, TCHAR* more); |
Boolean alertuser_id(int MsgId, TCHAR* more); |
// platform independent |
Boolean alertuser(TCHAR *err, TCHAR*more); |
void maindlginit(DIALOGREF dp); |
Boolean maindlgitem(DIALOGREF dp,int item); |
void maindlgupdate(DIALOGREF dp); |
/trunk/ui_build.c |
---|
143,12 → 143,12 |
// Do a few checks first |
GetDlgItemTextA(dp, CATEGORYITEM, s, MAXFIELD); |
if (strlen(s) == 0) { |
simplealert((TCHAR*)TEXT("Category must not be empty!")); |
simplealert_id(MSG_CATEGORY_EMPTY_ERR_ID); |
return true; // don't continue (i.e. don't call EndDialog). Let the user correct the input |
} |
GetDlgItemTextA(dp, TITLEITEM, s, MAXFIELD); |
if (strlen(s) == 0) { |
simplealert((TCHAR*)TEXT("Title must not be empty!")); |
simplealert_id(MSG_TITLE_EMPTY_ERR_ID); |
return true; // don't continue (i.e. don't call EndDialog). Let the user correct the input |
} |
186,12 → 186,14 |
#ifdef UNICODE |
if (unicode) { |
simplewarning((TCHAR*)TEXT("The internal structures of Photoshop and Filter Factory are not compatible with Unicode characters. It is highly recommended that you only use characters of your current charset. Unicode characters will be converted into question mark symbols.")); |
// TODO: In this message, we recommend that the user chooses character of his own charset. |
// BUT: The user should actually only choose A-Z, otherwise stuff might be displayed wrong on foreign computers?! |
simplewarning_id(MSG_UNICODE_DATA_WARNING_ID); |
} |
else |
#endif |
if (extCharset) { |
simplewarning((TCHAR*)TEXT("You were using characters of an extended charset. The characters might look correct on your machine, but on a machine in a different country the characters might look wrong. Please consider using the ASCII character set only (i.e. Latin characters without accent marks).")); |
simplewarning_id(MSG_EXTCHARSET_DATA_WARNING_ID); |
} |
// Now begin |
220,16 → 222,16 |
for (i = 0; i < 4; ++i) { |
if (strlen(expr[i]) >= sizeof(gdata->parm.szFormula[i])) { |
if (i == 0) { |
simplealert((TCHAR*)TEXT("Attention! The formula for channel R was too long (longer than 1023 characters) and was truncated.")); |
simplealert_id(MSG_FORMULA_R_1023_TRUNCATED_ID); |
} |
else if (i == 1) { |
simplealert((TCHAR*)TEXT("Attention! The formula for channel G was too long (longer than 1023 characters) and was truncated.")); |
simplealert_id(MSG_FORMULA_G_1023_TRUNCATED_ID); |
} |
else if (i == 2) { |
simplealert((TCHAR*)TEXT("Attention! The formula for channel B was too long (longer than 1023 characters) and was truncated.")); |
simplealert_id(MSG_FORMULA_B_1023_TRUNCATED_ID); |
} |
else if (i == 3) { |
simplealert((TCHAR*)TEXT("Attention! The formula for channel A was too long (longer than 1023 characters) and was truncated.")); |
simplealert_id(MSG_FORMULA_A_1023_TRUNCATED_ID); |
} |
expr[i][sizeof(gdata->parm.szFormula[i]) - 1] = '\0'; |
} |
255,16 → 257,16 |
#endif |
if (putfile( |
#ifdef MAC_ENV |
(StringPtr)_strdup("\pMake standalone filter"), // "\p" means "Pascal string" |
(StringPtr)_strdup("\pMake standalone filter"), // "\p" means "Pascal string" // TODO: TRANSLATE |
(StringPtr)myc2pstr(_strdup(fname)), |
PS_FILTER_FILETYPE, kPhotoshopSignature, & reply, & sfr, |
"8bf", "Filter plugin file (.8bf)\0*.8bf\0\0", 1 |
"8bf", "Filter plugin file (.8bf)\0*.8bf\0\0", 1 // TODO: TRANSLATE |
#else |
TEXT("Make standalone filter"), |
TEXT("Make standalone filter"), // TODO: TRANSLATE |
fname, |
PS_FILTER_FILETYPE, kPhotoshopSignature, & reply, & sfr, |
TEXT("8bf"), |
TEXT("Filter plugin file (.8bf)\0*.8bf\0\0"), 1 |
TEXT("Filter plugin file (.8bf)\0*.8bf\0\0"), 1 // TODO: TRANSLATE |
, (HWND)dp |
#endif |
)) { |
/trunk/ui_build_win.c |
---|
67,11 → 67,11 |
res = DialogBoxParam(hDllInstance,MAKEINTRESOURCE(ID_BUILDDLG), |
gdata->hWndMainDlg ? gdata->hWndMainDlg : (HWND)p->hwnd,builddlgproc,0); |
if (res == 0) { |
simplealert((TCHAR*)TEXT("DialogBoxParam invalid parent window handle")); |
simplealert((TCHAR*)TEXT("DialogBoxParam invalid parent window handle")); // TODO (Not so important): TRANSLATE |
} |
if (res == -1) { |
TCHAR s[0x300]; |
xstrcpy(s, (TCHAR*)TEXT("DialogBoxParam failed: ")); |
xstrcpy(s, (TCHAR*)TEXT("DialogBoxParam failed: ")); // TODO (Not so important): TRANSLATE |
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0, s + xstrlen(s), 0x300 - (DWORD)xstrlen(s), NULL); |
simplealert(&s[0]); |
} |
/trunk/ui_mac.c |
---|
62,6 → 62,16 |
return i == ok; |
} |
Boolean simplewarning(char *s){ |
int i; |
myc2pstr(_strdup(s)); |
ParamText((StringPtr)s,NULL,NULL,NULL); |
i = Alert(ID_SYNTAXALERT,NULL); |
myp2cstr((StringPtr)s); |
return i == ok; |
} |
Boolean showmessage(char *s){ |
int i; |
/trunk/ui_win.c |
---|
284,12 → 284,20 |
SetClassLongPtr(GetDlgItem(hDlg, FIRSTICONITEM), GCLP_HCURSOR, (LONG_PTR)hCurHandQuestion); |
for(i = 0; i < 4; ++i){ |
CreateToolTip(FIRSTICONITEM + i, hDlg, (TCHAR*)TEXT("Error in expression! Click to see details.")); |
TCHAR msg[0x100]; |
LoadString(hDllInstance, MSG_ERROR_IN_EXPRESSION_CLICK_DETAILS_ID, &msg[0], 0x100); |
CreateToolTip(FIRSTICONITEM + i, hDlg, msg); |
} |
CreateToolTip(ZOOMINITEM, hDlg, (TCHAR*)TEXT("Zoom in")); |
CreateToolTip(ZOOMOUTITEM, hDlg, (TCHAR*)TEXT("Zoom out")); |
CreateToolTip(ZOOMLEVELITEM, hDlg, (TCHAR*)TEXT("Fully zoom in/out")); |
{ |
TCHAR msg[0x100]; |
LoadString(hDllInstance, MSG_ZOOM_IN_ID, &msg[0], 0x100); |
CreateToolTip(ZOOMINITEM, hDlg, msg); |
LoadString(hDllInstance, MSG_ZOOM_OUT_ID, &msg[0], 0x100); |
CreateToolTip(ZOOMOUTITEM, hDlg, msg); |
LoadString(hDllInstance, MSG_FULLY_ZOOM_INOUT_ID, &msg[0], 0x100); |
CreateToolTip(ZOOMLEVELITEM, hDlg, msg); |
} |
for(i = 0; i < 8; ++i){ |
FF_SetSliderRange(hDlg, FIRSTCTLITEM+i, 0, 255); |
416,7 → 424,7 |
//return false; |
// We simply hide the sliders and let the user enter the numeric values in the edit-box. |
simplewarning((TCHAR*)TEXT("Visual sliders are not available because neither PLUGIN.DLL, nor the Microsoft Trackbar Control (msctls_trackbar32) was found on your system.")); |
simplewarning_id(MSG_SLIDER_UNAVAILABLE_ID); |
Slider_Init_None(TEXT("FoundrySlider")); |
} |
} |
432,11 → 440,11 |
res = DialogBoxParam(hDllInstance,MAKEINTRESOURCE(gdata->standalone ? ID_PARAMDLG : ID_MAINDLG), |
(HWND)p->hwnd,maindlgproc,0); |
if (res == 0) { |
simplealert((TCHAR*)TEXT("DialogBoxParam invalid parent window handle")); |
simplealert((TCHAR*)TEXT("DialogBoxParam invalid parent window handle")); // TODO (Not so important): TRANSLATE |
} |
if (res == -1) { |
TCHAR s[0x300]; |
xstrcpy(s, (TCHAR*)TEXT("DialogBoxParam failed: ")); |
xstrcpy(s, (TCHAR*)TEXT("DialogBoxParam failed: ")); // TODO (Not so important): TRANSLATE |
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0, s + xstrlen(s), 0x300 - (DWORD)xstrlen(s), NULL); |
simplealert(&s[0]); |
} |
/trunk/visual_studio/FilterFoundry.vcxproj |
---|
253,6 → 253,7 |
<ClInclude Include="..\c.h" /> |
<ClInclude Include="..\ff.h" /> |
<ClInclude Include="..\funcs.h" /> |
<ClInclude Include="..\language.h" /> |
<ClInclude Include="..\manifest.h" /> |
<ClInclude Include="..\ff_misc.h" /> |
<ClInclude Include="..\node.h" /> |
279,6 → 280,7 |
</ItemGroup> |
<ItemGroup> |
<ClCompile Include="..\ff_misc.c" /> |
<ClCompile Include="..\language.c" /> |
<ClCompile Include="..\obfusc.c" /> |
<ClCompile Include="..\slider_win.c" /> |
<ClCompile Include="..\telegraphics_common\adobeplugin\dllmain.c" /> |
/trunk/visual_studio/FilterFoundry.vcxproj.filters |
---|
93,6 → 93,9 |
<ClInclude Include="..\slider_win.h"> |
<Filter>Headerdateien</Filter> |
</ClInclude> |
<ClInclude Include="..\language.h"> |
<Filter>Headerdateien</Filter> |
</ClInclude> |
</ItemGroup> |
<ItemGroup> |
<ClCompile Include="..\telegraphics_common\adobeplugin\dllmain.c"> |
188,6 → 191,9 |
<ClCompile Include="..\ff_misc.c"> |
<Filter>Quelldateien</Filter> |
</ClCompile> |
<ClCompile Include="..\language.c"> |
<Filter>Quelldateien</Filter> |
</ClCompile> |
</ItemGroup> |
<ItemGroup> |
<ResourceCompile Include="..\win_res.rc"> |
/trunk/visual_studio/nmake.mak |
---|
64,7 → 64,7 |
BISON = win_flex_bison\win_bison |
OBJ = ..\main.obj ..\funcs.obj ..\process.obj ..\node.obj ..\symtab.obj \ |
..\ui.obj ..\ui_build.obj ..\preview.obj ..\read.obj ..\save.obj ..\make.obj ..\obfusc.obj ..\ff_misc.ob ..\slider_win.obj \ |
..\ui.obj ..\ui_build.obj ..\preview.obj ..\read.obj ..\save.obj ..\make.obj ..\obfusc.obj ..\ff_misc.ob ..\language.obj ..\slider_win.obj \ |
..\scripting.obj ..\lex.yy.obj ..\manifest.obj ..\ui_win.obj ..\make_win.obj ..\versioninfo_modify_win.obj ..\load_win.obj \ |
..\telegraphics_common\tt\dbg_win.obj ..\telegraphics_common\tt\ui_compat_win.obj \ |
..\telegraphics_common\tt\choosefile_win.obj ..\ui_build_win.obj \ |
/trunk/visual_studio/nmake64.mak |
---|
64,7 → 64,7 |
BISON = win_flex_bison\win_bison |
OBJ = ..\main.obj ..\funcs.obj ..\process.obj ..\node.obj ..\symtab.obj \ |
..\ui.obj ..\ui_build.obj ..\preview.obj ..\read.obj ..\save.obj ..\make.obj ..\obfusc.obj ..\ff_misc.obj ..\slider_win.obj \ |
..\ui.obj ..\ui_build.obj ..\preview.obj ..\read.obj ..\save.obj ..\make.obj ..\obfusc.obj ..\ff_misc.obj ..\language.obj ..\slider_win.obj \ |
..\scripting.obj ..\lex.yy.obj ..\manifest.obj ..\ui_win.obj ..\make_win.obj ..\versioninfo_modify_win.obj ..\load_win.obj \ |
..\telegraphics_common\tt\dbg_win.obj ..\telegraphics_common\tt\ui_compat_win.obj \ |
..\telegraphics_common\tt\choosefile_win.obj ..\ui_build_win.obj \ |
/trunk/win_res.rc |
---|
25,5 → 25,6 |
#include "ui_win.rc" |
#include "manifest.rc" |
#include "version_win.rc" |
#include "language_win.rc" |
// "1032 TPLT", "1064 TPLT", "3032 TPLT", and "3064 TPLT" will be added by the 3264_mixer tool |
/trunk/wpj/before.bat |
---|
7,4 → 7,3 |
ren y.tab.c y_tab.c |
ren lex.yy.c lex_yy.c |
cd wpj |
/trunk/wpj/filterfoundry.tgt |
---|
90,7 → 90,7 |
22 |
WPickList |
75 |
77 |
23 |
MItem |
3 |
336,8 → 336,8 |
83 |
MItem |
11 |
..\lex_yy.c |
13 |
..\language.c |
84 |
WString |
4 |
354,8 → 354,8 |
87 |
MItem |
13 |
..\load_win.c |
11 |
..\lex_yy.c |
88 |
WString |
4 |
372,8 → 372,8 |
91 |
MItem |
9 |
..\main.c |
13 |
..\load_win.c |
92 |
WString |
4 |
391,7 → 391,7 |
95 |
MItem |
9 |
..\make.c |
..\main.c |
96 |
WString |
4 |
408,8 → 408,8 |
99 |
MItem |
13 |
..\make_win.c |
9 |
..\make.c |
100 |
WString |
4 |
427,7 → 427,7 |
103 |
MItem |
13 |
..\manifest.c |
..\make_win.c |
104 |
WString |
4 |
444,8 → 444,8 |
107 |
MItem |
9 |
..\node.c |
13 |
..\manifest.c |
108 |
WString |
4 |
462,8 → 462,8 |
111 |
MItem |
11 |
..\obfusc.c |
9 |
..\node.c |
112 |
WString |
4 |
480,8 → 480,8 |
115 |
MItem |
12 |
..\preview.c |
11 |
..\obfusc.c |
116 |
WString |
4 |
499,7 → 499,7 |
119 |
MItem |
12 |
..\process.c |
..\preview.c |
120 |
WString |
4 |
516,8 → 516,8 |
123 |
MItem |
9 |
..\read.c |
12 |
..\process.c |
124 |
WString |
4 |
535,7 → 535,7 |
127 |
MItem |
9 |
..\save.c |
..\read.c |
128 |
WString |
4 |
552,8 → 552,8 |
131 |
MItem |
14 |
..\scripting.c |
9 |
..\save.c |
132 |
WString |
4 |
570,8 → 570,8 |
135 |
MItem |
15 |
..\slider_win.c |
14 |
..\scripting.c |
136 |
WString |
4 |
588,8 → 588,8 |
139 |
MItem |
11 |
..\symtab.c |
15 |
..\slider_win.c |
140 |
WString |
4 |
606,8 → 606,8 |
143 |
MItem |
44 |
..\telegraphics_common\adobeplugin\dllmain.c |
11 |
..\symtab.c |
144 |
WString |
4 |
617,31 → 617,31 |
146 |
WVList |
1 |
147 |
ActionStates |
148 |
WString |
5 |
&Make |
149 |
WVList |
23 |
1 |
1 |
150 |
147 |
MItem |
42 |
..\telegraphics_common\tt\choosefile_win.c |
151 |
44 |
..\telegraphics_common\adobeplugin\dllmain.c |
148 |
WString |
4 |
COBJ |
152 |
149 |
WVList |
150 |
WVList |
1 |
151 |
ActionStates |
152 |
WString |
5 |
&Make |
153 |
WVList |
651,8 → 651,8 |
154 |
MItem |
41 |
..\telegraphics_common\tt\compat_string.c |
42 |
..\telegraphics_common\tt\choosefile_win.c |
155 |
WString |
4 |
669,8 → 669,8 |
158 |
MItem |
38 |
..\telegraphics_common\tt\compat_win.c |
41 |
..\telegraphics_common\tt\compat_string.c |
159 |
WString |
4 |
687,8 → 687,8 |
162 |
MItem |
47 |
..\telegraphics_common\tt\compat_win_resource.c |
38 |
..\telegraphics_common\tt\compat_win.c |
163 |
WString |
4 |
705,8 → 705,8 |
166 |
MItem |
35 |
..\telegraphics_common\tt\dbg_win.c |
47 |
..\telegraphics_common\tt\compat_win_resource.c |
167 |
WString |
4 |
723,8 → 723,8 |
170 |
MItem |
43 |
..\telegraphics_common\tt\file_compat_win.c |
35 |
..\telegraphics_common\tt\dbg_win.c |
171 |
WString |
4 |
741,8 → 741,8 |
174 |
MItem |
40 |
..\telegraphics_common\tt\sprintf_tiny.c |
43 |
..\telegraphics_common\tt\file_compat_win.c |
175 |
WString |
4 |
759,8 → 759,8 |
178 |
MItem |
31 |
..\telegraphics_common\tt\str.c |
40 |
..\telegraphics_common\tt\sprintf_tiny.c |
179 |
WString |
4 |
777,8 → 777,8 |
182 |
MItem |
41 |
..\telegraphics_common\tt\ui_compat_win.c |
31 |
..\telegraphics_common\tt\str.c |
183 |
WString |
4 |
795,8 → 795,8 |
186 |
MItem |
7 |
..\ui.c |
41 |
..\telegraphics_common\tt\ui_compat_win.c |
187 |
WString |
4 |
813,8 → 813,8 |
190 |
MItem |
13 |
..\ui_build.c |
7 |
..\ui.c |
191 |
WString |
4 |
831,8 → 831,8 |
194 |
MItem |
17 |
..\ui_build_win.c |
13 |
..\ui_build.c |
195 |
WString |
4 |
849,8 → 849,8 |
198 |
MItem |
11 |
..\ui_win.c |
17 |
..\ui_build_win.c |
199 |
WString |
4 |
867,8 → 867,8 |
202 |
MItem |
27 |
..\versioninfo_modify_win.c |
11 |
..\ui_win.c |
203 |
WString |
4 |
885,8 → 885,8 |
206 |
MItem |
10 |
..\y_tab.c |
27 |
..\versioninfo_modify_win.c |
207 |
WString |
4 |
903,12 → 903,12 |
210 |
MItem |
3 |
*.h |
10 |
..\y_tab.c |
211 |
WString |
3 |
NIL |
4 |
COBJ |
212 |
WVList |
915,14 → 915,14 |
213 |
WVList |
-1 |
23 |
1 |
1 |
214 |
MItem |
6 |
..\c.h |
3 |
*.h |
215 |
WString |
3 |
933,14 → 933,14 |
217 |
WVList |
210 |
-1 |
1 |
1 |
218 |
MItem |
13 |
..\cwprefix.h |
6 |
..\c.h |
219 |
WString |
3 |
951,14 → 951,14 |
221 |
WVList |
210 |
214 |
1 |
1 |
222 |
MItem |
7 |
..\ff.h |
13 |
..\cwprefix.h |
223 |
WString |
3 |
969,14 → 969,14 |
225 |
WVList |
210 |
214 |
1 |
1 |
226 |
MItem |
12 |
..\ff_misc.h |
7 |
..\ff.h |
227 |
WString |
3 |
987,14 → 987,14 |
229 |
WVList |
210 |
214 |
1 |
1 |
230 |
MItem |
10 |
..\funcs.h |
12 |
..\ff_misc.h |
231 |
WString |
3 |
1005,14 → 1005,14 |
233 |
WVList |
210 |
214 |
1 |
1 |
234 |
MItem |
13 |
..\manifest.h |
10 |
..\funcs.h |
235 |
WString |
3 |
1023,14 → 1023,14 |
237 |
WVList |
210 |
214 |
1 |
1 |
238 |
MItem |
9 |
..\node.h |
13 |
..\language.h |
239 |
WString |
3 |
1041,14 → 1041,14 |
241 |
WVList |
210 |
214 |
1 |
1 |
242 |
MItem |
9 |
..\PARM.h |
13 |
..\manifest.h |
243 |
WString |
3 |
1059,14 → 1059,14 |
245 |
WVList |
210 |
214 |
1 |
1 |
246 |
MItem |
12 |
..\preview.h |
9 |
..\node.h |
247 |
WString |
3 |
1077,14 → 1077,14 |
249 |
WVList |
210 |
214 |
1 |
1 |
250 |
MItem |
14 |
..\scripting.h |
9 |
..\PARM.h |
251 |
WString |
3 |
1095,14 → 1095,14 |
253 |
WVList |
210 |
214 |
1 |
1 |
254 |
MItem |
15 |
..\slider_win.h |
12 |
..\preview.h |
255 |
WString |
3 |
1113,14 → 1113,14 |
257 |
WVList |
210 |
214 |
1 |
1 |
258 |
MItem |
11 |
..\symtab.h |
14 |
..\scripting.h |
259 |
WString |
3 |
1131,14 → 1131,14 |
261 |
WVList |
210 |
214 |
1 |
1 |
262 |
MItem |
44 |
..\telegraphics_common\adobeplugin\A4Stuff.h |
15 |
..\slider_win.h |
263 |
WString |
3 |
1149,14 → 1149,14 |
265 |
WVList |
210 |
214 |
1 |
1 |
266 |
MItem |
42 |
..\telegraphics_common\adobeplugin\entry.h |
11 |
..\symtab.h |
267 |
WString |
3 |
1167,14 → 1167,14 |
269 |
WVList |
210 |
214 |
1 |
1 |
270 |
MItem |
42 |
..\telegraphics_common\adobeplugin\world.h |
44 |
..\telegraphics_common\adobeplugin\A4Stuff.h |
271 |
WString |
3 |
1185,7 → 1185,7 |
273 |
WVList |
210 |
214 |
1 |
1 |
1192,7 → 1192,7 |
274 |
MItem |
42 |
..\telegraphics_common\tt\calc_std_state.h |
..\telegraphics_common\adobeplugin\entry.h |
275 |
WString |
3 |
1203,14 → 1203,14 |
277 |
WVList |
210 |
214 |
1 |
1 |
278 |
MItem |
39 |
..\telegraphics_common\tt\carbonstuff.h |
42 |
..\telegraphics_common\adobeplugin\world.h |
279 |
WString |
3 |
1221,14 → 1221,14 |
281 |
WVList |
210 |
214 |
1 |
1 |
282 |
MItem |
38 |
..\telegraphics_common\tt\choosefile.h |
42 |
..\telegraphics_common\tt\calc_std_state.h |
283 |
WString |
3 |
1239,14 → 1239,14 |
285 |
WVList |
210 |
214 |
1 |
1 |
286 |
MItem |
41 |
..\telegraphics_common\tt\compat_string.h |
39 |
..\telegraphics_common\tt\carbonstuff.h |
287 |
WString |
3 |
1257,7 → 1257,7 |
289 |
WVList |
210 |
214 |
1 |
1 |
1264,7 → 1264,7 |
290 |
MItem |
38 |
..\telegraphics_common\tt\compat_win.h |
..\telegraphics_common\tt\choosefile.h |
291 |
WString |
3 |
1275,14 → 1275,14 |
293 |
WVList |
210 |
214 |
1 |
1 |
294 |
MItem |
47 |
..\telegraphics_common\tt\compat_win_resource.h |
41 |
..\telegraphics_common\tt\compat_string.h |
295 |
WString |
3 |
1293,14 → 1293,14 |
297 |
WVList |
210 |
214 |
1 |
1 |
298 |
MItem |
31 |
..\telegraphics_common\tt\dbg.h |
38 |
..\telegraphics_common\tt\compat_win.h |
299 |
WString |
3 |
1311,14 → 1311,14 |
301 |
WVList |
210 |
214 |
1 |
1 |
302 |
MItem |
31 |
..\telegraphics_common\tt\dlg.h |
47 |
..\telegraphics_common\tt\compat_win_resource.h |
303 |
WString |
3 |
1329,14 → 1329,14 |
305 |
WVList |
210 |
214 |
1 |
1 |
306 |
MItem |
39 |
..\telegraphics_common\tt\file_compat.h |
31 |
..\telegraphics_common\tt\dbg.h |
307 |
WString |
3 |
1347,14 → 1347,14 |
309 |
WVList |
210 |
214 |
1 |
1 |
310 |
MItem |
32 |
..\telegraphics_common\tt\menu.h |
31 |
..\telegraphics_common\tt\dlg.h |
311 |
WString |
3 |
1365,14 → 1365,14 |
313 |
WVList |
210 |
214 |
1 |
1 |
314 |
MItem |
36 |
..\telegraphics_common\tt\misc-mac.h |
39 |
..\telegraphics_common\tt\file_compat.h |
315 |
WString |
3 |
1383,7 → 1383,7 |
317 |
WVList |
210 |
214 |
1 |
1 |
1390,7 → 1390,7 |
318 |
MItem |
32 |
..\telegraphics_common\tt\misc.h |
..\telegraphics_common\tt\menu.h |
319 |
WString |
3 |
1401,14 → 1401,14 |
321 |
WVList |
210 |
214 |
1 |
1 |
322 |
MItem |
30 |
..\telegraphics_common\tt\qd.h |
36 |
..\telegraphics_common\tt\misc-mac.h |
323 |
WString |
3 |
1419,14 → 1419,14 |
325 |
WVList |
210 |
214 |
1 |
1 |
326 |
MItem |
34 |
..\telegraphics_common\tt\scroll.h |
32 |
..\telegraphics_common\tt\misc.h |
327 |
WString |
3 |
1437,14 → 1437,14 |
329 |
WVList |
210 |
214 |
1 |
1 |
330 |
MItem |
40 |
..\telegraphics_common\tt\sprintf_tiny.h |
30 |
..\telegraphics_common\tt\qd.h |
331 |
WString |
3 |
1455,14 → 1455,14 |
333 |
WVList |
210 |
214 |
1 |
1 |
334 |
MItem |
31 |
..\telegraphics_common\tt\str.h |
34 |
..\telegraphics_common\tt\scroll.h |
335 |
WString |
3 |
1473,14 → 1473,14 |
337 |
WVList |
210 |
214 |
1 |
1 |
338 |
MItem |
37 |
..\telegraphics_common\tt\ui_compat.h |
40 |
..\telegraphics_common\tt\sprintf_tiny.h |
339 |
WString |
3 |
1491,14 → 1491,14 |
341 |
WVList |
210 |
214 |
1 |
1 |
342 |
MItem |
32 |
..\telegraphics_common\tt\wind.h |
31 |
..\telegraphics_common\tt\str.h |
343 |
WString |
3 |
1509,14 → 1509,14 |
345 |
WVList |
210 |
214 |
1 |
1 |
346 |
MItem |
7 |
..\ui.h |
37 |
..\telegraphics_common\tt\ui_compat.h |
347 |
WString |
3 |
1527,14 → 1527,14 |
349 |
WVList |
210 |
214 |
1 |
1 |
350 |
MItem |
11 |
..\unistd.h |
32 |
..\telegraphics_common\tt\wind.h |
351 |
WString |
3 |
1545,14 → 1545,14 |
353 |
WVList |
210 |
214 |
1 |
1 |
354 |
MItem |
12 |
..\version.h |
7 |
..\ui.h |
355 |
WString |
3 |
1563,14 → 1563,14 |
357 |
WVList |
210 |
214 |
1 |
1 |
358 |
MItem |
27 |
..\versioninfo_modify_win.h |
11 |
..\unistd.h |
359 |
WString |
3 |
1581,14 → 1581,14 |
361 |
WVList |
210 |
214 |
1 |
1 |
362 |
MItem |
10 |
..\y.tab.h |
12 |
..\version.h |
363 |
WString |
3 |
1599,54 → 1599,90 |
365 |
WVList |
210 |
214 |
1 |
1 |
366 |
MItem |
27 |
..\versioninfo_modify_win.h |
367 |
WString |
3 |
NIL |
368 |
WVList |
369 |
WVList |
214 |
1 |
1 |
370 |
MItem |
10 |
..\y.tab.h |
371 |
WString |
3 |
NIL |
372 |
WVList |
373 |
WVList |
214 |
1 |
1 |
374 |
MItem |
4 |
*.rc |
367 |
375 |
WString |
5 |
NRESC |
368 |
376 |
WVList |
2 |
369 |
377 |
MVState |
370 |
378 |
WString |
3 |
WRC |
371 |
379 |
WString |
23 |
n????Macro definitions: |
1 |
372 |
380 |
WString |
61 |
WIN32 _WIN32 __NT__ WIN_ENV=1 INSIDE_PHOTOSHOP=1 MSWindows=1 |
373 |
381 |
MVState |
374 |
382 |
WString |
3 |
WRC |
375 |
383 |
WString |
25 |
n????Include directories: |
1 |
376 |
384 |
WString |
73 |
$[:;$(%watcom)\h;$(%watcom)\h\nt;$(%PSAPI)\Photoshop;$(%PSAPI)\Pica_sp;.\ |
377 |
385 |
WVList |
-1 |
1653,21 → 1689,21 |
1 |
1 |
378 |
386 |
MItem |
13 |
..\win_res.rc |
379 |
387 |
WString |
5 |
NRESC |
380 |
388 |
WVList |
381 |
389 |
WVList |
366 |
374 |
1 |
1 |
/trunk/wpj/filterfoundry.wpj |
---|
31,7 → 31,7 |
8 |
WRect |
64 |
75 |
66 |
6656 |
6656 |
40,6 → 40,6 |
WFileName |
17 |
filterfoundry.tgt |
5 |
26 |
7 |
/trunk/wpj/make_watcom.bat |
---|
1,5 → 1,9 |
echo off |
rem Call before.bat now, otherwise we might get the error message that y.tab.h is missing |
rem It is NOT enough to let Watcom call before.bat, because before.bat is executed too late. |
call before.bat |
cd /d "%~dp0" |
del *.mk *.mk1 *.obj *.lib *.map *.dll *.8bf *.err *.lk1 *.res |