Differences From Artifact [aa8c7fb972]:
- File
src/runtime/misc.m
— part of check-in
[169832c303]
at
2020-12-20 03:32:34
on branch trunk
— runtime: Use exit(1) instead of abort() on AmigaOS
This prevents leaking resources like open files. (user: js, size: 2449) [annotate] [blame] [check-ins using] [more...]
To Artifact [0d3ef3173e]:
- File src/runtime/misc.m — part of check-in [a68265627e] at 2020-12-20 14:04:58 on branch trunk — Fix compilation for AmigaOS 4 (user: js, size: 2858) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #include "config.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__ # include <proto/intuition.h> # undef __NOLIBBASE__ #endif static objc_enumeration_mutation_handler_t enumerationMutationHandler = NULL; void objc_enumerationMutation(id object) | > > > | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #include "config.h" #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 # include <proto/intuition.h> # undef Class # undef __NOLIBBASE__ #endif static objc_enumeration_mutation_handler_t enumerationMutationHandler = NULL; void objc_enumerationMutation(id object) |
︙ | ︙ | |||
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | #ifdef OF_AMIGAOS # define BUF_LEN 256 char title[BUF_LEN]; char message[BUF_LEN]; int status; va_list args; struct Library *IntuitionBase; status = snprintf(title, BUF_LEN, "ObjFWRT @ %s:%u", file, line); if (status <= 0 || status >= BUF_LEN) title[0] = '\0'; va_start(args, format); status = vsnprintf(message, BUF_LEN, format, args); if (status <= 0 || status >= BUF_LEN) message[0] = '\0'; va_end(args); kprintf("[%s] %s\n", title, message); | > > > > > > | > | > > > > > | | | | | | < | > | > | > | 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 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | #ifdef OF_AMIGAOS # define BUF_LEN 256 char title[BUF_LEN]; char message[BUF_LEN]; int status; va_list args; struct Library *IntuitionBase; # ifdef OF_AMIGAOS4 struct IntuitionIFace *IIntuition; # endif struct EasyStruct easy; status = snprintf(title, BUF_LEN, "ObjFWRT @ %s:%u", file, line); if (status <= 0 || status >= BUF_LEN) title[0] = '\0'; va_start(args, format); status = vsnprintf(message, BUF_LEN, format, args); if (status <= 0 || status >= BUF_LEN) message[0] = '\0'; va_end(args); # ifndef OF_AMIGAOS4 kprintf("[%s] %s\n", title, message); # endif if ((IntuitionBase = OpenLibrary("intuition.library", 0)) == NULL) exit(EXIT_FAILURE); # ifdef OF_AMIGAOS4 if ((IIntuition = (struct IntuitionIFace *)GetInterface(IntuitionBase, "main", 1, NULL)) == NULL) exit(EXIT_FAILURE); # endif easy.es_StructSize = sizeof(easy); easy.es_Flags = 0; easy.es_Title = (void *)title; easy.es_TextFormat = (void *)"%s"; easy.es_GadgetFormat = (void *)"OK"; EasyRequest(NULL, &easy, NULL, (ULONG)message); # ifdef OF_AMIGAOS4 DropInterface((struct Interface *)IIntuition); # endif CloseLibrary(IntuitionBase); exit(EXIT_FAILURE); # undef BUF_LEN #else va_list args; va_start(args, format); |
︙ | ︙ |