Pietro Gagliardi
623575f25a
Changed uiprivProgrammerError() to use format strings directly, so errors can be more easily caught. We'll make things even more robust when I change the programmer error macros to be functions.
2019-06-02 02:23:12 -04:00
Pietro Gagliardi
8980a8663b
Cleaned up a TODO.
2019-06-01 20:46:41 -04:00
Pietro Gagliardi
6ffe0a4c99
Added functionality to mark printf() functions for compilers with warning checks, and marked such. Sadly it appears ms_printf is ignored with -pedantic, so we'll need to stop using I32...
2019-06-01 20:20:11 -04:00
Pietro Gagliardi
a8ad49fead
Made the names of format string arguments across the board consistent. Only the "public" functions in the testing library are kept expanded for documentation purposes.
2019-06-01 11:40:16 -04:00
Pietro Gagliardi
76fabb37cf
Renamed common/init.c to common/main.c.
2019-06-01 11:24:34 -04:00
Pietro Gagliardi
48cd6e1dd8
Cleaned #include directives so C standard library headers are sorted and so each source file only includes one header file. This makes things clenaer, and alos allows us to more properly strip unneeded headers later.
2019-06-01 09:27:17 -04:00
Pietro Gagliardi
7d0f8403ab
Fixed build errors on other platforms. This is a headache and a half :D I should split the files into strsafe_vsnprintf and strsafe_strncpy, but I want to share this file as is in one piece for now.
2019-05-31 22:07:51 -04:00
Pietro Gagliardi
1814745646
Wrote a wrapper for vsnprintf() that calls _vcsprintf()/vsnprintf_s() on Windows, because lol. I'm going to try switching from strcpy() to strncpy() for the other cases; let's see if this works.
2019-05-31 02:52:51 -04:00
Pietro Gagliardi
dca2e5f038
Wrote array_header.h. Now for array_impl.h.
2019-05-30 23:47:07 -04:00
Pietro Gagliardi
0f4602ee0f
Moved the allocation functions to sharedbits/. Not fully working yet...
2019-05-30 23:11:08 -04:00
Pietro Gagliardi
9daef443b2
Moved uiQueueMain() to common/init.c to avoid having multiple initialized variables; the per-OS versions are now uiprivSysQueueMain(). Also more TODOs.
2019-05-30 01:39:43 -04:00
Pietro Gagliardi
ab5b3076ed
Removed uiInitError length checking and just truncated too-long messages with an ellipsis. Also removed the non-printf version of uiprivReportInitError.
2019-05-30 01:16:33 -04:00
Pietro Gagliardi
19ad0d33a3
Changed uiInit() to return bool instead of int, now that we've settled on using bool.
2019-05-29 21:10:44 -04:00
Pietro Gagliardi
b5927353e0
Started work to test that functions dislike being called before uiInit() or on a different thread; better to do it now than later.
2019-05-28 21:54:13 -04:00
Pietro Gagliardi
b3f2214f3e
okay what the fuck
2019-05-27 11:36:59 -04:00
Pietro Gagliardi
79ecadb909
Fuck the industry domination of C++ and its standard not forcing compliance in both C and C++ modes, if this is the case here. If not, then fuck MSVC.
2019-05-27 11:18:52 -04:00
Pietro Gagliardi
a6c1e1ed17
Fixed build errors. Now to fix runtime errors.
2019-05-27 11:02:23 -04:00
Pietro Gagliardi
9bec2005a1
Added smprintf() and outbuf to the testingpriv.h functions, introducing a simpler outbuf API along the way. Changing the test suite to actually use this comes next.
2019-05-19 23:15:35 -04:00
Pietro Gagliardi
40508a457c
Changed testingSet to use testingprivArray.
2019-05-19 18:06:58 -04:00
Pietro Gagliardi
02b61c0156
Changed uiEvent.handlers into a uiprivArray; also fixed the buggy implementations of InsertAt and Delete.
2019-05-19 14:37:32 -04:00
Pietro Gagliardi
745440b1e7
Wrote array manipulation functions. Now to convert events.c to use them.
2019-05-19 12:52:06 -04:00
Pietro Gagliardi
96c346c2dd
Added uiprivAlloc() and friends and implemented uiNewEvent().
2019-05-16 23:02:03 -04:00
Pietro Gagliardi
bd84da7179
More implementation of uiEvent. Now we'll need to deal with memory allocation.
2019-05-16 12:27:04 -04:00
Pietro Gagliardi
101df7a469
Added uiEvent-specific programmer errors. Next up: actually implementing uiEvent.
2019-05-14 11:03:03 -04:00
Pietro Gagliardi
7c128e7bcd
Added internal errors and refined the error handling somewhat.
2019-05-13 21:30:18 -04:00
Pietro Gagliardi
45f69cf058
Renamed programmererror.c to errors.c so we can add internal errors (which used to be called implementation bugs).
2019-05-13 10:46:42 -04:00
Pietro Gagliardi
7022e6f268
More programmer error refinement.
2019-05-13 06:37:19 -04:00
Pietro Gagliardi
b3049b0a1e
Started reintegrating what used to be called user bugs; they're now called programmer errors. We'll create a much more systematic approach to them. Implemented on macOS.
2019-05-12 22:17:24 -04:00
Pietro Gagliardi
f97383f66c
Rearranged things so that uiInit() itself is in common/init.c and the OS-specific initialization code is its own standalone internal function. This'll make testing a bit easier, especially after the next few commits, and will allow me to test pre-initialization and cross-thread stuff a bit more easily.
2019-05-09 12:07:28 -04:00
Pietro Gagliardi
f7867f3427
ALMOST fixed the build on Windows with MSVC. (For the change to test/testing.h: Even in VS2019 inline isn't available in C, ugh. That function doesn't need to be inline anyway, so eh.)
2019-04-21 15:08:09 -04:00
Pietro Gagliardi
c6aa8c3324
Pruned windows/init.cpp to a minimal initialization that we can test things with, which includes adding a function to load err->Message with a formatted string.
...
Also added a better error for if InitCommonControlsEx() returns 0 without setting the last error; this usually means that v5 is loaded.
Fixes #451 .
Updates #337 .
2019-04-21 14:49:16 -04:00
Pietro Gagliardi
484989e925
Implemented uiInit() on macOS. The tests work so far!
2019-04-20 21:38:26 -04:00
Pietro Gagliardi
74b1e2780d
Implemented the cross-platform bits of uiInit().
2019-04-19 12:32:13 -04:00
Pietro Gagliardi
992d8694a9
Let's start the remodel. Move almost everything out of the way.
2019-04-08 20:36:21 -04:00
Pietro Gagliardi
4df47a6ee8
Decided what to do about uipriv.h including ui.h (uipriv_OS.h* wrecks that plan, so make a note of us not doing it). Now to just decide what to do about attrstr.h and then we can merge back.
2018-04-17 21:04:04 -04:00
Pietro Gagliardi
01d6422664
Added uipriv prefixes to the matrix functions.
2018-04-15 22:39:34 -04:00
Pietro Gagliardi
24a4b0997c
fromScancode() -> uiprivFromScancode().
2018-04-15 22:31:17 -04:00
Pietro Gagliardi
0dddf4a490
clickCounter -> uiprivClickCounter.
2018-04-15 22:26:51 -04:00
Pietro Gagliardi
f5be05f143
shouldQuit() -> uiprivShouldQuit().
2018-04-15 21:54:46 -04:00
Pietro Gagliardi
59835a9bae
Removed the declaration of newControl(): it was completely unused, as it was superceded by uiAllocControl() long ago.
2018-04-15 21:49:58 -04:00
Pietro Gagliardi
f93973d3cb
Migrated implbug() and userbug() to uipriv forms.
2018-04-15 21:46:08 -04:00
Pietro Gagliardi
72e8b9a198
Started FINALLY renaming uiAlloc(), uiNew(), uiRealloc(), and uiFree() into uipriv* forms. This handles the common folder.
2018-04-15 15:53:27 -04:00
Pietro Gagliardi
4a57b15d09
Renamed the common options variable to uiprivOptions.
2018-04-15 15:49:45 -04:00
Pietro Gagliardi
93f0eea140
Likewise codified uiprivStricmp(). Honestly this will probably do for the Windows code for now...
2018-03-17 23:22:17 -04:00
Pietro Gagliardi
eeb7717d88
Moved old attributed-string stuff out of the way for now.
2018-02-19 01:52:38 -05:00
Pietro Gagliardi
4f31a1331c
And omitted the common OpenType stuff from the build.
2017-05-17 16:18:28 -04:00
Pietro Gagliardi
d7a44a5168
Added uiAttribute handling code to the GTK+ backend. Not finished yet; not used yet.
2017-02-20 17:11:52 -05:00
Pietro Gagliardi
b2cd5ef851
Wrote code to draw the background of text.
2017-02-13 01:22:59 -05:00
Pietro Gagliardi
261dd4851a
Changed the representation of an attribute type/value pair to allow more type safety and expressability.
2017-02-12 14:11:25 -05:00
Pietro Gagliardi
b5b0fae052
And implemented uiDrawCaret() on GTK+.
2017-02-10 16:53:08 -05:00