[clock] ! fixed clock "restart" on explorer crash/restart. Wasn't working since commit d9e295b (v2.3.0) onward (DLL/main.c)
! fixed possible never ending loop when searching for clock window
* unified clock window search (moved all work to utl.c) (main.c,DLL/main.c,utl)
[clock] ! fixed reported issue with clock size not updating after day of week change (or month for that matter)
  Since "Wednesday" is longer than "Friday" the clock needs to adjust size. Same for months.
  T-Clock used to dynamically resize if needed pre-2.2.0, before commit 14897d0 (look at DrawClockSub())
  I've removed that resizing for performance reasons and also though it had to do with wrong calculations (clock size was never correct after start up)
* improved clock size calculation to use example values where possible. This fixes a size issue with "h" vs "hh" format (9 o'clock to 10 o'clock, as the later uses more space)
* other changes such as new comments, improved variable usage and so on. No functional changes
[alarm] + added requested ability to use "one-shot" alarms. Those will disable themselves on first trigger (alarm.c,menu.c,pagealarm.c,tClock.rc,tclock.h,resource.h)
* fixed internal spelling, OnAlermJihou => OnAlarmJihou (maybe translate "Jihou" to "Time signal" ...) (pagealarm.c)
* improved alarm page dialog for usability and fixed some enable/disable bugs (pagealarm.c,tClock.rc,resource.h)
* reduced memory usage of alarms by 60% (tclock.h,alarm.c)
[alarm dialog] ! fixed improper display of time and an issue with 24h format on load.
* unified default alarm settings and changed them to use "Alarm.wav" as sound, a message window and blinking clock
* basic support in code for 0am (instead of currently used 12am for midnight)
! fixed regression with displaying the alert window and playing a sound at the same time. (dialog is no longer blocking) (BounceWind.c)
  pre-2.3.0 (commit c3725d3) used PostMessage to finally show alert window.
  I've "improved" that to be a direct call...
  it was blocking though and a later played sound only played after closing the alert window.
  The post whatsoever happened later and thus it "worked".
+ alert window will now use default text with time of expire if no text was set (BounceWind.c)
+ closing the alert window will now also stop sounds and blinking clock (BounceWind.c,Tclock.c,globals.h)
[alarm dialog] + allow relative paths for sounds. Relative paths are now used by default (waves/ as base)
+ alarm settings dialog now lists all possible sound files in a dropdown for user convenience
! g_mydir is now a full path on XP+ (required by relative sound files in BrowseSoundFile)
* improved str0cat() (mostly faster execution and easier to read)

this commit finalizes previous commit.
[alarm] ! repeat setting now really sets a repeat. So a repeat of "1" plays twice. (first time, and one more as repeat)
          before that, it still played only once even though you've "wanted" one repeat. (alarm.c)
! sound preview button now also supports repeat. So you get a useful preview of how it sounds when alarm triggers. (pagealarm.c)

[timer] + added sound selection feature from previous commit to timer dialog and slightly improved file input size (tClock.rc,timer.c)
[alarm] ! fixed triggering of disabled alarms (I guess.. look into alarm.c)
+ added "<  no sound  >" selection to our sound selection, improved file input handling in regards of enabling/disabling controls
* changed Alarm.wav and SOS.pcb to better support repeating. (since Alarm.wav is default as well as repeat to infinity, as of commit 5396ff5)
[format] ! support uptime format (ST,Sh,Sn,Ss) with uptime measured to infinity. Before that, it was only precise for up to 49.7 days
the new method is slower on 32bit OS though... as well as pre-Vista (feature is only supported for Vista and up)