diff options
author | Aidan MacDonald <amachronic@protonmail.com> | 2021-07-20 21:13:37 +0100 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2021-07-20 21:30:55 +0100 |
commit | 966e210e6d699ba69c0f72a2661b0f6204293247 (patch) | |
tree | 72e969af704c35137e065da8696b9472e1297a1e /apps/plugins/lib/kbd_helper.c | |
parent | 740a50687f67f3684e4b5698f8f30e3adebb8f6e (diff) | |
download | rockbox-966e210e6d.tar.gz rockbox-966e210e6d.zip |
Small fixes to kbd_create_layout
- Make the argument const since it's not actually mutated
- Actually return the size of the buffer used since this is what it
was supposed to do (although no existing callers cared anyway)
Change-Id: I0802071cf63d4af419f427ff54adca50b14918ad
Diffstat (limited to 'apps/plugins/lib/kbd_helper.c')
-rw-r--r-- | apps/plugins/lib/kbd_helper.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/apps/plugins/lib/kbd_helper.c b/apps/plugins/lib/kbd_helper.c index e3a844a993..f99282575d 100644 --- a/apps/plugins/lib/kbd_helper.c +++ b/apps/plugins/lib/kbd_helper.c @@ -34,11 +34,12 @@ * success returns size of buffer used * failure returns 0 */ -int kbd_create_layout(char *layout, unsigned short *buf, int bufsz) +int kbd_create_layout(const char *layout, unsigned short *buf, int bufsz) { unsigned short *pbuf; const unsigned char *p = layout; int len = 0; + int total_len = 0; pbuf = buf; while (*p && (pbuf - buf + (ptrdiff_t) sizeof(unsigned short)) < bufsz) { @@ -47,6 +48,7 @@ int kbd_create_layout(char *layout, unsigned short *buf, int bufsz) { *pbuf = len; pbuf += len+1; + total_len += len + 1; len = 0; } else @@ -57,7 +59,9 @@ int kbd_create_layout(char *layout, unsigned short *buf, int bufsz) { *pbuf = len; pbuf[len+1] = 0xFEFF; /* mark end of characters */ - return len + 1; + total_len += len + 1; + return total_len * sizeof(unsigned short); } + return 0; } |