From 9b77a598662ff2e531e11d7fe408e70716933c5b Mon Sep 17 00:00:00 2001 From: Dany Thinnes Date: Thu, 16 Dec 2021 10:23:30 +0100 Subject: [PATCH] Erledigt in Version 0.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fehler aus Video 0.3-1 behoben * Menü "Projekt" hinzugefügt * ASL Requester implementiert * Funktion zu Menüpunkt "Neu" implementiert * Funktion zu Menüpunkt "Laden ..." implementiert * Funktion zu Menüpunkt "Speichern" implementiert * Funktion zu Menüpunkt "Speichern als ..." implementiert * Funktion zu Menüpunkt "Beenden" implementiert Planung für Version 0.4 - Titel dem Dateinamen anpasst - Bei Änderung "*" hinter den Dateinamen - Menüpunkt für Zeilennummer einfügen --- Versionen neu | 16 ++++ phED | Bin 19036 -> 21116 bytes phED.link | 7 +- phED.map | 232 ++++++++++++++++++++++++++------------------------ phED.¶ | 14 +++ phed-init.h | 20 ++++- phed-menu.h | 18 ++++ phed-req.h | 10 +++ phed-utils.h | 45 ++++++++++ phed.c | 128 ++++++++++++++++++++++++---- phed.debug | Bin 46880 -> 50196 bytes phed.o | Bin 2984 -> 5052 bytes unbenannt.txt | 2 +- 13 files changed, 360 insertions(+), 132 deletions(-) create mode 100644 Versionen neu create mode 100644 phed-menu.h create mode 100644 phed-utils.h diff --git a/Versionen neu b/Versionen neu new file mode 100644 index 0000000..4a5304c --- /dev/null +++ b/Versionen neu @@ -0,0 +1,16 @@ +Erledigt in Version 0.3 + +* Fehler aus Video 0.3-1 behoben +* Menü "Projekt" hinzugefügt +* ASL Requester implementiert +* Funktion zu Menüpunkt "Neu" implementiert +* Funktion zu Menüpunkt "Laden ..." implementiert +* Funktion zu Menüpunkt "Speichern" implementiert +* Funktion zu Menüpunkt "Speichern als ..." implementiert +* Funktion zu Menüpunkt "Beenden" implementiert + +Planung für Version 0.4 + +- Titel dem Dateinamen anpasst +- Bei Änderung "*" hinter den Dateinamen +- Menüpunkt für Zeilennummer einfügen \ No newline at end of file diff --git a/phED b/phED index 0e6ba26152171590b6e9ce99c72a4ffb4b35a415..b3acfae84aa651bb9c4e7b0b6b2a9c15cfbcc3ae 100644 GIT binary patch delta 9817 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 C*r~|? delta 7901 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 D-ko~- diff --git a/phED.link b/phED.link index 5306a30..acc7d62 100644 --- a/phED.link +++ b/phED.link @@ -4,6 +4,7 @@ - 3,1,0,16,data "Projekte:phED/phed.o" -0,0,180,1972,code_68k -1,1,16,24,data -!0,864 ; _main +0,0,180,3404,code_68k +1,1,16,208,data +2,2,0,256,bss +!0,1356 ; _main diff --git a/phED.map b/phED.map index 56dd4b0..7b5d854 100644 --- a/phED.map +++ b/phED.map @@ -18,194 +18,202 @@ No Global PPC Destruktors M68K Code - Hunk #0 ( Far Public ) 16192 Bytes (0x3f40) + Hunk #0 ( Far Public ) 17772 Bytes (0x456c) _exit = 132 (0x84) referenced 2 times File HD0:StormC/StormC/StormSYS/startups/startup.o _closeLibraries = 180 (0xb4) unused, maybe local File Projekte:phED/phed.o - _openLibraries = 282 (0x11a) unused, maybe local + _openLibraries = 306 (0x132) unused, maybe local File Projekte:phED/phed.o - _saveText = 428 (0x1ac) unused, maybe local + _neuText = 484 (0x1e4) unused, maybe local File Projekte:phED/phed.o - _loadText = 522 (0x20a) unused, maybe local + _neuASL = 506 (0x1fa) unused, maybe local File Projekte:phED/phed.o - _requesterNew = 692 (0x2b4) unused, maybe local + _saveText = 856 (0x358) unused, maybe local File Projekte:phED/phed.o - _OpenRequesterTags = 746 (0x2ea) unused, maybe local + _loadText = 950 (0x3b6) unused, maybe local File Projekte:phED/phed.o - _beendenReq = 804 (0x324) unused, maybe local + _requesterNew = 1122 (0x462) unused, maybe local File Projekte:phED/phed.o - _main = 864 (0x360) referenced 2 times + _OpenRequesterTags = 1176 (0x498) unused, maybe local File Projekte:phED/phed.o - _fopen = 2154 (0x86a) referenced 1 times + _beendenReq = 1234 (0x4d2) unused, maybe local + File Projekte:phED/phed.o + _frageReq = 1294 (0x50e) unused, maybe local + File Projekte:phED/phed.o + _main = 1356 (0x54c) referenced 2 times + File Projekte:phED/phed.o + _fopen = 3586 (0xe02) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _fclose = 2312 (0x908) referenced 1 times + _fclose = 3744 (0xea0) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _fflush = 2384 (0x950) referenced 1 times + _fflush = 3816 (0xee8) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _setvbuf = 2468 (0x9a4) referenced 3 times + _setvbuf = 3900 (0xf3c) referenced 3 times File HD0:StormC/StormC/Lib/storm.lib - _amigaopen = 2688 (0xa80) referenced 1 times + _amigaopen = 4120 (0x1018) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _amigaread = 3660 (0xe4c) referenced 7 times + _amigaread = 5092 (0x13e4) referenced 7 times File HD0:StormC/StormC/Lib/storm.lib - _amigareadunget = 4128 (0x1020) referenced 1 times + _amigareadunget = 5560 (0x15b8) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _amigawrite = 4228 (0x1084) referenced 5 times + _amigawrite = 5660 (0x161c) referenced 5 times File HD0:StormC/StormC/Lib/storm.lib - _amigaeof = 4780 (0x12ac) referenced 4 times + _amigaeof = 6212 (0x1844) referenced 4 times File HD0:StormC/StormC/Lib/storm.lib - _amigaseek = 4804 (0x12c4) referenced 4 times + _amigaseek = 6236 (0x185c) referenced 4 times File HD0:StormC/StormC/Lib/storm.lib - _amigagetc = 5092 (0x13e4) referenced 6 times + _amigagetc = 6524 (0x197c) referenced 6 times File HD0:StormC/StormC/Lib/storm.lib - _amigagetcunget = 5148 (0x141c) referenced 1 times + _amigagetcunget = 6580 (0x19b4) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _amigaungetc = 5180 (0x143c) referenced 4 times + _amigaungetc = 6612 (0x19d4) referenced 4 times File HD0:StormC/StormC/Lib/storm.lib - _amigaputc = 5212 (0x145c) referenced 4 times + _amigaputc = 6644 (0x19f4) referenced 4 times File HD0:StormC/StormC/Lib/storm.lib - _amigaflush = 5272 (0x1498) referenced 9 times + _amigaflush = 6704 (0x1a30) referenced 9 times File HD0:StormC/StormC/Lib/storm.lib - _amigaclose = 5504 (0x1580) referenced 4 times + _amigaclose = 6936 (0x1b18) referenced 4 times File HD0:StormC/StormC/Lib/storm.lib - _INIT_0_InitFiles = 5628 (0x15fc) unused, maybe local + _INIT_0_InitFiles = 7060 (0x1b94) unused, maybe local File HD0:StormC/StormC/Lib/storm.lib - _EXIT_5_InitFiles = 5700 (0x1644) unused, maybe local + _EXIT_5_InitFiles = 7132 (0x1bdc) unused, maybe local File HD0:StormC/StormC/Lib/storm.lib - _memcpy = 5788 (0x169c) referenced 3 times + _memcpy = 7220 (0x1c34) referenced 3 times File HD0:StormC/StormC/Lib/storm.lib - _malloc = 5860 (0x16e4) referenced 4 times + _malloc = 7292 (0x1c7c) referenced 4 times File HD0:StormC/StormC/Lib/storm.lib - _free = 6280 (0x1888) referenced 6 times + _free = 7712 (0x1e20) referenced 6 times File HD0:StormC/StormC/Lib/storm.lib - _EXIT_4_free = 6476 (0x194c) unused, maybe local + _EXIT_4_free = 7908 (0x1ee4) unused, maybe local File HD0:StormC/StormC/Lib/storm.lib - _realloc = 6596 (0x19c4) referenced 1 times + _realloc = 8028 (0x1f5c) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _formatted_out = 7188 (0x1c14) referenced 1 times + _formatted_out = 8712 (0x2208) referenced 2 times File HD0:StormC/StormC/Lib/storm.lib - _printf = 9176 (0x23d8) referenced 1 times + _printf = 10692 (0x29c4) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _fread = 9228 (0x240c) referenced 1 times + _sprintf = 10744 (0x29f8) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _fwrite = 9288 (0x2448) referenced 1 times + _fread = 10808 (0x2a38) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _INIT_5_InitStdIOFiles = 9340 (0x247c) unused, maybe local + _fwrite = 10868 (0x2a74) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _EXIT_5_InitStdIOFiles = 9606 (0x2586) unused, maybe local + _INIT_5_InitStdIOFiles = 10920 (0x2aa8) unused, maybe local File HD0:StormC/StormC/Lib/storm.lib - _strcpy = 9652 (0x25b4) referenced 1 times + _EXIT_5_InitStdIOFiles = 11186 (0x2bb2) unused, maybe local File HD0:StormC/StormC/Lib/storm.lib - _strcat = 9680 (0x25d0) referenced 1 times + _strcpy = 11232 (0x2be0) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _strcmp = 9716 (0x25f4) referenced 1 times + _strcat = 11260 (0x2bfc) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _strlen = 9772 (0x262c) referenced 5 times + _strcmp = 11296 (0x2c20) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _signed_out = 9796 (0x2644) referenced 1 times + _strlen = 11352 (0x2c58) referenced 5 times File HD0:StormC/StormC/Lib/storm.lib - _signed_out_l = 10454 (0x28d6) referenced 1 times + _signed_out = 11376 (0x2c70) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _unsigned_out = 10544 (0x2930) referenced 1 times + _signed_out_l = 12034 (0x2f02) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _unsigned_out_l = 11140 (0x2b84) referenced 2 times + _unsigned_out = 12124 (0x2f5c) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _char_out = 11668 (0x2d94) referenced 1 times + _unsigned_out_l = 12720 (0x31b0) referenced 2 times File HD0:StormC/StormC/Lib/storm.lib - _string_out = 11808 (0x2e20) referenced 1 times + _char_out = 13248 (0x33c0) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib - _DoMethod = 12000 (0x2ee0) referenced 1 times + _string_out = 13388 (0x344c) referenced 1 times + File HD0:StormC/StormC/Lib/storm.lib + _DoMethod = 13580 (0x350c) referenced 1 times File HD0:StormC/StormC/Lib/amiga.lib - _DoSuperMethod = 12020 (0x2ef4) unused, maybe local + _DoSuperMethod = 13600 (0x3520) unused, maybe local File HD0:StormC/StormC/Lib/amiga.lib - _CoerceMethod = 12046 (0x2f0e) unused, maybe local + _CoerceMethod = 13626 (0x353a) unused, maybe local File HD0:StormC/StormC/Lib/amiga.lib - _CoerceMethodA = 12068 (0x2f24) unused, maybe local + _CoerceMethodA = 13648 (0x3550) unused, maybe local File HD0:StormC/StormC/Lib/amiga.lib - _DoMethodA = 12104 (0x2f48) referenced 1 times + _DoMethodA = 13684 (0x3574) referenced 1 times File HD0:StormC/StormC/Lib/amiga.lib - _DoSuperMethodA = 12124 (0x2f5c) unused, maybe local + _DoSuperMethodA = 13704 (0x3588) unused, maybe local File HD0:StormC/StormC/Lib/amiga.lib - _SetSuperAttrs = 12150 (0x2f76) unused, maybe local + _SetSuperAttrs = 13730 (0x35a2) unused, maybe local File HD0:StormC/StormC/Lib/amiga.lib - _floor = 12208 (0x2fb0) referenced 1 times + _floor = 13788 (0x35dc) referenced 1 times File HD0:StormC/StormC/StormSYS/lib/math000.lib - _frexp = 12232 (0x2fc8) referenced 1 times + _frexp = 13812 (0x35f4) referenced 1 times File HD0:StormC/StormC/StormSYS/lib/math000.lib - _double_out = 12900 (0x3264) referenced 1 times + _double_out = 14480 (0x3890) referenced 1 times File HD0:StormC/StormC/StormSYS/lib/math000.lib - main() = 14380 (0x382c) referenced 2 times + main() = 15960 (0x3e58) referenced 2 times File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - main(int,char **) = 14388 (0x3834) referenced 2 times + main(int,char **) = 15968 (0x3e60) referenced 2 times File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - wbmain(WBStartup *) = 14396 (0x383c) referenced 2 times + wbmain(WBStartup *) = 15976 (0x3e68) referenced 2 times File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - _wbmain = 14404 (0x3844) referenced 2 times + _wbmain = 15984 (0x3e70) referenced 2 times File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - main(int,char *) = 14408 (0x3848) referenced 1 times + main(int,char *) = 15988 (0x3e74) referenced 1 times File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - _EXIT_0_Main = 14900 (0x3a34) unused, maybe local + _EXIT_0_Main = 16480 (0x4060) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - _INIT_1_DOS_c__DOSBase = 14952 (0x3a68) unused, maybe local + _INIT_1_DOS_c__DOSBase = 16532 (0x4094) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - _EXIT_1_DOS_c__DOSBase = 14984 (0x3a88) unused, maybe local + _EXIT_1_DOS_c__DOSBase = 16564 (0x40b4) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - _InitModules = 15052 (0x3acc) referenced 1 times + _InitModules = 16632 (0x40f8) referenced 1 times File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - _CleanupModules = 15128 (0x3b18) referenced 2 times + _CleanupModules = 16708 (0x4144) referenced 2 times File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - _INIT_2_Intuition_c__IntuitionBase = 15192 (0x3b58) unused, maybe local + _INIT_2_Intuition_c__IntuitionBase = 16772 (0x4184) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - _EXIT_2_Intuition_c__IntuitionBase = 15224 (0x3b78) unused, maybe local + _EXIT_2_Intuition_c__IntuitionBase = 16804 (0x41a4) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - LibBaseC::LibBaseC(char *,unsigned long,short) = 15300 (0x3bc4) referenced 3 times + LibBaseC::LibBaseC(char *,unsigned long,short) = 16880 (0x41f0) referenced 3 times File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - LibBaseC::~LibBaseC() = 15756 (0x3d8c) referenced 3 times + LibBaseC::~LibBaseC() = 17336 (0x43b8) referenced 3 times File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - _INIT_2_MathIEEEDoubBas_c__MathIeeeDoubBasBase = 15796 (0x3db4) unused, maybe local + _INIT_2_MathIEEEDoubBas_c__MathIeeeDoubBasBase = 17376 (0x43e0) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - _EXIT_2_MathIEEEDoubBas_c__MathIeeeDoubBasBase = 15828 (0x3dd4) unused, maybe local + _EXIT_2_MathIEEEDoubBas_c__MathIeeeDoubBasBase = 17408 (0x4400) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - uintmult = 15868 (0x3dfc) referenced 2 times + uintmult = 17448 (0x4428) referenced 2 times File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - intmult = 15868 (0x3dfc) unused, maybe local + intmult = 17448 (0x4428) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - ___uintmult32 = 15868 (0x3dfc) unused, maybe local + ___uintmult32 = 17448 (0x4428) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - ___intmult32 = 15868 (0x3dfc) unused, maybe local + ___intmult32 = 17448 (0x4428) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - intdiv = 15900 (0x3e1c) unused, maybe local + intdiv = 17480 (0x4448) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - uintdiv = 15938 (0x3e42) unused, maybe local + uintdiv = 17518 (0x446e) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - lib_div_uint = 15938 (0x3e42) referenced 3 times + lib_div_uint = 17518 (0x446e) referenced 3 times File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - ___uintdivmod32 = 15938 (0x3e42) unused, maybe local + ___uintdivmod32 = 17518 (0x446e) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - lib_div_int = 15900 (0x3e1c) referenced 2 times + lib_div_int = 17480 (0x4448) referenced 2 times File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - ___intdivmod32 = 15900 (0x3e1c) unused, maybe local + ___intdivmod32 = 17480 (0x4448) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - Neg64 = 16020 (0x3e94) referenced 1 times + Neg64 = 17600 (0x44c0) referenced 1 times File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - ___neg64 = 16020 (0x3e94) unused, maybe local + ___neg64 = 17600 (0x44c0) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - SDiv64 = 16028 (0x3e9c) referenced 1 times + SDiv64 = 17608 (0x44c8) referenced 1 times File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - UDiv64 = 16068 (0x3ec4) referenced 1 times + UDiv64 = 17648 (0x44f0) referenced 1 times File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - ___uintdivmod64 = 16068 (0x3ec4) unused, maybe local + ___uintdivmod64 = 17648 (0x44f0) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - ___intdivmod64 = 16028 (0x3e9c) unused, maybe local + ___intdivmod64 = 17608 (0x44c8) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - UMod64 = 16168 (0x3f28) referenced 1 times + UMod64 = 17748 (0x4554) referenced 1 times File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - ___uintmod64 = 16168 (0x3f28) unused, maybe local + ___uintmod64 = 17748 (0x4554) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - SMod64 = 16180 (0x3f34) referenced 1 times + SMod64 = 17760 (0x4560) referenced 1 times File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib - ___intmod64 = 16180 (0x3f34) unused, maybe local + ___intmod64 = 17760 (0x4560) unused, maybe local File HD0:StormC/StormC/StormSYS/lib/stormcsupport000.lib PowerPC Code @@ -214,41 +222,47 @@ PowerPC Code Data - Hunk #1 ( Far Public ) 584 Bytes (0x248) + Hunk #1 ( Far Public ) 768 Bytes (0x300) _SysBase = 0 (0x0) referenced 11 times File HD0:StormC/StormC/StormSYS/startups/startup.o - _WindowBase = 16 (0x10) unused, maybe local + _WindowBase = 20 (0x14) unused, maybe local File Projekte:phED/phed.o - _LayoutBase = 20 (0x14) unused, maybe local + _LayoutBase = 24 (0x18) unused, maybe local File Projekte:phED/phed.o - _RequesterBase = 24 (0x18) unused, maybe local + _RequesterBase = 28 (0x1c) unused, maybe local File Projekte:phED/phed.o - _TextFieldBase = 28 (0x1c) unused, maybe local + _AslBase = 32 (0x20) unused, maybe local File Projekte:phED/phed.o - _std__out = 40 (0x28) referenced 3 times + _TextFieldBase = 36 (0x24) unused, maybe local + File Projekte:phED/phed.o + _mainMenu = 40 (0x28) unused, maybe local + File Projekte:phED/phed.o + _std__out = 224 (0xe0) referenced 3 times File HD0:StormC/StormC/Lib/storm.lib - _std__in = 128 (0x80) referenced 2 times + _std__in = 312 (0x138) referenced 2 times File HD0:StormC/StormC/Lib/storm.lib - _std__err = 216 (0xd8) referenced 2 times + _std__err = 400 (0x190) referenced 2 times File HD0:StormC/StormC/Lib/storm.lib - _DOSBase = 496 (0x1f0) referenced 10 times + _DOSBase = 680 (0x2a8) referenced 10 times File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - _IntuitionBase = 508 (0x1fc) referenced 2 times + _IntuitionBase = 692 (0x2b4) referenced 2 times File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - _not_open__LibBaseC = 512 (0x200) referenced 1 times + _not_open__LibBaseC = 696 (0x2b8) referenced 1 times File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - _MathIeeeDoubBasBase = 516 (0x204) referenced 5 times + _MathIeeeDoubBasBase = 700 (0x2bc) referenced 5 times File HD0:StormC/StormC/StormSYS/lib/stormcstartup000.lib - ___init_table68k = 520 (0x208) referenced 2 times + ___init_table68k = 704 (0x2c0) referenced 2 times File - ___exit_table68k = 552 (0x228) referenced 1 times + ___exit_table68k = 736 (0x2e0) referenced 1 times File BSS - Hunk #2 ( Far Public ) 568 Bytes (0x238) - _errno = 0 (0x0) referenced 1 times + Hunk #2 ( Far Public ) 824 Bytes (0x338) + _phed = 0 (0x0) unused, maybe local + File Projekte:phED/phed.o + _errno = 256 (0x100) referenced 1 times File HD0:StormC/StormC/Lib/storm.lib END diff --git a/phED.¶ b/phED.¶ index 930c7bd..cedb6fb 100644 --- a/phED.¶ +++ b/phED.¶ @@ -45,6 +45,8 @@ File "Projekte:phED/phed-init.h" "Projekte:phED/phed-file.h" "Projekte:phED/phed-req.h" +"Projekte:phED/phed-utils.h" +"Projekte:phED/phed-menu.h" Storm Shell Project (Dependencies) "phed.o" "phed.debug" "" @@ -69,6 +71,18 @@ File Storm Shell Project (Dependencies) "" "" "" +File +2 "phed-menu.h" +"phed-menu.h" +Storm Shell Project (Dependencies) +"" "" +"" +File +2 "phed-utils.h" +"phed-utils.h" +Storm Shell Project (Dependencies) +"" "" +"" Section 2 1 95 File diff --git a/phed-init.h b/phed-init.h index 407c4ff..e2b2196 100644 --- a/phed-init.h +++ b/phed-init.h @@ -1,6 +1,20 @@ +static const char *version = "$VER: phED Version 0.3"; + +enum +{ + GID_TEXTEDITOR = 0, + GID_LAST +}; + +struct phED +{ + char dateiname[256]; +} phed; + struct Library *WindowBase = NULL, *LayoutBase = NULL, *RequesterBase = NULL, + *AslBase = NULL, *TextFieldBase = NULL; void closeLibraries() @@ -9,6 +23,7 @@ void closeLibraries() if(TextFieldBase) CloseLibrary((struct Library *) TextFieldBase); if(LayoutBase) CloseLibrary((struct Library *) LayoutBase); if(RequesterBase) CloseLibrary((struct Library *) RequesterBase); + if(AslBase) CloseLibrary((struct Library *) AslBase); } @@ -24,7 +39,10 @@ BOOL openLibraries() { if(RequesterBase = (struct Library *) OpenLibrary("requester.class", 0L)) { - ret = TRUE; + if(AslBase = (struct Library *) OpenLibrary("asl.library", 0L)) + { + ret = TRUE; + } } } } diff --git a/phed-menu.h b/phed-menu.h new file mode 100644 index 0000000..c56d18d --- /dev/null +++ b/phed-menu.h @@ -0,0 +1,18 @@ +struct NewMenu mainMenu[] = +{ + { NM_TITLE, "Projekt", NULL, 0, 0, NULL }, + { NM_ITEM, "Neu", "N", 0, 0, NULL }, + { NM_ITEM, "Laden...", "L", 0, 0, NULL }, + { NM_ITEM, NM_BARLABEL, NULL, 0, 0, NULL }, + { NM_ITEM, "Speichern", "S", 0, 0, NULL }, + { NM_ITEM, "Speichern als...", "A", 0, 0, NULL }, + { NM_ITEM, NM_BARLABEL, NULL, 0, 0, NULL }, + { NM_ITEM, "Beenden", "Q", 0, 0, NULL }, + { NM_END, NULL, NULL, 0, 0, NULL } +}; + +#define MENU_PROJEKT_NEU FULLMENUNUM(0, 0, NOSUB) +#define MENU_PROJEKT_LADEN FULLMENUNUM(0, 1, NOSUB) +#define MENU_PROJEKT_SPEICHERN FULLMENUNUM(0, 3, NOSUB) +#define MENU_PROJEKT_SPEICHERNALS FULLMENUNUM(0, 4, NOSUB) +#define MENU_PROJEKT_BEENDEN FULLMENUNUM(0, 6, NOSUB) diff --git a/phed-req.h b/phed-req.h index bc95f5d..f1f1caa 100644 --- a/phed-req.h +++ b/phed-req.h @@ -29,4 +29,14 @@ ULONG beendenReq(char *text, Object *obj, struct Window *win) REQ_BodyText, text, REQ_GadgetText, "_Ja|_Nein|_Abbruch", TAG_DONE); +} + +ULONG frageReq(char *text, char *gadgets, Object *obj, struct Window *win) +{ + return OpenRequesterTags( obj, + win, + REQ_Type, REQTYPE_INFO, + REQ_BodyText, text, + REQ_GadgetText, gadgets, + TAG_DONE); } \ No newline at end of file diff --git a/phed-utils.h b/phed-utils.h new file mode 100644 index 0000000..2846db6 --- /dev/null +++ b/phed-utils.h @@ -0,0 +1,45 @@ +void neuText() +{ + strcpy(phed.dateiname, "phED\0"); +} + +char *neuASL(struct Window *win, char *dir, char *text, char *okText, BOOL dirOnly) +{ + struct FileRequester *fr; + + char *ret; + + if(fr = AllocFileRequest()) + { + if(AslRequestTags(fr, + ASL_Dir, dir, + ASL_Window, win, + ASL_Hail, text, + ASL_OKText, okText, + ASLFR_DrawersOnly, dirOnly, + TAG_END)) + { + if(dirOnly) + { + ret = (char *) malloc(strlen(fr->rf_Dir) + 1); + sprintf(ret, "%s", fr->rf_Dir); + } + else + { + if(strlen(fr->rf_Dir) > 0) + { + ret = (char *) malloc(strlen(fr->rf_Dir) + 1 + strlen(fr->rf_File) + 1); + sprintf(ret, "%s/%s", fr->rf_Dir, fr->rf_File); + } + else + { + ret = (char *) malloc(strlen(fr->rf_File) + 1); + sprintf(ret, "%s", fr->rf_File); + } + } + } + FreeFileRequest(fr); + + return ret; + } +} \ No newline at end of file diff --git a/phed.c b/phed.c index 1ee49f2..37cb2c5 100644 --- a/phed.c +++ b/phed.c @@ -9,6 +9,7 @@ #include #include #include +#include #include @@ -17,43 +18,37 @@ #include +#include +#include + #include "phed-init.h" +#include "phed-utils.h" #include "phed-file.h" #include "phed-req.h" +#include "phed-menu.h" -static const char *version = "$VER: phED Version 0.2"; - -enum -{ - GID_TEXTEDITOR = 0, - GID_LAST -}; int main(int argc, char *argv[]) { struct Window *window; struct Gadget *gadgets[GID_LAST]; - Object *Win_Object, *beenden_object; + Object *Win_Object, *beenden_object, *neu_object; ULONG signal, result; ULONG done = FALSE; - char *buf, *titel; + char *buf, *retASL; if(argc > 1) { - titel = (char *) malloc(strlen(argv[1])); - strcpy(titel, argv[1]); - titel[strlen(argv[1])] = '\0'; + strcpy(phed.dateiname, argv[1]); - buf = loadText(argv[1]); + buf = loadText(phed.dateiname); } else { - titel = (char *) malloc(strlen("phED")); - strcpy(titel, "phED"); - titel[strlen("phED")] = '\0'; + neuText(); buf = (char *) malloc(0); } @@ -61,10 +56,11 @@ int main(int argc, char *argv[]) if(openLibraries()) { beenden_object = requesterNew("Beenden"); + neu_object = requesterNew("Neu"); Win_Object = WindowObject, WA_ScreenTitle, "Projekt Hirnfrei", - WA_Title, titel, + WA_Title, phed.dateiname, WA_SizeGadget, TRUE, WA_DepthGadget, TRUE, WA_DragBar, TRUE, @@ -72,6 +68,8 @@ int main(int argc, char *argv[]) WA_Activate, TRUE, WA_Width, 400, WA_Height, 400, + WA_NewLookMenus, TRUE, + WINDOW_NewMenu, mainMenu, WINDOW_ParentGroup, HGroupObject, StartVGroup, StartMember, gadgets[GID_TEXTEDITOR] = TextEditorObject, @@ -104,6 +102,7 @@ int main(int argc, char *argv[]) switch(result & WMHI_CLASSMASK) { case WMHI_CLOSEWINDOW: + { GetAttr(GA_TEXTEDITOR_HasChanged, gadgets[GID_TEXTEDITOR], &changed); if(changed) @@ -129,7 +128,99 @@ int main(int argc, char *argv[]) } else done = TRUE; break; + } + case WMHI_MENUPICK: + { + switch(result & WMHI_MENUMASK) + { + case MENU_PROJEKT_BEENDEN: + { + GetAttr(GA_TEXTEDITOR_HasChanged, gadgets[GID_TEXTEDITOR], &changed); + if(changed) + { + ret = beendenReq("\033cDer Text wurde verändert!\n\nSoll der Text gespeichert werden?", beenden_object, window); + + if(ret == 1) + { + buffer = (UBYTE *) DoGadgetMethod(gadgets[GID_TEXTEDITOR], window, NULL, GM_TEXTEDITOR_ExportText, NULL); + + if(!argv[1]) saveText("unbenannt.txt", buffer); + else saveText(argv[1], buffer); + done = TRUE; + } + if(ret == 2) + { + done = TRUE; + } + if(ret == 0) + { + done = FALSE; + } + } + else done = TRUE; + break; + } + case MENU_PROJEKT_NEU: + { + GetAttr(GA_TEXTEDITOR_HasChanged, gadgets[GID_TEXTEDITOR], &changed); + + if(changed) + { + ret = frageReq("\033cSoll der Text wirklich gelöscht werden?", "_Ja|_Nein", neu_object, window); + + if(ret == 1) + { + DoGadgetMethod(gadgets[GID_TEXTEDITOR], window, NULL, GM_TEXTEDITOR_ClearText, NULL); + neuText(); + } + } + else + { + DoGadgetMethod(gadgets[GID_TEXTEDITOR], window, NULL, GM_TEXTEDITOR_ClearText, NULL); + neuText(); + } + break; + } + case MENU_PROJEKT_SPEICHERN: + { + buffer = (UBYTE *) DoGadgetMethod(gadgets[GID_TEXTEDITOR], window, NULL, GM_TEXTEDITOR_ExportText, NULL); + + if(!phed.dateiname) saveText("unbenannt.txt", buffer); + else saveText(phed.dateiname, buffer); + + SetGadgetAttrs(gadgets[GID_TEXTEDITOR], window, NULL, GA_TEXTEDITOR_HasChanged, FALSE, TAG_DONE); + + break; + } + case MENU_PROJEKT_LADEN: + { + retASL = neuASL(window, "", "Datei zum laden auswählen", "Auswählen", FALSE); + + strcpy(phed.dateiname, retASL); + + buf = loadText(phed.dateiname); + + SetGadgetAttrs(gadgets[GID_TEXTEDITOR], window, NULL, GA_TEXTEDITOR_Contents, (APTR) buf, TAG_DONE); + + break; + } + case MENU_PROJEKT_SPEICHERNALS: + { + retASL = neuASL(window, "", "Datei zum speichern angeben", "Speichern als", FALSE); + + strcpy(phed.dateiname, retASL); + + buffer = (UBYTE *) DoGadgetMethod(gadgets[GID_TEXTEDITOR], window, NULL, GM_TEXTEDITOR_ExportText, NULL); + + saveText(phed.dateiname, buffer); + + SetGadgetAttrs(gadgets[GID_TEXTEDITOR], window, NULL, GA_TEXTEDITOR_HasChanged, FALSE, TAG_DONE); + + break; + } + } + } case WMHI_GADGETUP: { switch(result & WMHI_GADGETMASK) @@ -149,11 +240,12 @@ int main(int argc, char *argv[]) } } DisposeObject(beenden_object); + DisposeObject(neu_object); DisposeObject(Win_Object); } } closeLibraries(); - if(titel) free(titel); if(buf) free(buf); + if(retASL) free(retASL); } \ No newline at end of file diff --git a/phed.debug b/phed.debug index afe647906bdd85d5adf3046e13334a14f669b74f..3ef72c7bae8d135a0d312481f2c118678a4d3069 100644 GIT binary patch delta 8627 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 Ezfb;M8UO$Q diff --git a/phed.o b/phed.o index 8c01f1f315f9faec4776bf4bd11e0b2ffbebb06e..734449a9c5426a0e9372c6531d415c270c7c4edd 100644 GIT binary patch literal 5052 zcmd5?{}b=${hdeo z?-qVja`vl1!4Ek6z(ahG!}mPI*Brj~5Z~|c{Z0NBBUy`G)8#7JyfNByPn%87KA8L7 zS&k%b$3=8(*?yw29}xS2{NZK09gSU&*!ARhFWc>I>}q0H%j?Zu--X7mU+ntxa#e~) zbFE2^gSzCz<%pWBg?ABsE5L75N$jLk$y)L!^+n{;y=^OX2%G-oZ2d|w^3f7eo}?Yo zQ(bcGY?#8kracr6ZzWg&)eg!pC<&BDP%HpuwR4{@(Uy25PjoRJ&F|=p zhrdrAJA#2!-*niCW+1g8V()Q`zW;`OwhXkj4AI*w_2Sd{^h!>U`ep=2b!}gq?wbkA z?#i*QF7t73nGb(v+e+<6M5cZ{GB;D?Ij{Q?mlJC8g=EeB8@onbiCZnibwTxahMm0A z$n`W=czf9E#ux2Ifql(&m|~M8xocFx??yY2N?g{6dw2g1de^mKlswT>uAN{+_*&~q zH+&IUVP9-g6?S8z_wU*oY&l3hH}Bt#c5Nir-$3fZ3|GKir&GZQ>onIcHIU-SwHXXP z6;Ed5%n8@?KuY%_Qc)39qEj!E7CjZlw7jaOWl=eer%h0#N8bE<5cBfjICng8xmRRZ zza92=j*=Ecj+>8>NmBjx=I85+(GTlOdv1~+^g?WurR;1Fr@tbsvdcI( zqNnVC;jQ&~?4sIYmUc}m^fc# zwYnbBPYoUy;gRot3lUv_%&!sa5+LTmH^EV>>pAM6IGrTr`b1W0`WeR(Y;=y+mwtPG z1J2#jrF2S<;GAjk4@k|m^Et(xwT11-@1|23aNH?&dE*kFdy;eVxD=nskuo?=8Bz{& zhROlXj;LPeGq9M!ugTP4hoCv5OM=qDy_6yOA7V9~CwZ5k&gNBc&;0*qEO&6mayw@% zJKqjEpSZ7gXus2+8)72=%x~Xm(WOJ^67FD8ODRXvIj2v-)%wI*Qdfqg6HhET_RYQL z4nNd$zs<4lD4qhoS0ID@9u?bzBF`J*lB0Q%r7Yg!tHU?W`HRT+LaH5SX%3t@mU!Ha z2!D-R>~TKnb;svB!e@xzPv-NRD#JIH8{?DKKt3)eA8(vr%reDRn`PV;7kK7zKA#ei z$GJvC11Ub&4$pLXBG!ZWE?99dZKNFC|0w=Sp6Jv3<*wn{O>uPD(w5s3rdi%@8q7K^L z&zqGovoJJ*J$=H2Z0UzkUnw(DuwE=eM$enYyOp7lreyHIbA3DYv61I`^#i6=DU?fk zSLj)Krh@;%c=u3Gtuk?Sq-d5XYMKb4M7`OnSp1nO0euI+?@$(8mmXH^119kxkU_XG^s0h3TyaSvD&Hxty=2sy>5WXDZD)ArW8wyb5EV$HHXf2bi7%8OJ=MMk=Y`(&K%2i

%4+D3-Isjb16T zkjsgn*#h)s)KfVrWOG(FZ`#=*ghN8M|7gYOoDcGt6~f$56gUJ}0Qx}h0q1}#qFmJa zzR*RkeBa{1j7w*MMfmdq>j3D>m~Z(r_y?^VcXfuwja*;S`S-@!W1@8cOm@fB`@kPqt+{+&!_Z!H)(c}u= z2jDeXDDEn{5Yk>>CiqBF+_B5et%XA81)c(C0PX{#;77TIyj7zy-;ML9 zfv*?`#ii~tRl!S$9}bu25j;LK`^=J4z7FtYqo-1Ig#1{m1~+7H!7L8DsuXZy;NJWj Tbi|1V_tuDMA1hk|{5$^xqw(9` literal 2984 zcmaJ@TWAzl82;yyxF&-HvA$HwG~I@_#!QrwhmzXOCfc}cc9)pOAeGt8?(AmmW@kG) zF%g0!(SR*|D7{mPl+q%I`XHq@`XD|?D|skI#D`!)DM(Aw1REsOZKmHjvopDX-SF+4 z^Zoz%?`Jkd(tRS54|nvA$9we7cu!9}27*ZXgGgA^c0|5syIe!#Y4&X9-?6J}gPd2Y zyt0LttGv904^;WUI^V3vM!N5-qFuFJqRxM|?T=mk_wF;-nMdx2a<985n6&m+U#f7a zk~_FTdcl{71X0mt88-5YS8LE-RPV`v60woj~*cB)}~U#5B|G=HCn2SeiHdrt96J|j-B9jXjDy7!WXrG);=vKL|)54?5gvdTU9mm{?EZU zs(KC)Dbcwuo}aU<)in;25=4f3$H^eUS>AiZSq)!tDxHhefb~lEFw=6gL7Y1Cr`1K5 zBvd_UvdZv!yv+T|S{;8%j71!Rw%zTC*ap8roJLihneO|o2h@EOut}M~@Cas-MWH=U zvR7q|yw%>2GwVsUea@^GiN|?*jl<4tcz=L4@% z`V26e+*URc%8?{;eO@DxxX0!2MfVR@=OIN$__Vc8NVJ>P2G0iG8RaoO+5;b}n2`2q zD(!O5VkPi1@?*~I^7Q{#OW|5#qNaOHco&i2n)s`1HA)Kw^7%PNBJ8ZV{b3UdjS4g>&^YhfQroA+gs2WXE1iqZ z0w&o?l8{yRISYgo8rI)=H$=Y2$!1%CP8euxByrMlFtU>*AmJT&ig*%TgS7hoQ(2!B zcvyvp+sp$ZxDB1R5nBaVW*OFg&7u@bEXpQQ&a(N<_VO&`#Iw~{VFOcB`S4Z~?p)_iD~pC{8@hNboyW41avVr2~Vlwti|%ovva zbY0z1vrtg6cI7#vTr%?MA;{EG1G>dmDA<3f_a(J7bf`=1H>`5rEUK+72PkY9uu-H} z4cAs3#cz);B&}#13@4J^a7^<{1Qm#@oNCooCKg>a}D?on89>50&M{F zxNS^3emXGtz#ahh=tTe%NKv2m47<C)&5I+I;ekL^ z_y}K;KIo1jjxfCvI9X2@%(4;94_YZJZ*T*wFtYAXPRtnPW<;7~F_dj9o#GioO_