35 Commits
Author SHA1 Message Date
Andrew Wood d28d2f3155 Address the splint warning due to not recognising strlcat(). 2026-03-08 11:23:08 +00:00
Andrew Wood 9566e7d7ea Run through "make indent" for consistency. 2026-03-08 11:21:38 +00:00
Andrew Wood c39601bbb2 Datestamp updates. 2026-03-08 11:20:54 +00:00
Andrew Wood e3fcc6ae71 Commit to release date. 2026-03-08 11:19:21 +00:00
Andrew Wood 9c18fecb98 Acknowledge #179. 2026-03-08 11:10:10 +00:00
Andrew Wood 521391a495 Version bump. 2026-03-07 23:23:35 +00:00
Andrew Wood f65caacfca Version bump, and note the change to "--size @x" (#179). 2026-03-07 23:23:13 +00:00
Andrew Wood 0a27a85b4a Update the copyright years. 2026-03-07 23:20:20 +00:00
Andrew Wood d186d618e3 Look up the right maxfds value to use with nftw() for the current system (#179). 2026-03-07 23:15:09 +00:00
Andrew Wood ae97565e13 Message line number updates. 2026-03-07 23:14:23 +00:00
Andrew Wood d028d5165c Make the gettext macros behave on Debian 13. 2026-03-07 22:34:28 +00:00
Andrew Wood e17f64fce7 Allow "--size @dir" to read the size of all files under "dir" (#179). 2026-03-07 22:23:10 +00:00
Andrew Wood e4bc770054 Timestamp update. 2025-12-15 20:11:17 +00:00
Andrew Wood a890e8e0c8 Update version and release date. 2025-12-15 20:09:56 +00:00
Andrew Wood 3af38221ee Correct the process title truncation. 2025-12-12 23:12:03 +00:00
Andrew Wood 579aebf6a7 Date update. 2025-11-22 15:08:13 +00:00
Andrew Wood d91bf78cac Timestamp update. 2025-11-22 15:08:00 +00:00
Andrew Wood 6e45fe0f8d Update translations count for Finnish. 2025-11-22 15:07:31 +00:00
Andrew Wood 8d7ced4195 Merge pull request 'Translations update from Codeberg Translate' (#175) from translate/pv:weblate-pv-pv into main
Reviewed-on: https://codeberg.org/ivarch/pv/pulls/175
2025-11-22 16:07:08 +01:00
artnayandCodeberg Translate cae6049edd Translated using Weblate (Finnish)
Currently translated at 43.5% (61 of 140 strings)

Translation: pv/pv
Translate-URL: https://translate.codeberg.org/projects/pv/pv/fi/
2025-11-22 15:06:06 +00:00
Andrew Wood 1293f70575 Link to the Debian bug as well, and commit to a release date. 2025-11-22 15:03:53 +00:00
Andrew Wood ff412009da Version bump for #174. 2025-11-21 23:27:47 +00:00
Andrew Wood 10bc46af6e Suppress by source file name rather than function name, since in an LTO build the function name is optimised out (#174). 2025-11-21 23:26:52 +00:00
Andrew Wood 1e5fae3b7b Note the Finnish translations. 2025-11-21 05:53:21 +00:00
Andrew Wood a6f72cf985 Merge pull request 'Translations update from Codeberg Translate' (#173) from translate/pv:weblate-pv-pv into main
Reviewed-on: https://codeberg.org/ivarch/pv/pulls/173
2025-11-21 06:46:29 +01:00
artnayandCodeberg Translate e617b92f2b Translated using Weblate (Finnish)
Currently translated at 24.2% (34 of 140 strings)

Translation: pv/pv
Translate-URL: https://translate.codeberg.org/projects/pv/pv/fi/
2025-11-21 05:43:17 +00:00
Andrew Wood b24771d224 Added empty Georgian language file as requested. 2025-11-20 21:18:50 +00:00
Andrew Wood 6de160192a Renamed to something more specific. 2025-11-15 15:37:43 +00:00
Andrew Wood 72774e34ff Timestamp update. 2025-11-12 15:03:02 +00:00
Andrew Wood 4ab9536733 Set the release date. 2025-11-12 14:56:16 +00:00
Andrew Wood bd9af0421c Note the fix for --watchfd with multiple arguments (#170). 2025-11-12 14:32:49 +00:00
Andrew Wood 7ba474509c Version bump. 2025-11-12 14:32:39 +00:00
Andrew Wood ac13765fa5 Test --watchfd with more than one argument (#170). 2025-11-12 14:31:57 +00:00
Andrew Wood ca7997fe7d Use the new watchfd_count to size the array, not the one we just zeroed, otherwise multiple --watchfd arguments result in a memory error (#170) 2025-11-12 14:31:22 +00:00
Andrew Wood 22b729f9ea Datestamp update. 2025-11-09 22:27:57 +00:00
61 changed files with 1368 additions and 439 deletions
+3 -1
View File
@@ -8,7 +8,7 @@ bin_PROGRAMS = pv
dist_doc_DATA = README.md docs/INSTALL docs/COPYING docs/NEWS.md docs/ACKNOWLEDGEMENTS.md docs/DEVELOPERS.md dist_doc_DATA = README.md docs/INSTALL docs/COPYING docs/NEWS.md docs/ACKNOWLEDGEMENTS.md docs/DEVELOPERS.md
dist_man1_MANS = docs/pv.1 dist_man1_MANS = docs/pv.1
EXTRA_DIST = docs/pv.1.md docs/benchmark.sh docs/release.cf EXTRA_DIST = docs/pv.1.md docs/benchmark-rw-syscalls-vs-data.sh docs/release.cf
pv_SOURCES = \ pv_SOURCES = \
src/main/debug.c \ src/main/debug.c \
@@ -93,6 +93,7 @@ tests/Modifiers_-_--force.test \
tests/Modifiers_-_--interval.test \ tests/Modifiers_-_--interval.test \
tests/Modifiers_-_--line-mode.test \ tests/Modifiers_-_--line-mode.test \
tests/Modifiers_-_--size_from_file_size.test \ tests/Modifiers_-_--size_from_file_size.test \
tests/Modifiers_-_--size_from_dir_size.test \
tests/Modifiers_-_--size.test \ tests/Modifiers_-_--size.test \
tests/Modifiers_-_--sync.test \ tests/Modifiers_-_--sync.test \
tests/Sparse_-_Basic.test \ tests/Sparse_-_Basic.test \
@@ -101,6 +102,7 @@ tests/Transfer_-_--rate-limit.test \
tests/Transfer_-_--remote.test \ tests/Transfer_-_--remote.test \
tests/Transfer_-_--stop-at-size.test \ tests/Transfer_-_--stop-at-size.test \
tests/Transfer_-_--stop-at-size_reads.test \ tests/Transfer_-_--stop-at-size_reads.test \
tests/Watchfd_-_Multiple_arguments.test \
tests/Watchfd_-_Multiple_descriptors.test \ tests/Watchfd_-_Multiple_descriptors.test \
tests/Watchfd_-_Single_descriptor.test tests/Watchfd_-_Single_descriptor.test
+1 -1
View File
@@ -57,7 +57,7 @@ run it as described above.
See "[docs/ACKNOWLEDGEMENTS.md](./docs/ACKNOWLEDGEMENTS.md)" for a list of See "[docs/ACKNOWLEDGEMENTS.md](./docs/ACKNOWLEDGEMENTS.md)" for a list of
contributors. contributors.
Copyright (C) 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood. Copyright (C) 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood.
License GPLv3+: GNU GPL version 3 or later <https://www.gnu.org/licenses/gpl-3.0.html>. License GPLv3+: GNU GPL version 3 or later <https://www.gnu.org/licenses/gpl-3.0.html>.
+5 -2
View File
@@ -1,10 +1,10 @@
dnl Process this file with autoconf to produce a configure script. dnl Process this file with autoconf to produce a configure script.
dnl dnl
dnl Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood dnl Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
dnl dnl
dnl License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. dnl License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
AC_INIT([pv], [1.10.0], [https://codeberg.org/ivarch/pv/issues], [pv], [https://ivarch.com/p/pv]) AC_INIT([pv], [1.10.4], [https://codeberg.org/ivarch/pv/issues], [pv], [https://ivarch.com/p/pv])
AC_CONFIG_SRCDIR([src/include/config.h.in]) AC_CONFIG_SRCDIR([src/include/config.h.in])
AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([src/include/config.h]) AC_CONFIG_HEADERS([src/include/config.h])
@@ -17,6 +17,7 @@ AC_C_CONST
AC_HEADER_STDBOOL AC_HEADER_STDBOOL
AC_SYS_LARGEFILE AC_SYS_LARGEFILE
AM_GNU_GETTEXT_VERSION([0.21]) AM_GNU_GETTEXT_VERSION([0.21])
AM_GNU_GETTEXT_REQUIRE_VERSION([0.21])
AM_GNU_GETTEXT([external]) AM_GNU_GETTEXT([external])
if test "$USE_NLS" = "yes"; then if test "$USE_NLS" = "yes"; then
CPPFLAGS="$CPPFLAGS -DLOCALEDIR=\\\"\$(localedir)\\\"" CPPFLAGS="$CPPFLAGS -DLOCALEDIR=\\\"\$(localedir)\\\""
@@ -31,6 +32,7 @@ AC_CHECK_FUNCS([fpathconf sysconf posix_memalign posix_fadvise])
AC_CHECK_FUNCS([nanosleep]) AC_CHECK_FUNCS([nanosleep])
AC_CHECK_FUNCS([setitimer]) AC_CHECK_FUNCS([setitimer])
AC_CHECK_FUNCS([setproctitle]) AC_CHECK_FUNCS([setproctitle])
AC_CHECK_FUNCS([nftw])
AC_CHECK_HEADERS([getopt.h]) AC_CHECK_HEADERS([getopt.h])
AC_CHECK_HEADERS([limits.h]) AC_CHECK_HEADERS([limits.h])
AC_CHECK_HEADERS([langinfo.h]) AC_CHECK_HEADERS([langinfo.h])
@@ -40,6 +42,7 @@ AC_CHECK_HEADERS([libgen.h])
AC_CHECK_HEADERS([sys/ioctl.h]) AC_CHECK_HEADERS([sys/ioctl.h])
AC_CHECK_HEADERS([libintl.h locale.h]) AC_CHECK_HEADERS([libintl.h locale.h])
AC_CHECK_HEADERS([sys/sysmacros.h]) AC_CHECK_HEADERS([sys/sysmacros.h])
AC_CHECK_HEADERS([ftw.h])
AC_CHECK_MEMBERS([struct stat.st_blksize]) AC_CHECK_MEMBERS([struct stat.st_blksize])
AC_CHECK_DECLS([SA_SIGINFO], [], [], [[#include <signal.h>]]) AC_CHECK_DECLS([SA_SIGINFO], [], [], [[#include <signal.h>]])
+3
View File
@@ -110,11 +110,14 @@ is acknowledged and greatly appreciated:
* [ipaqmaster](https://codeberg.org/ipaqmaster) - investigated 100%-CPU utilisation bug when piping to a command that has exited ([#164](https://codeberg.org/ivarch/pv/issues/164)) * [ipaqmaster](https://codeberg.org/ipaqmaster) - investigated 100%-CPU utilisation bug when piping to a command that has exited ([#164](https://codeberg.org/ivarch/pv/issues/164))
* Andriy Galetski, and also [thinrope](https://codeberg.org/thinrope) - suggested the "**--sparse**" option ([#45](https://codeberg.org/ivarch/pv/issues/45)) * Andriy Galetski, and also [thinrope](https://codeberg.org/thinrope) - suggested the "**--sparse**" option ([#45](https://codeberg.org/ivarch/pv/issues/45))
* [KimHansen](https://codeberg.org/KimHansen) - suggested that "**--watchfd**" should keep its display when the process ends ([#81](https://codeberg.org/ivarch/pv/issues/81)) * [KimHansen](https://codeberg.org/KimHansen) - suggested that "**--watchfd**" should keep its display when the process ends ([#81](https://codeberg.org/ivarch/pv/issues/81))
* [njt](https://codeberg.org/njt) - suggested that "**--size** @*PATH*" should accept directories ([#179](https://codeberg.org/ivarch/pv/issues/179))
Translations provided through [Codeberg Weblate](https://translate.codeberg.org/projects/pv/): Translations provided through [Codeberg Weblate](https://translate.codeberg.org/projects/pv/):
* **Czech** * **Czech**
* [mmatous](https://translate.codeberg.org/user/mmatous/) (135) * [mmatous](https://translate.codeberg.org/user/mmatous/) (135)
* **Finnish**
* [artnay](https://translate.codeberg.org/user/artnay/) (65)
* **French** * **French**
* anonymous suggestions (7) * anonymous suggestions (7)
* [milimarg](https://codeberg.org/milimarg) (13) * [milimarg](https://codeberg.org/milimarg) (13)
+17
View File
@@ -1,3 +1,20 @@
### 1.10.4 - 8 March 2026
* *fix:* when using **--size @PATH**, *PATH* can be a directory, and the total size of all files within it will be used ([#179](https://codeberg.org/ivarch/pv/issues/179))
### 1.10.3 - 15 December 2025
* *fix:* stop truncating the process title set by **--extra-display**
### 1.10.2 - 22 November 2025
* *i18n:* Finnish translations updated
* *cleanup:* adjust valgrind suppressions so memory safety tests work on LTO builds ([#174](https://codeberg.org/ivarch/pv/issues/174)/[Debian bug 1121157](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1121157))
### 1.10.1 - 12 November 2025
* *fix:* correct **--watchfd** memory allocation error when given multiple arguments ([#170](https://codeberg.org/ivarch/pv/issues/170))
### 1.10.0 - 7 November 2025 ### 1.10.0 - 7 November 2025
* *feature:* new **--query** option to show the transfer status of another running **pv** ([#101](https://codeberg.org/ivarch/pv/issues/101)) * *feature:* new **--query** option to show the transfer status of another running **pv** ([#101](https://codeberg.org/ivarch/pv/issues/101))
+15 -3
View File
@@ -1,4 +1,4 @@
.TH PV 1 2025-11-07 pv-1.10.0 "User Commands" .TH PV 1 2026-03-08 pv-1.10.4 "User Commands"
.\" .\"
.SH NAME .SH NAME
pv \- monitor and manage the progress of data through a pipe pv \- monitor and manage the progress of data through a pipe
@@ -162,7 +162,8 @@ If \*(lq\fB\-\-si\fR\*(rq appears before this option, suffixes will denote
kilobytes (*1000), megabytes, and so on instead. kilobytes (*1000), megabytes, and so on instead.
.IP .IP
If \fISIZE\fR starts with \*(lq\fB@\fR\*(rq, the size of file whose name If \fISIZE\fR starts with \*(lq\fB@\fR\*(rq, the size of file whose name
follows the @ will be used. follows the @ will be used; if that is a directory, the size of all files
under it will be used, like \*(lq\fBdu\~\-\-apparent\-size\~\-b\fR\*(rq.
.TP .TP
.B \-g, \-\-gauge .B \-g, \-\-gauge
If the progress bar is shown but the size is not known, then instead of If the progress bar is shown but the size is not known, then instead of
@@ -636,6 +637,17 @@ tar cf \- directory/ \e
.EE .EE
.in .in
.PP .PP
An alternative way of doing the same thing:
.PP
.in +4
.EX
tar cf \- directory/ \e
| pv \-\-size @directory/ \e
| gzip \-9 \e
> out.tar.gz
.EE
.in
.PP
Taking an image of a disk, skipping errors: Taking an image of a disk, skipping errors:
.PP .PP
.in +4 .in +4
@@ -840,7 +852,7 @@ Please report bugs or feature requests via the issue tracker linked from the
.BR console_codes (4) .BR console_codes (4)
.\" .\"
.SH COPYRIGHT .SH COPYRIGHT
Copyright \(co 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood. Copyright \(co 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood.
.PP .PP
License GPLv3+: License GPLv3+:
.UR https://www.gnu.org/licenses/gpl-3.0.html .UR https://www.gnu.org/licenses/gpl-3.0.html
+10 -2
View File
@@ -164,7 +164,8 @@ are explicitly switched on will be shown.
denote kilobytes (\*1000), megabytes, and so on instead. denote kilobytes (\*1000), megabytes, and so on instead.
If *SIZE* starts with "**@**", the size of file whose name follows If *SIZE* starts with "**@**", the size of file whose name follows
the @ will be used. the @ will be used; if that is a directory, the size of all files
under it will be used, like "**du \--apparent-size -b**".
**-g, \--gauge** **-g, \--gauge**
@@ -632,6 +633,13 @@ To watch the progress of creating a tar.gz archive:
| gzip -9 \ | gzip -9 \
> out.tar.gz > out.tar.gz
An alternative way of doing the same thing:
tar cf - directory/ \
| pv --size @directory/ \
| gzip -9 \
> out.tar.gz
Taking an image of a disk, skipping errors: Taking an image of a disk, skipping errors:
pv -EE /dev/your/disk/device > disk-image.img pv -EE /dev/your/disk/device > disk-image.img
@@ -796,7 +804,7 @@ the [**pv** home page](https://ivarch.com/p/pv).
# COPYRIGHT # COPYRIGHT
Copyright © 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Copyright © 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew
Wood. Wood.
License GPLv3+: [GNU GPL version 3 or License GPLv3+: [GNU GPL version 3 or
+1
View File
@@ -3,6 +3,7 @@ de
es es
fi fi
fr fr
ka
pl pl
pt pt
ru ru
+28 -21
View File
@@ -1,14 +1,14 @@
# Makefile for PO directory in any package using GNU gettext. # Makefile for PO directory in any package using GNU gettext.
# Copyright (C) 1995-2000 Ulrich Drepper <drepper@gnu.ai.mit.edu> # Copyright (C) 1995-2000 Ulrich Drepper <drepper@gnu.ai.mit.edu>
# Copyright (C) 2000-2020 Free Software Foundation, Inc. # Copyright (C) 2000-2024 Free Software Foundation, Inc.
# #
# Copying and distribution of this file, with or without modification, # Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright # are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is, # notice and this notice are preserved. This file is offered as-is,
# without any warranty. # without any warranty.
# #
# Origin: gettext-0.21 # Origin: gettext-0.23
GETTEXT_MACRO_VERSION = 0.20 GETTEXT_MACRO_VERSION = 0.22
PACKAGE = @PACKAGE@ PACKAGE = @PACKAGE@
VERSION = @VERSION@ VERSION = @VERSION@
@@ -68,7 +68,7 @@ POFILES = @POFILES@
GMOFILES = @GMOFILES@ GMOFILES = @GMOFILES@
UPDATEPOFILES = @UPDATEPOFILES@ UPDATEPOFILES = @UPDATEPOFILES@
DUMMYPOFILES = @DUMMYPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@
DISTFILES.common = Makefile.in.in remove-potcdate.sin \ DISTFILES.common = Makefile.in.in remove-potcdate.sed \
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
$(POFILES) $(GMOFILES) \ $(POFILES) $(GMOFILES) \
@@ -94,7 +94,7 @@ all: all-@USE_NLS@
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .po .gmo .sed .sin .nop .po-create .po-update .SUFFIXES: .po .gmo .sed .nop .po-create .po-update
# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. # The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs.
# The GNU Coding Standards say in # The GNU Coding Standards say in
@@ -113,6 +113,7 @@ all: all-@USE_NLS@
$(GMOFILES): $(srcdir)/$(DOMAIN).pot $(GMOFILES): $(srcdir)/$(DOMAIN).pot
.po.gmo: .po.gmo:
@lang=`echo $* | sed -e 's,.*/,,'`; \ @lang=`echo $* | sed -e 's,.*/,,'`; \
if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \
cd $(srcdir) && \ cd $(srcdir) && \
@@ -122,10 +123,6 @@ $(GMOFILES): $(srcdir)/$(DOMAIN).pot
mv t-$${lang}.gmo $${lang}.gmo && \ mv t-$${lang}.gmo $${lang}.gmo && \
rm -f $${lang}.1po rm -f $${lang}.1po
.sin.sed:
sed -e '/^#/d' $< > t-$@
mv t-$@ $@
all-yes: $(srcdir)/stamp-po all-yes: $(srcdir)/stamp-po
all-no: all-no:
@@ -170,7 +167,7 @@ $(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot
# The determination of whether the package xyz is a GNU one is based on the # The determination of whether the package xyz is a GNU one is based on the
# heuristic whether some file in the top level directory mentions "GNU xyz". # heuristic whether some file in the top level directory mentions "GNU xyz".
# If GNU 'find' is available, we avoid grepping through monster files. # If GNU 'find' is available, we avoid grepping through monster files.
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in
package_gnu="$(PACKAGE_GNU)"; \ package_gnu="$(PACKAGE_GNU)"; \
test -n "$$package_gnu" || { \ test -n "$$package_gnu" || { \
if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
@@ -222,8 +219,8 @@ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
|| exit 1; \ || exit 1; \
fi; \ fi; \
if test -f $(srcdir)/$(DOMAIN).pot; then \ if test -f $(srcdir)/$(DOMAIN).pot; then \
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f $(srcdir)/remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ sed -f $(srcdir)/remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
else \ else \
@@ -247,16 +244,19 @@ $(POFILES): $(POFILESDEPS)
@test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot @test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
if test -f "$(srcdir)/$${lang}.po"; then \ if test -f "$(srcdir)/$${lang}.po"; then \
if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \
cd $(srcdir) \ cd $(srcdir) \
&& { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \ '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \
$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
0.1[1-5] | 0.1[1-5].*) \
$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
0.1[6-7] | 0.1[6-7].*) \ 0.1[6-7] | 0.1[6-7].*) \
$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \
*) \ *) \
$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \
esac; \ esac; \
}; \ }; \
else \ else \
@@ -394,7 +394,6 @@ info dvi ps pdf html tags TAGS ctags CTAGS ID:
install-dvi install-ps install-pdf install-html: install-dvi install-ps install-pdf install-html:
mostlyclean: mostlyclean:
rm -f remove-potcdate.sed
rm -f $(srcdir)/stamp-poT rm -f $(srcdir)/stamp-poT
rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
rm -fr *.o rm -fr *.o
@@ -464,15 +463,17 @@ update-po: Makefile
tmpdir=`pwd`; \ tmpdir=`pwd`; \
echo "$$lang:"; \ echo "$$lang:"; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
cd $(srcdir); \ cd $(srcdir); \
if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \ '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \
$(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
0.1[1-5] | 0.1[1-5].*) \
$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
0.1[6-7] | 0.1[6-7].*) \ 0.1[6-7] | 0.1[6-7].*) \
$(MSGMERGE) $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
*) \ *) \
$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
esac; \ esac; \
}; then \ }; then \
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
@@ -508,3 +509,9 @@ force:
# Tell versions [3.59,3.63) of GNU make not to export all variables. # Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .NOEXPORT:
# This Makefile contains rules which don't work with parallel make,
# namely dist2.
# See <https://lists.gnu.org/archive/html/bug-gettext/2022-06/msg00022.html>.
# So, turn off parallel execution in this Makefile.
.NOTPARALLEL:
+27 -27
View File
@@ -1,7 +1,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n" "Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
"POT-Creation-Date: 2025-10-31 19:47+0000\n" "POT-Creation-Date: 2026-03-08 11:20+0000\n"
"PO-Revision-Date: 2024-10-13 20:43+0000\n" "PO-Revision-Date: 2024-10-13 20:43+0000\n"
"Last-Translator: mmatous <mmatous@users.noreply.translate.codeberg.org>\n" "Last-Translator: mmatous <mmatous@users.noreply.translate.codeberg.org>\n"
"Language-Team: Czech <https://translate.codeberg.org/projects/pv/pv/cs/>\n" "Language-Team: Czech <https://translate.codeberg.org/projects/pv/pv/cs/>\n"
@@ -293,81 +293,81 @@ msgstr "(vstup)"
msgid "state allocation failed" msgid "state allocation failed"
msgstr "selhala alokace stavu" msgstr "selhala alokace stavu"
#: src/main/options.c:370 #: src/main/options.c:374
msgid "list files may not contain @ lines" msgid "list files may not contain @ lines"
msgstr "" msgstr ""
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:807 #: src/main/options.c:395 src/main/options.c:397 src/main/options.c:865
msgid "process ID or pid:fd pair expected" msgid "process ID or pid:fd pair expected"
msgstr "očekáváno ID procesu nebo dvojice PID:DS" msgstr "očekáváno ID procesu nebo dvojice PID:DS"
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:814 #: src/main/options.c:407 src/main/options.c:409 src/main/options.c:872
msgid "invalid process ID" msgid "invalid process ID"
msgstr "neplatné ID procesu" msgstr "neplatné ID procesu"
#: src/main/options.c:448 src/pv/file.c:342 #: src/main/options.c:476 src/pv/file.c:342
msgid "failed to stat file" msgid "failed to stat file"
msgstr "nebylo možné zjistit informace o souboru" msgstr "nebylo možné zjistit informace o souboru"
#: src/main/options.c:462 #: src/main/options.c:519
msgid "is a directory" msgid "is a directory"
msgstr "je adresář" msgstr "je adresář"
#: src/main/options.c:491 #: src/main/options.c:549
msgid "failed to generate sysfs filename" msgid "failed to generate sysfs filename"
msgstr "selhalo vytváření jména pro soubor v sysfs" msgstr "selhalo vytváření jména pro soubor v sysfs"
#: src/main/options.c:513 #: src/main/options.c:571
msgid "failed to read sysfs size file" msgid "failed to read sysfs size file"
msgstr "selhalo čtení velikosti souboru v sysfs" msgstr "selhalo čtení velikosti souboru v sysfs"
#: src/main/options.c:533 #: src/main/options.c:591
msgid "failed to open block device" msgid "failed to open block device"
msgstr "selhalo otevření blokového zařízení" msgstr "selhalo otevření blokového zařízení"
#: src/main/options.c:543 #: src/main/options.c:601
msgid "failed to determine size of block device" msgid "failed to determine size of block device"
msgstr "selhalo zjištění velikosti blokového zařízení" msgstr "selhalo zjištění velikosti blokového zařízení"
#: src/main/options.c:652 #: src/main/options.c:710
msgid "option structure allocation failed" msgid "option structure allocation failed"
msgstr "selhala alokace struktury pro volby" msgstr "selhala alokace struktury pro volby"
#: src/main/options.c:671 #: src/main/options.c:729
msgid "option structure argv allocation failed" msgid "option structure argv allocation failed"
msgstr "selhala alokace struktury pro argv" msgstr "selhala alokace struktury pro argv"
#: src/main/options.c:723 #: src/main/options.c:781
msgid "numeric value not understood" msgid "numeric value not understood"
msgstr "" msgstr ""
#: src/main/options.c:743 #: src/main/options.c:801
msgid "integer argument expected" msgid "integer argument expected"
msgstr "očekáván celočíselný argument" msgstr "očekáván celočíselný argument"
#: src/main/options.c:755 #: src/main/options.c:813
msgid "numeric argument expected" msgid "numeric argument expected"
msgstr "očekáván číselný argument" msgstr "očekáván číselný argument"
#: src/main/options.c:767 #: src/main/options.c:825
msgid "missing filename" msgid "missing filename"
msgstr "" msgstr ""
#: src/main/options.c:795 #: src/main/options.c:853
msgid "missing process name" msgid "missing process name"
msgstr "" msgstr ""
#: src/main/options.c:1056 #: src/main/options.c:1114
#, c-format #, c-format
msgid "Try `%s --help' for more information." msgid "Try `%s --help' for more information."
msgstr "Zkuste `%s --help' pro více informací." msgstr "Zkuste `%s --help' pro více informací."
#: src/main/options.c:1058 #: src/main/options.c:1116
#, c-format #, c-format
msgid "Try `%s -h' for more information." msgid "Try `%s -h' for more information."
msgstr "Zkuste `%s --h' pro více informací." msgstr "Zkuste `%s --h' pro více informací."
#: src/main/options.c:1089 #: src/main/options.c:1147
msgid "" msgid ""
"cannot use line mode or transfer modifier options when watching file " "cannot use line mode or transfer modifier options when watching file "
"descriptors" "descriptors"
@@ -375,31 +375,31 @@ msgstr ""
"při sledování deskriptorů souborů nelze použít řádkový mód nebo volby pro " "při sledování deskriptorů souborů nelze použít řádkový mód nebo volby pro "
"modifikaci přenosu" "modifikaci přenosu"
#: src/main/options.c:1098 #: src/main/options.c:1156
msgid "cannot use cursor positioning when watching file descriptors" msgid "cannot use cursor positioning when watching file descriptors"
msgstr "při sledování deskriptorů souborů nelze pozicování kurzoru použít" msgstr "při sledování deskriptorů souborů nelze pozicování kurzoru použít"
#: src/main/options.c:1107 #: src/main/options.c:1165
msgid "cannot use remote control when watching file descriptors" msgid "cannot use remote control when watching file descriptors"
msgstr "při sledování deskriptorů souborů nelze použít vzdálené ovládání" msgstr "při sledování deskriptorů souborů nelze použít vzdálené ovládání"
#: src/main/options.c:1116 #: src/main/options.c:1174
msgid "cannot use remote query when watching file descriptors" msgid "cannot use remote query when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1125 #: src/main/options.c:1183
msgid "cannot transfer files when watching file descriptors" msgid "cannot transfer files when watching file descriptors"
msgstr "při sledování deskriptorů souborů nelze použít přenos souborů" msgstr "při sledování deskriptorů souborů nelze použít přenos souborů"
#: src/main/options.c:1150 #: src/main/options.c:1208
msgid "not available on systems without /proc/self/fdinfo" msgid "not available on systems without /proc/self/fdinfo"
msgstr "není dostupné na systémech bez /proc/self/fdinfo" msgstr "není dostupné na systémech bez /proc/self/fdinfo"
#: src/main/options.c:1162 #: src/main/options.c:1220
msgid "cannot use remote control and remote query together" msgid "cannot use remote control and remote query together"
msgstr "" msgstr ""
#: src/main/options.c:1189 #: src/main/options.c:1247
msgid "files cannot be specified with this option" msgid "files cannot be specified with this option"
msgstr "" msgstr ""
+30 -30
View File
@@ -1,7 +1,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n" "Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
"POT-Creation-Date: 2025-10-31 19:47+0000\n" "POT-Creation-Date: 2026-03-08 11:20+0000\n"
"PO-Revision-Date: 2025-01-14 20:39+0000\n" "PO-Revision-Date: 2025-01-14 20:39+0000\n"
"Last-Translator: Benny <benny@users.noreply.translate.codeberg.org>\n" "Last-Translator: Benny <benny@users.noreply.translate.codeberg.org>\n"
"Language-Team: German <https://translate.codeberg.org/projects/pv/pv/de/>\n" "Language-Team: German <https://translate.codeberg.org/projects/pv/pv/de/>\n"
@@ -14,9 +14,9 @@ msgstr ""
"From: Andrew Wood <ivarch@ubik>\n" "From: Andrew Wood <ivarch@ubik>\n"
"Xgettext-Options: --default-domain=pkgbuild --directory=./.pkgdir --add-" "Xgettext-Options: --default-domain=pkgbuild --directory=./.pkgdir --add-"
"comments --keyword=_ --keyword=N_\n" "comments --keyword=_ --keyword=N_\n"
"Files: src/getopt/getopt.c src/getopt/getopt1.c src/version.c src/main/init." "Files: src/getopt/getopt.c src/getopt/getopt1.c src/version.c src/main/"
"c src/main/help.c src/main/xpmptr.c src/guts/load.c src/guts/stop.c src/guts/" "init.c src/main/help.c src/main/xpmptr.c src/guts/load.c src/guts/stop.c src/"
"configure.c src/guts/make.c src/guts/install.c src/guts/prefs.c src/ui/" "guts/configure.c src/guts/make.c src/guts/install.c src/guts/prefs.c src/ui/"
"generate.c src/ui/main.c src/ui/xpm.c src/ui/status.c src/ui/activate.c src/" "generate.c src/ui/main.c src/ui/xpm.c src/ui/status.c src/ui/activate.c src/"
"ui/handlers/main.c src/ui/handlers/package.c src/ui/handlers/prefs.c src/ui/" "ui/handlers/main.c src/ui/handlers/package.c src/ui/handlers/prefs.c src/ui/"
"handlers/dirsel.c src/ui/handlers/popup.c src/ui/handlers/help.c src/ui/" "handlers/dirsel.c src/ui/handlers/popup.c src/ui/handlers/help.c src/ui/"
@@ -311,81 +311,81 @@ msgstr "(eingabe)"
msgid "state allocation failed" msgid "state allocation failed"
msgstr "Speicherzuweisung für `state' fehlgeschlagen" msgstr "Speicherzuweisung für `state' fehlgeschlagen"
#: src/main/options.c:370 #: src/main/options.c:374
msgid "list files may not contain @ lines" msgid "list files may not contain @ lines"
msgstr "" msgstr ""
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:807 #: src/main/options.c:395 src/main/options.c:397 src/main/options.c:865
msgid "process ID or pid:fd pair expected" msgid "process ID or pid:fd pair expected"
msgstr "Prozess-ID oder PID:FD-Paar erwartet" msgstr "Prozess-ID oder PID:FD-Paar erwartet"
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:814 #: src/main/options.c:407 src/main/options.c:409 src/main/options.c:872
msgid "invalid process ID" msgid "invalid process ID"
msgstr "ungültige Prozess-ID" msgstr "ungültige Prozess-ID"
#: src/main/options.c:448 src/pv/file.c:342 #: src/main/options.c:476 src/pv/file.c:342
msgid "failed to stat file" msgid "failed to stat file"
msgstr "konnte Dateiinformationen nicht lesen" msgstr "konnte Dateiinformationen nicht lesen"
#: src/main/options.c:462 #: src/main/options.c:519
msgid "is a directory" msgid "is a directory"
msgstr "ist ein Verzeichnis" msgstr "ist ein Verzeichnis"
#: src/main/options.c:491 #: src/main/options.c:549
msgid "failed to generate sysfs filename" msgid "failed to generate sysfs filename"
msgstr "konnte Sysfs-Dateinamen nicht erzeugen" msgstr "konnte Sysfs-Dateinamen nicht erzeugen"
#: src/main/options.c:513 #: src/main/options.c:571
msgid "failed to read sysfs size file" msgid "failed to read sysfs size file"
msgstr "konnte Größe der Sysfs-Datei nicht lesen" msgstr "konnte Größe der Sysfs-Datei nicht lesen"
#: src/main/options.c:533 #: src/main/options.c:591
msgid "failed to open block device" msgid "failed to open block device"
msgstr "konnte Blockgerät nicht öffnen" msgstr "konnte Blockgerät nicht öffnen"
#: src/main/options.c:543 #: src/main/options.c:601
msgid "failed to determine size of block device" msgid "failed to determine size of block device"
msgstr "konnte Größe des Blockgeräts nicht ermitteln" msgstr "konnte Größe des Blockgeräts nicht ermitteln"
#: src/main/options.c:652 #: src/main/options.c:710
msgid "option structure allocation failed" msgid "option structure allocation failed"
msgstr "Speicherzuweisung für `option' fehlgeschlagen" msgstr "Speicherzuweisung für `option' fehlgeschlagen"
#: src/main/options.c:671 #: src/main/options.c:729
msgid "option structure argv allocation failed" msgid "option structure argv allocation failed"
msgstr "Speicherzuweisung für `argv' der Option fehlgeschlagen" msgstr "Speicherzuweisung für `argv' der Option fehlgeschlagen"
#: src/main/options.c:723 #: src/main/options.c:781
msgid "numeric value not understood" msgid "numeric value not understood"
msgstr "numerischen Wert nicht verstanden" msgstr "numerischen Wert nicht verstanden"
#: src/main/options.c:743 #: src/main/options.c:801
msgid "integer argument expected" msgid "integer argument expected"
msgstr "Ganzzahliges Argument erwartet" msgstr "Ganzzahliges Argument erwartet"
#: src/main/options.c:755 #: src/main/options.c:813
msgid "numeric argument expected" msgid "numeric argument expected"
msgstr "numerisches Argument erwartet" msgstr "numerisches Argument erwartet"
#: src/main/options.c:767 #: src/main/options.c:825
msgid "missing filename" msgid "missing filename"
msgstr "" msgstr ""
#: src/main/options.c:795 #: src/main/options.c:853
msgid "missing process name" msgid "missing process name"
msgstr "" msgstr ""
#: src/main/options.c:1056 #: src/main/options.c:1114
#, c-format #, c-format
msgid "Try `%s --help' for more information." msgid "Try `%s --help' for more information."
msgstr "`%s --help' zeigt weitere Informationen an." msgstr "`%s --help' zeigt weitere Informationen an."
#: src/main/options.c:1058 #: src/main/options.c:1116
#, c-format #, c-format
msgid "Try `%s -h' for more information." msgid "Try `%s -h' for more information."
msgstr "`%s -h' zeigt weitere Informationen an." msgstr "`%s -h' zeigt weitere Informationen an."
#: src/main/options.c:1089 #: src/main/options.c:1147
msgid "" msgid ""
"cannot use line mode or transfer modifier options when watching file " "cannot use line mode or transfer modifier options when watching file "
"descriptors" "descriptors"
@@ -393,36 +393,36 @@ msgstr ""
"Beim Beobachten von Dateideskriptoren können keine Optionen für den " "Beim Beobachten von Dateideskriptoren können keine Optionen für den "
"Zeilenmodus oder den Übertragungsmodifikator verwendet werden" "Zeilenmodus oder den Übertragungsmodifikator verwendet werden"
#: src/main/options.c:1098 #: src/main/options.c:1156
msgid "cannot use cursor positioning when watching file descriptors" msgid "cannot use cursor positioning when watching file descriptors"
msgstr "" msgstr ""
"Beim Beobachten von Dateideskriptoren kann Cursor-Positionierung nicht " "Beim Beobachten von Dateideskriptoren kann Cursor-Positionierung nicht "
"verwendet werden" "verwendet werden"
#: src/main/options.c:1107 #: src/main/options.c:1165
msgid "cannot use remote control when watching file descriptors" msgid "cannot use remote control when watching file descriptors"
msgstr "" msgstr ""
"Beim Beobachten von Dateideskriptoren kann die Fernbedienung nicht verwenden " "Beim Beobachten von Dateideskriptoren kann die Fernbedienung nicht verwenden "
"werden" "werden"
#: src/main/options.c:1116 #: src/main/options.c:1174
msgid "cannot use remote query when watching file descriptors" msgid "cannot use remote query when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1125 #: src/main/options.c:1183
msgid "cannot transfer files when watching file descriptors" msgid "cannot transfer files when watching file descriptors"
msgstr "" msgstr ""
"Beim Beobachten von Dateideskriptoren können Dateien nicht übertragen werden" "Beim Beobachten von Dateideskriptoren können Dateien nicht übertragen werden"
#: src/main/options.c:1150 #: src/main/options.c:1208
msgid "not available on systems without /proc/self/fdinfo" msgid "not available on systems without /proc/self/fdinfo"
msgstr "Nicht verfügbar auf Systemen ohne /proc/self/fdinfo" msgstr "Nicht verfügbar auf Systemen ohne /proc/self/fdinfo"
#: src/main/options.c:1162 #: src/main/options.c:1220
msgid "cannot use remote control and remote query together" msgid "cannot use remote control and remote query together"
msgstr "" msgstr ""
#: src/main/options.c:1189 #: src/main/options.c:1247
msgid "files cannot be specified with this option" msgid "files cannot be specified with this option"
msgstr "" msgstr ""
+27 -27
View File
@@ -1,7 +1,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n" "Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
"POT-Creation-Date: 2025-10-31 19:47+0000\n" "POT-Creation-Date: 2026-03-08 11:20+0000\n"
"Language: es\n" "Language: es\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -287,111 +287,111 @@ msgstr ""
msgid "state allocation failed" msgid "state allocation failed"
msgstr "" msgstr ""
#: src/main/options.c:370 #: src/main/options.c:374
msgid "list files may not contain @ lines" msgid "list files may not contain @ lines"
msgstr "" msgstr ""
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:807 #: src/main/options.c:395 src/main/options.c:397 src/main/options.c:865
msgid "process ID or pid:fd pair expected" msgid "process ID or pid:fd pair expected"
msgstr "" msgstr ""
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:814 #: src/main/options.c:407 src/main/options.c:409 src/main/options.c:872
msgid "invalid process ID" msgid "invalid process ID"
msgstr "" msgstr ""
#: src/main/options.c:448 src/pv/file.c:342 #: src/main/options.c:476 src/pv/file.c:342
msgid "failed to stat file" msgid "failed to stat file"
msgstr "" msgstr ""
#: src/main/options.c:462 #: src/main/options.c:519
msgid "is a directory" msgid "is a directory"
msgstr "" msgstr ""
#: src/main/options.c:491 #: src/main/options.c:549
msgid "failed to generate sysfs filename" msgid "failed to generate sysfs filename"
msgstr "" msgstr ""
#: src/main/options.c:513 #: src/main/options.c:571
msgid "failed to read sysfs size file" msgid "failed to read sysfs size file"
msgstr "" msgstr ""
#: src/main/options.c:533 #: src/main/options.c:591
msgid "failed to open block device" msgid "failed to open block device"
msgstr "" msgstr ""
#: src/main/options.c:543 #: src/main/options.c:601
msgid "failed to determine size of block device" msgid "failed to determine size of block device"
msgstr "" msgstr ""
#: src/main/options.c:652 #: src/main/options.c:710
msgid "option structure allocation failed" msgid "option structure allocation failed"
msgstr "" msgstr ""
#: src/main/options.c:671 #: src/main/options.c:729
msgid "option structure argv allocation failed" msgid "option structure argv allocation failed"
msgstr "" msgstr ""
#: src/main/options.c:723 #: src/main/options.c:781
msgid "numeric value not understood" msgid "numeric value not understood"
msgstr "" msgstr ""
#: src/main/options.c:743 #: src/main/options.c:801
msgid "integer argument expected" msgid "integer argument expected"
msgstr "" msgstr ""
#: src/main/options.c:755 #: src/main/options.c:813
msgid "numeric argument expected" msgid "numeric argument expected"
msgstr "" msgstr ""
#: src/main/options.c:767 #: src/main/options.c:825
msgid "missing filename" msgid "missing filename"
msgstr "" msgstr ""
#: src/main/options.c:795 #: src/main/options.c:853
msgid "missing process name" msgid "missing process name"
msgstr "" msgstr ""
#: src/main/options.c:1056 #: src/main/options.c:1114
#, c-format #, c-format
msgid "Try `%s --help' for more information." msgid "Try `%s --help' for more information."
msgstr "" msgstr ""
#: src/main/options.c:1058 #: src/main/options.c:1116
#, c-format #, c-format
msgid "Try `%s -h' for more information." msgid "Try `%s -h' for more information."
msgstr "" msgstr ""
#: src/main/options.c:1089 #: src/main/options.c:1147
msgid "" msgid ""
"cannot use line mode or transfer modifier options when watching file " "cannot use line mode or transfer modifier options when watching file "
"descriptors" "descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1098 #: src/main/options.c:1156
msgid "cannot use cursor positioning when watching file descriptors" msgid "cannot use cursor positioning when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1107 #: src/main/options.c:1165
msgid "cannot use remote control when watching file descriptors" msgid "cannot use remote control when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1116 #: src/main/options.c:1174
msgid "cannot use remote query when watching file descriptors" msgid "cannot use remote query when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1125 #: src/main/options.c:1183
msgid "cannot transfer files when watching file descriptors" msgid "cannot transfer files when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1150 #: src/main/options.c:1208
msgid "not available on systems without /proc/self/fdinfo" msgid "not available on systems without /proc/self/fdinfo"
msgstr "" msgstr ""
#: src/main/options.c:1162 #: src/main/options.c:1220
msgid "cannot use remote control and remote query together" msgid "cannot use remote control and remote query together"
msgstr "" msgstr ""
#: src/main/options.c:1189 #: src/main/options.c:1247
msgid "files cannot be specified with this option" msgid "files cannot be specified with this option"
msgstr "" msgstr ""
+93 -89
View File
@@ -2,42 +2,44 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: pv 1.9.34\n" "Project-Id-Version: pv 1.9.34\n"
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n" "Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
"POT-Creation-Date: 2025-10-31 19:47+0000\n" "POT-Creation-Date: 2026-03-08 11:20+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2025-11-22 15:06+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: artnay <artnay@noreply.codeberg.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: Finnish <https://translate.codeberg.org/projects/pv/pv/fi/>\n"
"Language: fi\n" "Language: fi\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.14\n"
#: src/main/help.c:236 #: src/main/help.c:236
msgid "show progress bar" msgid "show progress bar"
msgstr "" msgstr "näytä edistymispalkki"
#: src/main/help.c:239 #: src/main/help.c:239
msgid "show elapsed time" msgid "show elapsed time"
msgstr "" msgstr "näytä kulunut aika"
#: src/main/help.c:242 #: src/main/help.c:242
msgid "show estimated time of arrival (completion)" msgid "show estimated time of arrival (completion)"
msgstr "" msgstr "näytä arvioitu valmistumisaika"
#: src/main/help.c:245 #: src/main/help.c:245
msgid "show absolute estimated time of arrival (completion)" msgid "show absolute estimated time of arrival (completion)"
msgstr "" msgstr "näytä absoluuttinen arvioitu valmistumisaika"
#: src/main/help.c:248 #: src/main/help.c:248
msgid "show data transfer rate counter" msgid "show data transfer rate counter"
msgstr "" msgstr "näytä datan siirtonopeuden laskuri"
#: src/main/help.c:251 #: src/main/help.c:251
msgid "show data transfer average rate counter" msgid "show data transfer average rate counter"
msgstr "" msgstr "näytä datan keskimääräisen siirtonopeuden laskuri"
#: src/main/help.c:254 #: src/main/help.c:254
msgid "show number of bytes transferred" msgid "show number of bytes transferred"
msgstr "" msgstr "näytä siirrettyjen tavujen määrä"
#: src/main/help.c:257 #: src/main/help.c:257
msgid "show percentage of transfer buffer in use" msgid "show percentage of transfer buffer in use"
@@ -45,39 +47,39 @@ msgstr ""
#: src/main/help.c:259 #: src/main/help.c:259
msgid "NUM" msgid "NUM"
msgstr "" msgstr "NUM"
#: src/main/help.c:260 #: src/main/help.c:260
msgid "show NUM bytes last written" msgid "show NUM bytes last written"
msgstr "" msgstr "näytä NUM viimeksi kirjoitettua tavua"
#: src/main/help.c:262 #: src/main/help.c:262
msgid "FORMAT" msgid "FORMAT"
msgstr "" msgstr "MUOTO"
#: src/main/help.c:263 #: src/main/help.c:263
msgid "set output format to FORMAT" msgid "set output format to FORMAT"
msgstr "" msgstr "aseta tulostemuodoksi MUOTO"
#: src/main/help.c:266 #: src/main/help.c:266
msgid "output percentages, not visual information" msgid "output percentages, not visual information"
msgstr "" msgstr "tulosta prosentit, ei visuaalista tietoa"
#: src/main/help.c:269 #: src/main/help.c:269
msgid "do not output any transfer information at all" msgid "do not output any transfer information at all"
msgstr "" msgstr "älä tulosta minkäänlaista siirtotietoa"
#: src/main/help.c:273 #: src/main/help.c:273
msgid "show number of bits transferred" msgid "show number of bits transferred"
msgstr "" msgstr "näytä siirrettyjen bittien määrä"
#: src/main/help.c:276 #: src/main/help.c:276
msgid "treat suffixes as multiples of 1000 rather than 1024" msgid "treat suffixes as multiples of 1000 rather than 1024"
msgstr "" msgstr "käsittele päätteitä 1000:n kertoimina 1024:n sijaan"
#: src/main/help.c:279 #: src/main/help.c:279
msgid "display nothing until first byte transferred" msgid "display nothing until first byte transferred"
msgstr "" msgstr "älä näytä mitään, ennen kuin ensimmäinen tavu on siirretty"
#: src/main/help.c:281 src/main/help.c:296 src/main/help.c:299 #: src/main/help.c:281 src/main/help.c:296 src/main/help.c:299
msgid "SEC" msgid "SEC"
@@ -85,15 +87,15 @@ msgstr ""
#: src/main/help.c:282 #: src/main/help.c:282
msgid "display nothing until SEC seconds have passed" msgid "display nothing until SEC seconds have passed"
msgstr "" msgstr "älä näytä mitään, ennen kuin SEC sekuntia on kulunut"
#: src/main/help.c:284 #: src/main/help.c:284
msgid "SIZE" msgid "SIZE"
msgstr "" msgstr "KOKO"
#: src/main/help.c:285 #: src/main/help.c:285
msgid "set estimated data size to SIZE bytes" msgid "set estimated data size to SIZE bytes"
msgstr "" msgstr "aseta arvioiduksi datan kooksi KOKO tavua"
#: src/main/help.c:288 #: src/main/help.c:288
msgid "if size unknown, show rate vs max rate" msgid "if size unknown, show rate vs max rate"
@@ -101,7 +103,7 @@ msgstr ""
#: src/main/help.c:291 #: src/main/help.c:291
msgid "count lines instead of bytes" msgid "count lines instead of bytes"
msgstr "" msgstr "laske rivit tavujen sijaan"
#: src/main/help.c:294 #: src/main/help.c:294
msgid "lines are null-terminated" msgid "lines are null-terminated"
@@ -109,31 +111,31 @@ msgstr ""
#: src/main/help.c:297 #: src/main/help.c:297
msgid "update every SEC seconds" msgid "update every SEC seconds"
msgstr "" msgstr "päivitä SEC sekunnin välein"
#: src/main/help.c:300 #: src/main/help.c:300
msgid "compute average rate over past SEC seconds (default 30s)" msgid "compute average rate over past SEC seconds (default 30s)"
msgstr "" msgstr "laske keskimääräinen siirtonopeus SEC sekunnin ajalta (oletus 30 s)"
#: src/main/help.c:302 #: src/main/help.c:302
msgid "WIDTH" msgid "WIDTH"
msgstr "" msgstr "LEVEYS"
#: src/main/help.c:303 #: src/main/help.c:303
msgid "assume terminal is WIDTH characters wide" msgid "assume terminal is WIDTH characters wide"
msgstr "" msgstr "oleta, että päätteen LEVEYS on merkkiä leveä"
#: src/main/help.c:305 #: src/main/help.c:305
msgid "HEIGHT" msgid "HEIGHT"
msgstr "" msgstr "KORKEUS"
#: src/main/help.c:306 #: src/main/help.c:306
msgid "assume terminal is HEIGHT rows high" msgid "assume terminal is HEIGHT rows high"
msgstr "" msgstr "oleta, että päätteen KORKEUS on merkkiä korkea"
#: src/main/help.c:308 #: src/main/help.c:308
msgid "NAME" msgid "NAME"
msgstr "" msgstr "NIMI"
#: src/main/help.c:309 #: src/main/help.c:309
msgid "prefix visual information with NAME" msgid "prefix visual information with NAME"
@@ -141,7 +143,7 @@ msgstr ""
#: src/main/help.c:311 #: src/main/help.c:311
msgid "STYLE" msgid "STYLE"
msgstr "" msgstr "TYYLI"
#: src/main/help.c:312 #: src/main/help.c:312
msgid "set default bar style to NAME" msgid "set default bar style to NAME"
@@ -157,7 +159,7 @@ msgstr ""
#: src/main/help.c:318 #: src/main/help.c:318
msgid "output transfer statistics at the end" msgid "output transfer statistics at the end"
msgstr "" msgstr "tulosta siirtotilastot lopussa"
#: src/main/help.c:321 #: src/main/help.c:321
msgid "output even if standard error is not a terminal" msgid "output even if standard error is not a terminal"
@@ -170,19 +172,19 @@ msgstr ""
#: src/main/help.c:327 src/main/help.c:360 src/main/help.c:376 #: src/main/help.c:327 src/main/help.c:360 src/main/help.c:376
#: src/main/help.c:386 #: src/main/help.c:386
msgid "FILE" msgid "FILE"
msgstr "" msgstr "TIEDOSTO"
#: src/main/help.c:328 #: src/main/help.c:328
msgid "write output to FILE instead of stdout" msgid "write output to FILE instead of stdout"
msgstr "" msgstr "kirjoita tuloste tiedostoon TIEDOSTO oletustulosteen (stdout) sijaan"
#: src/main/help.c:330 #: src/main/help.c:330
msgid "RATE" msgid "RATE"
msgstr "" msgstr "NOPEUS"
#: src/main/help.c:331 #: src/main/help.c:331
msgid "limit transfer to RATE bytes per second" msgid "limit transfer to RATE bytes per second"
msgstr "" msgstr "rajoita siirron nopeudeksi NOPEUS tavua per sekunti"
#: src/main/help.c:333 src/main/help.c:342 #: src/main/help.c:333 src/main/help.c:342
msgid "BYTES" msgid "BYTES"
@@ -198,7 +200,7 @@ msgstr ""
#: src/main/help.c:340 #: src/main/help.c:340
msgid "skip read errors in input" msgid "skip read errors in input"
msgstr "" msgstr "ohita lukuvirheet syötteessä"
#: src/main/help.c:343 #: src/main/help.c:343
msgid "skip errors in BYTES blocks at a time" msgid "skip errors in BYTES blocks at a time"
@@ -206,7 +208,7 @@ msgstr ""
#: src/main/help.c:346 #: src/main/help.c:346
msgid "stop after --size bytes have been transferred" msgid "stop after --size bytes have been transferred"
msgstr "" msgstr "lopeta kun --size tavua on siirretty"
#: src/main/help.c:349 #: src/main/help.c:349
msgid "flush cache to disk after every write" msgid "flush cache to disk after every write"
@@ -227,6 +229,7 @@ msgstr ""
#: src/main/help.c:361 #: src/main/help.c:361
msgid "write all input to FILE before writing to output" msgid "write all input to FILE before writing to output"
msgstr "" msgstr ""
"kirjoita kaikki syöte tiedostoon TIEDOSTO ennen tulosteeseen kirjoittamista"
#: src/main/help.c:364 #: src/main/help.c:364
msgid "PID[:FD]|=NAME|@LISTFILE" msgid "PID[:FD]|=NAME|@LISTFILE"
@@ -254,34 +257,35 @@ msgstr ""
#: src/main/help.c:380 #: src/main/help.c:380
msgid "show this help and exit" msgid "show this help and exit"
msgstr "" msgstr "näytä tämä ohje ja lopeta"
#: src/main/help.c:383 #: src/main/help.c:383
msgid "show version information and exit" msgid "show version information and exit"
msgstr "" msgstr "näytä versiotiedot ja lopeta"
#: src/main/help.c:387 #: src/main/help.c:387
msgid "write debug logs to FILE" msgid "write debug logs to FILE"
msgstr "" msgstr "kirjoita vianjäljityslokit tiedostoon TIEDOSTO"
#: src/main/help.c:413 #: src/main/help.c:413
#, c-format #, c-format
msgid "Usage: %s [OPTION] [FILE]..." msgid "Usage: %s [OPTION] [FILE]..."
msgstr "" msgstr "Käyttö: %s [VALINTA] [TIEDOSTO]..."
#: src/main/help.c:424 #: src/main/help.c:424
msgid "" msgid ""
"Concatenate FILE(s), or standard input, to standard output, with monitoring." "Concatenate FILE(s), or standard input, to standard output, with monitoring."
msgstr "" msgstr ""
"Putkita TIEDOSTO(t), tai vakiosyöte, vakiotulosteeseen, monitoroinnin kanssa."
#: src/main/help.c:562 #: src/main/help.c:562
msgid "Supported format sequences:" msgid "Supported format sequences:"
msgstr "" msgstr "Tuetut muotosekvenssit:"
#: src/main/help.c:576 #: src/main/help.c:576
#, c-format #, c-format
msgid "Please report any bugs to: %s" msgid "Please report any bugs to: %s"
msgstr "" msgstr "Ilmoita ongelmista: %s"
#: src/main/main.c:228 #: src/main/main.c:228
msgid "(input)" msgid "(input)"
@@ -291,117 +295,117 @@ msgstr ""
msgid "state allocation failed" msgid "state allocation failed"
msgstr "" msgstr ""
#: src/main/options.c:370 #: src/main/options.c:374
msgid "list files may not contain @ lines" msgid "list files may not contain @ lines"
msgstr "" msgstr ""
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:807 #: src/main/options.c:395 src/main/options.c:397 src/main/options.c:865
msgid "process ID or pid:fd pair expected" msgid "process ID or pid:fd pair expected"
msgstr "" msgstr ""
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:814 #: src/main/options.c:407 src/main/options.c:409 src/main/options.c:872
msgid "invalid process ID" msgid "invalid process ID"
msgstr "" msgstr "virheellinen prosessin ID"
#: src/main/options.c:448 src/pv/file.c:342 #: src/main/options.c:476 src/pv/file.c:342
msgid "failed to stat file" msgid "failed to stat file"
msgstr "" msgstr ""
#: src/main/options.c:462 #: src/main/options.c:519
msgid "is a directory" msgid "is a directory"
msgstr "" msgstr "on hakemisto"
#: src/main/options.c:491 #: src/main/options.c:549
msgid "failed to generate sysfs filename" msgid "failed to generate sysfs filename"
msgstr "" msgstr ""
#: src/main/options.c:513 #: src/main/options.c:571
msgid "failed to read sysfs size file" msgid "failed to read sysfs size file"
msgstr "" msgstr ""
#: src/main/options.c:533 #: src/main/options.c:591
msgid "failed to open block device" msgid "failed to open block device"
msgstr "" msgstr "lohkolaitteen avaaminen epäonnistui"
#: src/main/options.c:543 #: src/main/options.c:601
msgid "failed to determine size of block device" msgid "failed to determine size of block device"
msgstr "" msgstr "lohkolaitteen koon päättely epäonnistui"
#: src/main/options.c:652 #: src/main/options.c:710
msgid "option structure allocation failed" msgid "option structure allocation failed"
msgstr "" msgstr ""
#: src/main/options.c:671 #: src/main/options.c:729
msgid "option structure argv allocation failed" msgid "option structure argv allocation failed"
msgstr "" msgstr ""
#: src/main/options.c:723 #: src/main/options.c:781
msgid "numeric value not understood" msgid "numeric value not understood"
msgstr "" msgstr "numeerista arvoa ei ymmärretty"
#: src/main/options.c:743 #: src/main/options.c:801
msgid "integer argument expected" msgid "integer argument expected"
msgstr "" msgstr ""
#: src/main/options.c:755 #: src/main/options.c:813
msgid "numeric argument expected" msgid "numeric argument expected"
msgstr "" msgstr ""
#: src/main/options.c:767 #: src/main/options.c:825
msgid "missing filename" msgid "missing filename"
msgstr "" msgstr "puuttuva tiedostonimi"
#: src/main/options.c:795 #: src/main/options.c:853
msgid "missing process name" msgid "missing process name"
msgstr "" msgstr "puuttuva prosessinimi"
#: src/main/options.c:1056 #: src/main/options.c:1114
#, c-format #, c-format
msgid "Try `%s --help' for more information." msgid "Try `%s --help' for more information."
msgstr "" msgstr "Suorita `%s --help' saadaksesi lisätietoja."
#: src/main/options.c:1058 #: src/main/options.c:1116
#, c-format #, c-format
msgid "Try `%s -h' for more information." msgid "Try `%s -h' for more information."
msgstr "" msgstr "Suorita `%s -h' saadaksesi lisätietoja."
#: src/main/options.c:1089 #: src/main/options.c:1147
msgid "" msgid ""
"cannot use line mode or transfer modifier options when watching file " "cannot use line mode or transfer modifier options when watching file "
"descriptors" "descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1098 #: src/main/options.c:1156
msgid "cannot use cursor positioning when watching file descriptors" msgid "cannot use cursor positioning when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1107 #: src/main/options.c:1165
msgid "cannot use remote control when watching file descriptors" msgid "cannot use remote control when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1116 #: src/main/options.c:1174
msgid "cannot use remote query when watching file descriptors" msgid "cannot use remote query when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1125 #: src/main/options.c:1183
msgid "cannot transfer files when watching file descriptors" msgid "cannot transfer files when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1150 #: src/main/options.c:1208
msgid "not available on systems without /proc/self/fdinfo" msgid "not available on systems without /proc/self/fdinfo"
msgstr "" msgstr ""
#: src/main/options.c:1162 #: src/main/options.c:1220
msgid "cannot use remote control and remote query together" msgid "cannot use remote control and remote query together"
msgstr "" msgstr ""
#: src/main/options.c:1189 #: src/main/options.c:1247
msgid "files cannot be specified with this option" msgid "files cannot be specified with this option"
msgstr "" msgstr ""
#: src/main/version.c:28 #: src/main/version.c:28
msgid "License: GPLv3+ <https://www.gnu.org/licenses/gpl-3.0.html>" msgid "License: GPLv3+ <https://www.gnu.org/licenses/gpl-3.0.html>"
msgstr "" msgstr "Lisenssi: GPLv3+ <https://www.gnu.org/licenses/gpl-3.0.html>"
#: src/main/version.c:29 #: src/main/version.c:29
msgid "This is free software: you are free to change and redistribute it." msgid "This is free software: you are free to change and redistribute it."
@@ -413,7 +417,7 @@ msgstr ""
#: src/main/version.c:32 #: src/main/version.c:32
msgid "Project web site" msgid "Project web site"
msgstr "" msgstr "Projektin verkkosivu"
#: src/pv/cursor.c:61 #: src/pv/cursor.c:61
msgid "failed to get terminal name" msgid "failed to get terminal name"
@@ -449,11 +453,11 @@ msgstr ""
#: src/pv/file.c:303 #: src/pv/file.c:303
msgid "failed to close file" msgid "failed to close file"
msgstr "" msgstr "tiedoston sulkeminen epäonnistui"
#: src/pv/file.c:335 #: src/pv/file.c:335
msgid "failed to read file" msgid "failed to read file"
msgstr "" msgstr "tiedoston lukeminen epäonnistui"
#: src/pv/file.c:350 #: src/pv/file.c:350
msgid "failed to stat output file" msgid "failed to stat output file"
@@ -461,7 +465,7 @@ msgstr ""
#: src/pv/file.c:372 #: src/pv/file.c:372
msgid "input file is output file" msgid "input file is output file"
msgstr "" msgstr "syötetiedosto on tulostetiedosto"
#: src/pv/file.c:429 #: src/pv/file.c:429
msgid "(none)" msgid "(none)"
@@ -530,7 +534,7 @@ msgstr ""
#: src/pv/remote.c:644 src/pv/remote.c:662 #: src/pv/remote.c:644 src/pv/remote.c:662
msgid "SA_SIGINFO not supported on this system" msgid "SA_SIGINFO not supported on this system"
msgstr "" msgstr "SA_SIGINFO ei ole tuettu tässä järjestelmässä"
#: src/pv/state.c:42 #: src/pv/state.c:42
msgid "history structure allocation failed" msgid "history structure allocation failed"
@@ -546,7 +550,7 @@ msgstr ""
#: src/pv/transfer.c:506 #: src/pv/transfer.c:506
msgid "warning: read errors detected" msgid "warning: read errors detected"
msgstr "" msgstr "varoitus: lukuvirheitä havaittu"
#: src/pv/transfer.c:522 #: src/pv/transfer.c:522
msgid "file is not seekable" msgid "file is not seekable"
@@ -578,7 +582,7 @@ msgstr ""
#: src/pv/transfer.c:996 #: src/pv/transfer.c:996
msgid "write failed" msgid "write failed"
msgstr "" msgstr "kirjoittaminen epäonnistui"
#: src/pv/transfer.c:1237 #: src/pv/transfer.c:1237
msgid "select call failed" msgid "select call failed"
@@ -586,4 +590,4 @@ msgstr ""
#: src/pv/watchpid.c:131 src/pv/watchpid.c:205 #: src/pv/watchpid.c:131 src/pv/watchpid.c:205
msgid "not a regular file or block device" msgid "not a regular file or block device"
msgstr "" msgstr "ei tavallinen tiedosto tai lohkolaite"
+30 -30
View File
@@ -1,7 +1,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n" "Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
"POT-Creation-Date: 2025-10-31 19:47+0000\n" "POT-Creation-Date: 2026-03-08 11:20+0000\n"
"PO-Revision-Date: 2025-05-31 08:58+0000\n" "PO-Revision-Date: 2025-05-31 08:58+0000\n"
"Last-Translator: milimarg <milimarg@noreply.codeberg.org>\n" "Last-Translator: milimarg <milimarg@noreply.codeberg.org>\n"
"Language-Team: French <https://translate.codeberg.org/projects/pv/pv/fr/>\n" "Language-Team: French <https://translate.codeberg.org/projects/pv/pv/fr/>\n"
@@ -14,9 +14,9 @@ msgstr ""
"From: Andrew Wood <ivarch@ubik>\n" "From: Andrew Wood <ivarch@ubik>\n"
"Xgettext-Options: --default-domain=pkgbuild --directory=./.pkgdir --add-" "Xgettext-Options: --default-domain=pkgbuild --directory=./.pkgdir --add-"
"comments --keyword=_ --keyword=N_\n" "comments --keyword=_ --keyword=N_\n"
"Files: src/getopt/getopt.c src/getopt/getopt1.c src/version.c src/main/init." "Files: src/getopt/getopt.c src/getopt/getopt1.c src/version.c src/main/"
"c src/main/help.c src/main/xpmptr.c src/guts/load.c src/guts/stop.c src/guts/" "init.c src/main/help.c src/main/xpmptr.c src/guts/load.c src/guts/stop.c src/"
"configure.c src/guts/make.c src/guts/install.c src/guts/prefs.c src/ui/" "guts/configure.c src/guts/make.c src/guts/install.c src/guts/prefs.c src/ui/"
"generate.c src/ui/main.c src/ui/xpm.c src/ui/status.c src/ui/activate.c src/" "generate.c src/ui/main.c src/ui/xpm.c src/ui/status.c src/ui/activate.c src/"
"ui/handlers/main.c src/ui/handlers/package.c src/ui/handlers/prefs.c src/ui/" "ui/handlers/main.c src/ui/handlers/package.c src/ui/handlers/prefs.c src/ui/"
"handlers/dirsel.c src/ui/handlers/popup.c src/ui/handlers/help.c src/ui/" "handlers/dirsel.c src/ui/handlers/popup.c src/ui/handlers/help.c src/ui/"
@@ -312,81 +312,81 @@ msgstr "(entrée)"
msgid "state allocation failed" msgid "state allocation failed"
msgstr "échec de l'allocation de mémoire de condition" msgstr "échec de l'allocation de mémoire de condition"
#: src/main/options.c:370 #: src/main/options.c:374
msgid "list files may not contain @ lines" msgid "list files may not contain @ lines"
msgstr "" msgstr ""
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:807 #: src/main/options.c:395 src/main/options.c:397 src/main/options.c:865
msgid "process ID or pid:fd pair expected" msgid "process ID or pid:fd pair expected"
msgstr "ID de processus ou paire pid:fd attendue" msgstr "ID de processus ou paire pid:fd attendue"
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:814 #: src/main/options.c:407 src/main/options.c:409 src/main/options.c:872
msgid "invalid process ID" msgid "invalid process ID"
msgstr "ID de processus non valide" msgstr "ID de processus non valide"
#: src/main/options.c:448 src/pv/file.c:342 #: src/main/options.c:476 src/pv/file.c:342
msgid "failed to stat file" msgid "failed to stat file"
msgstr "échec à statuer sur le fichier" msgstr "échec à statuer sur le fichier"
#: src/main/options.c:462 #: src/main/options.c:519
msgid "is a directory" msgid "is a directory"
msgstr "est un répertoire" msgstr "est un répertoire"
#: src/main/options.c:491 #: src/main/options.c:549
msgid "failed to generate sysfs filename" msgid "failed to generate sysfs filename"
msgstr "échec de génération du nom de fichier sysfs" msgstr "échec de génération du nom de fichier sysfs"
#: src/main/options.c:513 #: src/main/options.c:571
msgid "failed to read sysfs size file" msgid "failed to read sysfs size file"
msgstr "échec de la lecture de la taille du fichier sysfs" msgstr "échec de la lecture de la taille du fichier sysfs"
#: src/main/options.c:533 #: src/main/options.c:591
msgid "failed to open block device" msgid "failed to open block device"
msgstr "échec de l'ouverture du périphérique de bloc" msgstr "échec de l'ouverture du périphérique de bloc"
#: src/main/options.c:543 #: src/main/options.c:601
msgid "failed to determine size of block device" msgid "failed to determine size of block device"
msgstr "échec de l'évaluation de la taille du périphérique de bloc" msgstr "échec de l'évaluation de la taille du périphérique de bloc"
#: src/main/options.c:652 #: src/main/options.c:710
msgid "option structure allocation failed" msgid "option structure allocation failed"
msgstr "l'allocation pour la structure d'une option a échoué" msgstr "l'allocation pour la structure d'une option a échoué"
#: src/main/options.c:671 #: src/main/options.c:729
msgid "option structure argv allocation failed" msgid "option structure argv allocation failed"
msgstr "l'allocation pour la structure de l'option argv a échoué" msgstr "l'allocation pour la structure de l'option argv a échoué"
#: src/main/options.c:723 #: src/main/options.c:781
msgid "numeric value not understood" msgid "numeric value not understood"
msgstr "valeur numérique non comprise" msgstr "valeur numérique non comprise"
#: src/main/options.c:743 #: src/main/options.c:801
msgid "integer argument expected" msgid "integer argument expected"
msgstr "Valeur entière attendue" msgstr "Valeur entière attendue"
#: src/main/options.c:755 #: src/main/options.c:813
msgid "numeric argument expected" msgid "numeric argument expected"
msgstr "Valeur numérique attendue" msgstr "Valeur numérique attendue"
#: src/main/options.c:767 #: src/main/options.c:825
msgid "missing filename" msgid "missing filename"
msgstr "" msgstr ""
#: src/main/options.c:795 #: src/main/options.c:853
msgid "missing process name" msgid "missing process name"
msgstr "" msgstr ""
#: src/main/options.c:1056 #: src/main/options.c:1114
#, c-format #, c-format
msgid "Try `%s --help' for more information." msgid "Try `%s --help' for more information."
msgstr "Essayez `%s --help' pour plus d'informations." msgstr "Essayez `%s --help' pour plus d'informations."
#: src/main/options.c:1058 #: src/main/options.c:1116
#, c-format #, c-format
msgid "Try `%s -h' for more information." msgid "Try `%s -h' for more information."
msgstr "Essayez `%s -h' pour plus d'informations." msgstr "Essayez `%s -h' pour plus d'informations."
#: src/main/options.c:1089 #: src/main/options.c:1147
msgid "" msgid ""
"cannot use line mode or transfer modifier options when watching file " "cannot use line mode or transfer modifier options when watching file "
"descriptors" "descriptors"
@@ -394,37 +394,37 @@ msgstr ""
"impossible d'utiliser le mode ligne ou les options de modificateur de " "impossible d'utiliser le mode ligne ou les options de modificateur de "
"transfert lors de la visualisation des descripteurs de fichiers" "transfert lors de la visualisation des descripteurs de fichiers"
#: src/main/options.c:1098 #: src/main/options.c:1156
msgid "cannot use cursor positioning when watching file descriptors" msgid "cannot use cursor positioning when watching file descriptors"
msgstr "" msgstr ""
"impossible d'utiliser le positionnement du curseur lors de la visualisation " "impossible d'utiliser le positionnement du curseur lors de la visualisation "
"des descripteurs de fichier" "des descripteurs de fichier"
#: src/main/options.c:1107 #: src/main/options.c:1165
msgid "cannot use remote control when watching file descriptors" msgid "cannot use remote control when watching file descriptors"
msgstr "" msgstr ""
"impossible d'utiliser la télécommande lors de la visualisation des " "impossible d'utiliser la télécommande lors de la visualisation des "
"descripteurs de fichiers" "descripteurs de fichiers"
#: src/main/options.c:1116 #: src/main/options.c:1174
msgid "cannot use remote query when watching file descriptors" msgid "cannot use remote query when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1125 #: src/main/options.c:1183
msgid "cannot transfer files when watching file descriptors" msgid "cannot transfer files when watching file descriptors"
msgstr "" msgstr ""
"impossible de transférer des fichiers lorsque vous regardez des descripteurs " "impossible de transférer des fichiers lorsque vous regardez des descripteurs "
"de fichiers" "de fichiers"
#: src/main/options.c:1150 #: src/main/options.c:1208
msgid "not available on systems without /proc/self/fdinfo" msgid "not available on systems without /proc/self/fdinfo"
msgstr "non disponible sur les systèmes sans /proc/self/fdinfo" msgstr "non disponible sur les systèmes sans /proc/self/fdinfo"
#: src/main/options.c:1162 #: src/main/options.c:1220
msgid "cannot use remote control and remote query together" msgid "cannot use remote control and remote query together"
msgstr "" msgstr ""
#: src/main/options.c:1189 #: src/main/options.c:1247
msgid "files cannot be specified with this option" msgid "files cannot be specified with this option"
msgstr "" msgstr ""
+589
View File
@@ -0,0 +1,589 @@
msgid ""
msgstr ""
"Project-Id-Version: pv 1.9.34\n"
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
"POT-Creation-Date: 2026-03-08 11:20+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: ka\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/main/help.c:236
msgid "show progress bar"
msgstr ""
#: src/main/help.c:239
msgid "show elapsed time"
msgstr ""
#: src/main/help.c:242
msgid "show estimated time of arrival (completion)"
msgstr ""
#: src/main/help.c:245
msgid "show absolute estimated time of arrival (completion)"
msgstr ""
#: src/main/help.c:248
msgid "show data transfer rate counter"
msgstr ""
#: src/main/help.c:251
msgid "show data transfer average rate counter"
msgstr ""
#: src/main/help.c:254
msgid "show number of bytes transferred"
msgstr ""
#: src/main/help.c:257
msgid "show percentage of transfer buffer in use"
msgstr ""
#: src/main/help.c:259
msgid "NUM"
msgstr ""
#: src/main/help.c:260
msgid "show NUM bytes last written"
msgstr ""
#: src/main/help.c:262
msgid "FORMAT"
msgstr ""
#: src/main/help.c:263
msgid "set output format to FORMAT"
msgstr ""
#: src/main/help.c:266
msgid "output percentages, not visual information"
msgstr ""
#: src/main/help.c:269
msgid "do not output any transfer information at all"
msgstr ""
#: src/main/help.c:273
msgid "show number of bits transferred"
msgstr ""
#: src/main/help.c:276
msgid "treat suffixes as multiples of 1000 rather than 1024"
msgstr ""
#: src/main/help.c:279
msgid "display nothing until first byte transferred"
msgstr ""
#: src/main/help.c:281 src/main/help.c:296 src/main/help.c:299
msgid "SEC"
msgstr ""
#: src/main/help.c:282
msgid "display nothing until SEC seconds have passed"
msgstr ""
#: src/main/help.c:284
msgid "SIZE"
msgstr ""
#: src/main/help.c:285
msgid "set estimated data size to SIZE bytes"
msgstr ""
#: src/main/help.c:288
msgid "if size unknown, show rate vs max rate"
msgstr ""
#: src/main/help.c:291
msgid "count lines instead of bytes"
msgstr ""
#: src/main/help.c:294
msgid "lines are null-terminated"
msgstr ""
#: src/main/help.c:297
msgid "update every SEC seconds"
msgstr ""
#: src/main/help.c:300
msgid "compute average rate over past SEC seconds (default 30s)"
msgstr ""
#: src/main/help.c:302
msgid "WIDTH"
msgstr ""
#: src/main/help.c:303
msgid "assume terminal is WIDTH characters wide"
msgstr ""
#: src/main/help.c:305
msgid "HEIGHT"
msgstr ""
#: src/main/help.c:306
msgid "assume terminal is HEIGHT rows high"
msgstr ""
#: src/main/help.c:308
msgid "NAME"
msgstr ""
#: src/main/help.c:309
msgid "prefix visual information with NAME"
msgstr ""
#: src/main/help.c:311
msgid "STYLE"
msgstr ""
#: src/main/help.c:312
msgid "set default bar style to NAME"
msgstr ""
#: src/main/help.c:314
msgid "SPEC"
msgstr ""
#: src/main/help.c:315
msgid "also send progress to SPEC"
msgstr ""
#: src/main/help.c:318
msgid "output transfer statistics at the end"
msgstr ""
#: src/main/help.c:321
msgid "output even if standard error is not a terminal"
msgstr ""
#: src/main/help.c:324
msgid "use cursor positioning escape sequences"
msgstr ""
#: src/main/help.c:327 src/main/help.c:360 src/main/help.c:376
#: src/main/help.c:386
msgid "FILE"
msgstr ""
#: src/main/help.c:328
msgid "write output to FILE instead of stdout"
msgstr ""
#: src/main/help.c:330
msgid "RATE"
msgstr ""
#: src/main/help.c:331
msgid "limit transfer to RATE bytes per second"
msgstr ""
#: src/main/help.c:333 src/main/help.c:342
msgid "BYTES"
msgstr ""
#: src/main/help.c:334
msgid "use a buffer size of BYTES"
msgstr ""
#: src/main/help.c:337
msgid "never use splice(), always use read/write"
msgstr ""
#: src/main/help.c:340
msgid "skip read errors in input"
msgstr ""
#: src/main/help.c:343
msgid "skip errors in BYTES blocks at a time"
msgstr ""
#: src/main/help.c:346
msgid "stop after --size bytes have been transferred"
msgstr ""
#: src/main/help.c:349
msgid "flush cache to disk after every write"
msgstr ""
#: src/main/help.c:352
msgid "use direct I/O to bypass cache"
msgstr ""
#: src/main/help.c:355
msgid "try to seek instead of writing null bytes"
msgstr ""
#: src/main/help.c:358
msgid "discard input instead of writing to output"
msgstr ""
#: src/main/help.c:361
msgid "write all input to FILE before writing to output"
msgstr ""
#: src/main/help.c:364
msgid "PID[:FD]|=NAME|@LISTFILE"
msgstr ""
#: src/main/help.c:365
msgid "watch file FD opened by process PID"
msgstr ""
#: src/main/help.c:368 src/main/help.c:371
msgid "PID"
msgstr ""
#: src/main/help.c:369
msgid "update settings of process PID"
msgstr ""
#: src/main/help.c:372
msgid "show progress of process PID"
msgstr ""
#: src/main/help.c:377
msgid "save process ID in FILE"
msgstr ""
#: src/main/help.c:380
msgid "show this help and exit"
msgstr ""
#: src/main/help.c:383
msgid "show version information and exit"
msgstr ""
#: src/main/help.c:387
msgid "write debug logs to FILE"
msgstr ""
#: src/main/help.c:413
#, c-format
msgid "Usage: %s [OPTION] [FILE]..."
msgstr ""
#: src/main/help.c:424
msgid ""
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
msgstr ""
#: src/main/help.c:562
msgid "Supported format sequences:"
msgstr ""
#: src/main/help.c:576
#, c-format
msgid "Please report any bugs to: %s"
msgstr ""
#: src/main/main.c:228
msgid "(input)"
msgstr ""
#: src/main/main.c:330
msgid "state allocation failed"
msgstr ""
#: src/main/options.c:374
msgid "list files may not contain @ lines"
msgstr ""
#: src/main/options.c:395 src/main/options.c:397 src/main/options.c:865
msgid "process ID or pid:fd pair expected"
msgstr ""
#: src/main/options.c:407 src/main/options.c:409 src/main/options.c:872
msgid "invalid process ID"
msgstr ""
#: src/main/options.c:476 src/pv/file.c:342
msgid "failed to stat file"
msgstr ""
#: src/main/options.c:519
msgid "is a directory"
msgstr ""
#: src/main/options.c:549
msgid "failed to generate sysfs filename"
msgstr ""
#: src/main/options.c:571
msgid "failed to read sysfs size file"
msgstr ""
#: src/main/options.c:591
msgid "failed to open block device"
msgstr ""
#: src/main/options.c:601
msgid "failed to determine size of block device"
msgstr ""
#: src/main/options.c:710
msgid "option structure allocation failed"
msgstr ""
#: src/main/options.c:729
msgid "option structure argv allocation failed"
msgstr ""
#: src/main/options.c:781
msgid "numeric value not understood"
msgstr ""
#: src/main/options.c:801
msgid "integer argument expected"
msgstr ""
#: src/main/options.c:813
msgid "numeric argument expected"
msgstr ""
#: src/main/options.c:825
msgid "missing filename"
msgstr ""
#: src/main/options.c:853
msgid "missing process name"
msgstr ""
#: src/main/options.c:1114
#, c-format
msgid "Try `%s --help' for more information."
msgstr ""
#: src/main/options.c:1116
#, c-format
msgid "Try `%s -h' for more information."
msgstr ""
#: src/main/options.c:1147
msgid ""
"cannot use line mode or transfer modifier options when watching file "
"descriptors"
msgstr ""
#: src/main/options.c:1156
msgid "cannot use cursor positioning when watching file descriptors"
msgstr ""
#: src/main/options.c:1165
msgid "cannot use remote control when watching file descriptors"
msgstr ""
#: src/main/options.c:1174
msgid "cannot use remote query when watching file descriptors"
msgstr ""
#: src/main/options.c:1183
msgid "cannot transfer files when watching file descriptors"
msgstr ""
#: src/main/options.c:1208
msgid "not available on systems without /proc/self/fdinfo"
msgstr ""
#: src/main/options.c:1220
msgid "cannot use remote control and remote query together"
msgstr ""
#: src/main/options.c:1247
msgid "files cannot be specified with this option"
msgstr ""
#: src/main/version.c:28
msgid "License: GPLv3+ <https://www.gnu.org/licenses/gpl-3.0.html>"
msgstr ""
#: src/main/version.c:29
msgid "This is free software: you are free to change and redistribute it."
msgstr ""
#: src/main/version.c:30
msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr ""
#: src/main/version.c:32
msgid "Project web site"
msgstr ""
#: src/pv/cursor.c:61
msgid "failed to get terminal name"
msgstr ""
#: src/pv/cursor.c:106
msgid "failed to open lock file"
msgstr ""
#: src/pv/cursor.c:139
msgid "lock attempt failed"
msgstr ""
#: src/pv/cursor.c:400
msgid "failed to open terminal"
msgstr ""
#: src/pv/display.c:285
msgid "yzafpnum kMGTPEZY"
msgstr ""
#: src/pv/display.c:303
msgid "yzafpnum KMGTPEZY"
msgstr ""
#: src/pv/display.c:1053 src/pv/state.c:842 src/pv/transfer.c:1135
msgid "buffer allocation failed"
msgstr ""
#: src/pv/file.c:153
msgid "failed to seek to start of output"
msgstr ""
#: src/pv/file.c:303
msgid "failed to close file"
msgstr ""
#: src/pv/file.c:335
msgid "failed to read file"
msgstr ""
#: src/pv/file.c:350
msgid "failed to stat output file"
msgstr ""
#: src/pv/file.c:372
msgid "input file is output file"
msgstr ""
#: src/pv/file.c:429
msgid "(none)"
msgstr ""
#: src/pv/file.c:431
msgid "(stdin)"
msgstr ""
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:92
#: src/pv/format/rate.c:36 src/pv/loop.c:121
msgid "b/s"
msgstr ""
#: src/pv/format/averagerate.c:38 src/pv/format/progressbar.c:96
#: src/pv/format/rate.c:40
msgid "/s"
msgstr ""
#: src/pv/format/averagerate.c:38 src/pv/format/progressbar.c:96
#: src/pv/format/rate.c:40 src/pv/loop.c:121
msgid "B/s"
msgstr ""
#: src/pv/format/bytes.c:35
msgid "b"
msgstr ""
#: src/pv/format/bytes.c:39 src/pv/transfer.c:620
msgid "B"
msgstr ""
#: src/pv/format/eta.c:52 src/pv/format/eta.c:56
msgid "ETA"
msgstr ""
#: src/pv/format/fineta.c:80
msgid "FIN"
msgstr ""
#: src/pv/loop.c:120
msgid "rate min/avg/max/mdev"
msgstr ""
#: src/pv/loop.c:132
msgid "rate not measured"
msgstr ""
#: src/pv/loop.c:802 src/pv/loop.c:818 src/pv/loop.c:836 src/pv/watchpid.c:101
#: src/pv/watchpid.c:110 src/pv/watchpid.c:121 src/pv/watchpid.c:129
#: src/pv/watchpid.c:166 src/pv/watchpid.c:185 src/pv/watchpid.c:193
#: src/pv/watchpid.c:203 src/pv/watchpid.c:307 src/pv/watchpid.c:315
#: src/pv/watchpid.c:447 src/pv/watchpid.c:470
msgid "pid"
msgstr ""
#: src/pv/loop.c:836 src/pv/watchpid.c:110 src/pv/watchpid.c:122
#: src/pv/watchpid.c:131 src/pv/watchpid.c:185 src/pv/watchpid.c:194
#: src/pv/watchpid.c:205
msgid "fd"
msgstr ""
#: src/pv/remote.c:237 src/pv/remote.c:622
msgid "message not received"
msgstr ""
#: src/pv/remote.c:644 src/pv/remote.c:662
msgid "SA_SIGINFO not supported on this system"
msgstr ""
#: src/pv/state.c:42
msgid "history structure allocation failed"
msgstr ""
#: src/pv/state.c:794 src/pv/state.c:806
msgid "file list allocation failed"
msgstr ""
#: src/pv/transfer.c:490
msgid "read failed"
msgstr ""
#: src/pv/transfer.c:506
msgid "warning: read errors detected"
msgstr ""
#: src/pv/transfer.c:522
msgid "file is not seekable"
msgstr ""
#: src/pv/transfer.c:599
msgid "failed to seek past error"
msgstr ""
#: src/pv/transfer.c:619
msgid "skipped past read error"
msgstr ""
#: src/pv/transfer.c:663
msgid "no transfer buffer allocated"
msgstr ""
#: src/pv/transfer.c:751
msgid "failed to set interval timer"
msgstr ""
#: src/pv/transfer.c:777
msgid "failed to clear interval timer"
msgstr ""
#: src/pv/transfer.c:822
msgid "line position buffer allocation failed"
msgstr ""
#: src/pv/transfer.c:996
msgid "write failed"
msgstr ""
#: src/pv/transfer.c:1237
msgid "select call failed"
msgstr ""
#: src/pv/watchpid.c:131 src/pv/watchpid.c:205
msgid "not a regular file or block device"
msgstr ""
+27 -27
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n" "Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
"POT-Creation-Date: 2025-10-31 19:47+0000\n" "POT-Creation-Date: 2026-03-08 11:20+0000\n"
"PO-Revision-Date: 2025-10-02 13:23+0000\n" "PO-Revision-Date: 2025-10-02 13:23+0000\n"
"Last-Translator: Coral Pink <coralpink@noreply.codeberg.org>\n" "Last-Translator: Coral Pink <coralpink@noreply.codeberg.org>\n"
"Language-Team: Polish <https://translate.codeberg.org/projects/pv/pv/pl/>\n" "Language-Team: Polish <https://translate.codeberg.org/projects/pv/pv/pl/>\n"
@@ -306,81 +306,81 @@ msgstr "(wejście)"
msgid "state allocation failed" msgid "state allocation failed"
msgstr "alokacja stanu programu nie powiodła się" msgstr "alokacja stanu programu nie powiodła się"
#: src/main/options.c:370 #: src/main/options.c:374
msgid "list files may not contain @ lines" msgid "list files may not contain @ lines"
msgstr "" msgstr ""
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:807 #: src/main/options.c:395 src/main/options.c:397 src/main/options.c:865
msgid "process ID or pid:fd pair expected" msgid "process ID or pid:fd pair expected"
msgstr "oczekiwany proces ID lub para PID:FD" msgstr "oczekiwany proces ID lub para PID:FD"
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:814 #: src/main/options.c:407 src/main/options.c:409 src/main/options.c:872
msgid "invalid process ID" msgid "invalid process ID"
msgstr "niepoprawne ID procesu" msgstr "niepoprawne ID procesu"
#: src/main/options.c:448 src/pv/file.c:342 #: src/main/options.c:476 src/pv/file.c:342
msgid "failed to stat file" msgid "failed to stat file"
msgstr "nie udało się wykonać operacji stat na pliku" msgstr "nie udało się wykonać operacji stat na pliku"
#: src/main/options.c:462 #: src/main/options.c:519
msgid "is a directory" msgid "is a directory"
msgstr "jest katalogiem" msgstr "jest katalogiem"
#: src/main/options.c:491 #: src/main/options.c:549
msgid "failed to generate sysfs filename" msgid "failed to generate sysfs filename"
msgstr "nie udało się wygenerować nazwy pliku dla sysfs" msgstr "nie udało się wygenerować nazwy pliku dla sysfs"
#: src/main/options.c:513 #: src/main/options.c:571
msgid "failed to read sysfs size file" msgid "failed to read sysfs size file"
msgstr "nie udało się odczytać rozmiaru pliku sysfs" msgstr "nie udało się odczytać rozmiaru pliku sysfs"
#: src/main/options.c:533 #: src/main/options.c:591
msgid "failed to open block device" msgid "failed to open block device"
msgstr "nie udało się otworzyć urządzenia blokowego" msgstr "nie udało się otworzyć urządzenia blokowego"
#: src/main/options.c:543 #: src/main/options.c:601
msgid "failed to determine size of block device" msgid "failed to determine size of block device"
msgstr "nie udało się ustalić rozmiaru urządzenia blokowego" msgstr "nie udało się ustalić rozmiaru urządzenia blokowego"
#: src/main/options.c:652 #: src/main/options.c:710
msgid "option structure allocation failed" msgid "option structure allocation failed"
msgstr "nie udało się zaalokować struktur opcji" msgstr "nie udało się zaalokować struktur opcji"
#: src/main/options.c:671 #: src/main/options.c:729
msgid "option structure argv allocation failed" msgid "option structure argv allocation failed"
msgstr "nie udało się zaalokować struktur opcji argv" msgstr "nie udało się zaalokować struktur opcji argv"
#: src/main/options.c:723 #: src/main/options.c:781
msgid "numeric value not understood" msgid "numeric value not understood"
msgstr "wartość liczbowa niezrozumiana" msgstr "wartość liczbowa niezrozumiana"
#: src/main/options.c:743 #: src/main/options.c:801
msgid "integer argument expected" msgid "integer argument expected"
msgstr "oczekiwany argument typu liczby całkowitej" msgstr "oczekiwany argument typu liczby całkowitej"
#: src/main/options.c:755 #: src/main/options.c:813
msgid "numeric argument expected" msgid "numeric argument expected"
msgstr "oczekiwany argument liczbowy" msgstr "oczekiwany argument liczbowy"
#: src/main/options.c:767 #: src/main/options.c:825
msgid "missing filename" msgid "missing filename"
msgstr "" msgstr ""
#: src/main/options.c:795 #: src/main/options.c:853
msgid "missing process name" msgid "missing process name"
msgstr "" msgstr ""
#: src/main/options.c:1056 #: src/main/options.c:1114
#, c-format #, c-format
msgid "Try `%s --help' for more information." msgid "Try `%s --help' for more information."
msgstr "Spróbuj `%s --help' by uzyskać więcej informacji." msgstr "Spróbuj `%s --help' by uzyskać więcej informacji."
#: src/main/options.c:1058 #: src/main/options.c:1116
#, c-format #, c-format
msgid "Try `%s -h' for more information." msgid "Try `%s -h' for more information."
msgstr "Spróbuj `%s -h' by uzyskać więcej informacji." msgstr "Spróbuj `%s -h' by uzyskać więcej informacji."
#: src/main/options.c:1089 #: src/main/options.c:1147
msgid "" msgid ""
"cannot use line mode or transfer modifier options when watching file " "cannot use line mode or transfer modifier options when watching file "
"descriptors" "descriptors"
@@ -388,35 +388,35 @@ msgstr ""
"nie można użyć trybu zliczania linii lub opcji modyfikujących przesył " "nie można użyć trybu zliczania linii lub opcji modyfikujących przesył "
"łącznie z opcją obserwowania deskryptorów plików" "łącznie z opcją obserwowania deskryptorów plików"
#: src/main/options.c:1098 #: src/main/options.c:1156
msgid "cannot use cursor positioning when watching file descriptors" msgid "cannot use cursor positioning when watching file descriptors"
msgstr "" msgstr ""
"nie można użyć pozycjonowania kursora łącznie z opcją obserwowania " "nie można użyć pozycjonowania kursora łącznie z opcją obserwowania "
"deskryptorów plików" "deskryptorów plików"
#: src/main/options.c:1107 #: src/main/options.c:1165
msgid "cannot use remote control when watching file descriptors" msgid "cannot use remote control when watching file descriptors"
msgstr "" msgstr ""
"nie można użyć opcji zaktualizowania ustawień procesu łącznie z opcją " "nie można użyć opcji zaktualizowania ustawień procesu łącznie z opcją "
"obserwowania deskryptorów plików" "obserwowania deskryptorów plików"
#: src/main/options.c:1116 #: src/main/options.c:1174
msgid "cannot use remote query when watching file descriptors" msgid "cannot use remote query when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1125 #: src/main/options.c:1183
msgid "cannot transfer files when watching file descriptors" msgid "cannot transfer files when watching file descriptors"
msgstr "nie można przesyłać plików z opcją obserwowania deskryptorów plików" msgstr "nie można przesyłać plików z opcją obserwowania deskryptorów plików"
#: src/main/options.c:1150 #: src/main/options.c:1208
msgid "not available on systems without /proc/self/fdinfo" msgid "not available on systems without /proc/self/fdinfo"
msgstr "niedostępne na systemach bez /proc/self/fdinfo" msgstr "niedostępne na systemach bez /proc/self/fdinfo"
#: src/main/options.c:1162 #: src/main/options.c:1220
msgid "cannot use remote control and remote query together" msgid "cannot use remote control and remote query together"
msgstr "" msgstr ""
#: src/main/options.c:1189 #: src/main/options.c:1247
msgid "files cannot be specified with this option" msgid "files cannot be specified with this option"
msgstr "" msgstr ""
+27 -27
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n" "Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
"POT-Creation-Date: 2025-10-31 19:47+0000\n" "POT-Creation-Date: 2026-03-08 11:20+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -297,81 +297,81 @@ msgstr ""
msgid "state allocation failed" msgid "state allocation failed"
msgstr "alocação de memória de status falhou" msgstr "alocação de memória de status falhou"
#: src/main/options.c:370 #: src/main/options.c:374
msgid "list files may not contain @ lines" msgid "list files may not contain @ lines"
msgstr "" msgstr ""
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:807 #: src/main/options.c:395 src/main/options.c:397 src/main/options.c:865
msgid "process ID or pid:fd pair expected" msgid "process ID or pid:fd pair expected"
msgstr "ID do processo ou par pid:fd esperado" msgstr "ID do processo ou par pid:fd esperado"
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:814 #: src/main/options.c:407 src/main/options.c:409 src/main/options.c:872
msgid "invalid process ID" msgid "invalid process ID"
msgstr "ID de processo inválido" msgstr "ID de processo inválido"
#: src/main/options.c:448 src/pv/file.c:342 #: src/main/options.c:476 src/pv/file.c:342
msgid "failed to stat file" msgid "failed to stat file"
msgstr "erro obtendo informações do arquivo" msgstr "erro obtendo informações do arquivo"
#: src/main/options.c:462 #: src/main/options.c:519
msgid "is a directory" msgid "is a directory"
msgstr "" msgstr ""
#: src/main/options.c:491 #: src/main/options.c:549
msgid "failed to generate sysfs filename" msgid "failed to generate sysfs filename"
msgstr "" msgstr ""
#: src/main/options.c:513 #: src/main/options.c:571
msgid "failed to read sysfs size file" msgid "failed to read sysfs size file"
msgstr "" msgstr ""
#: src/main/options.c:533 #: src/main/options.c:591
msgid "failed to open block device" msgid "failed to open block device"
msgstr "" msgstr ""
#: src/main/options.c:543 #: src/main/options.c:601
msgid "failed to determine size of block device" msgid "failed to determine size of block device"
msgstr "" msgstr ""
#: src/main/options.c:652 #: src/main/options.c:710
msgid "option structure allocation failed" msgid "option structure allocation failed"
msgstr "erro na alocação da estrutura de opções" msgstr "erro na alocação da estrutura de opções"
#: src/main/options.c:671 #: src/main/options.c:729
msgid "option structure argv allocation failed" msgid "option structure argv allocation failed"
msgstr "erro na alocação da estrutura de opções argv" msgstr "erro na alocação da estrutura de opções argv"
#: src/main/options.c:723 #: src/main/options.c:781
msgid "numeric value not understood" msgid "numeric value not understood"
msgstr "" msgstr ""
#: src/main/options.c:743 #: src/main/options.c:801
msgid "integer argument expected" msgid "integer argument expected"
msgstr "argumento inteiro esperado" msgstr "argumento inteiro esperado"
#: src/main/options.c:755 #: src/main/options.c:813
msgid "numeric argument expected" msgid "numeric argument expected"
msgstr "argumento numérico esperado" msgstr "argumento numérico esperado"
#: src/main/options.c:767 #: src/main/options.c:825
msgid "missing filename" msgid "missing filename"
msgstr "" msgstr ""
#: src/main/options.c:795 #: src/main/options.c:853
msgid "missing process name" msgid "missing process name"
msgstr "" msgstr ""
#: src/main/options.c:1056 #: src/main/options.c:1114
#, c-format #, c-format
msgid "Try `%s --help' for more information." msgid "Try `%s --help' for more information."
msgstr "Tente `%s --help' para maiores informações." msgstr "Tente `%s --help' para maiores informações."
#: src/main/options.c:1058 #: src/main/options.c:1116
#, c-format #, c-format
msgid "Try `%s -h' for more information." msgid "Try `%s -h' for more information."
msgstr "Tente `%s -h' para maiores informações." msgstr "Tente `%s -h' para maiores informações."
#: src/main/options.c:1089 #: src/main/options.c:1147
msgid "" msgid ""
"cannot use line mode or transfer modifier options when watching file " "cannot use line mode or transfer modifier options when watching file "
"descriptors" "descriptors"
@@ -379,33 +379,33 @@ msgstr ""
"não pode usar o modo de linha ou opções de modificador de transferência ao " "não pode usar o modo de linha ou opções de modificador de transferência ao "
"assistir os descritores de arquivo" "assistir os descritores de arquivo"
#: src/main/options.c:1098 #: src/main/options.c:1156
msgid "cannot use cursor positioning when watching file descriptors" msgid "cannot use cursor positioning when watching file descriptors"
msgstr "" msgstr ""
"não pode usar o posicionamento do cursor ao observar os descritores de " "não pode usar o posicionamento do cursor ao observar os descritores de "
"arquivo" "arquivo"
#: src/main/options.c:1107 #: src/main/options.c:1165
msgid "cannot use remote control when watching file descriptors" msgid "cannot use remote control when watching file descriptors"
msgstr "não pode usar o controle remoto ao assistir os descritores de arquivo" msgstr "não pode usar o controle remoto ao assistir os descritores de arquivo"
#: src/main/options.c:1116 #: src/main/options.c:1174
msgid "cannot use remote query when watching file descriptors" msgid "cannot use remote query when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1125 #: src/main/options.c:1183
msgid "cannot transfer files when watching file descriptors" msgid "cannot transfer files when watching file descriptors"
msgstr "não pode transferir arquivos ao assistir descritores de arquivo" msgstr "não pode transferir arquivos ao assistir descritores de arquivo"
#: src/main/options.c:1150 #: src/main/options.c:1208
msgid "not available on systems without /proc/self/fdinfo" msgid "not available on systems without /proc/self/fdinfo"
msgstr "não disponível em sistemas sem /proc/self/fdinfo" msgstr "não disponível em sistemas sem /proc/self/fdinfo"
#: src/main/options.c:1162 #: src/main/options.c:1220
msgid "cannot use remote control and remote query together" msgid "cannot use remote control and remote query together"
msgstr "" msgstr ""
#: src/main/options.c:1189 #: src/main/options.c:1247
msgid "files cannot be specified with this option" msgid "files cannot be specified with this option"
msgstr "" msgstr ""
+27 -27
View File
@@ -1,7 +1,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n" "Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
"POT-Creation-Date: 2025-10-31 19:47+0000\n" "POT-Creation-Date: 2026-03-08 11:20+0000\n"
"PO-Revision-Date: 2025-01-15 19:08+0000\n" "PO-Revision-Date: 2025-01-15 19:08+0000\n"
"Last-Translator: 0ko <0ko@users.noreply.translate.codeberg.org>\n" "Last-Translator: 0ko <0ko@users.noreply.translate.codeberg.org>\n"
"Language-Team: Russian <https://translate.codeberg.org/projects/pv/pv/ru/>\n" "Language-Team: Russian <https://translate.codeberg.org/projects/pv/pv/ru/>\n"
@@ -294,111 +294,111 @@ msgstr "(ввод)"
msgid "state allocation failed" msgid "state allocation failed"
msgstr "" msgstr ""
#: src/main/options.c:370 #: src/main/options.c:374
msgid "list files may not contain @ lines" msgid "list files may not contain @ lines"
msgstr "" msgstr ""
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:807 #: src/main/options.c:395 src/main/options.c:397 src/main/options.c:865
msgid "process ID or pid:fd pair expected" msgid "process ID or pid:fd pair expected"
msgstr "ожидался ИД процесса или пара ИДпр:ДФ" msgstr "ожидался ИД процесса или пара ИДпр:ДФ"
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:814 #: src/main/options.c:407 src/main/options.c:409 src/main/options.c:872
msgid "invalid process ID" msgid "invalid process ID"
msgstr "неправильный ИД процесса" msgstr "неправильный ИД процесса"
#: src/main/options.c:448 src/pv/file.c:342 #: src/main/options.c:476 src/pv/file.c:342
msgid "failed to stat file" msgid "failed to stat file"
msgstr "не удалось получить информацию о файле" msgstr "не удалось получить информацию о файле"
#: src/main/options.c:462 #: src/main/options.c:519
msgid "is a directory" msgid "is a directory"
msgstr "является каталогом" msgstr "является каталогом"
#: src/main/options.c:491 #: src/main/options.c:549
msgid "failed to generate sysfs filename" msgid "failed to generate sysfs filename"
msgstr "не удалось создать имя файла sysfs" msgstr "не удалось создать имя файла sysfs"
#: src/main/options.c:513 #: src/main/options.c:571
msgid "failed to read sysfs size file" msgid "failed to read sysfs size file"
msgstr "не удалось узнать размер файла sysfs" msgstr "не удалось узнать размер файла sysfs"
#: src/main/options.c:533 #: src/main/options.c:591
msgid "failed to open block device" msgid "failed to open block device"
msgstr "не удалось открыть блочное устройство" msgstr "не удалось открыть блочное устройство"
#: src/main/options.c:543 #: src/main/options.c:601
msgid "failed to determine size of block device" msgid "failed to determine size of block device"
msgstr "не удалось определить размер блочного устройства" msgstr "не удалось определить размер блочного устройства"
#: src/main/options.c:652 #: src/main/options.c:710
msgid "option structure allocation failed" msgid "option structure allocation failed"
msgstr "не удалось выделить память для структуры опций" msgstr "не удалось выделить память для структуры опций"
#: src/main/options.c:671 #: src/main/options.c:729
msgid "option structure argv allocation failed" msgid "option structure argv allocation failed"
msgstr "не удалось выделить память для структуры опций argv" msgstr "не удалось выделить память для структуры опций argv"
#: src/main/options.c:723 #: src/main/options.c:781
msgid "numeric value not understood" msgid "numeric value not understood"
msgstr "число не распознано" msgstr "число не распознано"
#: src/main/options.c:743 #: src/main/options.c:801
msgid "integer argument expected" msgid "integer argument expected"
msgstr "ожидалось целое число" msgstr "ожидалось целое число"
#: src/main/options.c:755 #: src/main/options.c:813
msgid "numeric argument expected" msgid "numeric argument expected"
msgstr "ожидалось число" msgstr "ожидалось число"
#: src/main/options.c:767 #: src/main/options.c:825
msgid "missing filename" msgid "missing filename"
msgstr "" msgstr ""
#: src/main/options.c:795 #: src/main/options.c:853
msgid "missing process name" msgid "missing process name"
msgstr "" msgstr ""
#: src/main/options.c:1056 #: src/main/options.c:1114
#, c-format #, c-format
msgid "Try `%s --help' for more information." msgid "Try `%s --help' for more information."
msgstr "Выполните `%s --help' для получения подробностей." msgstr "Выполните `%s --help' для получения подробностей."
#: src/main/options.c:1058 #: src/main/options.c:1116
#, c-format #, c-format
msgid "Try `%s -h' for more information." msgid "Try `%s -h' for more information."
msgstr "Выполните `%s -h' для получения подробностей." msgstr "Выполните `%s -h' для получения подробностей."
#: src/main/options.c:1089 #: src/main/options.c:1147
msgid "" msgid ""
"cannot use line mode or transfer modifier options when watching file " "cannot use line mode or transfer modifier options when watching file "
"descriptors" "descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1098 #: src/main/options.c:1156
msgid "cannot use cursor positioning when watching file descriptors" msgid "cannot use cursor positioning when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1107 #: src/main/options.c:1165
msgid "cannot use remote control when watching file descriptors" msgid "cannot use remote control when watching file descriptors"
msgstr "удалённое управление невозможно при отслеживании дескрипторов файлов" msgstr "удалённое управление невозможно при отслеживании дескрипторов файлов"
#: src/main/options.c:1116 #: src/main/options.c:1174
msgid "cannot use remote query when watching file descriptors" msgid "cannot use remote query when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1125 #: src/main/options.c:1183
msgid "cannot transfer files when watching file descriptors" msgid "cannot transfer files when watching file descriptors"
msgstr "передача файлов невозможна при отслеживании дескрипторов файлов" msgstr "передача файлов невозможна при отслеживании дескрипторов файлов"
#: src/main/options.c:1150 #: src/main/options.c:1208
msgid "not available on systems without /proc/self/fdinfo" msgid "not available on systems without /proc/self/fdinfo"
msgstr "невозможно на системах без /proc/self/fdinfo" msgstr "невозможно на системах без /proc/self/fdinfo"
#: src/main/options.c:1162 #: src/main/options.c:1220
msgid "cannot use remote control and remote query together" msgid "cannot use remote control and remote query together"
msgstr "" msgstr ""
#: src/main/options.c:1189 #: src/main/options.c:1247
msgid "files cannot be specified with this option" msgid "files cannot be specified with this option"
msgstr "" msgstr ""
+27 -27
View File
@@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: pv 1.8.14\n" "Project-Id-Version: pv 1.8.14\n"
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n" "Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
"POT-Creation-Date: 2025-10-31 19:47+0000\n" "POT-Creation-Date: 2026-03-08 11:20+0000\n"
"PO-Revision-Date: 2025-10-05 20:09+0000\n" "PO-Revision-Date: 2025-10-05 20:09+0000\n"
"Last-Translator: Oğuz Ersen <ersen@noreply.codeberg.org>\n" "Last-Translator: Oğuz Ersen <ersen@noreply.codeberg.org>\n"
"Language-Team: Turkish <https://translate.codeberg.org/projects/pv/pv/tr/>\n" "Language-Team: Turkish <https://translate.codeberg.org/projects/pv/pv/tr/>\n"
@@ -294,81 +294,81 @@ msgstr "(giriş)"
msgid "state allocation failed" msgid "state allocation failed"
msgstr "durum tahsisi başarısız oldu" msgstr "durum tahsisi başarısız oldu"
#: src/main/options.c:370 #: src/main/options.c:374
msgid "list files may not contain @ lines" msgid "list files may not contain @ lines"
msgstr "" msgstr ""
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:807 #: src/main/options.c:395 src/main/options.c:397 src/main/options.c:865
msgid "process ID or pid:fd pair expected" msgid "process ID or pid:fd pair expected"
msgstr "süreç kimliği (ID) veya pid:fd çifti bekleniyor" msgstr "süreç kimliği (ID) veya pid:fd çifti bekleniyor"
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:814 #: src/main/options.c:407 src/main/options.c:409 src/main/options.c:872
msgid "invalid process ID" msgid "invalid process ID"
msgstr "geçersiz süreç kimliği (ID)" msgstr "geçersiz süreç kimliği (ID)"
#: src/main/options.c:448 src/pv/file.c:342 #: src/main/options.c:476 src/pv/file.c:342
msgid "failed to stat file" msgid "failed to stat file"
msgstr "dosya statüsünde başarısız oldu" msgstr "dosya statüsünde başarısız oldu"
#: src/main/options.c:462 #: src/main/options.c:519
msgid "is a directory" msgid "is a directory"
msgstr "bir dizindir" msgstr "bir dizindir"
#: src/main/options.c:491 #: src/main/options.c:549
msgid "failed to generate sysfs filename" msgid "failed to generate sysfs filename"
msgstr "sysfs dosya adı oluşturulamadı" msgstr "sysfs dosya adı oluşturulamadı"
#: src/main/options.c:513 #: src/main/options.c:571
msgid "failed to read sysfs size file" msgid "failed to read sysfs size file"
msgstr "sysfs boyut dosyası okunamadı" msgstr "sysfs boyut dosyası okunamadı"
#: src/main/options.c:533 #: src/main/options.c:591
msgid "failed to open block device" msgid "failed to open block device"
msgstr "blok aygıtı açılamadı" msgstr "blok aygıtı açılamadı"
#: src/main/options.c:543 #: src/main/options.c:601
msgid "failed to determine size of block device" msgid "failed to determine size of block device"
msgstr "blok aygıtının boyutu belirlenemedi" msgstr "blok aygıtının boyutu belirlenemedi"
#: src/main/options.c:652 #: src/main/options.c:710
msgid "option structure allocation failed" msgid "option structure allocation failed"
msgstr "seçenek yapısı tahsisi başarısız oldu" msgstr "seçenek yapısı tahsisi başarısız oldu"
#: src/main/options.c:671 #: src/main/options.c:729
msgid "option structure argv allocation failed" msgid "option structure argv allocation failed"
msgstr "seçenek yapısı argv tahsisi başarısız oldu" msgstr "seçenek yapısı argv tahsisi başarısız oldu"
#: src/main/options.c:723 #: src/main/options.c:781
msgid "numeric value not understood" msgid "numeric value not understood"
msgstr "sayısal değer anlaşılmadı" msgstr "sayısal değer anlaşılmadı"
#: src/main/options.c:743 #: src/main/options.c:801
msgid "integer argument expected" msgid "integer argument expected"
msgstr "tamsayı bağımsız değişkeni bekleniyor" msgstr "tamsayı bağımsız değişkeni bekleniyor"
#: src/main/options.c:755 #: src/main/options.c:813
msgid "numeric argument expected" msgid "numeric argument expected"
msgstr "sayısal bağımsız değişken bekleniyor" msgstr "sayısal bağımsız değişken bekleniyor"
#: src/main/options.c:767 #: src/main/options.c:825
msgid "missing filename" msgid "missing filename"
msgstr "" msgstr ""
#: src/main/options.c:795 #: src/main/options.c:853
msgid "missing process name" msgid "missing process name"
msgstr "" msgstr ""
#: src/main/options.c:1056 #: src/main/options.c:1114
#, c-format #, c-format
msgid "Try `%s --help' for more information." msgid "Try `%s --help' for more information."
msgstr "Daha fazla bilgi için `%s --help' seçeneğini deneyin." msgstr "Daha fazla bilgi için `%s --help' seçeneğini deneyin."
#: src/main/options.c:1058 #: src/main/options.c:1116
#, c-format #, c-format
msgid "Try `%s -h' for more information." msgid "Try `%s -h' for more information."
msgstr "Daha fazla bilgi için `%s -h' seçeneğini deneyin." msgstr "Daha fazla bilgi için `%s -h' seçeneğini deneyin."
#: src/main/options.c:1089 #: src/main/options.c:1147
msgid "" msgid ""
"cannot use line mode or transfer modifier options when watching file " "cannot use line mode or transfer modifier options when watching file "
"descriptors" "descriptors"
@@ -376,31 +376,31 @@ msgstr ""
"dosya tanımlayıcılarını izlerken satır modu veya aktarım değiştirici " "dosya tanımlayıcılarını izlerken satır modu veya aktarım değiştirici "
"seçeneklerini kullanamaz" "seçeneklerini kullanamaz"
#: src/main/options.c:1098 #: src/main/options.c:1156
msgid "cannot use cursor positioning when watching file descriptors" msgid "cannot use cursor positioning when watching file descriptors"
msgstr "dosya tanımlayıcılarını izlerken imleç konumlandırmayı kullanamaz" msgstr "dosya tanımlayıcılarını izlerken imleç konumlandırmayı kullanamaz"
#: src/main/options.c:1107 #: src/main/options.c:1165
msgid "cannot use remote control when watching file descriptors" msgid "cannot use remote control when watching file descriptors"
msgstr "dosya tanımlayıcılarını izlerken uzaktan kumandayı kullanamaz" msgstr "dosya tanımlayıcılarını izlerken uzaktan kumandayı kullanamaz"
#: src/main/options.c:1116 #: src/main/options.c:1174
msgid "cannot use remote query when watching file descriptors" msgid "cannot use remote query when watching file descriptors"
msgstr "" msgstr ""
#: src/main/options.c:1125 #: src/main/options.c:1183
msgid "cannot transfer files when watching file descriptors" msgid "cannot transfer files when watching file descriptors"
msgstr "dosya tanımlayıcıları izlenirken dosya aktarılamıyor" msgstr "dosya tanımlayıcıları izlenirken dosya aktarılamıyor"
#: src/main/options.c:1150 #: src/main/options.c:1208
msgid "not available on systems without /proc/self/fdinfo" msgid "not available on systems without /proc/self/fdinfo"
msgstr "/proc/self/fdinfo olmayan sistemlerde kullanılamaz" msgstr "/proc/self/fdinfo olmayan sistemlerde kullanılamaz"
#: src/main/options.c:1162 #: src/main/options.c:1220
msgid "cannot use remote control and remote query together" msgid "cannot use remote control and remote query together"
msgstr "" msgstr ""
#: src/main/options.c:1189 #: src/main/options.c:1247
msgid "files cannot be specified with this option" msgid "files cannot be specified with this option"
msgstr "" msgstr ""
+1 -1
View File
@@ -3,7 +3,7 @@
* `configure' script. Include this after config.h and before anything * `configure' script. Include this after config.h and before anything
* else. * else.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+63 -47
View File
@@ -10,10 +10,10 @@
language is requested. */ language is requested. */
#undef ENABLE_NLS #undef ENABLE_NLS
/* Define to 1 if you have the `alarm' function. */ /* Define to 1 if you have the 'alarm' function. */
#undef HAVE_ALARM #undef HAVE_ALARM
/* Define to 1 if you have the `basename' function. */ /* Define to 1 if you have the 'basename' function. */
#undef HAVE_BASENAME #undef HAVE_BASENAME
/* Define to 1 if you have the Mac OS X function /* Define to 1 if you have the Mac OS X function
@@ -24,39 +24,42 @@
the CoreFoundation framework. */ the CoreFoundation framework. */
#undef HAVE_CFPREFERENCESCOPYAPPVALUE #undef HAVE_CFPREFERENCESCOPYAPPVALUE
/* Define to 1 if you have the `clock_gettime' function. */ /* Define to 1 if you have the 'clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME #undef HAVE_CLOCK_GETTIME
/* Define if the GNU dcgettext() function is already present or preinstalled. /* Define if the GNU dcgettext() function is already present or preinstalled.
*/ */
#undef HAVE_DCGETTEXT #undef HAVE_DCGETTEXT
/* Define to 1 if you have the declaration of `SA_SIGINFO', and to 0 if you /* Define to 1 if you have the declaration of 'SA_SIGINFO', and to 0 if you
don't. */ don't. */
#undef HAVE_DECL_SA_SIGINFO #undef HAVE_DECL_SA_SIGINFO
/* Define to 1 if you have the `dup2' function. */ /* Define to 1 if you have the 'dup2' function. */
#undef HAVE_DUP2 #undef HAVE_DUP2
/* Define to 1 if you have the <fcntl.h> header file. */ /* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H #undef HAVE_FCNTL_H
/* Define to 1 if you have the `fdatasync' function. */ /* Define to 1 if you have the 'fdatasync' function. */
#undef HAVE_FDATASYNC #undef HAVE_FDATASYNC
/* Define to 1 if you have the `fmod' function. */ /* Define to 1 if you have the 'fmod' function. */
#undef HAVE_FMOD #undef HAVE_FMOD
/* Define to 1 if you have the `fpathconf' function. */ /* Define to 1 if you have the 'fpathconf' function. */
#undef HAVE_FPATHCONF #undef HAVE_FPATHCONF
/* Define to 1 if you have the `getcwd' function. */ /* Define to 1 if you have the <ftw.h> header file. */
#undef HAVE_FTW_H
/* Define to 1 if you have the 'getcwd' function. */
#undef HAVE_GETCWD #undef HAVE_GETCWD
/* Define to 1 if you have the <getopt.h> header file. */ /* Define to 1 if you have the <getopt.h> header file. */
#undef HAVE_GETOPT_H #undef HAVE_GETOPT_H
/* Define to 1 if you have the `getopt_long' function. */ /* Define to 1 if you have the 'getopt_long' function. */
#undef HAVE_GETOPT_LONG #undef HAVE_GETOPT_LONG
/* Define if the GNU gettext() function is already present or preinstalled. */ /* Define if the GNU gettext() function is already present or preinstalled. */
@@ -89,52 +92,55 @@
/* Define to 1 if you have the <math.h> header file. */ /* Define to 1 if you have the <math.h> header file. */
#undef HAVE_MATH_H #undef HAVE_MATH_H
/* Define to 1 if you have the `memcpy' function. */ /* Define to 1 if you have the 'memcpy' function. */
#undef HAVE_MEMCPY #undef HAVE_MEMCPY
/* Define to 1 if you have the `memmove' function. */ /* Define to 1 if you have the 'memmove' function. */
#undef HAVE_MEMMOVE #undef HAVE_MEMMOVE
/* Define to 1 if you have the `memrchr' function. */ /* Define to 1 if you have the 'memrchr' function. */
#undef HAVE_MEMRCHR #undef HAVE_MEMRCHR
/* Define to 1 if you have the `memset' function. */ /* Define to 1 if you have the 'memset' function. */
#undef HAVE_MEMSET #undef HAVE_MEMSET
/* Define to 1 if you have the <minix/config.h> header file. */ /* Define to 1 if you have the <minix/config.h> header file. */
#undef HAVE_MINIX_CONFIG_H #undef HAVE_MINIX_CONFIG_H
/* Define to 1 if you have the `mkdir' function. */ /* Define to 1 if you have the 'mkdir' function. */
#undef HAVE_MKDIR #undef HAVE_MKDIR
/* Define to 1 if you have the `nanosleep' function. */ /* Define to 1 if you have the 'nanosleep' function. */
#undef HAVE_NANOSLEEP #undef HAVE_NANOSLEEP
/* Define to 1 if you have the `posix_fadvise' function. */ /* Define to 1 if you have the 'nftw' function. */
#undef HAVE_NFTW
/* Define to 1 if you have the 'posix_fadvise' function. */
#undef HAVE_POSIX_FADVISE #undef HAVE_POSIX_FADVISE
/* Define to 1 if you have the `posix_memalign' function. */ /* Define to 1 if you have the 'posix_memalign' function. */
#undef HAVE_POSIX_MEMALIGN #undef HAVE_POSIX_MEMALIGN
/* Define to 1 if you have the `select' function. */ /* Define to 1 if you have the 'select' function. */
#undef HAVE_SELECT #undef HAVE_SELECT
/* Define to 1 if you have the `setitimer' function. */ /* Define to 1 if you have the 'setitimer' function. */
#undef HAVE_SETITIMER #undef HAVE_SETITIMER
/* Define to 1 if you have the `setlocale' function. */ /* Define to 1 if you have the 'setlocale' function. */
#undef HAVE_SETLOCALE #undef HAVE_SETLOCALE
/* Define to 1 if you have the `setproctitle' function. */ /* Define to 1 if you have the 'setproctitle' function. */
#undef HAVE_SETPROCTITLE #undef HAVE_SETPROCTITLE
/* Define to 1 if you have the `shmget' function. */ /* Define to 1 if you have the 'shmget' function. */
#undef HAVE_SHMGET #undef HAVE_SHMGET
/* Define to 1 if you have the `splice' function. */ /* Define to 1 if you have the 'splice' function. */
#undef HAVE_SPLICE #undef HAVE_SPLICE
/* Define to 1 if you have the `sqrtl' function. */ /* Define to 1 if you have the 'sqrtl' function. */
#undef HAVE_SQRTL #undef HAVE_SQRTL
/* Define to 1 if stdbool.h conforms to C99. */ /* Define to 1 if stdbool.h conforms to C99. */
@@ -149,10 +155,10 @@
/* Define to 1 if you have the <stdlib.h> header file. */ /* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H #undef HAVE_STDLIB_H
/* Define to 1 if you have the `strchr' function. */ /* Define to 1 if you have the 'strchr' function. */
#undef HAVE_STRCHR #undef HAVE_STRCHR
/* Define to 1 if you have the `strerror' function. */ /* Define to 1 if you have the 'strerror' function. */
#undef HAVE_STRERROR #undef HAVE_STRERROR
/* Define to 1 if you have the <strings.h> header file. */ /* Define to 1 if you have the <strings.h> header file. */
@@ -161,25 +167,25 @@
/* Define to 1 if you have the <string.h> header file. */ /* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H #undef HAVE_STRING_H
/* Define to 1 if you have the `strlcat' function. */ /* Define to 1 if you have the 'strlcat' function. */
#undef HAVE_STRLCAT #undef HAVE_STRLCAT
/* Define to 1 if you have the `strrchr' function. */ /* Define to 1 if you have the 'strrchr' function. */
#undef HAVE_STRRCHR #undef HAVE_STRRCHR
/* Define to 1 if you have the `strstr' function. */ /* Define to 1 if you have the 'strstr' function. */
#undef HAVE_STRSTR #undef HAVE_STRSTR
/* Define to 1 if you have the `strtoul' function. */ /* Define to 1 if you have the 'strtoul' function. */
#undef HAVE_STRTOUL #undef HAVE_STRTOUL
/* Define to 1 if `st_blksize' is a member of `struct stat'. */ /* Define to 1 if 'st_blksize' is a member of 'struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BLKSIZE #undef HAVE_STRUCT_STAT_ST_BLKSIZE
/* Define to 1 if `st_rdev' is a member of `struct stat'. */ /* Define to 1 if 'st_rdev' is a member of 'struct stat'. */
#undef HAVE_STRUCT_STAT_ST_RDEV #undef HAVE_STRUCT_STAT_ST_RDEV
/* Define to 1 if you have the `sysconf' function. */ /* Define to 1 if you have the 'sysconf' function. */
#undef HAVE_SYSCONF #undef HAVE_SYSCONF
/* Define to 1 if you have the <sys/file.h> header file. */ /* Define to 1 if you have the <sys/file.h> header file. */
@@ -218,7 +224,7 @@
/* Define to 1 if you have the <unistd.h> header file. */ /* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H #undef HAVE_UNISTD_H
/* Define to 1 if you have the `vsnprintf' function. */ /* Define to 1 if you have the 'vsnprintf' function. */
#undef HAVE_VSNPRINTF #undef HAVE_VSNPRINTF
/* Define to 1 if you have the <wchar.h> header file. */ /* Define to 1 if you have the <wchar.h> header file. */
@@ -227,7 +233,7 @@
/* Define to 1 if you have the <wctype.h> header file. */ /* Define to 1 if you have the <wctype.h> header file. */
#undef HAVE_WCTYPE_H #undef HAVE_WCTYPE_H
/* Define to 1 if the system has the type `_Bool'. */ /* Define to 1 if the system has the type '_Bool'. */
#undef HAVE__BOOL #undef HAVE__BOOL
/* Name of package */ /* Name of package */
@@ -254,12 +260,12 @@
/* Signal handlers can determine the sending PID */ /* Signal handlers can determine the sending PID */
#undef SIGINFO_PROVIDES_PID #undef SIGINFO_PROVIDES_PID
/* Define to 1 if all of the C90 standard headers exist (not just the ones /* Define to 1 if all of the C89 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */ backward compatibility; new code need not use it. */
#undef STDC_HEADERS #undef STDC_HEADERS
/* Enable extensions on AIX 3, Interix. */ /* Enable extensions on AIX, Interix, z/OS. */
#ifndef _ALL_SOURCE #ifndef _ALL_SOURCE
# undef _ALL_SOURCE # undef _ALL_SOURCE
#endif #endif
@@ -320,11 +326,15 @@
#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__
# undef __STDC_WANT_IEC_60559_DFP_EXT__ # undef __STDC_WANT_IEC_60559_DFP_EXT__
#endif #endif
/* Enable extensions specified by C23 Annex F. */
#ifndef __STDC_WANT_IEC_60559_EXT__
# undef __STDC_WANT_IEC_60559_EXT__
#endif
/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ /* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
# undef __STDC_WANT_IEC_60559_FUNCS_EXT__ # undef __STDC_WANT_IEC_60559_FUNCS_EXT__
#endif #endif
/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ /* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */
#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
# undef __STDC_WANT_IEC_60559_TYPES_EXT__ # undef __STDC_WANT_IEC_60559_TYPES_EXT__
#endif #endif
@@ -353,35 +363,41 @@
/* Number of bits in a file offset, on hosts where this is settable. */ /* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS #undef _FILE_OFFSET_BITS
/* Define for large files, on AIX-style hosts. */ /* Define to 1 on platforms where this makes off_t a 64-bit type. */
#undef _LARGE_FILES #undef _LARGE_FILES
/* Define to empty if `const' does not conform to ANSI C. */ /* Number of bits in time_t, on hosts where this is settable. */
#undef _TIME_BITS
/* Define to 1 on platforms where this makes time_t a 64-bit type. */
#undef __MINGW_USE_VC2005_COMPAT
/* Define to empty if 'const' does not conform to ANSI C. */
#undef const #undef const
/* Define to `int' if <sys/types.h> doesn't define. */ /* Define as 'int' if <sys/types.h> doesn't define. */
#undef gid_t #undef gid_t
/* Define to the type of a signed integer type of width exactly 32 bits if /* Define to the type of a signed integer type of width exactly 32 bits if
such a type exists and the standard includes do not define it. */ such a type exists and the standard includes do not define it. */
#undef int32_t #undef int32_t
/* Define to `int' if <sys/types.h> does not define. */ /* Define to 'int' if <sys/types.h> does not define. */
#undef mode_t #undef mode_t
/* Define to `long int' if <sys/types.h> does not define. */ /* Define to 'long int' if <sys/types.h> does not define. */
#undef off_t #undef off_t
/* Define as a signed integer type capable of holding a process identifier. */ /* Define as a signed integer type capable of holding a process identifier. */
#undef pid_t #undef pid_t
/* Define to `unsigned int' if <sys/types.h> does not define. */ /* Define as 'unsigned int' if <stddef.h> doesn't define. */
#undef size_t #undef size_t
/* Define to `int' if <sys/types.h> does not define. */ /* Define as 'int' if <sys/types.h> doesn't define. */
#undef ssize_t #undef ssize_t
/* Define to `int' if <sys/types.h> doesn't define. */ /* Define as 'int' if <sys/types.h> doesn't define. */
#undef uid_t #undef uid_t
#include "config-aux.h" #include "config-aux.h"
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Global program option structure and the parsing function prototype. * Global program option structure and the parsing function prototype.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Functions internal to the PV library. Include "config.h" first. * Functions internal to the PV library. Include "config.h" first.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Functions used across the program. * Functions used across the program.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Output debugging information. * Output debugging information.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Output command-line help to stdout. * Output command-line help to stdout.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -2,7 +2,7 @@
* Main program entry point - read the command line options, then perform * Main program entry point - read the command line options, then perform
* the appropriate actions. * the appropriate actions.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+59 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Parse command-line options. * Parse command-line options.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
@@ -26,11 +26,15 @@
#endif #endif
#endif #endif
#include <fcntl.h> #include <fcntl.h>
#include <limits.h>
#include <unistd.h> #include <unistd.h>
#include <sys/wait.h> #include <sys/wait.h>
#ifdef HAVE_GETOPT_H #ifdef HAVE_GETOPT_H
#include <getopt.h> #include <getopt.h>
#endif #endif
#ifdef HAVE_FTW_H
#include <ftw.h>
#endif
void display_help(void); void display_help(void);
@@ -412,12 +416,36 @@ static bool opts_watchfd_parse(opts_t opts, const char *argument, /*@null@ */ co
} }
#ifdef HAVE_NFTW
/*
* Callback function for nftw() to add the size of the given file to the
* total size so far.
*/
static off_t dir_tree_file_size_so_far = 0;
static int dir_tree_total_file_size( /*@unused@ */ __attribute__((unused))
const char *fpath, const struct stat *sb, int typeflag, /*@unused@ */
__attribute__((unused))
struct FTW *ftwbuf)
{
if (typeflag != FTW_F)
return 0;
if (NULL == sb)
return 0;
dir_tree_file_size_so_far += (off_t) (sb->st_size);
return 0;
}
#endif /* HAVE_NFTW */
/* /*
* Set opts->size from the size of the file whose name is size_file, * Set opts->size from the size of the file whose name is size_file,
* returning false (and reporting the error) if there is a problem. * returning false (and reporting the error) if there is a problem.
* *
* If size_file points to a block device, the size of the block device is * If size_file points to a block device, the size of the block device is
* used. * used.
*
* If size_file points to a directory, opts->size is set to the sum of the
* sizes of all regular files under that directory, if nftw() is available.
*/ */
static bool opts_use_size_of_file(opts_t opts, const char *size_file) static bool opts_use_size_of_file(opts_t opts, const char *size_file)
{ {
@@ -456,6 +484,35 @@ static bool opts_use_size_of_file(opts_t opts, const char *size_file)
return true; return true;
} }
#ifdef HAVE_NFTW
/* This was a directory - use the size of all files under it. */
if (S_ISDIR((mode_t) (sb.st_mode))) {
int maxfds, rc_nftw;
maxfds = -1;
#ifdef _POSIX_OPEN_MAX
maxfds = _POSIX_OPEN_MAX;
#endif
if (maxfds < 1) {
maxfds = (int) sysconf(_SC_OPEN_MAX);
}
dir_tree_file_size_so_far = 0;
rc_nftw = nftw(size_file, dir_tree_total_file_size, maxfds, 0
#ifdef FTW_PHYS
| FTW_PHYS
#endif
);
if (rc_nftw < 0) {
fprintf(stderr, "%s: %s: %s\n", opts->program_name, size_file, strerror(errno));
return false;
}
opts->size = dir_tree_file_size_so_far;
return true;
}
#else /* HAVE_NFTW */
/* This was a directory - report an error. */ /* This was a directory - report an error. */
if (S_ISDIR((mode_t) (sb.st_mode))) { if (S_ISDIR((mode_t) (sb.st_mode))) {
/*@-mustfreefresh@ *//* see above */ /*@-mustfreefresh@ *//* see above */
@@ -463,6 +520,7 @@ static bool opts_use_size_of_file(opts_t opts, const char *size_file)
return false; return false;
/*@+mustfreefresh@ */ /*@+mustfreefresh@ */
} }
#endif /* !HAVE_NFTW */
/* This was not a block device - just use the size and return. */ /* This was not a block device - just use the size and return. */
if (!S_ISBLK((mode_t) (sb.st_mode))) { if (!S_ISBLK((mode_t) (sb.st_mode))) {
+2 -2
View File
@@ -1,7 +1,7 @@
/* /*
* Output version information to stdout. * Output version information to stdout.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
@@ -23,7 +23,7 @@ void display_version(void)
/* GNU standard first line format: program and version only */ /* GNU standard first line format: program and version only */
printf("%s %s\n", PACKAGE_NAME, PACKAGE_VERSION); printf("%s %s\n", PACKAGE_NAME, PACKAGE_VERSION);
/* GNU standard second line format - "Copyright" always in English */ /* GNU standard second line format - "Copyright" always in English */
printf("Copyright %s %s\n", "2025", "Andrew Wood"); printf("Copyright %s %s\n", "2026", "Andrew Wood");
/* GNU standard license line and free software notice */ /* GNU standard license line and free software notice */
printf("%s\n", _("License: GPLv3+ <https://www.gnu.org/licenses/gpl-3.0.html>")); printf("%s\n", _("License: GPLv3+ <https://www.gnu.org/licenses/gpl-3.0.html>"));
printf("%s\n", _("This is free software: you are free to change and redistribute it.")); printf("%s\n", _("This is free software: you are free to change and redistribute it."));
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Functions for updating the calculated state of the transfer. * Functions for updating the calculated state of the transfer.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -10,7 +10,7 @@
* terminal, so we try to use a lockfile if terminal locking doesn't work, * terminal, so we try to use a lockfile if terminal locking doesn't work,
* and finally abort if even that is unavailable. * and finally abort if even that is unavailable.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+2 -2
View File
@@ -1,7 +1,7 @@
/* /*
* Display functions. * Display functions.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
@@ -1339,7 +1339,7 @@ void pv_display(pvprogramstatus_t status, readonly_pvcontrol_t control, pvtransi
&& (NULL != extra_display) && (NULL != extra_display)
&& (NULL != extra_display->display_buffer) && (NULL != extra_display->display_buffer)
) { ) {
setproctitle("%s", extra_display->display_buffer); setproctitle("%s -- %s", PACKAGE_NAME, extra_display->display_buffer);
extra_display->output_produced = true; extra_display->output_produced = true;
debug("%s: [%s]", "processtitle display", extra_display->display_buffer); debug("%s: [%s]", "processtitle display", extra_display->display_buffer);
} }
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Functions relating to elapsed time. * Functions relating to elapsed time.
* *
* Copyright 2023-2025 Andrew Wood * Copyright 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Functions for opening and closing files, and calculating their size. * Functions for opening and closing files, and calculating their size.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Formatter function for average rate. * Formatter function for average rate.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Formatter functions for styled progress bars. * Formatter functions for styled progress bars.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Formatter function for transfer buffer percentage utilisation. * Formatter function for transfer buffer percentage utilisation.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Formatter function for bytes or lines transferred. * Formatter function for bytes or lines transferred.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Formatter function for ETA display. * Formatter function for ETA display.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -2,7 +2,7 @@
* Formatter function for the local time at which the transfer is expected * Formatter function for the local time at which the transfer is expected
* to complete. * to complete.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Formatter function for showing the last bytes written. * Formatter function for showing the last bytes written.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Formatter function for showing the name of the transfer. * Formatter function for showing the name of the transfer.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Formatter function for the most recently written line. * Formatter function for the most recently written line.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Formatter functions for progress bars. * Formatter functions for progress bars.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Formatter function for the current rate of transfer. * Formatter function for the current rate of transfer.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Formatter function for ECMA-48 SGR codes. * Formatter function for ECMA-48 SGR codes.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Formatter function for the elapsed transfer time. * Formatter function for the elapsed transfer time.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Functions providing the main transfer or file descriptor watching loop. * Functions providing the main transfer or file descriptor watching loop.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Functions for converting strings to numbers. * Functions for converting strings to numbers.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+2 -2
View File
@@ -1,7 +1,7 @@
/* /*
* Functions for setting the process title. * Functions for setting the process title.
* *
* Copyright 2024-2025 Andrew Wood * Copyright 2024-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
@@ -110,7 +110,7 @@ void setproctitle(const char *format, ...)
if (length > space_available - 2) if (length > space_available - 2)
length = space_available - 2; length = space_available - 2;
(void) pv_snprintf(base_argv[0], space_available, "%s -- %s", PACKAGE_NAME, title); (void) pv_snprintf(base_argv[0], space_available, "%s", title);
if (space_available > length) if (space_available > length)
memset(base_argv[0] + length, 0, space_available - length); memset(base_argv[0] + length, 0, space_available - length);
} }
+3 -3
View File
@@ -1,7 +1,7 @@
/* /*
* Remote-control and remote-query functions. * Remote-control and remote-query functions.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
@@ -499,7 +499,7 @@ bool pv_remote_check(pvstate_t state)
* *
* Returns nonzero on error. If "silent" is false, reports the error. * Returns nonzero on error. If "silent" is false, reports the error.
*/ */
int pv_remote_transferstate_fetch(pvstate_t state, pid_t query, /*@null@ */ off_t * sizeptr, bool silent) int pv_remote_transferstate_fetch(pvstate_t state, pid_t query, /*@null@ */ off_t *sizeptr, bool silent)
{ {
char control_filename[4096]; /* flawfinder: ignore */ char control_filename[4096]; /* flawfinder: ignore */
FILE *control_fptr; FILE *control_fptr;
@@ -653,7 +653,7 @@ int pv_remote_transferstate_fetch( /*@unused@ */
__attribute__((unused)) pid_t query, __attribute__((unused)) pid_t query,
/*@null@ */ /*@null@ */
/*@unused@ */ /*@unused@ */
__attribute__((unused)) off_t * sizeptr, __attribute__((unused)) off_t *sizeptr,
/*@unused@ */ /*@unused@ */
__attribute__((unused)) __attribute__((unused))
bool silent) bool silent)
+5 -5
View File
@@ -1,7 +1,7 @@
/* /*
* Signal handling functions. * Signal handling functions.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
@@ -262,7 +262,7 @@ static void pv_sig_term( /*@unused@ */ __attribute__((unused))
* the sending PID. * the sending PID.
*/ */
static void pv_sig_usr2( /*@unused@ */ __attribute__((unused)) static void pv_sig_usr2( /*@unused@ */ __attribute__((unused))
int sig, siginfo_t * info, /*@unused@ */ __attribute__((unused)) int sig, siginfo_t *info, /*@unused@ */ __attribute__((unused))
void *ucontext) void *ucontext)
{ {
if (NULL == pv_sig_state) if (NULL == pv_sig_state)
@@ -278,7 +278,7 @@ static void pv_sig_usr2( /*@unused@ */ __attribute__((unused))
* Return true if a SIGUSR2 signal has been received since the last time * Return true if a SIGUSR2 signal has been received since the last time
* this function was called, populating *pid with the sending PID if so. * this function was called, populating *pid with the sending PID if so.
*/ */
bool pv_sigusr2_received(pvstate_t state, pid_t * pid) bool pv_sigusr2_received(pvstate_t state, pid_t *pid)
{ {
if (NULL == state) if (NULL == state)
return false; return false;
@@ -296,7 +296,7 @@ bool pv_sigusr2_received(pvstate_t state, pid_t * pid)
* the sending PID. * the sending PID.
*/ */
static void pv_sig_usr1( /*@unused@ */ __attribute__((unused)) static void pv_sig_usr1( /*@unused@ */ __attribute__((unused))
int sig, siginfo_t * info, /*@unused@ */ __attribute__((unused)) int sig, siginfo_t *info, /*@unused@ */ __attribute__((unused))
void *ucontext) void *ucontext)
{ {
if (NULL == pv_sig_state) if (NULL == pv_sig_state)
@@ -312,7 +312,7 @@ static void pv_sig_usr1( /*@unused@ */ __attribute__((unused))
* Return true if a SIGUSR1 signal has been received since the last time * Return true if a SIGUSR1 signal has been received since the last time
* this function was called, populating *pid with the sending PID if so. * this function was called, populating *pid with the sending PID if so.
*/ */
bool pv_sigusr1_received(pvstate_t state, pid_t * pid) bool pv_sigusr1_received(pvstate_t state, pid_t *pid)
{ {
if (NULL == state) if (NULL == state)
return false; return false;
+4 -4
View File
@@ -1,7 +1,7 @@
/* /*
* State management functions. * State management functions.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
@@ -815,7 +815,7 @@ void pv_state_inputfiles(pvstate_t state, unsigned int input_file_count, const c
/* /*
* Set the arrays of watchfd process IDs and file descriptors. * Set the arrays of watchfd process IDs and file descriptors.
*/ */
void pv_state_watchfds(pvstate_t state, unsigned int watchfd_count, const pid_t * pids, const int *fds) void pv_state_watchfds(pvstate_t state, unsigned int watchfd_count, const pid_t *pids, const int *fds)
{ {
unsigned int item_idx; unsigned int item_idx;
/*@only@ */ struct pvwatcheditem_s *new_array = NULL; /*@only@ */ struct pvwatcheditem_s *new_array = NULL;
@@ -836,14 +836,14 @@ void pv_state_watchfds(pvstate_t state, unsigned int watchfd_count, const pid_t
state->watchfd.multiple_pids = false; state->watchfd.multiple_pids = false;
/* Allocate an empty new array of the right size. */ /* Allocate an empty new array of the right size. */
new_array = malloc((1 + state->watchfd.count) * sizeof(*new_array)); new_array = malloc((1 + watchfd_count) * sizeof(*new_array));
if (NULL == new_array) { if (NULL == new_array) {
/*@-mustfreefresh@ *//* see similar _() issue above */ /*@-mustfreefresh@ *//* see similar _() issue above */
pv_error("%s: %s", _("buffer allocation failed"), strerror(errno)); pv_error("%s: %s", _("buffer allocation failed"), strerror(errno));
/*@+mustfreefresh@ */ /*@+mustfreefresh@ */
return; return;
} }
memset(new_array, 0, (1 + state->watchfd.count) * sizeof(*new_array)); memset(new_array, 0, (1 + watchfd_count) * sizeof(*new_array));
state->watchfd.watching = new_array; state->watchfd.watching = new_array;
/* Populate the new array with the values supplied. */ /* Populate the new array with the values supplied. */
+3 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Functions for portably managing strings. * Functions for portably managing strings.
* *
* Copyright 2023-2025 Andrew Wood * Copyright 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
@@ -86,7 +86,9 @@ size_t pv_strlcat(char *dst, const char *src, size_t dstsize)
#ifdef HAVE_STRLCAT #ifdef HAVE_STRLCAT
size_t result; size_t result;
/*@-unrecog@ *//* splint doesn't recognise strlcat. */
result = strlcat(dst, src, dstsize); result = strlcat(dst, src, dstsize);
/*@+unrecog@ */
if ((NULL != dst) && (dstsize > 0)) if ((NULL != dst) && (dstsize > 0))
dst[dstsize - 1] = '\0'; dst[dstsize - 1] = '\0';
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* Functions for transferring data between file descriptors. * Functions for transferring data between file descriptors.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
+3 -3
View File
@@ -1,7 +1,7 @@
/* /*
* Functions for watching file descriptors in other processes. * Functions for watching file descriptors in other processes.
* *
* Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood * Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood
* *
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'. * License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
*/ */
@@ -336,7 +336,7 @@ static int pidfds(pvstate_t state, unsigned int pid, struct proc_fdinfo **fds, i
/* /*
* Extend the info array by one, returning false on error. * Extend the info array by one, returning false on error.
*/ */
static bool extend_info_array(int *array_length_ptr, pvwatchfd_t * info_array_ptr) static bool extend_info_array(int *array_length_ptr, pvwatchfd_t *info_array_ptr)
{ {
int array_length = 0; int array_length = 0;
struct pvwatchfd_s *info_array = NULL; struct pvwatchfd_s *info_array = NULL;
@@ -433,7 +433,7 @@ static int pv_compare_watchfd(const void *a, const void *b)
* read, or 2 for a memory allocation error. * read, or 2 for a memory allocation error.
*/ */
int pv_watchpid_scanfds(pvstate_t state, pid_t watch_pid, int watch_fd, int *array_length_ptr, int pv_watchpid_scanfds(pvstate_t state, pid_t watch_pid, int watch_fd, int *array_length_ptr,
pvwatchfd_t * info_array_ptr) pvwatchfd_t *info_array_ptr)
{ {
int array_length = 0; int array_length = 0;
struct pvwatchfd_s *info_array = NULL; struct pvwatchfd_s *info_array = NULL;
+39
View File
@@ -65,4 +65,43 @@ pid=$!
sleep 0.1 sleep 0.1
{ runWithValgrind -P "${workFile3}" -d "${pid}" -f -i 0.5 >/dev/null 2>&1; } 4>&1 || exit 1 { runWithValgrind -P "${workFile3}" -d "${pid}" -f -i 0.5 >/dev/null 2>&1; } 4>&1 || exit 1
# Check "--watchfd PID1 PID2".
seq 1 100 > "${workFile1}"
seq 1 300 > "${workFile2}"
true > "${workFile3}"
# shellcheck disable=SC2030
(
while test -e "${workFile3}" && ! test -s "${workFile3}"; do sleep 0.1; done
sleep 1
read -r line
exec 9<"${workFile2}"
sleep 1
exec 8<"${workFile1}"
exec 7</dev/null
sleep 1
exec 9<&-
# shellcheck disable=SC2034
read -r line
sleep 1
) <"${workFile1}" &
pid1=$!
# shellcheck disable=SC2030
(
while test -e "${workFile3}" && ! test -s "${workFile3}"; do sleep 0.1; done
sleep 1
read -r line
exec 9<"${workFile2}"
sleep 1
exec 8<"${workFile1}"
exec 7</dev/null
sleep 1
exec 9<&-
# shellcheck disable=SC2034
read -r line
sleep 1
) <"${workFile1}" &
pid2=$!
sleep 0.1
{ runWithValgrind -P "${workFile3}" -f -i 0.5 -d "${pid1}" "${pid2}" >/dev/null 2>&1; } 4>&1 || exit 1
exit 0 exit 0
+67
View File
@@ -0,0 +1,67 @@
#!/bin/sh
#
# Similar to the "--size" check but, instead, using directory's size with
# "--size @".
# Allow all tests to be skipped, e.g. during a release build
test "${SKIP_ALL_TESTS}" = "1" && exit 77
true "${testSubject:?not set - call this from 'make check'}"
true "${workFile1:?not set - call this from 'make check'}"
true "${workFile2:?not set - call this from 'make check'}"
# Process 100 bytes at 100 bytes per second, interval 0.1 seconds, with the
# size set from a directory containing 10 files of $1/10 bytes, and
# expecting a percentage of $2 at the end.
sizeCheck () {
# Make a directory containing 10 files of $1/10 bytes each.
rm -rf "${workFile2}"
mkdir "${workFile2}"
mkdir "${workFile2}/subdir"
s="$1"
s=$((s/10))
for f in 1 2 3 4 5; do
dd if=/dev/zero bs="$s" count=1 2>/dev/null >"${workFile2}/$f"
dd if=/dev/zero bs="$s" count=1 2>/dev/null >"${workFile2}/subdir/$f"
done
# Run 100 bytes through the program, using the reference directory's
# total size as the percentage reference.
dd if=/dev/zero bs=100 count=1 2>/dev/null \
| "${testSubject}" -s "@${workFile2}" -n -i 0.1 -L 100 >/dev/null 2>"${workFile1}"
# If "-s @<directory>" is unsupported, skip the test.
if test $? -eq 64; then
rm -rf "${workFile2}"
echo 'not available on this build'
exit 77
fi
rm -rf "${workFile2}"
lineCount=$(wc -l < "${workFile1}" | tr -dc '0-9')
finalLine=$(sed -n '$p' < "${workFile1}")
# The number of output lines should be >5 and <13, and the final
# percentage should be $2.
#
if ! test "${lineCount}" -gt 5; then
echo "(reference size=$1) fewer than 6 output lines (${lineCount})"
exit 1
fi
if ! test "${lineCount}" -lt 13; then
echo "(reference size=$1) more than 12 output lines (${lineCount})"
exit 1
fi
if ! test "${finalLine}" = "$2"; then
echo "(reference size=$1): final percentage was not $2 (${finalLine})"
cat "${workFile1}"
exit 1
fi
}
sizeCheck 100 100
sizeCheck 200 50
sizeCheck 50 200
exit 0
+101
View File
@@ -0,0 +1,101 @@
#!/bin/sh
#
# Check that watching a process's file descriptors works as expected when
# given multiple arguments.
# Allow all tests to be skipped, e.g. during a release build
test "${SKIP_ALL_TESTS}" = "1" && exit 77
true "${testSubject:?not set - call this from 'make check'}"
true "${workFile1:?not set - call this from 'make check'}"
true "${workFile2:?not set - call this from 'make check'}"
true "${workFile3:?not set - call this from 'make check'}"
true "${workFile4:?not set - call this from 'make check'}"
# Skip the test if "-d" is not available.
if ! "${testSubject}" -h | grep -Fq ' -d'; then
echo "no \`--watchfd' / \`-d' option on this platform"
exit 77
fi
seq 1 100 > "${workFile1}"
seq 1 300 > "${workFile2}"
# Run two background processes to perform a few reads from a file.
#
# Each one only starts doing anything once the PV process below has started
# (the workFile3 check).
true > "${workFile3}"
(
while test -e "${workFile3}" && ! test -s "${workFile3}"; do sleep 0.1; done
sleep 1
# shellcheck disable=SC2034 # line is deliberately unused
read -r line <&8
sleep 1
) <&- 8<"${workFile1}" &
pid1=$!
(
while test -e "${workFile3}" && ! test -s "${workFile3}"; do sleep 0.1; done
sleep 1
# shellcheck disable=SC2034 # line is deliberately unused
read -r line <&9
sleep 1
) <&- 9<"${workFile2}" &
pid2=$!
sleep 0.1
"${testSubject}" -P "${workFile3}" -f -i 0.5 -d "${pid1}" "${pid2}" >/dev/null 2>"${workFile4}"
# Skip the test if "-d" does not work.
if grep -Fq ' -d: not available' "${workFile4}"; then
echo "no \`--watchfd' / \`-d' option on this platform"
exit 77
fi
# Process the output to make it easier to handle.
# NB "ESC [ A" is "cursor up", we turn that into "-" and a newline.
tr '\r' '\n' < "${workFile4}" | sed 's/.\[A/-!/g' | tr '!' '\n' > "${workFile1}"
# We should see at least 2 file positions for fd 8.
positionsReported="$(awk '/^[0-9 ]+: *8:/ {print $3}' < "${workFile1}" | sort -n | uniq)"
differentNumbers="$(printf "%s\n" "${positionsReported}" | grep -Ec .)"
if ! test "${differentNumbers}" -gt 1; then
printf "%s\n" "Expected at least 2 different numbers to be output for fd 8"
printf "%s:\n%s\n" "Positions reported" "${positionsReported}"
printf "%s: %s\n" "Number of different values seen" "${differentNumbers}"
printf "%s\n" "Raw output:"
cat "${workFile1}"
exit 1
fi
# We should see at least 2 file positions for fd 9.
positionsReported="$(awk '/^[0-9 ]+: *9:/ {print $3}' < "${workFile1}" | sort -n | uniq)"
differentNumbers="$(printf "%s\n" "${positionsReported}" | grep -Ec .)"
if ! test "${differentNumbers}" -gt 1; then
printf "%s\n" "Expected at least 2 different numbers to be output for fd 9"
printf "%s:\n%s\n" "Positions reported" "${positionsReported}"
printf "%s: %s\n" "Number of different values seen" "${differentNumbers}"
printf "%s\n" "Raw output:"
cat "${workFile1}"
exit 1
fi
# We should see the last 6 characters of fd 8's filename appear.
lastChars="$(printf "%s\n" "${workFile1}" | rev | cut -b1-6 | rev)"
if ! grep -Fq "${lastChars}:" < "${workFile1}"; then
printf "%s\n" "Expected to see a filename for fd 8"
printf "%s\n" "Raw output:"
cat "${workFile1}"
exit 1
fi
# We should see the last 6 characters of fd 9's filename appear.
lastChars="$(printf "%s\n" "${workFile2}" | rev | cut -b1-6 | rev)"
if ! grep -Fq "${lastChars}:" < "${workFile1}"; then
printf "%s\n" "Expected to see a filename for fd 9"
printf "%s\n" "Raw output:"
cat "${workFile1}"
exit 1
fi
exit 0
+1 -1
View File
@@ -54,7 +54,7 @@ runWithValgrind () {
ignore-initproctitle-leak ignore-initproctitle-leak
Memcheck:Leak Memcheck:Leak
fun:malloc fun:malloc
fun:initproctitle src:proctitle.c
fun:main fun:main
} }
EOF EOF