Differences From Artifact [26a72da19c]:
- File src/OFStdIOStream.m — part of check-in [d5eb0384c5] at 2020-05-28 00:15:05 on branch trunk — OFStdIOStream: Add -[hasTerminal] (user: js, size: 10423) [annotate] [blame] [check-ins using] [more...]
To Artifact [acfa5ef390]:
- File
src/OFStdIOStream.m
— part of check-in
[9697334084]
at
2020-06-21 02:15:26
on branch amiga-library
— Make of_std{in,out,err} available in Amiga library
This is done by using functions that return a reference to the variable
and defining of_std{in,out,err} to a call into these functions. (user: js, size: 10804) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
53 54 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 | #ifdef OF_WINDOWS void _reference_to_OFWin32ConsoleStdIOStream(void) { [OFWin32ConsoleStdIOStream class]; } #endif OFStdIOStream *of_stdin = nil; OFStdIOStream *of_stdout = nil; OFStdIOStream *of_stderr = nil; #ifdef OF_AMIGAOS OF_DESTRUCTOR() { [of_stdin dealloc]; [of_stdout dealloc]; [of_stderr dealloc]; } #endif void of_log(OFConstantString *format, ...) { void *pool = objc_autoreleasePoolPush(); OFDate *date; OFString *dateString, *me, *msg; | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > < < < | 53 54 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 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | #ifdef OF_WINDOWS void _reference_to_OFWin32ConsoleStdIOStream(void) { [OFWin32ConsoleStdIOStream class]; } #endif #ifdef OF_AMIGAOS # undef of_stdin # undef of_stdout # undef of_stderr #endif OFStdIOStream *of_stdin = nil; OFStdIOStream *of_stdout = nil; OFStdIOStream *of_stderr = nil; #ifdef OF_AMIGAOS OFStdIOStream ** of_stdin_ref(void) { return &of_stdin; } OFStdIOStream ** of_stdout_ref(void) { return &of_stdout; } OFStdIOStream ** of_stderr_ref(void) { return &of_stderr; } #endif #ifdef OF_AMIGAOS OF_DESTRUCTOR() { [of_stdin dealloc]; [of_stdout dealloc]; [of_stderr dealloc]; } #endif void of_log(OFConstantString *format, ...) { va_list arguments; va_start(arguments, format); of_logv(format, arguments); va_end(arguments); } void of_logv(OFConstantString *format, va_list arguments) { void *pool = objc_autoreleasePoolPush(); OFDate *date; OFString *dateString, *me, *msg; date = [OFDate date]; dateString = [date localDateStringWithFormat: @"%Y-%m-%d %H:%M:%S"]; #ifdef OF_HAVE_FILES me = [OFApplication programName].lastPathComponent; #else me = [OFApplication programName]; #endif msg = [[[OFString alloc] initWithFormat: format arguments: arguments] autorelease]; [of_stderr writeFormat: @"[%@.%03d %@(%d)] %@\n", dateString, date.microsecond / 1000, me, getpid(), msg]; objc_autoreleasePoolPop(pool); } |
︙ | ︙ |