bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

terminfo, termcap: Silence "discards 'const' qualifier" warnings


From: Bruno Haible
Subject: terminfo, termcap: Silence "discards 'const' qualifier" warnings
Date: Sun, 04 Jun 2023 16:44:25 +0200

In GNU gettext, I see these warnings (with gcc 12):

libtextstyle/lib/tparm.c:350:19: warning: assignment discards 'const' qualifier 
from pointer target type [-Wdiscarded-qualifiers]
libtextstyle/lib/tparm.c:432:19: warning: assignment discards 'const' qualifier 
from pointer target type [-Wdiscarded-qualifiers]
libtextstyle/lib/tparm.c:456:21: warning: assignment discards 'const' qualifier 
from pointer target type [-Wdiscarded-qualifiers]
libtextstyle/lib/tparm.c:460:21: warning: assignment discards 'const' qualifier 
from pointer target type [-Wdiscarded-qualifiers]
libtextstyle/lib/tparm.c:464:21: warning: assignment discards 'const' qualifier 
from pointer target type [-Wdiscarded-qualifiers]
libtextstyle/lib/tparm.c:468:21: warning: assignment discards 'const' qualifier 
from pointer target type [-Wdiscarded-qualifiers]

This patch fixes them.


2023-06-04  Bruno Haible  <bruno@clisp.org>

        terminfo, termcap: Fix "discards 'const' qualifier" warnings.
        * lib/tparm.c (tparm): Change type of 'fmt'. New local variable 'fmtp'.

diff --git a/lib/tparm.c b/lib/tparm.c
index e9214e292c..1bc7c74845 100644
--- a/lib/tparm.c
+++ b/lib/tparm.c
@@ -260,7 +260,7 @@ tparm (const char *str, ...)
   static char buf[MAX_LINE];
   const char *sp;
   char *dp;
-  char *fmt;
+  const char *fmt;
   char scan_for;
   int scan_depth;
   int if_depth;
@@ -473,21 +473,22 @@ tparm (const char *str, ...)
             case '6': case '7': case '8': case '9':
               if (fmt == NULL)
                 {
+                  char *fmtp;
                   if (termcap)
                     return OOPS;
                   if (*sp == ':')
                     sp++;
-                  fmt = fmt_buf;
-                  *fmt++ = '%';
+                  fmtp = fmt_buf;
+                  *fmtp++ = '%';
                   while (*sp != 's' && *sp != 'x' && *sp != 'X' && *sp != 'd'
                          && *sp != 'o' && *sp != 'c' && *sp != 'u')
                     {
                       if (*sp == '\0')
                         return OOPS;
-                      *fmt++ = *sp++;
+                      *fmtp++ = *sp++;
                     }
-                  *fmt++ = *sp;
-                  *fmt = '\0';
+                  *fmtp++ = *sp;
+                  *fmtp = '\0';
                   fmt = fmt_buf;
                 }
               {






reply via email to

[Prev in Thread] Current Thread [Next in Thread]