summaryrefslogtreecommitdiff
path: root/src/system.h
AgeCommit message (Collapse)Author
2012-07-21maint: stzncpy: restrict pointer parametersJim Meyering
* src/system.h (stzncpy): Add "restrict" attribute to each pointer parameter and note in the comment that the buffers must not overlap.
2012-07-15pinky,who: fix bug in latest changeJim Meyering
* src/system.h (stzncpy): New function. * src/pinky.c (print_entry): Use stzncpy, not stpncpy. The latter does not NUL-terminate. I assumed that strncpy was the only function with such a horrible API. Today I learned that stpncpy also may not NUL-terminate its result. The bugs were introduced in commit v8.17-48-gf79263d. * src/who.c (print_user): Likewise. Thanks to Erik Auerswald for spotting my error.
2012-06-22maint: refactor common mode bits used to create filesPádraig Brady
* src/system.h (MODE_RW_UGO): The new refactored define (666). * src/mkfifo.c: Use the new define. * src/mknod.c: Likewise. * src/split.c: Likewise. * src/system.h: Likewise. * src/touch.c: Likewise. * src/truncate.c: Likewise. Suggested-by: Jim Meyering
2012-05-10maint: handle file sizes more reliablyPaul Eggert
Problem reported by Samuel Thibault in <http://bugs.gnu.org/11424>. * NEWS: Document this. * src/dd.c (skip): Handle skipping past EOF on shared or typed memory objects the same way as with regular files. (dd_copy): It's OK to truncate shared memory objects. * src/du.c (duinfo_add): Check for overflow. (print_only_size): Report overflow. (process_file): Ignore negative file sizes in the --apparent-size case. * src/od.c (skip): Fix comment about st_size. * src/split.c (main): * src/truncate.c (do_ftruncate, main): On files where st_size is not portable, fall back on using lseek with SEEK_END to determine the size. Although strictly speaking POSIX says the behavior is implementation-defined, in practice if lseek returns a nonnegative value it's a reasonable one to use for the file size. * src/system.h (usable_st_size): Symlinks have reliable st_size too. * tests/misc/truncate-dir-fail: Don't assume that getting the size of a dir is not allowed, as it's now allowed on many platforms, e.g., GNU/Linux.
2012-05-08maint: new function: usable_st_sizeJim Meyering
2012-03-22maint: ensure PATH_MAX is set correctlyPádraig Brady
This reverts part of commit v8.12-103-g54cbe6e. * src/system.h: Include gnulib's pathmax.h to honor system specific limits, and then we set PATH_MAX only if needed. Note pathmax.h no longer uses pathconf ("/", _PC_PATH_MAX). Note I didn't reinstate the comments about limits.h inclusion order, because pathmax.h includes limits.h anyway.
2012-03-06maint: refactor copy to use is_nul()Pádraig Brady
* src/dd.c: Move is_nul() from here to ... * src/system.h: ... here * src/copy.c (sparse_copy): Adjust to use the refactored is_nul()
2012-02-24doc: clarify a comment in system.hJim Meyering
* src/system.h (STRNCMP_LIT): Clarify comment. Suggested by Bruno Haible.
2012-01-27maint: use single copyright year rangeJim Meyering
Run "make update-copyright".
2012-01-09maint: src/*.[ch]: convert more `...' to '...'Jim Meyering
Run this (twice): git grep -E -l '`.+'\' src/*.[ch] \ |xargs perl -pi -e 's/`(.+?'\'')/'\''$1/'
2012-01-07maint: update quoting of "Try `prog --help'" to "Try 'prog --help'"Jim Meyering
Automatically adjust both the source (now in only one place) and all tests that expect the resulting output via this: git grep -l 'Try.*--help' src/system.h tests \ | xargs perl -pi -e 's/Try \\?`(\S+ --help)/Try '\''$1/'
2012-01-07maint: factor out all `Try --help'-emitting statementsJim Meyering
* src/system.h (emit_try_help): New function.
2012-01-01maint: update all copyright year number rangesJim Meyering
Run "make update-copyright".
2011-11-15ls: another reword of generic size noteRuediger Meier
* src/system.h (emit_size_note): Use "unit" rather than "suffix", and move multiplication to example instead of in suffix list. See additional discussion in Bug#9939.
2011-11-11* src/system.h (emit_size_note): Reword for clarity.Paul Eggert
See discussion in Bug#9939.
2011-10-25build: do not remove definition of ENODATA, after allJim Meyering
* src/system.h (ENODATA): Restore definition. gnulib defines it only on native Windows systems, so removing our definition would have provoked build failure on systems that use it, like FreeBSD. Reported by Bruno Haible in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28739/focus=28795 * gnulib: Update to latest, to get new ENODATA-exempting maint.mk rule.
2011-10-24rm: update gnulib to get an fts fix for Cygwin+NWFS/NcFsd file systemsJim Meyering
* NEWS (Bug fixes): Mention it. As far as we know, this fix affects only Cygwin with NWFS or NcFsd file systems. See these: http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=71f13422f3e634 http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28739 http://cygwin.com/ml/cygwin/2011-10/msg00365.html * src/system.h (ENODATA): Remove fall-back definition, now that gnulib provides one. Caught by the sc_prohibit_always-defined_macros syntax-check rule. Also remove now-irrelevant "Don't use bcopy..." comment.
2011-10-01build: use getgr*_nomembers functions on InterixMarkus Duft
Interix provides faster replacements for getgr{gid,nam,ent} where group member information is not fetched from domain controllers. This makes 'id' usable on domain controlled interix boxes. * m4/jm-macros.m4: Check for _nomembers functions. * src/system.h: Redefine function to _nomembers when available.
2011-09-30ls: avoid reading beyond end of color indicatorJim Meyering
At first this looked like a buffer overrun, since there was no test to ensure that the buffer length was 6. However, since the LS_COLORS string is NUL-terminated and since settings within it are separated by ":" there was neither the risk of reading beyond end of buffer nor risk of a false-positive match. * src/ls.c (print_color_indicator): Use color_symlink_as_referent rather than manually comparing against "target" again. * src/system.h (STRNCMP_LIT): Correct description in comment.
2011-07-02maint: use "const" and "pure" function attributes where possibleJim Meyering
* configure.ac (WARN_CFLAGS): Add -Wsuggest-attribute=const, -Wsuggest-attribute=pure and -Wsuggest-attribute=noreturn. (GNULIB_WARN_CFLAGS): But do not add them here... yet. * src/chown-core.h (chopt_free, uid_to_name): Add function attribute(s). * src/copy.c (is_ancestor, valid_options): Likewise. * src/copy.h (chown_failure_ok): Likewise. * src/dd.c (operand_matches, operand_is): Likewise. * src/df.c (selected_fstype, excluded_fstype): Likewise. * src/expr.c (null looks_like_integer): Likewise. * src/md5sum.c (hex_digits): Likewise. * src/od.c (get_lcm): Likewise. * src/pathchk.c (component_start, component_len): Likewise. * src/pinky.c (count_ampersands): Likewise. * src/pr.c (cols_ready_to_print): Likewise. * src/ptx.c (search_table): Likewise. * src/sort.c (find_unit_order): Likewise. * src/stty.c (mode_type_flag, string_to_baud, baud_to_value): Likewise. * src/system.h (gcd, lcm): Likewise. * src/tr.c (is_char_class_member, look_up_char_class): Likewise. (star_digits_closebracket): Likewise. * src/uniq.c (find_field): Likewise. * src/wc.c (compute_number_width): Likewise. * lib/xfts.h (cycle_warning_required): Likewise. * gl/lib/randint.h (randint_get_source): Likewise. * gl/lib/randperm.c (ceil_lg): Likewise. * gl/lib/randperm.h (randperm_bound): Likewise. * lib/strnumcmp.h (strintcmp): Likewise.
2011-06-25maint: don't use gnulib's pathmax module; define PATH_MAX if neededJim Meyering
* bootstrap.conf (gnulib_modules): Remove pathmax. * src/system.h: Don't include "pathmax.h". (PATH_MAX) [!PATH_MAX]: Define to 8192. Defining it to a constant is preferable to using a definition from pathmax.h that might expand to pathconf ("/", _PC_PATH_MAX). Prompted by discussion leading to: http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/27183/focus=27269
2011-06-13maint: use stat-size module from gnulibJames Youngman
* gnulib: Update to latest. * src/system.h: Definitions of ST_* macros have moved into the gnulib module stat-size (specifically, the header file stat-size.h), so remove them from here. * src/truncate.c: Include stat-size.h. * src/stat.c: Likewise. * src/shred.c: Likewise. * src/ls.c: Likewise. * src/du.c: Likewise. * src/ioblksize.h: New file. Move definition of io_blksize out of system.h so that system.h does not have to include stat-size.h. * src/cat.c: Include ioblksize.h. * src/split.c: Likewise. * src/copy.c: Include both stat-size.h and ioblksize.h. * src/Makefile.am (noinst_HEADERS): Add ioblksize.h.
2011-06-04build: require at least 2-year old autoconf-2.64 (was 2.62)Jim Meyering
* configure.ac: Require autoconf-2.64, which is nearly two years old. * src/system.h (emit_ancillary_info): Use PACKAGE_URL, now that we require autoconf-2.64.
2011-05-08maint: remove -Wmissing-field-initializers workaroundsPádraig Brady
* configure.ac: Rather than disabling -Wmissing-field-initializers, use the fact that gnulib now disables it automatically when required (on versions of GCC older than 4.7). * src/system.h: Remove the no longer needed DECLARE_ZEROED_AGGREGATE. * src/ls.c: Likewise. * src/pathchk.c: Likewise. * src/shred.c: Likewise. * src/stty.c: Likewise. * src/wc.c: Likewise.
2011-04-03maint: prohibit direct use of strncmp: prefer STREQ_LEN, STRNCMP_LITJim Meyering
* cfg.mk (sc_prohibit_strncmp): New rule, mostly from libvirt. * src/system.h (STREQ_LEN, STRPREFIX, STRNCMP_LIT): Define. * src/df.c (get_dev, get_point): Convert. * src/extent-scan.c (extent_need_sync): Likewise. * src/ls.c (is_colored, decode_switches): Likewise. (parse_ls_color, (print_color_indicator): Likewise. * src/md5sum.c (split_3): Likewise. * src/split.c (main, emit_ancillary_info): Likewise. * src/tr.c (look_up_char_class): Likewise. * src/uname.c (main): Likewise. * src/who.c (scan_entries): Likewise.
2011-01-13maint: trivial system header file cleanupsPádraig Brady
* src/system.h: Note where it should be included, and make ordering check portable to GLIBC > 2 * src/copy.c: Move <sys/ioctl.h> along with other system headers as is done elsewhere. * src/install.c: Move <sys/wait.h> along with other system headers as is done elsewhere. * src/ptx.c: Include <regex.h> rather than "regex.h" as is done elsewhere. Note <regex.h> is kept after "system.h" as per commit dba300a0.
2011-01-01maint: update all copyright year number rangesJim Meyering
Run "make update-copyright".
2010-07-05system.h: define ATTRIBUTE_WARN_UNUSED_RESULTJim Meyering
* src/system.h (ATTRIBUTE_WARN_UNUSED_RESULT): Define.
2010-03-20maint: code formatting nitJim Meyering
* src/system.h (ST_NBLOCKS): Add space before paren.
2010-01-01maint: update all FSF copyright year lists to include 2010Jim Meyering
Use this command: git ls-files | grep -v COPYING \ | xargs env UPDATE_COPYRIGHT_USE_INTERVALS=1 \ build-aux/update-copyright
2009-11-05maint: factor out cycle warning, now that du will use it, tooJim Meyering
* src/system.h (emit_cycle_warning): Define. Factored out of... * src/remove.c (rm_fts): ...here. Use the new macro.
2009-10-19build: use gnulib's isblank moduleJim Meyering
* bootstrap.conf (gnulib_modules): Add isblank. * src/system.h (isblank): Don't define. * m4/check-decl.m4: Don't check for isblank declaration. * gnulib: Update submodule to latest.
2009-10-08maint: remove unused macros and declarationsEric Blake
* src/system.h (EDQUOT, EISDIR, ENOSYS, EOVERFLOW, F_OK, X_OK) (W_OK, R_OK): Delete; macros provided by gnulib. (includes): Gnulib guarantees both <time.h> and <sys/time.h>, in either order. (free, malloc, memchr, realloc, getenv, lseek): Delete, gnulib guarantees these declarations. * m4/check-decl.m4 (gl_CHECK_DECLS): Delete checks now done by gnulib.
2009-10-08maint: move timeout exit statusesEric Blake
* src/timeout.c (EXIT_TIMEDOUT, EXIT_CANCELED): Remove as macros... * src/system.h (EXIT_TIMEDOUT, EXIT_CANCELED): ...and provide as enum values instead. * src/stdbuf.c (EXIT_CANCELED): Delete.
2009-09-21doc: mention the texinfo documentation in --helpPádraig Brady
* src/system.h: Rename emit_bug_reporting_address() to emit_ancillary_info() and update it to not print the translation project address in en_* locales, and _do_ print it in the 'C' (and other) locales so that it's included in the default man page. Also mention how to invoke the texinfo documentation for each command. Also move the "hard-locale.h" include to the 8 files that now use it. * man/help2man: Strip the newly added texinfo reference from the --help output as a more verbose version is already added by help2man. Suggestion from C de-Avillez
2009-09-10doc: improve various BLOCKSIZE and SIZE helpOndřej Vašík
* doc/coreutils.texi (multiplierSuffixes): Mention that the suffix can be specified without a leading number * src/split.c (usage): Refactor SIZE help to within a function * src/truncate.c (usage): Likewise * src/ls.c (usage): Likewise * src/df.c (usage): Likewise. Also add a function with BLOCKSIZE help * src/du.c (usage): Likewise. * src/system.h: Define 2 functions to emit common help text This was prompted by https://bugzilla.redhat.com/show_bug.cgi?id=511188
2009-08-25global: convert indentation-TABs to spacesJim Meyering
Transformed via this shell code: t=$'\t' git ls-files \ | grep -vE '(^|/)((GNU)?[Mm]akefile|ChangeLog)|\.(am|mk)$' \ | grep -vE 'tests/pr/|help2man' \ | xargs grep -lE "^ *$t" \ | xargs perl -MText::Tabs -ni -le \ '$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_'
2009-05-17maint: define ARRAY_CARDINALITY in system.hJim Meyering
* src/system.h (ARRAY_CARDINALITY): Define if not already defined.
2009-04-07maint: Clarify ambiguous refs to Linux kernels or GNU/Linux systemsPádraig Brady
* README-prereq: s_linux_GNU/Linux_ or s_linux_Linux kernel_ * README-valgrind: ditto * src/chown-core.c: ditto * src/dd.c: ditto * src/df.c: ditto * src/ls.c: ditto * src/mv.c: ditto * src/pwd.c: ditto * src/remove.c: ditto * src/shred.c: ditto * src/stat.c: ditto * src/su.c: ditto * src/system.h: ditto * src/timeout.c: ditto * src/truncate.c: ditto
2009-03-14system.h: correct compilation error: MAX not definedJim Meyering
* src/system.h (io_blksize): Move definition down, so it follows that of MAX -- to avoid compilation failure on OpenSolaris. Reported by David Bartley. Details in http://lists.gnu.org/archive/html/bug-coreutils/2009-03/msg00190.html
2009-03-11cat,cp,mv,install,split: Set the minimum IO block size used to 32KiBPádraig Brady
This is following on from this change: [02c3dc9d 2008-03-06 cat: use larger buffer sizes ...] which increased the IO block size used by cat by 8 times, but also capped it at 32KiB. * NEWS: Mention the change in behavior. * src/system.h: Add a new io_blksize() function that returns the max of ST_BLKSIZE or 32KiB, as this was seen as a good value for a minimum block size to use to get good performance while minimizing system call overhead. * src/cat.c: Use it. * src/copy.c: ditto * src/split.c: ditto
2009-03-02maint: avoid gcc warning about missing attributesJim Meyering
* src/prog-fprintf.h (prog_fprintf): Declare with printf attribute. * src/system.h (usage): Declare with the "noreturn" attribute.
2009-02-24Ensure comment for translators is included in po filePádraig Brady
Issue reported by Göran Uddeborg. * src/system.h: Move the translator comment adjacent to the translated string. * THANKS: Update Göran's email address.
2009-02-02* src/system.h (emit_bug_reporting_address): Remove periods.Jim Meyering
2009-01-28system.h: add a comment re autoconf's new AC_PACKAGE_URLJim Meyering
* src/system.h (emit_bug_reporting_address): Add a comment suggesting to use AC_PACKAGE_URL once we require autoconf-2.64.
2009-01-27doc: emit better bug-reporting info, to help help2manJim Meyering
* src/system.h (emit_bug_reporting_address): End each "sentence" with period, mark URLs with <...>. Based on a suggestion from Eric Blake. Use fputs on a string without %s, not printf.
2009-01-23build: resolve conflict with new declaration from version-etc.hJim Meyering
* src/system.h (emit_bug_reporting_address): Define away, now, gnulib's version-etc.h also declares this function. In this package, we choose to include each program's name in the diagnostic. Define away the conflicting declaration. (emit_bug_reporting_address): Also emit home page and "General help..." links, like the new function does. Reported by Bob Proulx.
2009-01-19no longer define *_FILENO constantsJim Meyering
* src/system.h (STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO): Remove definitions. Now guaranteed by gnulib.
2008-12-21build: add configure-time --enable-gcc-warnings option; avoid warningsJim Meyering
* bootstrap.conf (gnulib_modules): Add "warnings" module. * configure.ac: Add --enable-gcc-warnings, derived from code in bison. * src/Makefile.am (AM_CFLAGS): Set to $(WARN_CFLAGS) # $(WERROR_CFLAGS) * lib/Makefile.am (AM_CFLAGS): Change spelling to $(WARN_CFLAGS) Don't use $(WERROR_CFLAGS), yet. * src/system.h (usage): Declare. * src/base64.c (usage): Declare to be global, for consistency. * src/timeout.c (usage): Likewise. * src/truncate.c (usage): Likewise. * src/getlimits.c (usage): Likewise. * src/pinky.c (ttyname): Declare with prototype, rather than an empty argument list. * src/who.c (ttyname): Likewise. * src/su.c (crypt, getusershell, setusershell, endusershell): Likewise.
2008-12-01avoid warnings about initialization of automatic aggregatesJim Meyering
* src/system.h (DZA_CONCAT0, DZA_CONCAT): New macros. (DECLARE_ZEROED_AGGREGATE): New macro. * src/ls.c (quote_name): Use it. * src/pathchk.c (portable_chars_only): Use it. * src/shred.c (main): Use it. * src/stty.c (main): Use it. * src/wc.c (SUPPORT_OLD_MBRTOWC): Use it.