mirror of
https://github.com/javalsai/lidm.git
synced 2025-09-03 11:48:00 +02:00
lint(tidy): some clang-tidy work
This commit is contained in:
76
src/efield.c
76
src/efield.c
@@ -3,71 +3,77 @@
|
||||
#include "efield.h"
|
||||
#include "ui.h"
|
||||
|
||||
// NOLINTBEGIN(clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling)
|
||||
|
||||
struct editable_field field_new(char* content) {
|
||||
struct editable_field __efield;
|
||||
struct editable_field efield;
|
||||
if (content != NULL) {
|
||||
__efield.length = __efield.pos = strlen(content);
|
||||
memcpy(__efield.content, content, __efield.length);
|
||||
efield.length = efield.pos = strlen(content);
|
||||
memcpy(efield.content, content, efield.length);
|
||||
} else {
|
||||
field_trim(&__efield, 0);
|
||||
field_trim(&efield, 0);
|
||||
}
|
||||
__efield.content[__efield.length] = '\0';
|
||||
return __efield;
|
||||
efield.content[efield.length] = '\0';
|
||||
return efield;
|
||||
}
|
||||
|
||||
void field_trim(struct editable_field* field, u_char pos) {
|
||||
field->length = field->pos = pos;
|
||||
field->content[field->length] = '\0';
|
||||
void field_trim(struct editable_field* self, u_char pos) {
|
||||
self->length = self->pos = pos;
|
||||
self->content[self->length] = '\0';
|
||||
}
|
||||
|
||||
void field_update(struct editable_field* field, char* update) {
|
||||
// NOLINTNEXTLINE(modernize-macro-to-enum)
|
||||
#define BACKSPACE_CODE 127
|
||||
void field_update(struct editable_field* self, char* update) {
|
||||
u_char insert_len = strlen(update);
|
||||
if (insert_len == 0) return;
|
||||
|
||||
if (field->pos > field->length) field->pos = field->length; // WTF
|
||||
if (self->pos > self->length) self->pos = self->length; // WTF
|
||||
if (insert_len == 1) {
|
||||
// backspace
|
||||
if (*update == 127) {
|
||||
if (field->pos == 0) return;
|
||||
if (field->pos < field->length) {
|
||||
memmove(&field->content[field->pos - 1], &field->content[field->pos],
|
||||
field->length - field->pos);
|
||||
if (*update == BACKSPACE_CODE) {
|
||||
if (self->pos == 0) return;
|
||||
if (self->pos < self->length) {
|
||||
memmove(&self->content[self->pos - 1], &self->content[self->pos],
|
||||
self->length - self->pos);
|
||||
}
|
||||
(field->pos)--;
|
||||
(field->length)--;
|
||||
field->content[field->length] = '\0';
|
||||
(self->pos)--;
|
||||
(self->length)--;
|
||||
self->content[self->length] = '\0';
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// append
|
||||
if (field->length + field->pos >= 255) {
|
||||
if (self->length + self->pos >= 255) {
|
||||
print_err("field too long");
|
||||
}
|
||||
if (field->pos < field->length) {
|
||||
if (self->pos < self->length) {
|
||||
// move with immediate buffer
|
||||
memmove(&field->content[field->pos + insert_len],
|
||||
&field->content[field->pos], field->length - field->pos);
|
||||
memmove(&self->content[self->pos + insert_len],
|
||||
&self->content[self->pos], self->length - self->pos);
|
||||
}
|
||||
memcpy(&field->content[field->pos], update, insert_len);
|
||||
memcpy(&self->content[self->pos], update, insert_len);
|
||||
|
||||
field->pos += insert_len;
|
||||
field->length += insert_len;
|
||||
field->content[field->length] = '\0';
|
||||
self->pos += insert_len;
|
||||
self->length += insert_len;
|
||||
self->content[self->length] = '\0';
|
||||
}
|
||||
|
||||
// returns bool depending if it was able to "use" the seek
|
||||
bool field_seek(struct editable_field* field, char seek) {
|
||||
if (field->length == 0) return false;
|
||||
bool field_seek(struct editable_field* self, char seek) {
|
||||
if (self->length == 0) return false;
|
||||
|
||||
if (seek < 0 && -seek > field->pos)
|
||||
field->pos = 0;
|
||||
else if (seek > 0 && 255 - field->pos < seek)
|
||||
field->pos = 255;
|
||||
if (seek < 0 && -seek > self->pos)
|
||||
self->pos = 0;
|
||||
else if (seek > 0 && 255 - self->pos < seek)
|
||||
self->pos = 255;
|
||||
else
|
||||
field->pos += seek;
|
||||
self->pos += seek;
|
||||
|
||||
if (field->pos > field->length) field->pos = field->length;
|
||||
if (self->pos > self->length) self->pos = self->length;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// NOLINTEND(clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling)
|
||||
|
Reference in New Issue
Block a user