Overview
Comment: | runtime: Use MessageBox() for errors on Windows |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
fedc7e94586ff4f891f36ee3d38b6be0 |
User & Date: | js on 2020-12-21 21:48:56 |
Other Links: | manifest | tags |
Context
2020-12-21
| ||
22:22 | runtime: Fix double initialization check-in: 68eef83aae user: js tags: trunk | |
21:48 | runtime: Use MessageBox() for errors on Windows check-in: fedc7e9458 user: js tags: trunk | |
21:29 | Don't send messages in destructors check-in: 9cedc18bb3 user: js tags: trunk | |
Changes
Modified src/runtime/misc.m from [9b223ad2b4] to [5ec6e3911d].
︙ | ︙ | |||
19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include "ObjFWRT.h" #include "private.h" #ifdef OF_AMIGAOS # define USE_INLINE_STDARG # include <proto/exec.h> # include <clib/debug_protos.h> # define __NOLIBBASE__ # define Class IntuitionClass | > > > > | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include "ObjFWRT.h" #include "private.h" #ifdef OF_WINDOWS # include <windows.h> #endif #ifdef OF_AMIGAOS # define USE_INLINE_STDARG # include <proto/exec.h> # include <clib/debug_protos.h> # define __NOLIBBASE__ # define Class IntuitionClass |
︙ | ︙ | |||
51 52 53 54 55 56 57 | { enumerationMutationHandler = handler; } void objc_error(const char *title, const char *format, ...) { | | < < < < < > > > > > > > > > > > > > > > > > | 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | { enumerationMutationHandler = handler; } void objc_error(const char *title, const char *format, ...) { #if defined(OF_WINDOWS) || defined(OF_AMIGAOS) # define BUF_LEN 512 char message[BUF_LEN]; int status; va_list args; va_start(args, format); status = vsnprintf(message, BUF_LEN, format, args); if (status <= 0 || status >= BUF_LEN) message[0] = '\0'; va_end(args); # undef BUF_LEN #endif #if defined(OF_WINDOWS) fprintf(stderr, "[%s] %s\n", title, message); fflush(stderr); MessageBoxA(NULL, message, title, MB_OK | MB_SYSTEMMODAL | MB_ICONERROR); exit(EXIT_FAILURE); #elif defined(OF_AMIGAOS) struct Library *IntuitionBase; # ifdef OF_AMIGAOS4 struct IntuitionIFace *IIntuition; # endif struct EasyStruct easy; # ifndef OF_AMIGAOS4 kprintf("[%s] %s\n", title, message); # endif if ((IntuitionBase = OpenLibrary("intuition.library", 0)) == NULL) exit(EXIT_FAILURE); |
︙ | ︙ | |||
96 97 98 99 100 101 102 | # ifdef OF_AMIGAOS4 DropInterface((struct Interface *)IIntuition); # endif CloseLibrary(IntuitionBase); exit(EXIT_FAILURE); | < | 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | # ifdef OF_AMIGAOS4 DropInterface((struct Interface *)IIntuition); # endif CloseLibrary(IntuitionBase); exit(EXIT_FAILURE); #else va_list args; va_start(args, format); fprintf(stderr, "[%s] ", title); vfprintf(stderr, format, args); |
︙ | ︙ |