• Robert Sprowson's avatar
    Some library fixes · c9b6d7f3
    Robert Sprowson authored
    Fix for problem passing long command lines via system(), while there are good arguments to leave the threshold at 255, non DDEUtils aware programs get brutally truncated command strings, and since the old threshold of 255 applied when the kernel handled 256 command lines, upping the limit to 1k is no worse than before.
    Fix for Edit failing to draw lines of text longer than 192 characters (ticket #350). Several factors were conspiring here: on a mode change the window width in characters wasn't being clamped, whereas user entered limits in the menu were, then the internal buffer ("PAINTBUFSIZE") was too short so lines got truncated, and when larger than 256 got wrapped modulo 256 due to the use of an array of chars. Now set at compile time with BIG_WINDOW_SIZE_LIMIT with a new theoretical maximum of 8192. Currently limited to 480 since it uses stack variables.
    In the C library:
     armsys.c: adapt the threshold at which to use DDEUtils based on the kernel version number
     scanf.c: squash a warning
     time.c: mark the table of month lengths as constant so we can claw back 13 words of static workspace without having to change the stubs
    In RISC OS lib:
     bbc.c: remove local definitions of some SWI numbers
     template.c: squash a warning
     txt.c: delete Modula-2 support
     txt1.c: compare pointer with NULL not an integer
     txtar.c: introduce BIG_WINDOW_SIZE_LIMIT, rationalise a few sprintf's, mark private functions as static
     txtundo.c/txtedit.c: squash old style function warnings
     txtoptmenu.c: clamp the window width read from Edit$Options properly, delete long disabled code
     txtscrap.c: dead function deleted
    Version 5.78. Tagged as 'RISC_OSLib-5_78'
VersionASM 1018 Bytes