• Bug#1066284: vilistextum: FTBFS: html.c:352:9: error: implicit declarat

    From Lucas Nussbaum@21:1/5 to All on Wed Mar 13 13:00:14 2024
    Source: vilistextum
    Version: 2.6.9-1.3
    Severity: serious
    Justification: FTBFS
    Tags: trixie sid ftbfs
    User: lucas@debian.org
    Usertags: ftbfs-20240313 ftbfs-trixie ftbfs-impfuncdef

    Hi,

    During a rebuild of all packages in sid, your package failed to build
    on amd64.

    This is most likely caused by a change in dpkg 1.22.6, that enabled -Werror=implicit-function-declaration. For more information, see https://wiki.debian.org/qa.debian.org/FTBFS#A2024-03-13_-Werror.3Dimplicit-function-declaration

    Relevant part (hopefully):
    gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -O2 -ansi -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-
    protection -I/usr/local/include -c -o fileio.o fileio.c
    In file included from util.h:4,
    from html_tag.c:31:
    html_tag.c: In function ‘html_tag’:
    html_tag.c:66:20: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    66 | if CMP("SCRIPT", str) { start_nooutput(); }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    In file included from html_tag.c:22:
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:67:26: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    67 | else if CMP("/SCRIPT", str) { end_nooutput(); }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:68:24: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    68 | else if CMP("STYLE", str) { start_nooutput(); }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:69:25: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    69 | else if CMP("/STYLE", str) { end_nooutput(); }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:70:24: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    70 | else if CMP("TITLE", str) {
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:73:33: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    73 | } else if CMP("/TITLE", str) {
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:79:33: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    79 | if CMP("/HTML", str) { /* fprintf(stderr, "File ended!\n"); */ quit(); }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:80:41: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    80 | else if CMP("!DOCTYPE", str) { while ((ch=read_char())!='>'); }
    | ^~~
    | |
    | unsigned char * multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:81:37: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    81 | else if CMP("META", str) { find_encoding(); }
    | ^~~
    | |
    | unsigned char * multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~
    In file included from latin1.c:35:
    latin1.c: In function ‘parse_entity’:
    latin1.c:64:26: warning: pointer targets in passing argument 1 of ‘strlen’ differ in signedness [-Wpointer-sign]
    64 | int len = STRLEN(str);
    | ^~~
    | |
    | unsigned char *
    multibyte.h:32:27: note: in definition of macro ‘STRLEN’
    32 | #define STRLEN(s) strlen(s)
    | ^
    html_tag.c:82:37: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    82 | else if CMP("?XML", str) { find_xml_encoding(); }
    | ^~~
    | |
    | unsigned char * multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:85:35: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    85 | else if CMP("BR", str) { line_break(); }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~
    In file included from latin1.c:24:
    /usr/include/string.h:407:35: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    407 | extern size_t strlen (const char *__s)
    | ~~~~~~~~~~~~^~~
    html_tag.c:86:36: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    86 | else if CMP("BR/", str) { line_break(); } /* xhtml */
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    latin1.c:71:15: warning: pointer targets in passing argument 1 of ‘strcpy’ differ in signedness [-Wpointer-sign]
    71 | CPYSS(tmpstr, str);
    | ^~~~~~
    | |
    | unsigned char *
    multibyte.h:33:34: note: in definition of macro ‘CPYSS’
    33 | #define CPYSS(dest, src) strcpy(dest, src)
    | ^~~~
    In file included from /usr/include/features.h:490,
    from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
    from /usr/include/stdlib.h:26,
    from latin1.c:21: /usr/include/x86_64-linux-gnu/bits/string_fortified.h:77:1: note: expected ‘char * __restrict__’ but argument is of type ‘unsigned char *’
    77 | __NTH (strcpy (char *__restrict __dest, const char *__restrict __src))
    | ^~~~~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:88:34: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    88 | else if CMP("P", str) { start_p(); }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    latin1.c:71:23: warning: pointer targets in passing argument 2 of ‘strcpy’ differ in signedness [-Wpointer-sign]
    71 | CPYSS(tmpstr, str);
    | ^~~
    | |
    | unsigned char *
    multibyte.h:33:40: note: in definition of macro ‘CPYSS’
    33 | #define CPYSS(dest, src) strcpy(dest, src)
    | ^~~ /usr/include/x86_64-linux-gnu/bits/string_fortified.h:77:1: note: expected ‘const char * __restrict__’ but argument is of type ‘unsigned char *’
    77 | __NTH (strcpy (char *__restrict __dest, const char *__restrict __src))
    | ^~~~~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~
    latin1.c:97:23: warning: pointer targets in passing argument 1 of ‘strcpy’ differ in signedness [-Wpointer-sign]
    97 | CPYSS(str, tmpstr);
    | ^~~
    | |
    | unsigned char *
    multibyte.h:33:34: note: in definition of macro ‘CPYSS’
    33 | #define CPYSS(dest, src) strcpy(dest, src)
    | ^~~~
    html_tag.c:89:35: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    89 | else if CMP("/P", str) { paragraphen_ende(); }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ /usr/include/x86_64-linux-gnu/bits/string_fortified.h:77:1: note: expected ‘char * __restrict__’ but argument is of type ‘unsigned char *’
    77 | __NTH (strcpy (char *__restrict __dest, const char *__restrict __src))
    | ^~~~~
    html_tag.c:90:43: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    90 | else if CMP("BLOCKQUOTE", str) { start_p(); }
    | ^~~
    | |
    | unsigned char * multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    latin1.c:97:28: warning: pointer targets in passing argument 2 of ‘strcpy’ differ in signedness [-Wpointer-sign]
    97 | CPYSS(str, tmpstr);
    | ^~~~~~
    | |
    | unsigned char *
    multibyte.h:33:40: note: in definition of macro ‘CPYSS’
    33 | #define CPYSS(dest, src) strcpy(dest, src)
    | ^~~ /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ /usr/include/x86_64-linux-gnu/bits/string_fortified.h:77:1: note: expected ‘const char * __restrict__’ but argument is of type ‘unsigned char *’
    77 | __NTH (strcpy (char *__restrict __dest, const char *__restrict __src))
    | ^~~~~
    html_tag.c:91:44: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    91 | else if CMP("/BLOCKQUOTE", str) { paragraphen_ende(); }
    | ^~~
    | |
    | unsigned char * multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~
    latin1.c: In function ‘parse_entities’:
    latin1.c:118:24: warning: pointer targets in passing argument 1 of ‘strlen’ differ in signedness [-Wpointer-sign]
    118 | int len=STRLEN(s);
    | ^
    | |
    | unsigned char *
    multibyte.h:32:27: note: in definition of macro ‘STRLEN’
    32 | #define STRLEN(s) strlen(s)
    | ^
    /usr/include/string.h:407:35: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    407 | extern size_t strlen (const char *__s)
    | ~~~~~~~~~~~~^~~
    html_tag.c:92:34: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    92 | else if CMP("Q", str) { wort_plus_ch('"'); }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ latin1.c:133:24: warning: pointer targets in passing argument 1 of ‘strcat’ differ in signedness [-Wpointer-sign]
    133 | STRCAT(result, tmp);
    | ^~~~~~
    | |
    | unsigned char *
    multibyte.h:39:35: note: in definition of macro ‘STRCAT’
    39 | #define STRCAT(dest, src) strcat(dest, src)
    | ^~~~
    html_tag.c:93:35: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    93 | else if CMP("/Q", str) { wort_plus_ch('"'); }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ /usr/include/x86_64-linux-gnu/bits/string_fortified.h:128:1: note: expected ‘char * __restrict__’ but argument is of type ‘unsigned char *’
    128 | __NTH (strcat (char *__restrict __dest, const char *__restrict __src))
    | ^~~~~
    html_tag.c:108:34: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    108 | else if CMP("B", str) { if (convert_tags) { wort_plus_ch('*'); } }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    latin1.c:133:32: warning: pointer targets in passing argument 2 of ‘strcat’ differ in signedness [-Wpointer-sign]
    133 | STRCAT(result, tmp);
    | ^~~
    | |
    | unsigned char *
    multibyte.h:39:41: note: in definition of macro ‘STRCAT’
    39 | #define STRCAT(dest, src) strcat(dest, src)
    | ^~~ /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ /usr/include/x86_64-linux-gnu/bits/string_fortified.h:128:1: note: expected ‘const char * __restrict__’ but argument is of type ‘unsigned char *’
    128 | __NTH (strcat (char *__restrict __dest, const char *__restrict __src))
    | ^~~~~
    html_tag.c:109:35: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    109 | else if CMP("/B", str) { if (convert_tags) { wort_plus_ch('*'); } }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:110:34: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    110 | else if CMP("I", str) { if (convert_tags) { wort_plus_ch('/'); } }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    latin1.c:143:32: warning: pointer targets in passing argument 1 of ‘strcat’ differ in signedness [-Wpointer-sign]
    143 | STRCAT(result, entity);
    | ^~~~~~
    | |
    | unsigned char *
    multibyte.h:39:35: note: in definition of macro ‘STRCAT’
    39 | #define STRCAT(dest, src) strcat(dest, src)
    | ^~~~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ /usr/include/x86_64-linux-gnu/bits/string_fortified.h:128:1: note: expected ‘char * __restrict__’ but argument is of type ‘unsigned char *’
    128 | __NTH (strcat (char *__restrict __dest, const char *__restrict __src))
    | ^~~~~
    html_tag.c:111:35: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    111 | else if CMP("/I", str) { if (convert_tags) { wort_plus_ch('/'); } }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    latin1.c:143:40: warning: pointer targets in passing argument 2 of ‘strcat’ differ in signedness [-Wpointer-sign]
    143 | STRCAT(result, entity);
    | ^~~~~~
    | |
    | unsigned char * multibyte.h:39:41: note: in definition of macro ‘STRCAT’
    39 | #define STRCAT(dest, src) strcat(dest, src)
    | ^~~ /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ /usr/include/x86_64-linux-gnu/bits/string_fortified.h:128:1: note: expected ‘const char * __restrict__’ but argument is of type ‘unsigned char *’
    128 | __NTH (strcat (char *__restrict __dest, const char *__restrict __src))
    | ^~~~~
    html_tag.c:112:34: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    112 | else if CMP("U", str) { if (convert_tags) { wort_plus_ch('_'); } } /* deprecated */
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    latin1.c:150:15: warning: pointer targets in passing argument 1 of ‘strcpy’ differ in signedness [-Wpointer-sign]
    150 | CPYSS(s, result);
    | ^
    | |
    | unsigned char *
    multibyte.h:33:34: note: in definition of macro ‘CPYSS’
    33 | #define CPYSS(dest, src) strcpy(dest, src)
    | ^~~~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ /usr/include/x86_64-linux-gnu/bits/string_fortified.h:77:1: note: expected ‘char * __restrict__’ but argument is of type ‘unsigned char *’
    77 | __NTH (strcpy (char *__restrict __dest, const char *__restrict __src))
    | ^~~~~
    html_tag.c:113:35: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    113 | else if CMP("/U", str) { if (convert_tags) { wort_plus_ch('_'); } } /* deprecated */
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    latin1.c:150:18: warning: pointer targets in passing argument 2 of ‘strcpy’ differ in signedness [-Wpointer-sign]
    150 | CPYSS(s, result);
    | ^~~~~~
    | |
    | unsigned char *
    multibyte.h:33:40: note: in definition of macro ‘CPYSS’
    33 | #define CPYSS(dest, src) strcpy(dest, src)
    | ^~~ /usr/include/x86_64-linux-gnu/bits/string_fortified.h:77:1: note: expected ‘const char * __restrict__’ but argument is of type ‘unsigned char *’
    77 | __NTH (strcpy (char *__restrict __dest, const char *__restrict __src))
    | ^~~~~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:114:39: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    114 | else if CMP("STRONG", str) { if (convert_tags) { wort_plus_ch('*'); } }
    | ^~~
    | |
    | unsigned char * multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~
    latin1.c: In function ‘html_entity’:
    html_tag.c:115:40: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    115 | else if CMP("/STRONG", str) { if (convert_tags) { wort_plus_ch('*'); } }
    | ^~~
    | |
    | unsigned char * multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    latin1.c:215:25: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    215 | if CMP("&quot;", str) { return(set_char_wrapper(str, '"')); }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:116:35: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    116 | else if CMP("EM", str) { if (convert_tags) { wort_plus_ch('/'); } }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ latin1.c:216:25: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    216 | else if CMP("&;", str) { return(set_char_wrapper(str, '&')); } /* for those brain damaged ones */
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’
    38 | #define CMP(s1, s2) (strcmp(s1, s2)==0)
    | ^~
    /usr/include/string.h:156:50: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
    156 | extern int strcmp (const char *__s1, const char *__s2)
    | ~~~~~~~~~~~~^~~~ html_tag.c:117:36: warning: pointer targets in passing argument 2 of ‘strcmp’ differ in signedness [-Wpointer-sign]
    117 | else if CMP("/EM", str) { if (convert_tags) { wort_plus_ch('/'); } }
    | ^~~
    | |
    | unsigned char *
    multibyte.h:38:34: note: in definition of macro ‘CMP’

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)