ObjFW  Check-in [343501981b]

Overview
Comment:OFStdIOStream: Add of_logv()

This is required for the Amiga library.

Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | amiga-library
Files: files | file ages | folders
SHA3-256: 343501981b913f1d1da15b04b8006554f5af6f96b8c9d2cc859fbc91159b39e1
User & Date: js on 2020-06-20 16:38:05
Other Links: branch diff | manifest | tags
Context
2020-06-20
17:20
Add Amiga library glue for all functions check-in: 4aa3be08a9 user: js tags: amiga-library
16:38
OFStdIOStream: Add of_logv() check-in: 343501981b user: js tags: amiga-library
16:28
Add linklib check-in: 8963dd5a1e user: js tags: amiga-library
Changes

Modified src/OFStdIOStream.h from [4b738f8353] to [22e16b8a6e].

148
149
150
151
152
153
154
155

156
157
158
159
160








161
162
163
164
165
148
149
150
151
152
153
154

155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173







-
+





+
+
+
+
+
+
+
+






/*!
 * @brief The standard error as an OFStream.
 */
extern OFStdIOStream *_Nullable of_stderr;

/*!
 * @brief Log the specified printf-style format to @ref of_stderr.
 * @brief Logs the specified printf-style format to @ref of_stderr.
 *
 * This prefixes the output with the date, timestamp, process name and PID and
 * allows `%@` as a printf-style formatted to print objects.
 */
extern void of_log(OFConstantString *format, ...);

/*!
 * @brief Logs the specified printf-style format to @ref of_stderr.
 *
 * This prefixes the output with the date, timestamp, process name and PID and
 * allows `%@` as a printf-style formatted to print objects.
 */
extern void of_logv(OFConstantString *format, va_list arguments);
#ifdef __cplusplus
}
#endif

OF_ASSUME_NONNULL_END

Modified src/OFStdIOStream.m from [26a72da19c] to [3648853d0b].

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
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







+
+
+
+
+
+
+
+
+
+



-









-


-







	[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;
	va_list arguments;

	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

	va_start(arguments, format);
	msg = [[[OFString alloc] initWithFormat: format
				      arguments: arguments] autorelease];
	va_end(arguments);

	[of_stderr writeFormat: @"[%@.%03d %@(%d)] %@\n", dateString,
				date.microsecond / 1000, me, getpid(), msg];

	objc_autoreleasePoolPop(pool);
}