]> Savannah Git Hosting - gnulib.git/commitdiff
idx: break copying from glibc
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 4 Sep 2021 16:45:06 +0000 (09:45 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 4 Sep 2021 16:45:18 +0000 (09:45 -0700)
* config/srclist.txt: Comment out idx.h, and bring back recent change.

ChangeLog
config/srclist.txt
lib/idx.h

index 0c18a58ebf2213e3a9a3c18c52744af422f25036..39a892e2871c3cacd02045ad6285bd5af0a84086 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2021-09-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       idx: break copying from glibc
+       * config/srclist.txt: Comment out idx.h, and bring back recent change.
+
 2021-09-04  Sun Haiyong  <youbest@sina.com>  (tiny change)
 
        sigsegv: Improve cross-compilation support for LoongArch CPU.
index e118ede049325b7c66a96e2be1bd6785614b3709..da906571ce25ea89980b2958c57d172d08061353 100644 (file)
@@ -50,7 +50,7 @@ $GNUORG Copyright/request-assign.program      doc/Copyright
 $GNUORG Copyright/request-disclaim.changes     doc/Copyright
 
 $LIBCSRC include/filename.h            lib
-$LIBCSRC include/idx.h                 lib
+#$LIBCSRC include/idx.h                        lib
 #$LIBCSRC malloc/dynarray-skeleton.c   lib/malloc
 #$LIBCSRC malloc/dynarray.h            lib/malloc
 #$LIBCSRC malloc/dynarray_at_failure.c lib/malloc
index 483587eabbdda18e7beba376199493c2d5b73747..54ad5d81fe121247638f8adedc7623862a6f27ec 100644 (file)
--- a/lib/idx.h
+++ b/lib/idx.h
      * Because 'size_t' is an unsigned type, and a signed type is better.
        See above.
 
+   Why not use 'ssize_t'?
+
+     * 'ptrdiff_t' is more portable; it is standardized by ISO C
+       whereas 'ssize_t' is standardized only by POSIX.
+
+     * 'ssize_t' is not required to be as wide as 'size_t', and some
+       now-obsolete POSIX platforms had 'size_t' wider than 'ssize_t'.
+
+     * Conversely, some now-obsolete platforms had 'ptrdiff_t' wider
+       than 'size_t', which can be a win and conforms to POSIX.
+
+   Won't this cause a problem with objects larger than PTRDIFF_MAX?
+
+     * Typical modern or large platforms do not allocate such objects,
+       so this is not much of a problem in practice; for example, you
+       can safely write 'idx_t len = strlen (s);'.  To port to older
+       small platforms where allocations larger than PTRDIFF_MAX could
+       in theory be a problem, you can use Gnulib's ialloc module, or
+       functions like ximalloc in Gnulib's xalloc module.
+
    Why not use 'ptrdiff_t' directly?
 
      * Maintainability: When reading and modifying code, it helps to know that