]> granicus.if.org Git - psmisc/commitdiff
Added peekfd and updated the autotools
authorCraig Small <csmall@users.sourceforge.net>
Thu, 1 Mar 2007 22:55:59 +0000 (22:55 +0000)
committerCraig Small <csmall@users.sourceforge.net>
Thu, 1 Mar 2007 22:55:59 +0000 (22:55 +0000)
25 files changed:
AUTHORS
ChangeLog
doc/Makefile.am
po/ChangeLog
po/POTFILES.in
po/bg.po
po/ca.po
po/de.po
po/eu.po
po/fi.po
po/fr.po
po/hu.po
po/it.po
po/ja.po
po/nb.po
po/nl.po
po/pl.po
po/psmisc.pot
po/pt.po
po/ro.po
po/ru.po
po/sv.po
po/vi.po
src/Makefile.am
src/peekfd.c [new file with mode: 0644]

diff --git a/AUTHORS b/AUTHORS
index 9d5eaf4a7353aa0ca447beca33a82006013a70f0..83220ece08a1acb60452626ea5706c7a48dc7288 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,2 +1,3 @@
 Werner Almesberger <werner@almesberger.net>
 Craig Small <csmall@small.dropbear.id.au>
+peekfd writtten by Trent Waddington <trent.waddington@gmail.com>
index 1031a7429ae974edc1456d6ec2f3daf3408d11b2..587762bc2a47336f11be74a384db623f2639b4b0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,20 @@
 Changes in 22.4
 ===============
+2007-03-02 Craig Small
+       * Added peekfd
+
+2007-03-02  gettextize  <bug-gnu-gettext@gnu.org>
+
+       * m4/gettext.m4: Upgrade to gettext-0.16.1.
+       * m4/iconv.m4: Upgrade to gettext-0.16.1.
+       * m4/lib-ld.m4: Upgrade to gettext-0.16.1.
+       * m4/lib-link.m4: Upgrade to gettext-0.16.1.
+       * m4/lib-prefix.m4: Upgrade to gettext-0.16.1.
+       * m4/nls.m4: Upgrade to gettext-0.16.1.
+       * m4/po.m4: Upgrade to gettext-0.16.1.
+       * m4/progtest.m4: Upgrade to gettext-0.16.1.
+       * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.16.1.
+
 2006-09-28 Craig Small
        * fuser tcp works on 64bit, after actually reading the submitted patch
          and applying it, thankyou nigel_ding, SF# 1551731
index cf09cf35c8572d359d1ecb16e4263df08f89e199..1185f8226dc3461a72ca46a746f931d702854e6a 100644 (file)
@@ -1,4 +1,4 @@
 
-man_MANS = fuser.1 killall.1 pstree.1
+man_MANS = fuser.1 killall.1 peekfd.1 pstree.1
 
 EXTRA_DIST = $(man_MANS)
index 3bcf0d647d03cb9c0fe425a8e02fd31540068144..215f1e7323c4c8810b78baef69edf300fd9bc5b1 100644 (file)
@@ -1,3 +1,7 @@
+2007-03-02  gettextize  <bug-gnu-gettext@gnu.org>
+
+       * Makefile.in.in: Upgrade to gettext-0.16.1.
+
 2004-04-30  gettextize  <bug-gnu-gettext@gnu.org>
 
        * Makefile.in.in: New file, from gettext-0.14.1.
index efefcc63e30ebaa1858de1c81c2d258427e7e790..c437b71c621435bf2962415a503e4808b24fb96e 100644 (file)
@@ -1,4 +1,5 @@
 src/killall.c
 src/fuser.c
+src/peekfd.c
 src/pstree.c
 src/signals.c
index 880198b00ece7a91e85987a59f0123cf607dcfaf..acb7d19f375a0293c76ef1324188e4e1a10a1d0c 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 22.2pre1\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2006-03-07 11:49+0200\n"
 "Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -140,7 +140,7 @@ msgstr ""
 "Copyright © 1993-2005 Werner Almesberger и Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -343,6 +343,37 @@ msgstr "Не може да се отвори мрежово гнездо.\n"
 msgid "Cannot find socket's device number.\n"
 msgstr "Не може да бъде намерен номерът на устройството на гнездото.\n"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "pstree (PSmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index 7ab8876f29a70b42a6477d3ca832c3c795616bd3..79e65fbe528ac021fd508f92429a76c30ff58739 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 21.6cvs\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2004-12-08 12:46+0100\n"
 "Last-Translator: Guillem Jover <guillem@debian.org>\n"
 "Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"
@@ -132,7 +132,7 @@ msgstr ""
 "Copyright (C) 1993-2002 Werner Almesberger i Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -332,6 +332,37 @@ msgstr ""
 msgid "Cannot find socket's device number.\n"
 msgstr "no s'ha pogut trobar el nombre de dispositiu del sòcol"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "pstree (psmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, fuzzy, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index 5dc667d27a77378eab8b748d8c41122479f45381..db1b11ea63191c1253d295362023d7e5e8ba8317 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 20.1\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2004-11-02 13:36-0500\n"
 "Last-Translator: Wolfgang Schorer <wcc@wolfgangs.com>\n"
 "Language-Team: woolfy <woolfy@users.sourceforge.net>\n"
@@ -105,7 +105,7 @@ msgstr ""
 "Copyright (C) 1993-2002 Werner Almesberger und Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -301,6 +301,37 @@ msgstr ""
 msgid "Cannot find socket's device number.\n"
 msgstr "Kann die Gerätenummer der Sockets nicht finden"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "fuser (psmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index dcd3bbdb8c3c18e7333f75714120295791a41d24..0041a4089d4f11386302fdb40aa559f802d2d0b2 100644 (file)
--- a/po/eu.po
+++ b/po/eu.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 21.6pre1\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2005-02-23 14:55+0100\n"
 "Last-Translator: Mikel Olasagasti <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -135,7 +135,7 @@ msgstr ""
 "Copyright (C) 1993-2002 Werner Almesberger eta Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -337,6 +337,37 @@ msgstr ""
 msgid "Cannot find socket's device number.\n"
 msgstr "ezin da socket gailu zenbakia aurkitu"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "pstree (psmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, fuzzy, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index 7b4bb6f5ee8a44e2ec4aa2fa2f187059ae4ade51..4d7f9fdd7029233e07db7750cde675a16f85dafa 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 21.5\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2004-10-29 15:14+0300\n"
 "Last-Translator: Lars Wirzenius <liw@iki.fi>\n"
 "Language-Team: Finnish <fi@li.org>\n"
@@ -106,7 +106,7 @@ msgstr ""
 "Copyright (C) 1993-2002 Werner Almesberger and Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, fuzzy, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -307,6 +307,37 @@ msgstr ""
 msgid "Cannot find socket's device number.\n"
 msgstr "pistokkeen laitenumeroa ei löydy"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "pstree (psmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, fuzzy, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index 0e9132fc553ec2156bbee97f4d50dc2c03d298fe..90a9e9af70ab0c8888f00a3e5d3640c372e5ee0b 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 20.1\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2002-04-12 21:33+1000\n"
 "Last-Translator: Marc Léger <sorata@users.sourceforge.net>\n"
 "Language-Team: French <fr@li.org>\n"
@@ -102,7 +102,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, fuzzy, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -301,6 +301,37 @@ msgstr ""
 msgid "Cannot find socket's device number.\n"
 msgstr "ne peut pas trouver le numéro du périphérique des sockets"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "fuser (psmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index 16d7024b17f3ea0d1b83a5c943a7dd05959057f6..4e8f776a965088a938e6788b5722d18206196f13 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 22.2\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2006-08-05 02:34+0200\n"
 "Last-Translator: Miklos Vajna <vmiklos@frugalware.org>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -135,7 +135,7 @@ msgstr ""
 "Copyright (C) 1993-2005 Werner Almesberger és Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -336,6 +336,37 @@ msgstr "Nem siker
 msgid "Cannot find socket's device number.\n"
 msgstr "Nem sikerült megtalálni a socket eszközszámát.\n"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "pstree (PSmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index e26ba26fba59beb59d0fb5dab581c11fa26862a5..333ee54eed2926ae3aa8b19f15d00b673c10da8f 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 22.2pre1\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2006-03-13 14:16+0000\n"
 "Last-Translator: Marco Colombo <m.colombo@ed.ac.uk>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -134,7 +134,7 @@ msgstr ""
 "Copyright (C) 1993-2005 Werner Almesberger e Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -338,6 +338,37 @@ msgstr "Impossibile aprire un socket di rete.\n"
 msgid "Cannot find socket's device number.\n"
 msgstr "Impossibile trovare il numero di dispositivo del socket.\n"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "pstree (PSmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index 9080c5d14e4ea24e06d53a7cfd6982a74ec83d90..98272f2d8c3a0a0635b33a8205ba3be62068dd6b 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 22.2pre1\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2006-03-20 10:31+0900\n"
 "Last-Translator: GOTO Masanori <gotom@debian.or.jp>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -132,7 +132,7 @@ msgstr ""
 "Copyright (C) 1993-2005 Werner Almesberger and Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -336,6 +336,37 @@ msgstr "
 msgid "Cannot find socket's device number.\n"
 msgstr "¥½¥±¥Ã¥È¤Î¥Ç¥Ð¥¤¥¹Èֹ椬¸«¤Ä¤«¤ê¤Þ¤»¤ó.\n"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "pstree (PSmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index f9cfed74bd9cc7f143ec31c2c03d9e52b149e26a..21e2b5f606037a2a49f6a172ace2cbdf7191a7ac 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -22,7 +22,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 22.2pre1\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2006-03-07 12:01+0100\n"
 "Last-Translator: Trond Endrestøl <Trond.Endrestol@fagskolen.gjovik.no>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
@@ -146,7 +146,7 @@ msgstr ""
 "Copyright (C) 1993-2005 Werner Almesberger og Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -351,6 +351,37 @@ msgstr "Kan ikke 
 msgid "Cannot find socket's device number.\n"
 msgstr "Kan ikke finne socketens enhetsnummer.\n"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "pstree (psmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index 2918d2166e0395d1b151d778ea17c8d9a7179e65..6543c58b692bad2dc3f430fc92ade636a2d2968b 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 22.2pre1\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2006-03-06 21:12+0100\n"
 "Last-Translator: Benno Schulenberg <benno@nietvergeten.nl>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -133,7 +133,7 @@ msgstr ""
 "Copyright (C) 1993-2005 Werner Almesberger and Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -334,6 +334,37 @@ msgstr "Kan netwerk-socket niet openen.\n"
 msgid "Cannot find socket's device number.\n"
 msgstr "Kan apparaatnummer van socket niet vinden.\n"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "pstree (PSmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index 234e5b7051fdc4f5b60cc0fc040fe483626f9291..402404ab925ed9440f051fafbebd89616ef9f524 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 22.2pre1\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2006-03-06 18:01+0100\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -136,7 +136,7 @@ msgstr ""
 "Copyright (C) 1993-2005 Werner Almesberger i Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -337,6 +337,37 @@ msgstr "Nie mo
 msgid "Cannot find socket's device number.\n"
 msgstr "Nie mo¿na odnale¼æ numeru urz±dzenia gniazda.\n"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "pstree (PSmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index 5aedef8226b37902afc1a2d369c7b8a585567972..fa079d8c4cc9198e92446cb9f22e1a8e47f0747e 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\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"
@@ -104,7 +104,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -272,6 +272,37 @@ msgstr ""
 msgid "Cannot find socket's device number.\n"
 msgstr ""
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr ""
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index 4062f2536d4f42a579c7df6b46375a4f25503042..078cabd287975ebacc0cae46a199266626f49ec7 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 1.0\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2001-10-28 22:14-0200\n"
 "Last-Translator: Edesio Costa e Silva <edesio+psmisc@ieee.org>\n"
 "Language-Team: Portuguese <pt@li.org>\n"
@@ -102,7 +102,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, fuzzy, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -303,6 +303,37 @@ msgstr ""
 msgid "Cannot find socket's device number.\n"
 msgstr "não pode achar o número de dispositivo do socket"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "fuser (psmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index 477f927d7a4b6a9ee59db116fd1714500be78907..03453e6c1ecf6281060cea0aa0297d39305ca1c7 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc-21.6pre1\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2005-02-24 12:00-0500\n"
 "Last-Translator: Laurentiu Buzdugan <lbuz@rolix.org>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -135,7 +135,7 @@ msgstr ""
 "Copyright (C) 1993-2002 Werner Almesberger ºi Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -335,6 +335,37 @@ msgstr ""
 msgid "Cannot find socket's device number.\n"
 msgstr "nu pot gãsi numerele dispozitivelor socket-urilor"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "pstree (psmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, fuzzy, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index e21943fb131288ccf4204fe59a968c48df964145..685ce88c0039f418f59b492632063a9cb09813b1 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -5,8 +5,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 20.6\n"
-"Report-Msgid-Bugs-To: evseev@altlinux.ru\n"
-"POT-Creation-Date: 2005-03-15 02:53+0300\n"
+"Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2005-03-15 02:53+0300\n"
 "Last-Translator: Ilya Evseev <evseev@altlinux.ru>\n"
 "Language-Team: woolfy <woolfy@users.sourceforge.net>\n"
@@ -14,35 +14,40 @@ msgstr ""
 "Content-Type: text/plain; charset=KOI8-R\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#: src/killall.c:53
+#: src/killall.c:73
 #, c-format
 msgid "Kill %s(%s%d) ? (y/N) "
 msgstr "%s(%s%d) ÚÁ×ÅÒÛÉÔØ? (y/N) "
 
-#: src/killall.c:245
+#: src/killall.c:116
+#, c-format
+msgid "Cannot get UID from process status\n"
+msgstr ""
+
+#: src/killall.c:142 src/killall.c:664
+#, c-format
+msgid "Bad regular expression: %s\n"
+msgstr ""
+
+#: src/killall.c:338
 #, c-format
 msgid "skipping partial match %s(%d)\n"
 msgstr "ÉÇÎÏÒÉÒÕÀ ÎÅÐÏÌÎÏÅ ÓÏ×ÐÁÄÅÎÉÅ %s(%d)\n"
 
-#: src/killall.c:339
+#: src/killall.c:427
 #, c-format
 msgid "Killed %s(%s%d) with signal %d\n"
 msgstr "%s(%s%d) ÚÁ×ÅÒۣΠÓÉÇÎÁÌÏÍ %d\n"
 
-#: src/killall.c:351 src/fuser.c:494 src/pstree.c:673
-#, c-format
-msgid "%s is empty (not mounted ?)\n"
-msgstr "%s ÐÕÓÔ (ÎÅ ÓÍÏÎÔÉÒÏ×ÁΠ?)\n"
-
-#: src/killall.c:357
+#: src/killall.c:441
 #, c-format
 msgid "%s: no process killed\n"
 msgstr "%s: ÎÅ ÚÁ×ÅÒۣΠÎÉ ÏÄÉΠÐÒÏÃÅÓÓ\n"
 
-#: src/killall.c:388
-#, c-format
+#: src/killall.c:479
+#, fuzzy, c-format
 msgid ""
-"usage: pidof [ -eg ] name ...\n"
+"Usage: pidof [ -eg ] NAME...\n"
 "       pidof -V\n"
 "\n"
 "    -e      require exact match for very long names;\n"
@@ -56,25 +61,28 @@ msgstr ""
 "\n"
 "   -e   ÔÒÅÂÏ×ÁÔØ ÐÏÌÎÏÇÏ ÓÏ×ÐÁÄÅÎÉÑ ÄÌÑ ÏÞÅÎØ ÄÌÉÎÎÙÈ ÉÍ£Î;\n"
 "        ÉÇÎÏÒÉÒÏ×ÁÔØ, ÅÓÌÉ ËÏÍÁÎÄÎÁÑ ÓÔÒÏËÁ ÎÅÄÏÓÔÕÐÎÁ\n"
-"   -g   ÐÏËÁÚÙ×ÁÔØ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÇÒÕÐÐÙ ÐÒÏÃÅÓÓÁ ×ÍÅÓÔÏ ÉÄÅÎÔÉÆÉËÁÔÏÒÁ ÐÒÏÃÅÓÓÁ\n"
+"   -g   ÐÏËÁÚÙ×ÁÔØ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÇÒÕÐÐÙ ÐÒÏÃÅÓÓÁ ×ÍÅÓÔÏ ÉÄÅÎÔÉÆÉËÁÔÏÒÁ "
+"ÐÒÏÃÅÓÓÁ\n"
 "   -V   ÐÏËÁÚÁÔØ ×ÅÒÓÉÀ ÐÒÏÇÒÁÍÍÙ\n"
 "\n"
 
-#: src/killall.c:402
-#, c-format
-msgid "usage: killall [-s sid] [-c context] [ -egiqvw ] [ -signal ] name ...\n"
-msgstr "óÉÎÔÁËÓÉÓ: killall [-s sid] [-c context] [ -egiqvw ] [ -signal ] name ...\n"
+#: src/killall.c:493
+#, fuzzy, c-format
+msgid ""
+"Usage: killall [-Z CONTEXT] [-u USER] [ -eIgiqrvw ] [ -SIGNAL ] NAME...\n"
+msgstr ""
+"óÉÎÔÁËÓÉÓ: killall [-s sid] [-c context] [ -egiqvw ] [ -signal ] name ...\n"
 
-#: src/killall.c:405
-#, c-format
-msgid "usage: killall [ OPTIONS ] [ -- ] name ...\n"
+#: src/killall.c:496
+#, fuzzy, c-format
+msgid "Usage: killall [OPTION]... [--] NAME...\n"
 msgstr "óÉÎÔÁËÓÉÓ: killall [ OPTIONS ] [ -- ] name ...\n"
 
-#: src/killall.c:408
-#, c-format
+#: src/killall.c:499
+#, fuzzy, c-format
 msgid ""
 "       killall -l, --list\n"
-"       killall -V --version\n"
+"       killall -V, --version\n"
 "\n"
 "  -e,--exact          require exact match for very long names\n"
 "  -I,--ignore-case    case insensitive process name match\n"
@@ -82,18 +90,20 @@ msgid ""
 "  -i,--interactive    ask for confirmation before killing\n"
 "  -l,--list           list all known signal names\n"
 "  -q,--quiet          don't print complaints\n"
-"  -s,--signal         send signal instead of SIGTERM\n"
+"  -r,--regexp         interpret NAME as an extended regular expression\n"
+"  -s,--signal SIGNAL  send this signal instead of SIGTERM\n"
+"  -u,--user USER      kill only process(es) running as USER\n"
 "  -v,--verbose        report if the signal was successfully sent\n"
 "  -V,--version        display version information\n"
 "  -w,--wait           wait for processes to die\n"
-"\n"
 msgstr ""
 "       killall -l, --list\n"
 "       killall -V --version\n"
 "\n"
 "  -e,--exact          ÔÒÅÂÏ×ÁÔØ ÐÏÌÎÏÇÏ ÓÏ×ÐÁÄÅÎÉÑ ÄÌÑ ÏÞÅÎØ ÄÌÉÎÎÙÈ ÉÍ£Î\n"
 "  -I,--ignore-case    ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ ÓÉÍ×ÏÌÏ× × ÉÍÅÎÁÈ ÐÒÏÃÅÓÓÏ×\n"
-"  -g,--process-group  ÚÁ×ÅÒÛÁÔØ ÇÒÕÐÐÕ ÐÒÏÃÅÓÓÁ × ÄÏÐÏÌÎÅÎÉÅ Ë ÓÁÍÏÍÕ ÐÒÏÃÅÓÓÕ\n"
+"  -g,--process-group  ÚÁ×ÅÒÛÁÔØ ÇÒÕÐÐÕ ÐÒÏÃÅÓÓÁ × ÄÏÐÏÌÎÅÎÉÅ Ë ÓÁÍÏÍÕ "
+"ÐÒÏÃÅÓÓÕ\n"
 "  -i,--interactive    ÚÁÐÒÁÛÉ×ÁÔØ ÐÏÄÔ×ÅÒÖÄÅÎÉÅ ÐÅÒÅÄ ÚÁ×ÅÒÛÅÎÉÅÍ ÐÒÏÃÅÓÓÏ×\n"
 "  -l,--list           ×Ù×ÅÓÔÉ ÓÐÉÓÏË ÄÏÐÕÓÔÉÍÙÈ ÉͣΠÓÉÇÎÁÌÏ×\n"
 "  -q,--quiet          ÏÔËÌÀÞÉÔØ ÌÉÛÎÉÅ ÓÏÏÂÝÅÎÉÑ\n"
@@ -103,29 +113,26 @@ msgstr ""
 "  -w,--wait           ÏÖÉÄÁÔØ ÚÁ×ÅÒÛÅÎÉÑ ÐÒÏÃÅÓÓÏ×\n"
 "\n"
 
-
-#: src/killall.c:422
-#, c-format
+#: src/killall.c:515
+#, fuzzy, c-format
 msgid ""
-"  -d,--sid            kill only process(es) having sid\n"
-"  -c,--context        kill only process(es) having scontext\n"
-"   (-s, -c are mutually exclusive and must precede other arguments)\n"
-"\n"
+"  -Z,--context REGEXP kill only process(es) having context\n"
+"                      (must precede other arguments)\n"
 msgstr ""
 "  -d,--sid            ÚÁ×ÅÒÛÁÔØ ÔÏÌØËÏ ÐÒÏÃÅÓÓÙ(Ù) Ó ÕËÁÚÁÎÎÙÍ SID\n"
 "  -c,--context        ÚÁ×ÅÒÛÁÔØ ÔÏÌØËÏ ÐÒÏÃÅÓÓÙ(Ù) Ó ÕËÁÚÁÎÎÙÍ SCONTEXT\n"
 "   (-s, -c ×ÚÁÉÍÎÏ ÉÓËÌÀÞÁÀÔ ÄÒÕÇ ÄÒÕÇÁ É ÄÏÌÖÎÙ ÂÙÔØ ÐÅÒ×ÙÍ ÁÒÇÕÍÅÎÔÏÍ)\n"
 "\n"
 
-#: src/killall.c:444 src/fuser.c:989 src/pstree.c:743
+#: src/killall.c:536 src/fuser.c:117 src/pstree.c:780
 #, c-format
 msgid ""
-"Copyright (C) 1993-2002 Werner Almesberger and Craig Small\n"
+"Copyright (C) 1993-2005 Werner Almesberger and Craig Small\n"
 "\n"
 msgstr ""
 
-#: src/killall.c:446 src/fuser.c:991 src/pstree.c:745
-#, fuzzy, c-format
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
+#, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
 "This is free software, and you are welcome to redistribute it under\n"
@@ -133,97 +140,41 @@ msgid ""
 "For more information about these matters, see the files named COPYING.\n"
 msgstr ""
 
-#: src/killall.c:563
+#: src/killall.c:638
 #, c-format
-msgid "%s: SID (%s) must be numeric\n"
-msgstr "%s: SID (%s) ÄÏÌÖÅΠÂÙÔØ ÞÉÓÌÏ×ÙÍ\n"
+msgid "Cannot find user %s\n"
+msgstr ""
 
-#: src/killall.c:614
+#: src/killall.c:697
 #, c-format
 msgid "Maximum number of names is %d\n"
 msgstr "ëÏÌÉÞÅÓÔ×Ï ÉͣΠÎÅ ÍÏÖÅÔ ÐÒÅ×ÙÛÁÔØ %d\n"
 
-#: src/fuser.c:243
-#, c-format
-msgid "-4 flag used but proc file %s is not readable\n"
-msgstr "ÕËÁÚÁΠÆÌÁÇ -4, ÎÏ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ proc-ÆÁÊÌ %s ÎÅÄÏÓÔÕÐÅÎ\n"
-
-#: src/fuser.c:252
-#, c-format
-msgid "-6 flag used but proc file %s is not readable\n"
-msgstr "ÕËÁÚÁΠÆÌÁÇ -6, ÎÏ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ proc-ÆÁÊÌ %s ÎÅÄÏÓÔÕÐÅÎ\n"
-
-#: src/fuser.c:592
-#, c-format
-msgid "Kill process %d ? (y/N) "
-msgstr "úÁ×ÅÒÛÉÔØ ÐÒÏÃÅÓÓ %d ? (y/N) "
-
-#: src/fuser.c:626
-#, c-format
-msgid "kill %d"
-msgstr "úÁ×ÅÒÛÅÎÉÅ ÐÒÏÃÅÓÓÁ %d"
-
-#: src/fuser.c:630 src/fuser.c:634
-#, c-format
-msgid "No automatic removal. Please use  umount %s\n"
-msgstr "á×ÔÏÍÁÔÉÞÅÓËÏÅ ÏÔËÌÀÞÅÎÉÅ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ. éÓÐÏÌØÚÕÊÔÅ umount %s\n"
-
-#: src/fuser.c:638
-#, c-format
-msgid "No automatic removal. Please use  swapoff %s\n"
-msgstr "á×ÔÏÍÁÔÉÞÅÓËÏÅ ÏÔËÌÀÞÅÎÉÅ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ. éÓÐÏÌØÚÕÊÔÅ swapoff %s\n"
-
-#: src/fuser.c:661
-#, c-format
-msgid ""
-"\n"
-"%*s USER        PID ACCESS COMMAND\n"
-msgstr ""
-
-#: src/fuser.c:752
-#, c-format
-msgid "Internal error (type %d)\n"
-msgstr "÷ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ (ÔÉР%d)\n"
-
-#: src/fuser.c:790
-#, c-format
-msgid "kernel mount  "
-msgstr "Kernel mount  "
-
-#: src/fuser.c:793
+#: src/killall.c:702 src/pstree.c:710
 #, c-format
-msgid "kernel loop   "
-msgstr "Kernel loop   "
-
-#: src/fuser.c:796
-#, c-format
-msgid "kernel swap   "
-msgstr "Kernel swap   "
-
-#: src/fuser.c:952
-#, c-format
-msgid "can't find sockets' device number"
-msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÎÏÍÅÒ ÕÓÔÒÏÊÓÔ×Á ÓÏËÅÔÁ"
+msgid "%s is empty (not mounted ?)\n"
+msgstr "%s ÐÕÓÔ (ÎÅ ÓÍÏÎÔÉÒÏ×ÁΠ?)\n"
 
-#: src/fuser.c:961
-#, c-format
+#: src/fuser.c:86
+#, fuzzy, c-format
 msgid ""
-"usage: fuser [ -a | -s | -c ] [ -n space ] [ -signal ] [ -kimuv ] name ...\n"
-"             [ - ] [ -n space ] [ -signal ] [ -kimuv ] name ...\n"
+"Usage: fuser [ -a | -s | -c ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME...\n"
+"             [ - ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME...\n"
 "       fuser -l\n"
 "       fuser -V\n"
+"Show which processes use the named files, sockets, or filesystems.\n"
 "\n"
 "    -a        display unused files too\n"
 "    -c        mounted FS\n"
 "    -f        silently ignored (for POSIX compatibility)\n"
-"    -k        kill processes accessing that file\n"
 "    -i        ask before killing (ignored without -k)\n"
-"    -l        list signal names\n"
-"    -m        mounted FS\n"
-"    -n space  search in the specified name space (file, udp, or tcp)\n"
+"    -k        kill processes accessing the named file\n"
+"    -l        list available signal names\n"
+"    -m        show all processes using the named filesystems\n"
+"    -n SPACE  search in this name space (file, udp, or tcp)\n"
 "    -s        silent operation\n"
-"    -signal   send signal instead of SIGKILL\n"
-"    -u        display user ids\n"
+"    -SIGNAL   send this signal instead of SIGKILL\n"
+"    -u        display user IDs\n"
 "    -v        verbose output\n"
 "    -V        display version information\n"
 "    -4        search IPv4 sockets only\n"
@@ -257,43 +208,176 @@ msgstr ""
 "  éÍÅÎÁ udp/tcp: [ÌÏËÁÌØÎÙÊ_ÐÏÒÔ][,[ÕÄÁÌ£ÎÎÙÊ_ÈÏÓÔ][,[ÕÄÁÌ£ÎÎÙÊ_ÐÏÒÔ]]]\n"
 "\n"
 
-#: src/fuser.c:987
-#, c-format
-msgid "fuser (psmisc) %s\n"
+#: src/fuser.c:115
+#, fuzzy, c-format
+msgid "fuser (PSmisc) %s\n"
 msgstr "fuser (psmisc) %s\n"
 
-#: src/fuser.c:1173
+#: src/fuser.c:142
+#, c-format
+msgid "Cannot open /proc directory: %s\n"
+msgstr ""
+
+#: src/fuser.c:278
 #, c-format
-msgid "ignoring -m in name space \"%s\"\n"
-msgstr "-m ÂÕÄÅÔ ÉÇÎÏÒÉÒÏ×ÁΠנÐÒÏÓÔÒÁÎÓÔ×Å ÉͣΠ\"%s\"\n"
+msgid "Cannot allocate memory for matched proc: %s\n"
+msgstr ""
+
+#: src/fuser.c:311
+#, c-format
+msgid "Cannot stat mount point %s: %s\n"
+msgstr ""
+
+#: src/fuser.c:328 src/fuser.c:347 src/fuser.c:370
+#, c-format
+msgid "Cannot stat %s: %s\n"
+msgstr ""
+
+#: src/fuser.c:469
+#, c-format
+msgid "Cannot resolve local port %s: %s\n"
+msgstr ""
+
+#: src/fuser.c:485
+#, c-format
+msgid "Unknown local port AF %d\n"
+msgstr ""
+
+#: src/fuser.c:538 src/fuser.c:590
+#, c-format
+msgid "Cannot open protocol file \"%s\": %s\n"
+msgstr ""
+
+#: src/fuser.c:711
+msgid "Namespace option requires an argument."
+msgstr ""
+
+#: src/fuser.c:720
+msgid "Invalid namespace name"
+msgstr ""
+
+#: src/fuser.c:776
+msgid "You can only use files with mountpoint option"
+msgstr ""
+
+#: src/fuser.c:805
+msgid "No process specification given"
+msgstr ""
+
+#: src/fuser.c:810
+msgid "You cannot use the mounted and mountpoint flags together"
+msgstr ""
+
+#: src/fuser.c:817
+msgid "all option cannot be used with silent option."
+msgstr ""
+
+#: src/fuser.c:821
+msgid "You cannot search for only IPv4 and only IPv6 sockets at the same time"
+msgstr ""
+
+#: src/fuser.c:866
+#, c-format
+msgid ""
+"\n"
+"%*s USER        PID ACCESS COMMAND\n"
+msgstr ""
+
+#: src/fuser.c:891 src/fuser.c:916
+msgid "(unknown)"
+msgstr ""
+
+#: src/fuser.c:978
+#, c-format
+msgid "Cannot stat file %s: %s\n"
+msgstr ""
+
+#: src/fuser.c:1072
+#, c-format
+msgid "Cannot open /proc/net/unix: %s\n"
+msgstr ""
+
+#: src/fuser.c:1108
+#, c-format
+msgid "Cannot open /etc/mtab: %s\n"
+msgstr ""
+
+#: src/fuser.c:1157
+#, c-format
+msgid "Kill process %d ? (y/N) "
+msgstr "úÁ×ÅÒÛÉÔØ ÐÒÏÃÅÓÓ %d ? (y/N) "
 
 #: src/fuser.c:1181
 #, c-format
-msgid "%s/%s: invalid specification\n"
-msgstr "%s/%s: ÎÅËÏÒÒÅËÔÎÙÊ ÆÏÒÍÁÔ\n"
+msgid "Could not kill process %d: %s\n"
+msgstr ""
 
-#: src/pstree.c:377
+#: src/fuser.c:1196
 #, c-format
-msgid "MAX_DEPTH not big enough.\n"
-msgstr "MAX_DEPTH ÄÏÌÖÅΠÂÙÔØ ÓÄÅÌÁΠÂÏÌØÛÅ.\n"
+msgid "Cannot open a network socket.\n"
+msgstr ""
 
-#: src/pstree.c:713
+#: src/fuser.c:1200
+#, fuzzy, c-format
+msgid "Cannot find socket's device number.\n"
+msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÎÏÍÅÒ ÕÓÔÒÏÊÓÔ×Á ÓÏËÅÔÁ"
+
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "fuser (psmisc) %s\n"
+
+#: src/peekfd.c:59
 #, c-format
 msgid ""
-"usage: pstree [ -a ] [ -c ] [ -h | -H pid ] [ -l ] [ -n ] [ -p ] [ -u ]\n"
-"              [ -A | -G | -U ] [ pid | user]\n"
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
+#: src/pstree.c:374
+#, fuzzy, c-format
+msgid "Internal error: MAX_DEPTH not big enough.\n"
+msgstr "MAX_DEPTH ÄÏÌÖÅΠÂÙÔØ ÓÄÅÌÁΠÂÏÌØÛÅ.\n"
+
+#: src/pstree.c:750
+#, fuzzy, c-format
+msgid ""
+"Usage: pstree [ -a ] [ -c ] [ -h | -H PID ] [ -l ] [ -n ] [ -p ] [ -u ]\n"
+"              [ -A | -G | -U ] [ PID | USER ]\n"
 "       pstree -V\n"
+"Display a tree of processes.\n"
 "\n"
 "    -a     show command line arguments\n"
 "    -A     use ASCII line drawing characters\n"
 "    -c     don't compact identical subtrees\n"
 "    -h     highlight current process and its ancestors\n"
-"    -H pid highlight process \"pid\" and its ancestors\n"
+"    -H PID highlight this process and its ancestors\n"
 "    -G     use VT100 line drawing characters\n"
 "    -l     don't truncate long lines\n"
 "    -n     sort output by PID\n"
 "    -p     show PIDs; implies -c\n"
 "    -u     show uid transitions\n"
+"    -U     use UTF-8 (Unicode) line drawing characters\n"
+"    -V     display version information\n"
 msgstr ""
 "óÉÎÔÁËÓÉÓ: pstree [ -a ] [ -c ] [ -h | -H pid ] [ -l ] [ -n ] [ -p ] [ -u ]\n"
 "                  [ -A | -G | -U ] [ pid | user]\n"
@@ -304,72 +388,116 @@ msgstr ""
 "    -c     ÎÅ ÓÖÉÍÁÔØ ÏÄÉÎÁËÏ×ÙÅ ÐÏÄÄÅÒÅ×ØÑ\n"
 "    -h     ×ÙÄÅÌÑÔØ Ã×ÅÔÏÍ ÔÅËÕÝÉÊ ÐÒÏÃÅÓÓ É ÅÇÏ ÐÒÅÄËÏ×\n"
 "    -H pid ×ÙÄÅÌÑÔØ Ã×ÅÔÏÍ ÐÒÏÃÅÓÓ \"pid\" É ÅÇÏ ÐÒÅÄËÏ×\n"
-"    -G     ÉÓÐÏÌØÚÏ×ÁÔØ ÄÌÑ ÒÉÓÏ×ÁÎÉÑ ÌÉÎÉÊ ÕÐÒÁ×ÌÑÀÝÉÅ ÓÉÍ×ÏÌÙ ÔÅÒÍÉÎÁÌÁ VT100\n"
+"    -G     ÉÓÐÏÌØÚÏ×ÁÔØ ÄÌÑ ÒÉÓÏ×ÁÎÉÑ ÌÉÎÉÊ ÕÐÒÁ×ÌÑÀÝÉÅ ÓÉÍ×ÏÌÙ ÔÅÒÍÉÎÁÌÁ "
+"VT100\n"
 "    -l     ÎÅ ÏÂÒÅÚÁÔØ ÄÌÉÎÎÙÅ ÓÔÒÏËÉ\n"
 "    -n     ÓÏÒÔÉÒÏ×ÁÔØ ×Ù×ÏÄ ÐÏ ÐÏÌÀ PID\n"
 "    -p     ÐÏËÁÚÙ×ÁÔØ ÉÄÅÎÔÉÆÉËÁÔÏÒÙ ÐÒÏÃÅÓÓÏ× (PIDs); ×ËÌÀÞÁÅÔ -c\n"
-"    -u     ÐÏËÁÚÙ×ÁÔØ ÐÅÒÅÈÏÄÙ ÉÄÅÎÔÉÆÉËÁÔÏÒÏ× ÐÏÌØÚÏ×ÁÔÅÌÅÊ (uid transitions)\n"
+"    -u     ÐÏËÁÚÙ×ÁÔØ ÐÅÒÅÈÏÄÙ ÉÄÅÎÔÉÆÉËÁÔÏÒÏ× ÐÏÌØÚÏ×ÁÔÅÌÅÊ (uid "
+"transitions)\n"
 
-#: src/pstree.c:728
-#, c-format
-msgid ""
-"    -s     show Flask SIDs\n"
-"    -x     show Flask security contexts\n"
+#: src/pstree.c:768
+#, fuzzy, c-format
+msgid "    -Z     show SELinux security contexts\n"
 msgstr ""
 "    -s     ÐÏËÁÚÁÔØ Flask SIDs\n"
 "    -x     ÐÏËÁÚÁÔØ Flask security contexts\n"
 
-#: src/pstree.c:732
+#: src/pstree.c:771
 #, c-format
 msgid ""
-"    -U     use UTF-8 (Unicode) line drawing characters\n"
-"    -V     display version information\n"
-"    pid    start at pid, default 1 (init)\n"
-"    user   show only trees rooted at processes of that user\n"
+"    PID    start at this PID; default is 1 (init)\n"
+"    USER   show only trees rooted at processes of this user\n"
 "\n"
 msgstr ""
-"    -U     ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÄÉÒÏ×ËÕ UTF-8 (Unicode) ÄÌÑ ÒÉÓÏ×ÁÎÉÑ ÌÉÎÉÊ\n"
-"    -V     ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ\n"
-"    pid    ÉÄÅÎÔÉÆÉËÁÔÏÒ ËÏÒÎÅ×ÏÇÏ ÐÒÏÃÅÓÓÁ, ÐÏ ÕÍÏÌÞÁÎÉÀ 1 (init)\n"
-"    user   ÐÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÄÅÒÅ×ØÑ Ó ËÏÒÎÅ×ÙÍÉ ÐÒÏÃÅÓÓÁÍÉ,\n"
-"           ÐÒÉÎÁÄÌÅÖÁÝÉÍÉ ÄÁÎÎÏÍÕ ÐÏÌØÚÏ×ÁÔÅÌÀ\n"
-"\n"
 
-#: src/pstree.c:741
+#: src/pstree.c:778
 #, fuzzy, c-format
-msgid "pstree (psmisc) %s\n"
+msgid "pstree (PSmisc) %s\n"
 msgstr "fuser (psmisc) %s\n"
 
-#: src/pstree.c:835
+#: src/pstree.c:871
 #, c-format
 msgid "TERM is not set\n"
 msgstr "ðÅÒÅÍÅÎÎÁÑ ÏËÒÕÖÅÎÉÑ TERM ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ\n"
 
-#: src/pstree.c:840
+#: src/pstree.c:876
 #, c-format
 msgid "Can't get terminal capabilities\n"
 msgstr "îÅ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ ÈÁÒÁËÔÅÒÉÓÔÉËÉ ÔÅÒÍÉÎÁÌÁ\n"
 
-#: src/pstree.c:884
+#: src/pstree.c:920
 #, c-format
 msgid "No such user name: %s\n"
 msgstr "îÅÉÚ×ÅÓÔÎÏÅ ÉÑ ÐÏÌØÚÏ×ÁÔÅÌÑ: %s\n"
 
-#: src/pstree.c:900
+#: src/pstree.c:936
 #, c-format
 msgid "No processes found.\n"
 msgstr "îÅ ÎÁÊÄÅÎÏ ÎÉ ÏÄÎÏÇÏ ÐÒÏÃÅÓÓÁ.\n"
 
-#: src/pstree.c:905
+#: src/pstree.c:941
 #, c-format
 msgid "Press return to close\n"
 msgstr "îÁÖÍÉÔÅ Enter ÄÌÑ ×ÙÈÏÄÁ\n"
 
-#: src/signals.c:65
+#: src/signals.c:84
 #, c-format
 msgid "%s: unknown signal; %s -l lists signals.\n"
 msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ÓÉÇÎÁÌ; %s -l ×Ù×ÏÄÉÔ ÓÐÉÓÏË ÄÏÓÔÕÐÎÙÈ ÓÉÇÎÁÌÏ×.\n"
 
+#~ msgid "%s: SID (%s) must be numeric\n"
+#~ msgstr "%s: SID (%s) ÄÏÌÖÅΠÂÙÔØ ÞÉÓÌÏ×ÙÍ\n"
+
+#~ msgid "-4 flag used but proc file %s is not readable\n"
+#~ msgstr "ÕËÁÚÁΠÆÌÁÇ -4, ÎÏ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ proc-ÆÁÊÌ %s ÎÅÄÏÓÔÕÐÅÎ\n"
+
+#~ msgid "-6 flag used but proc file %s is not readable\n"
+#~ msgstr "ÕËÁÚÁΠÆÌÁÇ -6, ÎÏ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ proc-ÆÁÊÌ %s ÎÅÄÏÓÔÕÐÅÎ\n"
+
+#~ msgid "kill %d"
+#~ msgstr "úÁ×ÅÒÛÅÎÉÅ ÐÒÏÃÅÓÓÁ %d"
+
+#~ msgid "No automatic removal. Please use  umount %s\n"
+#~ msgstr ""
+#~ "á×ÔÏÍÁÔÉÞÅÓËÏÅ ÏÔËÌÀÞÅÎÉÅ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ. éÓÐÏÌØÚÕÊÔÅ umount %s\n"
+
+#~ msgid "No automatic removal. Please use  swapoff %s\n"
+#~ msgstr ""
+#~ "á×ÔÏÍÁÔÉÞÅÓËÏÅ ÏÔËÌÀÞÅÎÉÅ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ. éÓÐÏÌØÚÕÊÔÅ swapoff %s\n"
+
+#~ msgid "Internal error (type %d)\n"
+#~ msgstr "÷ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ (ÔÉР%d)\n"
+
+#~ msgid "kernel mount  "
+#~ msgstr "Kernel mount  "
+
+#~ msgid "kernel loop   "
+#~ msgstr "Kernel loop   "
+
+#~ msgid "kernel swap   "
+#~ msgstr "Kernel swap   "
+
+#~ msgid "ignoring -m in name space \"%s\"\n"
+#~ msgstr "-m ÂÕÄÅÔ ÉÇÎÏÒÉÒÏ×ÁΠנÐÒÏÓÔÒÁÎÓÔ×Å ÉͣΠ\"%s\"\n"
+
+#~ msgid "%s/%s: invalid specification\n"
+#~ msgstr "%s/%s: ÎÅËÏÒÒÅËÔÎÙÊ ÆÏÒÍÁÔ\n"
+
+#~ msgid ""
+#~ "    -U     use UTF-8 (Unicode) line drawing characters\n"
+#~ "    -V     display version information\n"
+#~ "    pid    start at pid, default 1 (init)\n"
+#~ "    user   show only trees rooted at processes of that user\n"
+#~ "\n"
+#~ msgstr ""
+#~ "    -U     ÉÓÐÏÌØÚÏ×ÁÔØ ËÏÄÉÒÏ×ËÕ UTF-8 (Unicode) ÄÌÑ ÒÉÓÏ×ÁÎÉÑ ÌÉÎÉÊ\n"
+#~ "    -V     ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ\n"
+#~ "    pid    ÉÄÅÎÔÉÆÉËÁÔÏÒ ËÏÒÎÅ×ÏÇÏ ÐÒÏÃÅÓÓÁ, ÐÏ ÕÍÏÌÞÁÎÉÀ 1 (init)\n"
+#~ "    user   ÐÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÄÅÒÅ×ØÑ Ó ËÏÒÎÅ×ÙÍÉ ÐÒÏÃÅÓÓÁÍÉ,\n"
+#~ "           ÐÒÉÎÁÄÌÅÖÁÝÉÍÉ ÄÁÎÎÏÍÕ ÐÏÌØÚÏ×ÁÔÅÌÀ\n"
+#~ "\n"
+
 #~ msgid "No process references; use -v for the complete list\n"
 #~ msgstr ""
 #~ "Keine Prozess Referenzen; verwenden Sie -v fuer die komplette Liste\n"
index 939758d773e35cb7e0d7d655cbe0d14ca40edfc1..0f5b1afdfc9c96a8333e0e098b78c9768db0d9b7 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc 22.2pre1\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2006-05-04 00:08+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -132,7 +132,7 @@ msgstr ""
 "Copyright 1993-2005 Werner Almesberger och Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -335,6 +335,37 @@ msgstr "Kan inte 
 msgid "Cannot find socket's device number.\n"
 msgstr "Kunde inte hitta uttagets enhetsnummer.\n"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "pstree (PSmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index 455e8777482af42897f9f0660dbcae821bd89b0b..e1fa9cddf14b83e4bcf04d30b3367a2f10df16ed 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: psmisc-22.2pre1\n"
 "Report-Msgid-Bugs-To: csmall@small.dropbear.id.au\n"
-"POT-Creation-Date: 2006-08-09 21:28+1000\n"
+"POT-Creation-Date: 2007-03-02 09:44+1100\n"
 "PO-Revision-Date: 2006-03-08 19:06+1030\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
@@ -137,7 +137,7 @@ msgstr ""
 "Bản quyền © 1993-2005 Werner Almesberger và Craig Small\n"
 "\n"
 
-#: src/killall.c:538 src/fuser.c:119 src/pstree.c:782
+#: src/killall.c:538 src/fuser.c:119 src/peekfd.c:61 src/pstree.c:782
 #, c-format
 msgid ""
 "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
@@ -340,6 +340,37 @@ msgstr "Không thể mở một ổ cắm mạng.\n"
 msgid "Cannot find socket's device number.\n"
 msgstr "Không tìm thấy số hiệu thiết bị ổ cắm.\n"
 
+#: src/peekfd.c:49
+#, c-format
+msgid "error attaching to pid %i\n"
+msgstr ""
+
+#: src/peekfd.c:57
+#, fuzzy, c-format
+msgid "peekfd (PSmisc) %s\n"
+msgstr "pstree (PSmisc) %s\n"
+
+#: src/peekfd.c:59
+#, c-format
+msgid ""
+"Copyright (C) 2007 Trent Waddington\n"
+"\n"
+msgstr ""
+
+#: src/peekfd.c:69
+#, c-format
+msgid ""
+"Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+"    -8 output 8 bit clean streams.\n"
+"    -n don't display read/write from fd headers.\n"
+"    -c peek at any new child processes too.\n"
+"    -d remove duplicate read/writes from the output.\n"
+"    -V prints version info.\n"
+"    -h prints this help.\n"
+"\n"
+"  Press CTRL-C to end output.\n"
+msgstr ""
+
 #: src/pstree.c:374
 #, c-format
 msgid "Internal error: MAX_DEPTH not big enough.\n"
index b95ee1fb76788e76d49131dbb5006ac1ab066384..138aeabde1559eb062b26f5e30d56975f095c756 100644 (file)
@@ -1,7 +1,7 @@
 
 AM_CFLAGS = -Wall -DLOCALEDIR=\"/usr/share/locale\"
 
-bin_PROGRAMS = fuser killall pstree oldfuser
+bin_PROGRAMS = fuser killall pstree oldfuser peekfd
 
 oldfuser_SOURCES = oldfuser.c comm.h signals.c signals.h loop.h i18n.h
 
@@ -11,6 +11,8 @@ killall_SOURCES = killall.c comm.h signals.c signals.h i18n.h
 
 killall_LDADD = @SELINUX_LIB@
 
+peekfd_SOURCES = peekfd.c
+
 pstree_SOURCES = pstree.c comm.h i18n.h
 
 pstree_LDADD = @TERMCAP_LIB@ @SELINUX_LIB@
diff --git a/src/peekfd.c b/src/peekfd.c
new file mode 100644 (file)
index 0000000..e78f0e6
--- /dev/null
@@ -0,0 +1,207 @@
+/*
+ * peekfd.c - Intercept file descriptor read and writes
+ *
+ * Copyright (C) 2007 Trent Waddington <trent.waddington@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <unistd.h>
+#include <stdio.h>
+#include <sys/ptrace.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <linux/user.h>
+#include <stdlib.h>
+#include <getopt.h>
+#include <ctype.h>
+
+#include "i18n.h"
+
+#define MAX_ATTACHED_PIDS 1024
+int num_attached_pids = 0;
+pid_t attached_pids[MAX_ATTACHED_PIDS];
+
+void detach(void) {
+       int i;
+       for (i = 0; i < num_attached_pids; i++) 
+               ptrace(PTRACE_DETACH, attached_pids[i], 0, 0);
+}
+
+void attach(pid_t pid) {
+       attached_pids[0] = pid;
+       if (ptrace(PTRACE_ATTACH, pid, 0, 0) == -1) {
+               fprintf(stderr, _("error attaching to pid %i\n"), pid);
+               return;
+       }
+       num_attached_pids++;
+}
+
+void print_version()
+{
+  fprintf(stderr, _("peekfd (PSmisc) %s\n"), VERSION);
+  fprintf(stderr, _(
+    "Copyright (C) 2007 Trent Waddington\n\n"));
+  fprintf(stderr, _(
+    "PSmisc comes with ABSOLUTELY NO WARRANTY.\n"
+    "This is free software, and you are welcome to redistribute it under\n"
+    "the terms of the GNU General Public License.\n"
+    "For more information about these matters, see the files named COPYING.\n"));
+}
+
+void usage() {
+       fprintf(stderr, _(
+      "Usage: peekfd [-8] [-n] [-c] [-d] [-V] [-h] <pid> [<fd> ..]\n"
+         "    -8 output 8 bit clean streams.\n"
+         "    -n don't display read/write from fd headers.\n"
+         "    -c peek at any new child processes too.\n"
+         "    -d remove duplicate read/writes from the output.\n"
+         "    -V prints version info.\n"
+         "    -h prints this help.\n"
+         "\n"
+         "  Press CTRL-C to end output.\n"));
+}
+
+int bufdiff(int pid, unsigned char *lastbuf, unsigned int addr, unsigned int len) {
+       int i;
+       for (i = 0; i < len; i++)
+               if (lastbuf[i] != (ptrace(PTRACE_PEEKTEXT, pid, addr + i, 0) & 0xff))
+                       return 1;
+       return 0;
+}
+
+int main(int argc, char **argv)
+{
+       if (argc < 2) {
+               usage();
+               return 1;
+       }
+
+       int eight_bit_clean = 0;
+       int no_headers = 0;
+       int follow_forks = 0;
+       int remove_duplicates = 0;
+
+       int opt;
+       while ((opt = getopt(argc, argv, "8ncdvh")) != -1) {
+               switch(opt) {
+                       case '8':
+                               eight_bit_clean = 1;
+                               break;
+                       case 'n':
+                               no_headers = 1;
+                               break;
+                       case 'c':
+                               follow_forks = 1;
+                               break;
+                       case 'd':
+                               remove_duplicates = 1;
+                               break;
+                       case 'V':
+                               print_version();
+                               return 1;
+                       case 'h':
+                               usage();
+                               return 1;
+               }
+       }
+
+       int numfds = argc - optind - 1;
+       int *fds = malloc(sizeof(int) * numfds);
+       int i;
+       for (i = 0; i < numfds; i++)
+               fds[i] = atoi(argv[optind + 1 + i]);
+
+       attach(atoi(argv[optind]));
+       if (num_attached_pids == 0)
+               return 1;
+
+       atexit(detach);
+
+       ptrace(PTRACE_SYSCALL, attached_pids[0], 0, 0);
+
+       /*int count = 0;*/
+       int lastfd = numfds > 0 ? fds[0] : 0;
+       int lastdir = 3;
+       unsigned char *lastbuf = NULL;
+       int last_buf_size=-1;
+
+       for(;;) {
+               int status;
+               int pid = wait(&status);
+               if (WIFSTOPPED(status)) {
+                       struct user_regs_struct regs;
+                       ptrace(PTRACE_GETREGS, pid, 0, &regs);
+               
+                       /*unsigned int b = ptrace(PTRACE_PEEKTEXT, pid, regs.eip, 0);*/
+       
+                       if (follow_forks && (regs.orig_eax == 2 || regs.orig_eax == 120)) {
+                               if (regs.eax > 0)
+                                       attach(regs.eax);                                       
+                       }
+                       if ((regs.orig_eax == 3 || regs.orig_eax == 4) && (regs.edx == regs.eax)) {
+                               for (i = 0; i < numfds; i++)
+                                       if (fds[i] == regs.ebx)
+                                               break;
+                               if (i != numfds || numfds == 0) {
+                                       if (regs.ebx != lastfd || regs.orig_eax != lastdir) {
+                                               lastfd = regs.ebx;
+                                               lastdir = regs.orig_eax;
+                                               if (!no_headers)
+                                                       printf("\n%sing fd %i:\n", regs.orig_eax == 3 ? "read" : "writ", lastfd);
+                                       }
+                                       if (!remove_duplicates || lastbuf == NULL
+                                                       ||  last_buf_size != regs.edx || 
+                                                       bufdiff(pid, lastbuf, regs.ecx, regs.edx)) {
+
+                                               if (remove_duplicates) {
+                                                       if (lastbuf)
+                                                               free(lastbuf);
+                                                       lastbuf = malloc(regs.edx);
+                                                       last_buf_size = regs.edx;
+                                               }
+
+                                               for (i = 0; i < regs.edx; i++) {
+                                                       unsigned int a = ptrace(PTRACE_PEEKTEXT, pid, regs.ecx + i, 0);
+                                                       if (remove_duplicates)
+                                                               lastbuf[i] = a & 0xff;
+
+                                                       if (eight_bit_clean)
+                                                               putchar(a & 0xff);
+                                                       else {
+                                                               if (isprint(a & 0xff) || (a & 0xff) == '\n')
+                                                                       printf("%c", a & 0xff);
+                                                               else if ((a & 0xff) == 0x0d)
+                                                                       printf("\n");
+                                                               else if ((a & 0xff) == 0x7f)
+                                                                       printf("\b");
+                                                               else if (a & 0xff)
+                                                                       printf(" [%02x] ", a & 0xff);
+                                                       }
+                                               }
+                                       }
+                                       fflush(stdout);
+                               }
+                       }
+
+                       ptrace(PTRACE_SYSCALL, pid, 0, 0);
+               }
+       }
+
+       return 0;
+}