- 17 May, 2022 16 commits
-
-
Ben Avison authored
-
Ben Avison authored
-
Ben Avison authored
-
Ben Avison authored
-
Ben Avison authored
-
Ben Avison authored
cppcheck tests all possible build variants of source code, and some source files in this component have build switches for non-RISC OS targets for historical reasons. Some of these define FILEHANDLE to be a pointer, yet the implementation of _sys_open() performs some operations on them which assume that (as in the RISC OS case) it's typedeffed to an int. Provide a dummy non-RISC OS implementation to avoid the diagnostic.
-
Ben Avison authored
This was detected by cppcheck nullPointerRedundantCheck diagnostic (whose severity is "warning").
-
Ben Avison authored
'fh <= 0' is the opposite of the condition of an earlier condition, so this is conceptually an else clause, not an else-if with an empty implicit else clause afterwards.
-
Ben Avison authored
Similar to the shadowVariable diagnostic, this clarifies when a symbol name has been re-used within the scope of another.
-
Ben Avison authored
In _write_profile(), this is just a matter of clarifying that the three iterator variables 'i' are actually all different. In _backtrace() this clarifies that the 'r' in the outer scope can never be affected by anything in the while loop, and may result in more efficient stack usage.
-
Ben Avison authored
A common theme here is that using self-assignment to quieten compiler warnings about not only triggers the cppcheck selfAssignment diagnostic but also the unreadVariable one, because the value assigned to the variable isn't used (by definition). The easiest way to deal with those is to cast to void instead. However, unreadVariable triggers in cases other than this - cases which are potential bugs, or which might result in suboptimal code generated by the compiler even if they are not. These are illustrated in the 2 other cases addressed here (neither of which actually are bugs - but I would advise against blanket suppression of this warning because it would mean our attention would not be drawn to them or any similar issues). The change in hostsys.h fixes an issue which is manifested in scanf.c (temp.i.mlo is judged to never be used).
-
Ben Avison authored
There were many of these, all relating to the fact that struct StatsStruct is unused unless STATS is defined.
-
Ben Avison authored
Also fixes an unintvar diagnostic due to GetMoreOSHeap() being called from _primitive_alloc() with base_ptr pointing at uninitialised memory.
-
Ben Avison authored
In these cases, I judged it impossible or impractical to refactor the code to remove the warning, so I have suppressed them instead.
-
Ben Avison authored
It turns out that the lines triggering the selfAssignment diagnostic are fixed by addressing the unreadVariable diagnostic (in fact they are a subset) so it has not been suppressed.
-
Ben Avison authored
-
- 16 May, 2022 3 commits
-
-
Ben Avison authored
Detail: * Enable GitLab CI * Address issues identified by CI jobs, excluding those related to cppcheck * Enable GitLab CD for stubs (used implicitly when linker is invoked by cc) Version 6.12. Tagged as 'RISC_OSLib-6_12'
-
Ben Avison authored
Detail: * Remove empty directories and have the Makefiles create them * Consolidate and complete .gitignore
-
Ben Avison authored
Detail: * GNUmakefile: add translation of Makefile to GNU make / cross-compilation requirements (this component is too non-standard to make much use of the shared makefiles) * Makefile: comment out rules for objects that aren't used for any targets, for clarity; don't clean files that are never created * Various: change to using OS-agnostic filename path syntax * Various: ensure case matches for filename paths (don't assume host filing system is case-agnostic)
-
- 22 Nov, 2021 1 commit
-
-
Stuart Swales authored
Detail: fminf(x,y) / fmaxf(x,y) corrupted the result when x==y and x!=0.0 due to ANDing/ORRing a single precision register with the high word of a double precision register pair when fixing up signs for mixed +/- 0 parameters in an analogous fashion to fmax/fmin (which are correct). Version 6.11. Tagged as 'RISC_OSLib-6_11'
-
- 13 Nov, 2021 2 commits
-
-
Stuart Swales authored
Detail: modff() single precision function yielded wrong results for both fractional and integral part for most numbers because the wrong exponent bias was subtracted. Version 6.10. Tagged as 'RISC_OSLib-6_10'
-
Stuart Swales authored
Version 6.09. Not tagged
-
- 06 Feb, 2021 1 commit
-
-
Timothy E Baldwin authored
If the current directory is not it's root these are not equivalent. Version 6.09. Tagged as 'RISC_OSLib-6_09'
-
- 05 Sep, 2020 1 commit
-
-
Ben Avison authored
This utilises a weak symbol import so that if the symbol `Resources` resolves at link time, it is called to discover the address of the resource file data block(s) to be installed in ResourceFS. If this fails, it drops back to using the `s.ResFiles` source file as previously, thereby ensuring compatibility with components that have not yet been converted to use ResGen. Since `Resources` is the default area name (and thus discovery function name) used for ResGen in the shared makefiles, this makes it as simple as possible to utilise it. Version 6.08. Tagged as 'RISC_OSLib-6_08'
-
- 06 Jul, 2020 1 commit
-
-
Jeffrey Lee authored
As noted in https://www.riscosopen.org/forum/forums/9/topics/15359, MRS instructions which are executed in user mode may return unknown values for the CPSR E, A, I, F and M fields on ARMv8 CPUs. At the moment the only observed deviation from normal behaviour is that CPUs which lack AArch32 privileged-mode support may return zero for the fields. This was found to confuse some 26 vs. 32 bit mode checks in CLib. Clearly we're a long way away from having a version of RISC OS which can run on a CPU that lacks AArch32 privileged mode support, but we can still try and make sure user-mode applications are compatible with them. So this change adjusts the mode checks in the stubs and overlay manager so that programs linked with them should function correctly (TEQ is now used instead of MRS) Note that once we do start porting RISC OS to one of the troublesome CPUs, there are many more potentially troublesome MRS's within the module code that will need adjusting, especially if CPUs start returning values other than zero. Version 6.07. Tagged as 'RISC_OSLib-6_07'
-
- 09 May, 2020 2 commits
-
-
Jeffrey Lee authored
Use extended scroll requests to handle mouse wheel scrolling, to avoid the "thumbing" code getting confused and thinking the user is dragging the scrollbar (the "thumbing" mode of scrolling isn't desirable for the mouse wheel, because it largely ignores the requested scroll distance) This change allows Edit & SrcEdit (and anything else using txtar) to handle the scroll wheel better, now that the WindowScroll module is controlling things. Version 6.06. Tagged as 'RISC_OSLib-6_06'
-
ROOL authored
Detail: Export sprite_put_mask_scaled when UROM. Also, delete sprite_put_greyscaled() which has been unimplemented in SpriteExtend since RISC OS 3.60. Admin: Required by Paint bounty. Version 6.05. Not tagged
-
- 06 May, 2020 4 commits
-
-
ROOL authored
Detail: Was (trying to) clear the M32 flag in {CONFIG}=32. Ref: https://www.riscosopen.org/forum/forums/1/topics/15080?page=1#posts-99441 Makefile updated to only pass rlib's txt switch when building rlib. Version 6.05. Tagged as 'RISC_OSLib-6_05'
-
ROOL authored
Detail: alloc.c - Add aligned_alloc(). Since softloaded versions of the C library can't rely on OS_Module 24 being available there is a fallback implementation for older kernels. stdlib.c - Add quick_exit() and at_quick_exit(). Also fix bug in _Exit; a missing loop pre-decrement led to only checking a single (out of array bounds!) vector. time.c - Add timespec_get(). cl_entry2 - 4 new functions added to the stubs. Reduce spare CLib static workspace to absorb the quick_exit() handlers, remove the unused words from armsys.c so they're all accounted for in one space. Admin: In order that the functions can be defined in the stubs now (despite not having a compiler to support C11/C18) they are enabled when 'DDE' is defined so that C library builds work.
-
ROOL authored
Detail: assert.h - definition of static_assert complex.h - definition of CMPLX[F|L] float.h - various implementation defines stdio.h - hide gets() as it's been withdrawn wchar.h - guard mbstate_t as it can also be in uchar.h, fix missing __valist definition Admin: In order that the functions can be defined in the stubs now (despite not having a compiler to support C11/C18) they are enabled when 'DDE' is defined so that C library builds work.
-
ROOL authored
Detail: Remove undocumented 't' mode which forcibly timestamped files, since other operating systems use this to denote a text file (as opposed to 'b' binary mode). Add 'x' mode per ISO9899:2018 * only applies to 'w' mode files (not 'r' or 'a') * file must not exist prior to creation * beyond that we rely on RISC OS' policy of only allowing a file to be opened once for writing as our exclusivity Also fix bug in check for 'Protected disc' error, which only trigged for fsnumber_ADFS (8). Admin: Tested in a ROM build with a simple test harness.
-
- 22 Apr, 2020 1 commit
-
-
Robert Sprowson authored
The spec of os_byte() requires 2 valid pointers, since the return values are unconditionally written to them. Use a dummy pointer for the unwanted result, not 0. Fixes application crash https://www.riscosopen.org/forum/forums/1/topics/15189#posts-101073. Version 6.04. Tagged as 'RISC_OSLib-6_04'
-
- 20 Jul, 2019 1 commit
-
-
Robert Sprowson authored
The change of MIN() to a macro in RISC_OSLib-6_02 tripped up as it called the argument number parse function twice, which advances the parsing offset as a sideeffect. Read it once, then evaluate MIN(). Mark the string argument to txtar__readoptnum() as const. Ref: https://www.riscosopen.org/forum/forums/11/topics/14632 Version 6.03. Tagged as 'RISC_OSLib-6_03'
-
- 29 Jun, 2019 2 commits
-
-
Robert Sprowson authored
Share a (macro) definition with txt1 rather than having lots of local functions scattered around. Version 6.02. Tagged as 'RISC_OSLib-6_02'
-
Robert Sprowson authored
Only suppress the '*' when an existing file is dropped into an empty window, not if via scrap (ie. an application supporting the clipboard, but not the ram fetch protocol). Fixes ticket #461.
-
- 09 Jun, 2019 1 commit
-
-
ROOL authored
Detail: Add missing function draw_create_diag() to the ROM version of RISC_OSLib, required by Paint-2_24 and later. To keep ROM footprint to a minimum, export only that function; this also avoids adding static workspace and needing to increase RlibSpace. Version 6.01. Tagged as 'RISC_OSLib-6_01'
-
- 17 Mar, 2019 1 commit
-
-
ROOL authored
Detail: Add wimp_autoscroll to rlib entries. Version 6.00. Not tagged
-
- 16 Mar, 2019 1 commit
-
-
ROOL authored
Detail: Export fenv.h (omitted in error). Add FP_FAST_FMAL and FP_FAST_FMA defines per C standard Submission for ARMv7 Compiler bounty. Add Wimp_AutoScroll supporting function to rlib. Export various related defines for autoscroll use. Submission for Clipboard Support bounty. Version 6.00. Tagged as 'RISC_OSLib-6_00'
-
- 09 Feb, 2019 1 commit
-
-
ROOL authored
Detail: The fix applied to all menus in event.c revision 4.6 didn't take into account the offset of -16 already applied to iconbar menus. Admin: Tested with Draw-1_31. Version 5.99. Tagged as 'RISC_OSLib-5_99'
-
- 26 Jan, 2019 1 commit
-
-
Robert Sprowson authored
colourtran.c: Swap round arg names to colourtran_colournumbertoGCOL to match prototype. txtar.c: Avoid incorrect use of strncat buffer limit, and possible unterminated string after strncpy, by reexpressing using snprintf. txtedit.c: Avoid incorrect use of strncat buffer limit by reexpressing using snprintf. Avoid potential NULL pointer dereference by moving the filename copy inside the 'if' which confirms it's non-NULL. txtfind.c: Remove repeated check of repls being valid. Free repls on error. Free pat on error. xfersend.c: Fix potential out of bounds array access (of leaf[]) if the leafname length exceeds the space in the Wimp message. Found by cppcheck static analysis. txtopt.c/h: Sprinkle in some consts. event.c: Open menu at the Style Guide approved offset of 64. xfersend.c: Remove redundant check of xfersend__filename being NULL in xfersend__suggest_leaf() as all paths leading to it being called ensure the allocation exists (also, it would have strcpy'd garbage due to malloc not clear...
-