Commit Graph

15992 Commits

Author SHA1 Message Date
Andrew Borodin b283a96139 (show_version): add output of uintmax_t size.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 15:23:08 +03:00
Andrew Borodin 2832db5a44 lib/vfs/direntry.c: fix coding style.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 11:00:30 +03:00
Andrew Borodin 79ee3d4263 lib/vfs/vfs.c: fix coding style.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 11:00:30 +03:00
Andrew Borodin f6075fe791 (spell_dialog_spell_suggest_show): refactoring.
Reduce variable scope. Get rid of extra NULL check: g_strdup() handles
NULL correctly. Remove intermediate variable.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 11:00:30 +03:00
Andrew Borodin 093fc152d5 tar: avoid need for base64_init and extra table.
Simplify the code by assuming C99 initializers.

  * (base_64_digits): Remove; no longer needed.
  * (base64_map): Now a constant. Initialized statically,
    and with invalid entries being 0 not 64, and with valid
    entries being 1 greater than before.
  * (tar_base64_init): Remove; only use removed.
  * (tar_from_header): Adjust to new values in base64_map.

Sync with GNU tar 43231ae554d0dacbcc32e2d0fe574c9d0e183258.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 11:00:30 +03:00
Andrew Borodin 0359c9be83 (tar_from_header): reword to avoid a cast to unsigned char.
Sync with GNU tar b201a3742162adcb2cf1e9618c4c4f4db0d239ae.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 11:00:30 +03:00
Andrew Borodin 2822e45dca tar: avoid casts in tar_checksum.
* (tar_checksum): recode to avoid casts.
  * (tar_from_header): likewise.

Sync with GNU tar 1521d3dae01f91606c639eb745ea565ef723e38d.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 11:00:30 +03:00
Andrew Borodin 3abfb74b40 tar: prefer stoint to strtoul and variants.
When parsing numbers prefer using strtosysint() (renamed stoint)
to using strtoul() and its variants.
This is simpler and faster and likely more reliable than
relying on quirks of the system strtoul() etc,
and it standardizes how tar deals with parsing integers.
Among other things, the C standard and POSIX don't specify
what strtol() does to errno when conversions cannot be performed,
and it requires strtoul() to support "-" before unsigned numbers.

  * (stoint): rename from strtosysint, move to tar-internal.c and add
    a gboollean * argument for reporting overflow.  All callers changed.
  * (decode_num): prefer stoint() to strtol() etc. Don't rely on
    errno == EINVAL as the standards don't guarantee it.
  * (decode_signed_num): likewise.
  * (decode_record): likewise.
  * (sparse_map_decoder): likewise.
  * (decode_timespec): Simplify by using ckd_sub() rather than checking
    for overflow by hand.
  * tar-sparse.c: remove include of errno.h, it's no lomger used.
  * tar-xheader.c: likewise

Sync with GNU tar d1e72a536f26188230a147d948b9057714fd0b6b.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 10:59:37 +03:00
Andrew Borodin 9c061dcf0a src/vfs/tar/tar-xheader.c: indentation.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:26 +03:00
Andrew Borodin 3a751cc5ba (blocking_factor, record_size): change type.
Don't limit blocking factor to INT_MAX.
Prefer signed type for record_size.
Do not exceed IDX_MAX or SSIZE_MAX for record_size;
the SSIZE_MAX limit is needed so that "read" calls behave sensibly.

Sync with GNU tar 3ffe2eb0738504aabee0d3b4d0c03e01739b9d6c.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:26 +03:00
Andrew Borodin e452b0793e configure.ac: default to GNU/Linux dev_t, ino_t, major_t, minor_t.
This shouldn't affect behavior; it's just a cleanup.

Sync with GNU tar eb9bb9bf8049522230a0654c3f32e6373b945254.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:26 +03:00
Andrew Borodin 74b4ba1e79 tar: avoid strtoul().
This is part of the general trend to prefer signed integer types,
to allow better runtime checking with -fsanitize=undefined etc.

  * (struct tar_stat_info): ue intmax_t, not unsigned, for sparse major
    and minor.
  * (tar_sparse_major): likewise.
  * (tar_sparse_minor): likewise.

Sync with GNU tar 4642cd04edbd57414e004920fa4976d9f3be6206.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:26 +03:00
Andrew Borodin e5d60e11a6 (tar_from_header): ckd_mul() and ckd_add() rather than doing it by hand.
(LG_64): Remove; no longer used.

Sync with GNU tar 414f635d8bba4c8894855040b1e6b77b07dc07bd.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:25 +03:00
Andrew Borodin 25d21b1d11 (pax_decode_header): use SIZE_MAX.
Sync with GNU tar 281e03ec6ccb9e6da134f8f6b9a9ff51c42f5737.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:25 +03:00
Andrew Borodin b1e9689687 (tar_from_header): minor width cleanup.
Use UINTMAX_WIDTH rather than computing it by hand.

Sync with GNU tar fbc60c2334326fc2f748226abe76190ecf39a26b.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:25 +03:00
Andrew Borodin 03587bc4cf tar: include stdckdint.h via tar-internal.h.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:25 +03:00
Andrew Borodin 76f464c6c9 src/vrs/tar/tar-sparse.c: prefer stdckdint.h to intprops.h.
* (oldgnu_add_sparse): prefer ckd_add and ckd_mul to the intprops.h
    equivalents, since stdckdint.h is now standard.
  * (pax_decode_header): likewise.

Remove macros defined in lib/intprops-internal.h.

Sync with GNU tar a9372cf08a05723b2a06efff3402077598138238.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:25 +03:00
Andrew Borodin 2eefc9144d (tar_read_header): simplify read_header overflow checking.
Use ckd_add instead of doing overflow checking by hand.
Although the old code was correct on all practical hosts,
the new code is simpler and works even on weird hosts
where SIZE_MAX <= INT_MAX.

Sync with GNU tar 8a3fc529729acf38276b27f6b7bc50962dfab799.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:25 +03:00
Andrew Borodin cfe51928df (tar_xheader_read): cleaner overflow checking.
Prefer ckd_add() to doing overflow checking by hand.

Sync with GNU tar 927d67855e2e83b6b06eb9095f65e4e695d6af7e.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:25 +03:00
Andrew Borodin 4771b81f39 (from_header): use ckd_mul().
Sync with GNU tar c6a5af16ba0ceff08b58d8a26cdbed2b300ccd0a.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:25 +03:00
Andrew Borodin b92ce8c9f9 src/vfs/tar/tar-internal.c: clarify includes.
Don't include stdint.h, since inttypes.h includes it.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:25 +03:00
Andrew Borodin d621e4ca34 Add some files and code rom Gnulib as preparation to TAR updates.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-09-12 09:46:25 +03:00
Yury V. Zaytsev 11cdf6dcb9 Fix typos/improve grammar in charsets.c / strutil.h
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2024-09-06 09:55:26 +02:00
Andrew Borodin 6744f48afe src/filemanager/filenot.c: remove useless code.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:51:04 +03:00
Andrew Borodin fe939b6759 (mc_tmpdir): reduce variable scope.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:51:04 +03:00
Andrew Borodin aec6185211 (create_sequence): reduce variable scope, trivial refactoring.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:51:04 +03:00
Andrew Borodin 4923cc1147 Refactoring of file and directory delete routines.
* (file_progress_show_deleting): take 'vfs_path_t *' instead of 'char *'.
  * (try_erase_dir): likewise.
  * (erase_file): sync with new file_progress_show_deleting().
  * (recursive_erase): sync with new file_progress_show_deleting() and
    try_erase_dir().
  * (erase_dir_iff_empty): likewise.
  * (erase_dir): likewise.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:50:46 +03:00
Andrew Borodin cb1a5c2725 src/strutil/xstrtol.c: sync with gnulib.
Sync with gnulib 64ddc975e72cb55d2b2d755c25603bd70312aa5e:
  This patch alters xstrtoumax behavior slightly, in areas are not
  likely to affect any real callers, by making xstrtoumax behave more
  like the system strtol. In particular, it lets xstrtoumax support
  bases other than those required by POSIX, if the underlying
  implementation does; this removes the need for an g_assert().

  * lib/strutil/strtol.c: Do not include stdio.h.
  (xstrtoumax): Use same parameter names as POSIX, to make it
  easier for outsiders to follow. Do not require the base to be 0-36,
  as the underlying implementation is allowed to support other bases.

Sync with gnulib 16b33e6649425fcdce095f262da98b539d2f7448.

  * (xstrtoumax): Don't update *endptr if strtol doesn't.
  Also, if the underlying strtol gives an unusual error number and
  sets *endpnr = nptr, assume that's an error not a missing number.

Sync with gnulib bd1e981434c98751b1106a1744e77a27317b52b3
  * (xstrtoumax): Stop worrying about hypothetical implementations that
  are causing more confusion than the code is worth. Instead, go back
  more to old way of doing things.  None of this matters for practical
  applications.

Add commemt.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:47:24 +03:00
Andrew Borodin 60b38e09d2 (user_menu_cmd): port to GPtrArray.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:47:23 +03:00
Andrew Borodin bd934d22a2 (extract_line): optionally return the lengh of the line.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:47:23 +03:00
Andrew Borodin 9a1593473e (user_menu_cmd): refactoring.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:47:23 +03:00
Andrew Borodin d323523533 (user_file_menu_cmd): move to src/usermenu.h and make inline.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:47:23 +03:00
Andrew Borodin 763340ca61 (tr_utf8_search_{first,last}): minor refactoring.
Reduce variable scope.
Call strlen(search) before loop.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:47:23 +03:00
Andrew Borodin 7ca86ac577 (str_utf8_make_make_term_form): call strlen() one time.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:47:23 +03:00
Andrew Borodin 2954e25eec strutils: don't call strlen() in MIN() macro.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:47:23 +03:00
Andrew Borodin 0b84ef8e31 (str_verscmp): glibification.
Use g_ascii_isdigit() instead of isdigit().

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:47:23 +03:00
Andrew Borodin 3392a76204 (filevercmp): make inline.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:47:23 +03:00
Andrew Borodin d10440f49f lib/vfs/interface.c: add missed INDENT-ON, indentation.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:47:23 +03:00
Andrew Borodin 4fd804ff8e maint/utils/update-years.sh: add tests/src/vfs/extfs/helpers-list/test_all.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:47:23 +03:00
Andrew Borodin 79b8a53694 Ticket #4572: code clean up before 4.8.33 release.
doc/NEWS: indentation.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-30 21:47:01 +03:00
Dmitry Atamanov a5ef01660b Ticket #4572: code cleanup before 4.8.33 release
Add shtml to mc.ext.ini (closes MidnightCommander/mc#205)

Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2024-08-28 09:38:21 +02:00
Yury V. Zaytsev 876555035a Ticket #4576: fix visual glitches by avoiding `g_module_close` on `NULL` while loading `libaspell`
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2024-08-25 17:35:54 +02:00
Yury V. Zaytsev ac4305dde4 Update translations from Transifex
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2024-08-23 19:22:35 +02:00
Andrew Borodin 5e64cc637f (file_op_context_create_ui): apply callback to the "Abort" button
...to keep the file progress dialog visible.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-20 22:01:52 +03:00
Yury V. Zaytsev ad96349c91 x11: fix `-Wdeprecated-declarations` for `g_module_build_path`
```
x11conn.c:140:5: warning: 'g_module_build_path' is deprecated [-Wdeprecated-declarations]
  140 |     x11_module_fname = g_module_build_path (NULL, "X11");
      |     ^~~~~~~~~~~~~~~~
```

Reported-by: David Martín <dhmartina@yahoo.es>
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2024-08-15 21:09:08 +02:00
Andrew Borodin 61267796e2 Merge branch '4567_xorriso_tests'
* 4567_xorriso_tests:
  Update doc/NEWS.
  Ticket #4567: Test fails in iso9660.xorriso in 4.8.32-pre1.
2024-08-12 21:00:44 +03:00
Andrew Borodin e52e11c4e7 Update doc/NEWS.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-12 20:59:54 +03:00
slowpeek 2971db6226 Ticket #4567: Test fails in iso9660.xorriso in 4.8.32-pre1.
xorriso uses different date formats when listing recent (180 days old at max)
and older items. For the test to not fail with time, it is important to NOT have
any "recent" items in the input data.

Closes MidnightCommander/mc#204.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2024-08-10 20:37:28 +03:00
Yury V. Zaytsev fdcefc9423 Update doc/NEWS file
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2024-08-08 10:20:10 +02:00
Yury V. Zaytsev d8e5b2cdbb Update hints translations from Transifex
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
2024-08-08 10:14:05 +02:00