This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch master
in repository e16-epplets.
View the commit online.
commit 1d98d75ac0e4812d46d1d0044a516f85f0130e36
Author: Kim Woelders <[email protected]>
AuthorDate: Wed Dec 10 19:32:54 2025 +0100
api: Fix some Fix constness warnings
Appeared after glibc update.
---
api/epplet.c | 134 +++++++++++++++++++++--------------------------------------
1 file changed, 48 insertions(+), 86 deletions(-)
diff --git a/api/epplet.c b/api/epplet.c
index a7fd405..f54eb01 100644
--- a/api/epplet.c
+++ b/api/epplet.c
@@ -1909,51 +1909,38 @@ Epplet_reset_textbox(Epplet_gadget eg)
Epplet_draw_textbox(eg);
}
-void
-Epplet_textbox_insert(Epplet_gadget eg, const char *new_contents)
+static int
+_Epplet_textbox_insert(GadTextBox *g, const char *new_contents)
{
- GadTextBox *g;
- int len, w, h;
- char *s, *line_break;
+ int len_old, len_new;
+ char *s;
+ const char *line_break;
- GADGET_CONFIRM_TYPE(eg, E_TEXTBOX);
- if (!new_contents || ((len = strlen(new_contents)) == 0))
- return;
-
- g = (GadTextBox *) eg;
-
- if (g->contents)
- s = malloc(len + strlen(g->contents) + 1);
- else
- s = malloc(len + 1);
+ if (!new_contents || ((len_new = strlen(new_contents)) == 0))
+ return -1;
if ((line_break = strchr(new_contents, '\n')))
+ len_new = line_break - new_contents;
+
+ len_old = (g->contents) ? strlen(g->contents) : 0;
+ s = realloc(g->contents, len_old + len_new + 1);
+ if (!s)
{
- *line_break = '\0'; /* get rid of the new line */
+ printf("Couldn't alloc mem\n");
+ return -1;
}
+ g->contents = s;
- if (s)
+ if (len_old)
{
- *s = '\0';
-
- if (g->contents)
- {
- strncpy(s, g->contents, g->cursor_pos);
- *(s + g->cursor_pos) = '\0';
- strcat(s, new_contents);
- strcat(s, (g->contents + g->cursor_pos + 1));
- }
- else
- strcat(s, new_contents);
-
- free(g->contents);
-
- g->contents = s;
+ memmove(g->contents + g->cursor_pos + len_new,
+ g->contents + g->cursor_pos, len_old - g->cursor_pos + 1);
+ memcpy(g->contents + g->cursor_pos, new_contents, len_new);
}
else
{
- printf("Couldn't alloc mem\n");
- return;
+ memcpy(g->contents, new_contents, len_new);
+ g->contents[len_new] = '\0';
}
if (line_break)
@@ -1962,9 +1949,26 @@ Epplet_textbox_insert(Epplet_gadget eg, const char *new_contents)
(*(g->func)) (g->data);
}
- Epplet_textbox_textsize(g, &w, &h, g->contents);
+ g->cursor_pos = g->contents ? g->cursor_pos + len_new : 0;
- g->cursor_pos = g->contents ? strlen(g->contents) : 0;
+ return 0;
+}
+
+void
+Epplet_textbox_insert(Epplet_gadget eg, const char *new_contents)
+{
+ GadTextBox *g = (GadTextBox *) eg;;
+ int w, h;
+
+ GADGET_CONFIRM_TYPE(eg, E_TEXTBOX);
+
+ if (!new_contents || *new_contents == '\0')
+ return;
+
+ if (_Epplet_textbox_insert(g, new_contents))
+ return; /* Failed */
+
+ Epplet_textbox_textsize(g, &w, &h, g->contents);
g->x_offset = 0;
if (w > g->w)
@@ -1977,52 +1981,29 @@ Epplet_textbox_insert(Epplet_gadget eg, const char *new_contents)
void
Epplet_change_textbox(Epplet_gadget eg, const char *new_contents)
{
- GadTextBox *g;
- int len, w, h;
- char *s;
+ GadTextBox *g = (GadTextBox *) eg;
+ int w, h;
GADGET_CONFIRM_TYPE(eg, E_TEXTBOX);
- if (!new_contents || ((len = strlen(new_contents)) == 0))
+
+ if (!new_contents || *new_contents == '\0')
{
Epplet_reset_textbox(eg);
return;
}
- g = (GadTextBox *) eg;
if (g->contents == new_contents)
return;
- free(g->contents);
- if ((s = strchr(new_contents, '\n')))
- {
- *s = '\0'; /* kill new line */
-
- s = malloc(sizeof(char) * len + 1);
-
- if (s)
- {
- strcpy(s, new_contents);
- g->contents = s;
- Epplet_draw_textbox(eg);
-
- if (g->func)
- (*(g->func)) (g->data);
- }
- else
- printf("Couldn't allocate memory.\n");
- }
- g->contents = Estrdup(new_contents);
+ if (_Epplet_textbox_insert(g, new_contents))
+ return; /* Failed */
Epplet_textbox_textsize(g, &w, &h, g->contents);
- g->cursor_pos = g->contents ? strlen(g->contents) : 0;
-
g->x_offset = 0;
if (w > g->w)
g->x_offset -= w - g->w + 2 + CRSR_WDTH;
-
g->to_cursor = w;
- g->cursor_pos = strlen(new_contents);
Epplet_draw_textbox(eg);
}
@@ -2355,27 +2336,8 @@ Epplet_textbox_handle_keyevent(XEvent *ev, Epplet_gadget gadget)
}
else
{
- if (g->contents)
- {
- g->contents = realloc(g->contents, (strlen(g->contents) + len + 1));
- }
- else
- {
- if (!strcmp(kbuf, " "))
- return;
-
- g->contents = malloc(len + 1);
- *(g->contents) = '\0';
- }
-
- len = strlen(g->contents) + 1;
- memmove((g->contents + g->cursor_pos + 1),
- (g->contents + g->cursor_pos),
- strlen(g->contents + g->cursor_pos));
- *(g->contents + g->cursor_pos) = *kbuf;
- *(g->contents + len) = '\0';
-
- g->cursor_pos++;
+ if (_Epplet_textbox_insert(g, kbuf))
+ return; /* Failed */
}
Epplet_textbox_textsize(g, &char_width, &h, kbuf);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.