]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Use string-desc module from gnulib.
authorBruno Haible <bruno@clisp.org>
Thu, 30 Mar 2023 13:18:27 +0000 (15:18 +0200)
committerBruno Haible <bruno@clisp.org>
Thu, 30 Mar 2023 13:18:27 +0000 (15:18 +0200)
* autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add string-desc. Remove memmem,
memrchr.
(GNULIB_MODULES_LIBGETTEXTPO): Likewise.
* gettext-tools/src/str-desc.h: Remove file.
* gettext-tools/src/str-desc.c: Remove file.
* gettext-tools/src/FILES: Update.
* gettext-tools/src/msgl-ascii.h: Include string-desc.h instead of str-desc.h.
Use string_desc_t instead of string_desc_ty.
* gettext-tools/src/msgl-ascii.c: Use string_desc_t instead of string_desc_ty.
* gettext-tools/src/msgl-iconv.h: Include string-desc.h instead of str-desc.h.
Use string_desc_t instead of string_desc_ty.
* gettext-tools/src/msgl-iconv.c: Include string-desc.h instead of str-desc.h.
Use string_desc_t instead of string_desc_ty.
* gettext-tools/src/xg-encoding.h: Include string-desc.h instead of str-desc.h.
Use string_desc_t instead of string_desc_ty.
* gettext-tools/src/xg-encoding.c (string_desc_from_current_source_encoding):
Use string_desc_t instead of string_desc_ty.
* gettext-tools/src/x-perl.c: Include string-desc.h instead of str-desc.h.
(extract_quotelike_pass1, extract_quotelike_pass1_utf8, extract_quotelike,
extract_triple_quotelike, interpolate_keywords): Use string_desc_t instead of
string_desc_ty.
* gettext-tools/src/Makefile.am (noinst_HEADERS): Remove str-desc.h.
(libgettextsrc_la_SOURCES): Remove str-desc.c.
* gettext-tools/libgettextpo/Makefile.am (libgettextpo_la_AUXSOURCES): Remove
str-desc.c.

14 files changed:
.gitignore
autogen.sh
gettext-tools/libgettextpo/Makefile.am
gettext-tools/src/FILES
gettext-tools/src/Makefile.am
gettext-tools/src/msgl-ascii.c
gettext-tools/src/msgl-ascii.h
gettext-tools/src/msgl-iconv.c
gettext-tools/src/msgl-iconv.h
gettext-tools/src/str-desc.c [deleted file]
gettext-tools/src/str-desc.h [deleted file]
gettext-tools/src/x-perl.c
gettext-tools/src/xg-encoding.c
gettext-tools/src/xg-encoding.h

index 0cb76f739f8d4895d8b49d213c648872c018feb4..c11c3b2ea6b906dc1bc5854a2b7f9e2633191431 100644 (file)
 /gettext-tools/libgettextpo/fstrcmp.c
 /gettext-tools/libgettextpo/fstrcmp.h
 /gettext-tools/libgettextpo/fsync.c
+/gettext-tools/libgettextpo/full-write.c
+/gettext-tools/libgettextpo/full-write.h
 /gettext-tools/libgettextpo/fwriteerror.c
 /gettext-tools/libgettextpo/fwriteerror.h
 /gettext-tools/libgettextpo/gcd.c
 /gettext-tools/libgettextpo/mem-hash-map.h
 /gettext-tools/libgettextpo/memchr.c
 /gettext-tools/libgettextpo/memchr.valgrind
+/gettext-tools/libgettextpo/memmem.c
+/gettext-tools/libgettextpo/memrchr.c
 /gettext-tools/libgettextpo/minmax.h
 /gettext-tools/libgettextpo/msvc-inval.c
 /gettext-tools/libgettextpo/msvc-inval.h
 /gettext-tools/libgettextpo/relocatable.c
 /gettext-tools/libgettextpo/relocatable.h
 /gettext-tools/libgettextpo/relocatable.valgrind
+/gettext-tools/libgettextpo/safe-read.c
+/gettext-tools/libgettextpo/safe-write.c
+/gettext-tools/libgettextpo/safe-write.h
 /gettext-tools/libgettextpo/setlocale-lock.c
 /gettext-tools/libgettextpo/setlocale_null.c
 /gettext-tools/libgettextpo/setlocale_null.h
 /gettext-tools/libgettextpo/striconveh.h
 /gettext-tools/libgettextpo/striconveha.c
 /gettext-tools/libgettextpo/striconveha.h
+/gettext-tools/libgettextpo/string-desc-contains.c
+/gettext-tools/libgettextpo/string-desc.c
+/gettext-tools/libgettextpo/string-desc.h
 /gettext-tools/libgettextpo/string.in.h
 /gettext-tools/libgettextpo/stripslash.c
 /gettext-tools/libgettextpo/strstr.c
+/gettext-tools/libgettextpo/sys-limits.h
 /gettext-tools/libgettextpo/sys_stat.in.h
 /gettext-tools/libgettextpo/sys_types.in.h
 /gettext-tools/libgettextpo/textstyle.in.h
 /gettext-tools/libgettextpo/windows-rwlock.h
 /gettext-tools/libgettextpo/windows-tls.c
 /gettext-tools/libgettextpo/windows-tls.h
+/gettext-tools/libgettextpo/write.c
 /gettext-tools/libgettextpo/xalloc-die.c
 /gettext-tools/libgettextpo/xalloc-oversized.h
 /gettext-tools/libgettextpo/xalloc.h
index 842cb56fdac4e3e228e0ad1c8c131babb167f9ee..f63348ff402ff920882a1ee5614d625c59766415 100755 (executable)
@@ -182,9 +182,7 @@ if ! $skip_gnulib; then
     lock
     mem-hash-map
     memchr
-    memmem
     memmove
-    memrchr
     memset
     minmax
     mkdir
@@ -214,6 +212,7 @@ if ! $skip_gnulib; then
     strchrnul
     strcspn
     strerror
+    string-desc
     strpbrk
     strtol
     strtoul
@@ -343,8 +342,6 @@ if ! $skip_gnulib; then
     libunistring-optional
     markup
     mem-hash-map
-    memmem
-    memrchr
     minmax
     open
     relocatable-lib
@@ -356,6 +353,7 @@ if ! $skip_gnulib; then
     stpncpy
     strchrnul
     strerror
+    string-desc
     unictype/ctype-space
     unilbrk/ulc-width-linebreaks
     unistr/u8-mbtouc
index b9c9fb630ed626116ccb628a7da97af3d0188196..ee9ed39c42a5ae423277990a148b510a6b15ebf7 100644 (file)
@@ -52,7 +52,6 @@ libgettextpo_la_AUXSOURCES = \
   ../src/dir-list.c \
   ../src/message.c \
   ../src/pos.c \
-  ../src/str-desc.c \
   ../src/msgl-ascii.c \
   ../src/po-error.c \
   ../src/po-xerror.c \
index a119f6fa0d6676f77083cb37a712b9dd4b1d5d79..90471bccdc0b7ff9e11ed0e2afdf1bc46366cc2a 100644 (file)
@@ -9,10 +9,6 @@ str-list.h
 str-list.c
                 A list-of-immutable-strings type.
 
-str-desc.h
-str-desc.c
-                A string descriptor type, for strings that may contain NULs.
-
 dir-list.h
 dir-list.c
                 Management of the list of directories where PO files are
index 3d5e2b989bc28106b572f3a3b336f2822ede8e51..59af8aaa7746c280d11c209d880ed6fe1a38a1c1 100644 (file)
@@ -39,7 +39,7 @@ noinst_HEADERS = \
   pos.h message.h po-error.h po-xerror.h po-gram.h po-charset.h \
   po-lex.h open-catalog.h read-catalog-abstract.h read-catalog.h \
   read-po.h read-properties.h read-stringtable.h \
-  str-desc.h str-list.h \
+  str-list.h \
   write-catalog.h write-po.h write-properties.h write-stringtable.h \
   dir-list.h file-list.h po-gram-gen.h po-gram-gen2.h cldr-plural.h \
   cldr-plural-exp.h locating-rule.h its.h search-path.h \
@@ -172,7 +172,6 @@ FORMAT_SOURCE += \
 # libgettextsrc contains all code that is needed by at least two programs.
 libgettextsrc_la_SOURCES = \
   $(COMMON_SOURCE) \
-  str-desc.c \
   read-catalog.c \
   write-catalog.c write-properties.c write-stringtable.c write-po.c \
   msgl-ascii.c \
index cabad72959c789a2e2b1acd854af67da508f89f2..a11f20b539e4dec23cefcf80f3263ee1edea756f 100644 (file)
@@ -39,7 +39,7 @@ is_ascii_string (const char *string)
 }
 
 bool
-is_ascii_string_desc (string_desc_ty string)
+is_ascii_string_desc (string_desc_t string)
 {
   size_t len = string_desc_length (string);
   size_t i;
index 54b0240222b394ff8b11f4b83ad2cd2184cf31ae..b86bd428382de75814b1e5bdfb6ca078770f3367 100644 (file)
@@ -18,7 +18,7 @@
 #ifndef _MSGL_ASCII_H
 #define _MSGL_ASCII_H
 
-#include "str-desc.h"
+#include "string-desc.h"
 #include "message.h"
 
 #include <stdbool.h>
@@ -32,7 +32,7 @@ extern "C" {
 extern bool
        is_ascii_string (const char *string);
 extern bool
-       is_ascii_string_desc (string_desc_ty string);
+       is_ascii_string_desc (string_desc_t string);
 extern bool
        is_ascii_string_list (string_list_ty *slp);
 extern bool
index 178fd2dbe9ec8d2ce18d84e1c6c280e571405826..77de5c9e2395ecbb2257df40f7e3d36011a65542 100644 (file)
@@ -35,7 +35,7 @@
 #include "noreturn.h"
 #include "progname.h"
 #include "basename-lgpl.h"
-#include "str-desc.h"
+#include "string-desc.h"
 #include "message.h"
 #include "po-charset.h"
 #include "xstriconv.h"
@@ -91,8 +91,8 @@ convert_string_directly (iconv_t cd, const char *string,
   return NULL;
 }
 
-string_desc_ty
-convert_string_desc_directly (iconv_t cd, string_desc_ty string,
+string_desc_t
+convert_string_desc_directly (iconv_t cd, string_desc_t string,
                               const struct conversion_context* context)
 {
   char *result = NULL;
@@ -104,7 +104,7 @@ convert_string_desc_directly (iconv_t cd, string_desc_ty string,
 
   conversion_error (context);
   /* NOTREACHED */
-  return string_desc_new (0);
+  return string_desc_new_empty ();
 }
 
 static char *
index 774d995a4d422ab9b92a268aa82d544127d7a9a4..13bed10be0fbceb06c648a51a2190fdc82a2211c 100644 (file)
@@ -23,7 +23,8 @@
 #include <iconv.h>
 #endif
 
-#include "str-desc.h"
+#include "string-desc.h"
+
 #include "message.h"
 
 
@@ -47,8 +48,8 @@ struct conversion_context
    Assumes that either FROM_CODE or TO_CODE is UTF-8.  */
 extern char *convert_string_directly (iconv_t cd, const char *string,
                                       const struct conversion_context* context);
-extern string_desc_ty
-       convert_string_desc_directly (iconv_t cd, string_desc_ty string,
+extern string_desc_t
+       convert_string_desc_directly (iconv_t cd, string_desc_t string,
                                      const struct conversion_context* context);
 
 #endif
diff --git a/gettext-tools/src/str-desc.c b/gettext-tools/src/str-desc.c
deleted file mode 100644 (file)
index b6d101e..0000000
+++ /dev/null
@@ -1,331 +0,0 @@
-/* GNU gettext - internationalization aids
-   Copyright (C) 2023 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
-
-/* Written by Bruno Haible <bruno@clisp.org>, 2023.  */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-/* Specification.  */
-#include "str-desc.h"
-
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "xalloc.h"
-
-
-/* ==== Side-effect-free operations on string descriptors ==== */
-
-size_t
-string_desc_length (string_desc_ty s)
-{
-  return s.nbytes;
-}
-
-char
-string_desc_char_at (string_desc_ty s, size_t i)
-{
-  if (!(i < s.nbytes))
-    /* Invalid argument.  */
-    abort ();
-  return s.data[i];
-}
-
-const char *
-string_desc_data (string_desc_ty s)
-{
-  return s.data;
-}
-
-bool
-string_desc_is_empty (string_desc_ty s)
-{
-  return s.nbytes == 0;
-}
-
-bool
-string_desc_startswith (string_desc_ty s, string_desc_ty prefix)
-{
-  return (s.nbytes >= prefix.nbytes
-          && (prefix.nbytes == 0
-              || memcmp (s.data, prefix.data, prefix.nbytes) == 0));
-}
-
-bool
-string_desc_endswith (string_desc_ty s, string_desc_ty suffix)
-{
-  return (s.nbytes >= suffix.nbytes
-          && (suffix.nbytes == 0
-              || memcmp (s.data + (s.nbytes - suffix.nbytes), suffix.data,
-                         suffix.nbytes) == 0));
-}
-
-int
-string_desc_cmp (string_desc_ty a, string_desc_ty b)
-{
-  if (a.nbytes > b.nbytes)
-    {
-      if (b.nbytes == 0)
-        return 1;
-      return (memcmp (a.data, b.data, b.nbytes) < 0 ? -1 : 1);
-    }
-  else if (a.nbytes < b.nbytes)
-    {
-      if (a.nbytes == 0)
-        return -1;
-      return (memcmp (a.data, b.data, a.nbytes) > 0 ? 1 : -1);
-    }
-  else /* a.nbytes == b.nbytes */
-    {
-      if (a.nbytes == 0)
-        return 0;
-      return memcmp (a.data, b.data, a.nbytes);
-    }
-}
-
-ptrdiff_t
-string_desc_index (string_desc_ty s, char c)
-{
-  if (s.nbytes > 0)
-    {
-      void *found = memchr (s.data, (unsigned char) c, s.nbytes);
-      if (found != NULL)
-        return (char *) found - s.data;
-    }
-  return -1;
-}
-
-ptrdiff_t
-string_desc_last_index (string_desc_ty s, char c)
-{
-  if (s.nbytes > 0)
-    {
-      void *found = memrchr (s.data, (unsigned char) c, s.nbytes);
-      if (found != NULL)
-        return (char *) found - s.data;
-    }
-  return -1;
-}
-
-ptrdiff_t
-string_desc_contains (string_desc_ty haystack, string_desc_ty needle)
-{
-  if (needle.nbytes == 0)
-    return 0;
-  void *found =
-    memmem (haystack.data, haystack.nbytes, needle.data, needle.nbytes);
-  if (found != NULL)
-    return (char *) found - haystack.data;
-  else
-    return -1;
-}
-
-string_desc_ty
-string_desc_from_c (const char *s)
-{
-  string_desc_ty result;
-
-  result.nbytes = strlen (s);
-  result.data = (char *) s;
-
-  return result;
-}
-
-string_desc_ty
-string_desc_substring (string_desc_ty s, size_t start, size_t end)
-{
-  string_desc_ty result;
-
-  if (!(start <= end))
-    /* Invalid arguments.  */
-    abort ();
-
-  result.nbytes = end - start;
-  result.data = s.data + start;
-
-  return result;
-}
-
-
-/* ==== Memory-allocating operations on string descriptors ==== */
-
-string_desc_ty
-string_desc_new (size_t n)
-{
-  string_desc_ty result;
-
-  result.nbytes = n;
-  if (n == 0)
-    result.data = NULL;
-  else
-    result.data = (char *) xmalloc (n);
-
-  return result;
-}
-
-string_desc_ty
-string_desc_new_addr (size_t n, char *addr)
-{
-  string_desc_ty result;
-
-  result.nbytes = n;
-  if (n == 0)
-    result.data = NULL;
-  else
-    result.data = addr;
-
-  return result;
-}
-
-string_desc_ty
-string_desc_new_filled (size_t n, char c)
-{
-  string_desc_ty result;
-
-  result.nbytes = n;
-  if (n == 0)
-    result.data = NULL;
-  else
-    {
-      result.data = (char *) xmalloc (n);
-      memset (result.data, (unsigned char) c, n);
-    }
-
-  return result;
-}
-
-string_desc_ty
-string_desc_copy (string_desc_ty s)
-{
-  string_desc_ty result;
-  size_t n = s.nbytes;
-
-  result.nbytes = n;
-  if (n == 0)
-    result.data = NULL;
-  else
-    {
-      result.data = (char *) xmalloc (n);
-      memcpy (result.data, s.data, n);
-    }
-
-  return result;
-}
-
-string_desc_ty
-string_desc_concat (size_t n, string_desc_ty string1, ...)
-{
-  if (n == 0)
-    /* Invalid argument.  */
-    abort ();
-
-  size_t total = 0;
-  total += string1.nbytes;
-  if (n > 1)
-    {
-      va_list other_strings;
-      size_t i;
-
-      va_start (other_strings, string1);
-      for (i = --n; i > 0; i--)
-        {
-          string_desc_ty arg = va_arg (other_strings, string_desc_ty);
-          total += arg.nbytes;
-        }
-      va_end (other_strings);
-    }
-
-  char *combined = (char *) xmalloc (total);
-  size_t pos = 0;
-  memcpy (combined, string1.data, string1.nbytes);
-  pos += string1.nbytes;
-  if (n > 1)
-    {
-      va_list other_strings;
-      size_t i;
-
-      va_start (other_strings, string1);
-      for (i = --n; i > 0; i--)
-        {
-          string_desc_ty arg = va_arg (other_strings, string_desc_ty);
-          if (arg.nbytes > 0)
-            memcpy (combined + pos, arg.data, arg.nbytes);
-          pos += arg.nbytes;
-        }
-      va_end (other_strings);
-    }
-
-  string_desc_ty result;
-  result.nbytes = total;
-  result.data = combined;
-
-  return result;
-}
-
-char *
-string_desc_c (string_desc_ty s)
-{
-  size_t n = s.nbytes;
-  char *result = (char *) xmalloc (n + 1);
-  if (n > 0)
-    memcpy (result, s.data, n);
-  result[n] = '\0';
-
-  return result;
-}
-
-
-/* ==== Operations with side effects on string descriptors ==== */
-
-void
-string_desc_set_char_at (string_desc_ty s, size_t i, char c)
-{
-  if (!(i < s.nbytes))
-    /* Invalid argument.  */
-    abort ();
-  s.data[i] = c;
-}
-
-void
-string_desc_fill (string_desc_ty s, size_t start, size_t end, char c)
-{
-  if (!(start <= end))
-    /* Invalid arguments.  */
-    abort ();
-
-  if (start < end)
-    memset (s.data + start, (unsigned char) c, end - start);
-}
-
-void
-string_desc_overwrite (string_desc_ty s, size_t start, string_desc_ty t)
-{
-  if (!(start + t.nbytes <= s.nbytes))
-    /* Invalid arguments.  */
-    abort ();
-
-  if (t.nbytes > 0)
-    memcpy (s.data + start, t.data, t.nbytes);
-}
-
-void
-string_desc_free (string_desc_ty s)
-{
-  free (s.data);
-}
diff --git a/gettext-tools/src/str-desc.h b/gettext-tools/src/str-desc.h
deleted file mode 100644 (file)
index 9326419..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/* GNU gettext - internationalization aids
-   Copyright (C) 2023 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
-
-/* Written by Bruno Haible <bruno@clisp.org>, 2023.  */
-
-#ifndef _STR_DESC_H
-#define _STR_DESC_H 1
-
-/* Get size_t, ptrdiff_t.  */
-#include <stddef.h>
-
-/* Get bool.  */
-#include <stdbool.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Type describing a string that may contain NUL bytes.
-   It's merely a descriptor of an array of bytes.  */
-typedef struct string_desc_ty string_desc_ty;
-struct string_desc_ty
-{
-  size_t nbytes;
-  char *data;
-};
-
-/* String descriptors can be passed and returned by value.  */
-
-
-/* ==== Side-effect-free operations on string descriptors ==== */
-
-/* Return the length of the string S.  */
-extern size_t string_desc_length (string_desc_ty s);
-
-/* Return the byte at index I of string S.
-   I must be < length(S).  */
-extern char string_desc_char_at (string_desc_ty s, size_t i);
-
-/* Return a read-only view of the bytes of S.  */
-extern const char * string_desc_data (string_desc_ty s);
-
-/* Return true if S is the empty string.  */
-extern bool string_desc_is_empty (string_desc_ty s);
-
-/* Return true if S starts with PREFIX.  */
-extern bool string_desc_startswith (string_desc_ty s, string_desc_ty prefix);
-
-/* Return true if S ends with SUFFIX.  */
-extern bool string_desc_endswith (string_desc_ty s, string_desc_ty suffix);
-
-/* Return > 0, == 0, or < 0 if A > B, A == B, A < B.
-   This uses a lexicographic ordering, where the bytes are compared as
-   'unsigned char'.  */
-extern int string_desc_cmp (string_desc_ty a, string_desc_ty b);
-
-/* Return the index of the first occurrence of C in S,
-   or -1 if there is none.  */
-extern ptrdiff_t string_desc_index (string_desc_ty s, char c);
-
-/* Return the index of the last occurrence of C in S,
-   or -1 if there is none.  */
-extern ptrdiff_t string_desc_last_index (string_desc_ty s, char c);
-
-/* Return the index of the first occurrence of NEEDLE in HAYSTACK,
-   or -1 if there is none.  */
-extern ptrdiff_t string_desc_contains (string_desc_ty haystack, string_desc_ty needle);
-
-/* Return a string that represents the C string S, of length strlen (S).  */
-extern string_desc_ty string_desc_from_c (const char *s);
-
-/* Return the substring of S, starting at offset START and ending at offset END.
-   START must be <= END.
-   The result is of length END - START.
-   The result must not be freed (since its storage is part of the storage
-   of S).  */
-extern string_desc_ty string_desc_substring (string_desc_ty s, size_t start, size_t end);
-
-
-/* ==== Memory-allocating operations on string descriptors ==== */
-
-/* Return a string of length N, with uninitialized contents.  */
-extern string_desc_ty string_desc_new (size_t n);
-
-/* Return a string of length N, at the given memory address.  */
-extern string_desc_ty string_desc_new_addr (size_t n, char *addr);
-
-/* Return a string of length N, filled with C.  */
-extern string_desc_ty string_desc_new_filled (size_t n, char c);
-
-/* Return a copy of string S.  */
-extern string_desc_ty string_desc_copy (string_desc_ty s);
-
-/* Return the concatenation of N strings.  N must be > 0.  */
-extern string_desc_ty string_desc_concat (size_t n, string_desc_ty string1, ...);
-
-/* Return a copy of string S, as a NUL-terminated C string.  */
-extern char * string_desc_c (string_desc_ty s);
-
-
-/* ==== Operations with side effects on string descriptors ==== */
-
-/* Overwrite the byte at index I of string S with C.
-   I must be < length(S).  */
-extern void string_desc_set_char_at (string_desc_ty s, size_t i, char c);
-
-/* Fill part of S, starting at offset START and ending at offset END,
-   with copies of C.
-   START must be <= END.  */
-extern void string_desc_fill (string_desc_ty s, size_t start, size_t end, char c);
-
-/* Overwrite part of S with T, starting at offset START.
-   START + length(T) must be <= length (S).  */
-extern void string_desc_overwrite (string_desc_ty s, size_t start, string_desc_ty t);
-
-/* Free S.  */
-extern void string_desc_free (string_desc_ty s);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* _STR_DESC_H */
index 30d4f9d42d12a8e4f173f08741fe28a541f735bf..c8b28c2b2dbc759f19ace3533562debc9f9b2e30 100644 (file)
@@ -32,7 +32,7 @@
 #include "attribute.h"
 #include "message.h"
 #include "rc-str-list.h"
-#include "str-desc.h"
+#include "string-desc.h"
 #include "xgettext.h"
 #include "xg-pos.h"
 #include "xg-encoding.h"
@@ -673,7 +673,7 @@ free_token (token_ty *tp)
    of the semantics of the construct.  Return the complete string,
    including the starting and the trailing delimiter, with backslashes
    removed where appropriate.  */
-static string_desc_ty
+static string_desc_t
 extract_quotelike_pass1 (int delim)
 {
   /* This function is called recursively.  No way to allocate stuff
@@ -730,7 +730,7 @@ extract_quotelike_pass1 (int delim)
 
       if (nested && c == delim)
         {
-          string_desc_ty inner = extract_quotelike_pass1 (delim);
+          string_desc_t inner = extract_quotelike_pass1 (delim);
           size_t len = string_desc_length (inner);
 
           /* Ensure room for len + 1 bytes.  */
@@ -773,14 +773,14 @@ extract_quotelike_pass1 (int delim)
 
 /* Like extract_quotelike_pass1, but return the complete string in UTF-8
    encoding.  */
-static string_desc_ty
+static string_desc_t
 extract_quotelike_pass1_utf8 (int delim)
 {
-  string_desc_ty string = extract_quotelike_pass1 (delim);
-  string_desc_ty utf8_string =
+  string_desc_t string = extract_quotelike_pass1 (delim);
+  string_desc_t utf8_string =
     string_desc_from_current_source_encoding (string, lc_string,
                                               logical_file_name, line_number);
-  if (utf8_string.data != string.data)
+  if (string_desc_data (utf8_string) != string_desc_data (string))
     string_desc_free (string);
   return utf8_string;
 }
@@ -801,7 +801,7 @@ static int nesting_depth;
 
 
 /* Forward declaration of local functions.  */
-static void interpolate_keywords (message_list_ty *mlp, string_desc_ty string,
+static void interpolate_keywords (message_list_ty *mlp, string_desc_t string,
                                   int lineno);
 static token_ty *x_perl_lex (message_list_ty *mlp);
 static void x_perl_unlex (token_ty *tp);
@@ -877,7 +877,7 @@ extract_oct (const char *string, size_t len, unsigned int *result)
 static void
 extract_quotelike (token_ty *tp, int delim)
 {
-  string_desc_ty string = extract_quotelike_pass1_utf8 (delim);
+  string_desc_t string = extract_quotelike_pass1_utf8 (delim);
   size_t len = string_desc_length (string);
 
   tp->type = token_type_string;
@@ -897,7 +897,7 @@ static void
 extract_triple_quotelike (message_list_ty *mlp, token_ty *tp, int delim,
                           bool interpolate)
 {
-  string_desc_ty string;
+  string_desc_t string;
 
   tp->type = token_type_regex_op;
 
@@ -1691,7 +1691,7 @@ extract_variable (message_list_ty *mlp, token_ty *tp, int first)
    variables inside a double-quoted string that may interpolate to
    some keyword hash (reference).  The string is UTF-8 encoded.  */
 static void
-interpolate_keywords (message_list_ty *mlp, string_desc_ty string, int lineno)
+interpolate_keywords (message_list_ty *mlp, string_desc_t string, int lineno)
 {
   static char *buffer;
   static int bufmax = 0;
index 4bcd76e48a7b731b716feb5277b82a19036af871..a8b6fd2f0114185a2f4418a8fedcb1338732b96b 100644 (file)
@@ -199,8 +199,8 @@ from_current_source_encoding (const char *string,
 }
 
 /* Like from_current_source_encoding, for a string that may contain NULs.  */
-string_desc_ty
-string_desc_from_current_source_encoding (string_desc_ty string,
+string_desc_t
+string_desc_from_current_source_encoding (string_desc_t string,
                                           lexical_context_ty lcontext,
                                           const char *file_name,
                                           size_t line_number)
index f09665d82751645e6e09587a307830586af9e300..3991a1b9829a1e42f2c0362c5a646f2a6713ed9f 100644 (file)
@@ -23,7 +23,7 @@
 #include <iconv.h>
 #endif
 
-#include "str-desc.h"
+#include "string-desc.h"
 
 
 #ifdef __cplusplus
@@ -82,8 +82,8 @@ extern char *from_current_source_encoding (const char *string,
                                            size_t line_number);
 
 /* Like from_current_source_encoding, for a string that may contain NULs.  */
-extern string_desc_ty
-       string_desc_from_current_source_encoding (string_desc_ty string,
+extern string_desc_t
+       string_desc_from_current_source_encoding (string_desc_t string,
                                                  lexical_context_ty lcontext,
                                                  const char *file_name,
                                                  size_t line_number);