mirror of
https://github.com/eddyem/snippets_library.git
synced 2026-03-20 00:30:56 +03:00
fixed for "-pedantic-errors"
This commit is contained in:
@@ -8,7 +8,7 @@ set(VERSION "${MAJOR_VERSION}.${MID_VERSION}.${MINOR_VERSION}")
|
||||
project(${PROJ} VERSION ${VERSION} LANGUAGES C)
|
||||
|
||||
# default flags
|
||||
set(CMAKE_C_FLAGS "${CFLAGS} -O2")
|
||||
set(CMAKE_C_FLAGS "${CFLAGS} -O2 -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS}")
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -Wextra -Wall -Werror -W")
|
||||
set(CMAKE_COLOR_MAKEFILE ON)
|
||||
|
||||
Binary file not shown.
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-11-06 15:03+0300\n"
|
||||
"POT-Creation-Date: 2026-03-04 09:05+0300\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -77,79 +77,79 @@ msgstr ""
|
||||
msgid "Can't use multiple args with arg_none!"
|
||||
msgstr ""
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:267
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:268
|
||||
#, c-format
|
||||
msgid "double long arguments: --%s"
|
||||
msgstr ""
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:273
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:274
|
||||
#, c-format
|
||||
msgid "double short arguments: -%c"
|
||||
msgstr ""
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:343
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:347
|
||||
#, c-format
|
||||
msgid "Need argument with %s type\n"
|
||||
msgstr ""
|
||||
|
||||
#. print only one message
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:435
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:439
|
||||
msgid "sl_showhelp(): option index out of range"
|
||||
msgstr ""
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:441
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:445
|
||||
#, c-format
|
||||
msgid "Usage: %s [arguments]\n"
|
||||
msgstr ""
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:528
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:535
|
||||
#, c-format
|
||||
msgid "Wrong parameter: %s"
|
||||
msgstr ""
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:532
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:539
|
||||
#, c-format
|
||||
msgid "%s: need argument!"
|
||||
msgstr ""
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:536
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:543
|
||||
#, c-format
|
||||
msgid "Wrong argument \"%s\" of parameter \"%s\""
|
||||
msgstr ""
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:147
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:154
|
||||
msgid "Server disconnected"
|
||||
msgstr ""
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:434
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:441
|
||||
msgid "Can't start server handlers thread"
|
||||
msgstr ""
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:503
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:513
|
||||
msgid "Limit of connections reached"
|
||||
msgstr ""
|
||||
|
||||
#. check for RB overflow
|
||||
#. -1 - buffer empty (can't be), -2 - buffer overflow
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:547
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:548
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:557
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:558
|
||||
#, c-format
|
||||
msgid "Server thread: ring buffer overflow for fd=%d"
|
||||
msgstr ""
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:562
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:572
|
||||
#, c-format
|
||||
msgid "Server thread: can't write data to ringbuffer: overflow from fd=%d"
|
||||
msgstr ""
|
||||
|
||||
#. buffer overflow
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:574
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:584
|
||||
#, c-format
|
||||
msgid "Server thread: buffer overflow from fd=%d"
|
||||
msgstr ""
|
||||
|
||||
#. never reached
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:664
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:681
|
||||
#, c-format
|
||||
msgid "Unsupported socket type %d"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
msgid ""
|
||||
msgstr "Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-11-06 14:57+0300\n"
|
||||
"POT-Creation-Date: 2026-03-04 09:01+0300\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -76,80 +76,80 @@ msgstr "
|
||||
msgid "Can't use multiple args with arg_none!"
|
||||
msgstr "íÁÓÓÉ× ÐÁÒÁÍÅÔÒÏ× ÎÅ ÍÏÖÅÔ ÉÍÅÔØ ÔÉÐ arg_none!"
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:267
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:268
|
||||
#, c-format
|
||||
msgid "double long arguments: --%s"
|
||||
msgstr "ÄÕÂÌÉÒÕÀÝÉÊÓÑ ÄÌÉÎÎÙÊ ÐÁÒÁÍÅÔÒ: --%s"
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:273
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:274
|
||||
#, c-format
|
||||
msgid "double short arguments: -%c"
|
||||
msgstr "ÄÕÂÌÉÒÕÀÝÉÊÓÑ ËÏÒÏÔËÉÊ ÐÁÒÁÍÅÔÒ: -%c"
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:343
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:347
|
||||
#, c-format
|
||||
msgid "Need argument with %s type\n"
|
||||
msgstr "îÅÏÂÈÏÄÉÍ ÁÒÇÕÍÅÎÔ Ó ÔÉÐÏÍ %s\n"
|
||||
|
||||
#. print only one message
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:435
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:439
|
||||
msgid "sl_showhelp(): option index out of range"
|
||||
msgstr "sl_showhelp(): ÉÎÄÅËÓ ÏÐÃÉÉ ×ÎÅ ÄÏÐÕÓÔÉÍÏÇÏ ÄÉÁÐÁÚÏÎÁ"
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:441
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:445
|
||||
#, c-format
|
||||
msgid "Usage: %s [arguments]\n"
|
||||
msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ÁÒÇÕÍÅÎÔÙ]\n"
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:528
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:535
|
||||
#, c-format
|
||||
msgid "Wrong parameter: %s"
|
||||
msgstr "îÅÐÒÁ×ÉÌØÎÙÊ ÐÁÒÁÍÅÔÒ: %s"
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:532
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:539
|
||||
#, c-format
|
||||
msgid "%s: need argument!"
|
||||
msgstr "%s: ÎÅÏÂÈÏÄÉÍ ÁÒÇÕÍÅÎÔ!"
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:536
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/parseargs.c:543
|
||||
#, c-format
|
||||
msgid "Wrong argument \"%s\" of parameter \"%s\""
|
||||
msgstr "îÅÐÒÁ×ÉÌØÎÙÊ ÁÒÇÕÍÅÎÔ \"%s\" ÐÁÒÁÍÅÔÒÁ \"%s\""
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:147
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:154
|
||||
msgid "Server disconnected"
|
||||
msgstr "óÅÒ×ÅÒ ÏÔËÌÀÞÅÎ"
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:434
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:441
|
||||
msgid "Can't start server handlers thread"
|
||||
msgstr "îÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ ÐÏÔÏË-ÏÂÒÁÂÏÔÞÉË ÓÅÒ×ÅÒÁ"
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:503
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:513
|
||||
msgid "Limit of connections reached"
|
||||
msgstr "äÏÓÔÉÇÎÕÔ ÐÒÅÄÅÌ ÓÏÅÄÉÎÅÎÉÊ"
|
||||
|
||||
#. check for RB overflow
|
||||
#. -1 - buffer empty (can't be), -2 - buffer overflow
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:547
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:548
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:557
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:558
|
||||
#, c-format
|
||||
msgid "Server thread: ring buffer overflow for fd=%d"
|
||||
msgstr "ðÏÔÏË ÓÅÒ×ÅÒÁ: ÐÅÒÅÐÏÌÎÅÎÉÅ ÂÕÆÅÒÁ ÏÔ fd=%d"
|
||||
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:562
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:572
|
||||
#, c-format
|
||||
msgid "Server thread: can't write data to ringbuffer: overflow from fd=%d"
|
||||
msgstr "ðÏÔÏË ÓÅÒ×ÅÒÁ: ÎÅ ÍÏÇÕ ÓÏÈÒÁÎÉÔØ ÄÁÎÎÙÅ × ËÏÌØÃÅ×ÏÍ ÂÕÆÅÒÅ, "
|
||||
"ÐÅÒÅÐÏÌÎÅÎÉÅ ÏÔ fd=%d"
|
||||
|
||||
#. buffer overflow
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:574
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:584
|
||||
#, c-format
|
||||
msgid "Server thread: buffer overflow from fd=%d"
|
||||
msgstr "ðÏÔÏË ÓÅÒ×ÅÒÁ: ÐÅÒÅÐÏÌÎÅÎÉÅ ÂÕÆÅÒÁ ÏÔ fd=%d"
|
||||
|
||||
#. never reached
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:664
|
||||
#: /home/eddy/Docs/SAO/C_diff/snippets_library/socket.c:681
|
||||
#, c-format
|
||||
msgid "Unsupported socket type %d"
|
||||
msgstr "îÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ÔÉÐ ÓÏËÅÔÁ %d"
|
||||
|
||||
109
parseargs.c
109
parseargs.c
@@ -191,6 +191,18 @@ void *get_aptr(void *paptr, sl_argtype_e type){
|
||||
return aptr[i - 1];
|
||||
}
|
||||
|
||||
static int cmpstringp(const void *p1, const void *p2){
|
||||
if(!p1 || !p2) return 0;
|
||||
const char *str1 = * (char * const *) p1, *str2 = * (char * const *) p2;
|
||||
if(!str1 && !str2) return 0;
|
||||
else if(!str1) return 1;
|
||||
else if(!str2) return -1;
|
||||
return strcmp(str1, str2);
|
||||
}
|
||||
static int cmpcharp(const void *p1, const void *p2){
|
||||
return (int)(*(char * const)p1 - *(char *const)p2);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief sl_parseargs_hf - parse arguments with user help funtion
|
||||
* @param argc - amount of arguments
|
||||
@@ -246,17 +258,6 @@ void sl_parseargs_hf(int *argc, char ***argv, sl_option_t *options, void (*helpf
|
||||
}
|
||||
}
|
||||
// sort all lists & check for repeating
|
||||
int cmpstringp(const void *p1, const void *p2){
|
||||
if(!p1 || !p2) return 0;
|
||||
const char *str1 = * (char * const *) p1, *str2 = * (char * const *) p2;
|
||||
if(!str1 && !str2) return 0;
|
||||
else if(!str1) return 1;
|
||||
else if(!str2) return -1;
|
||||
return strcmp(str1, str2);
|
||||
}
|
||||
int cmpcharp(const void *p1, const void *p2){
|
||||
return (int)(*(char * const)p1 - *(char *const)p2);
|
||||
}
|
||||
qsort(longlist, optsize, sizeof(char *), cmpstringp);
|
||||
qsort(shortlist,optsize, sizeof(char), cmpcharp);
|
||||
char *prevl = longlist[0], prevshrt = shortlist[0];
|
||||
@@ -336,7 +337,10 @@ void sl_parseargs_hf(int *argc, char ***argv, sl_option_t *options, void (*helpf
|
||||
type = "string";
|
||||
break;
|
||||
case arg_function:
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
result = ((sl_argfn_t)aptr)(optarg);
|
||||
#pragma GCC diagnostic pop
|
||||
break;
|
||||
}
|
||||
if(!result){
|
||||
@@ -460,6 +464,49 @@ void sl_showhelp(int oindex, sl_option_t *options){
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
static int findsubopt(char *par, sl_suboption_t *so){
|
||||
int idx = 0;
|
||||
if(!par) return -1;
|
||||
while(so[idx].name){
|
||||
if(strcasecmp(par, so[idx].name) == 0) return idx;
|
||||
++idx;
|
||||
}
|
||||
return -1; // badarg
|
||||
}
|
||||
static int opt_setarg(sl_suboption_t *so, int idx, char *val){
|
||||
sl_suboption_t *soptr = &so[idx];
|
||||
int result = FALSE;
|
||||
void *aptr = soptr->argptr;
|
||||
switch(soptr->type){
|
||||
default:
|
||||
case arg_none:
|
||||
if(soptr->argptr) *((int*)aptr) += 1; // increment value
|
||||
result = TRUE;
|
||||
break;
|
||||
case arg_int:
|
||||
result = myatoll(aptr, val, arg_int);
|
||||
break;
|
||||
case arg_longlong:
|
||||
result = myatoll(aptr, val, arg_longlong);
|
||||
break;
|
||||
case arg_double:
|
||||
result = myatod(aptr, val, arg_double);
|
||||
break;
|
||||
case arg_float:
|
||||
result = myatod(aptr, val, arg_float);
|
||||
break;
|
||||
case arg_string:
|
||||
result = (*((void**)aptr) = (void*)strdup(val)) != NULL;
|
||||
break;
|
||||
case arg_function:
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
result = ((sl_argfn_t)aptr)(val);
|
||||
#pragma GCC diagnostic pop
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
/**
|
||||
* @brief sl_get_suboption - get suboptions from parameter string
|
||||
* @param str - parameter string
|
||||
@@ -467,46 +514,6 @@ void sl_showhelp(int oindex, sl_option_t *options){
|
||||
* @return TRUE if all OK
|
||||
*/
|
||||
int sl_get_suboption(char *str, sl_suboption_t *opt){
|
||||
int findsubopt(char *par, sl_suboption_t *so){
|
||||
int idx = 0;
|
||||
if(!par) return -1;
|
||||
while(so[idx].name){
|
||||
if(strcasecmp(par, so[idx].name) == 0) return idx;
|
||||
++idx;
|
||||
}
|
||||
return -1; // badarg
|
||||
}
|
||||
int opt_setarg(sl_suboption_t *so, int idx, char *val){
|
||||
sl_suboption_t *soptr = &so[idx];
|
||||
int result = FALSE;
|
||||
void *aptr = soptr->argptr;
|
||||
switch(soptr->type){
|
||||
default:
|
||||
case arg_none:
|
||||
if(soptr->argptr) *((int*)aptr) += 1; // increment value
|
||||
result = TRUE;
|
||||
break;
|
||||
case arg_int:
|
||||
result = myatoll(aptr, val, arg_int);
|
||||
break;
|
||||
case arg_longlong:
|
||||
result = myatoll(aptr, val, arg_longlong);
|
||||
break;
|
||||
case arg_double:
|
||||
result = myatod(aptr, val, arg_double);
|
||||
break;
|
||||
case arg_float:
|
||||
result = myatod(aptr, val, arg_float);
|
||||
break;
|
||||
case arg_string:
|
||||
result = (*((void**)aptr) = (void*)strdup(val)) != NULL;
|
||||
break;
|
||||
case arg_function:
|
||||
result = ((sl_argfn_t)aptr)(val);
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
char *tok;
|
||||
int ret = FALSE;
|
||||
char *tmpbuf;
|
||||
|
||||
5
socket.c
5
socket.c
@@ -469,7 +469,9 @@ static void *serverthread(void _U_ *d){
|
||||
// ZERO - listening server socket
|
||||
poll_set[0].fd = sockfd;
|
||||
poll_set[0].events = POLLIN;
|
||||
// disconnect client
|
||||
// disconnect client (no way to make this function non-nested)
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
void disconnect_(sl_sock_t *c, int N){
|
||||
DBG("Disconnect client \"%s\" (fd=%d)", c->IP, c->fd);
|
||||
if(s->disconnect_handler) s->disconnect_handler(c);
|
||||
@@ -496,6 +498,7 @@ static void *serverthread(void _U_ *d){
|
||||
pthread_mutex_unlock(&c->mutex);
|
||||
--nfd;
|
||||
}
|
||||
#pragma GCC diagnostic pop
|
||||
// allocate buffer with size not less than RB size
|
||||
size_t bufsize = s->buffer->length; // as RB should be 1 byte less, this is OK
|
||||
uint8_t *buf = MALLOC(uint8_t, bufsize);
|
||||
|
||||
@@ -453,7 +453,7 @@ typedef struct{
|
||||
double magick; // -Inf - to distinguish it from sl_sock_*_t
|
||||
int n; // if n < 0 there was no any number in `key`
|
||||
} sl_sock_keyno_t;
|
||||
#define SL_SOCK_KEYNO_DEFAULT (sl_sock_keyno_t){.magick = -INFINITY, .n = -1}
|
||||
#define SL_SOCK_KEYNO_DEFAULT {.magick = -INFINITY, .n = -1}
|
||||
void sl_sock_keyno_init(sl_sock_keyno_t*);
|
||||
int sl_sock_keyno_check(sl_sock_keyno_t*);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user