Compare commits
	
		
			19 Commits
		
	
	
		
			gnome-2-38
			...
			gnome-2-40
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | abccaf488a | ||
|  | 8b37040b5b | ||
|  | 8871660dac | ||
|  | 334f1e5c4c | ||
|  | e88e854e57 | ||
|  | 00140eadc8 | ||
|  | 0c1be6e7b6 | ||
|  | 30c771151d | ||
|  | 77912eae1d | ||
|  | b71a5c1404 | ||
|  | 8e4c9c197b | ||
|  | bb118fa9d6 | ||
|  | 69f7b16421 | ||
|  | 7c811a7826 | ||
|  | 40144f3908 | ||
|  | 35a0ba8e27 | ||
|  | ec6a87e670 | ||
|  | e4335d4db2 | ||
|  | ec662d01da | 
							
								
								
									
										21
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								NEWS
									
									
									
									
									
								
							| @@ -1,3 +1,24 @@ | ||||
| 11 March 2019: Overview of changes in 2.40.0 | ||||
| ================================================ | ||||
|  | ||||
| * Fixed array and transfer annotations for documentation | ||||
|  | ||||
| 18 February 2019: Overview of changes in 2.39.91 | ||||
|  | ||||
| * Replace deprecated gnome-common with autoreconf | ||||
|  | ||||
| 04 February 2019: Overview of changes in 2.39.90 | ||||
| ================================================ | ||||
|  | ||||
| * Updated translations | ||||
| * FreeBSD: | ||||
|   - added support for laundry memory | ||||
|   - added support for ZFS ARC | ||||
| * Fixed compile warnings | ||||
| * Fix build on FreeBSD and darwin | ||||
| * Linux: | ||||
|   - get procmap doesn't need suid | ||||
|  | ||||
| 11 September 2017: Overview of changes in 2.38.0 | ||||
| ================================================ | ||||
|  | ||||
|   | ||||
							
								
								
									
										48
									
								
								autogen.sh
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								autogen.sh
									
									
									
									
									
								
							| @@ -1,20 +1,40 @@ | ||||
| #!/bin/sh | ||||
| # Run this to generate all the initial makefiles, etc. | ||||
| test -n "$srcdir" || srcdir=$(dirname "$0") | ||||
| test -n "$srcdir" || srcdir=. | ||||
|  | ||||
| srcdir=`dirname $0` | ||||
| test -z "$srcdir" && srcdir=. | ||||
| olddir=$(pwd) | ||||
|  | ||||
| (test -f $srcdir/configure.ac \ | ||||
|   && test -f $srcdir/copyright.txt \ | ||||
|   && test -d $srcdir/sysdeps) || { | ||||
|     echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" | ||||
|     echo " top-level gnome directory" | ||||
|     exit 1 | ||||
| cd $srcdir | ||||
|  | ||||
| (test -f configure.ac) || { | ||||
|         echo "*** ERROR: Directory '$srcdir' does not look like the top-level project directory ***" | ||||
|         exit 1 | ||||
| } | ||||
|  | ||||
| which gnome-autogen.sh || { | ||||
|     echo "You need to install gnome-common from the GNOME CVS" | ||||
|     exit 1 | ||||
| } | ||||
| REQUIRED_AUTOMAKE_VERSION=1.9 | ||||
| . gnome-autogen.sh | ||||
| # shellcheck disable=SC2016 | ||||
| PKG_NAME=$(autoconf --trace 'AC_INIT:$1' configure.ac) | ||||
|  | ||||
| if [ "$#" = 0 -a "x$NOCONFIGURE" = "x" ]; then | ||||
|         echo "*** WARNING: I am going to run 'configure' with no arguments." >&2 | ||||
|         echo "*** If you wish to pass any to it, please specify them on the" >&2 | ||||
|         echo "*** '$0' command line." >&2 | ||||
|         echo "" >&2 | ||||
| fi | ||||
|  | ||||
| aclocal --install || exit 1 | ||||
| gtkdocize --copy || exit 1 | ||||
| autoreconf --verbose --force --install || exit 1 | ||||
|  | ||||
| cd "$olddir" | ||||
| if [ "$NOCONFIGURE" = "" ]; then | ||||
|         $srcdir/configure "$@" || exit 1 | ||||
|  | ||||
|         if [ "$1" = "--help" ]; then | ||||
|                 exit 0 | ||||
|         else | ||||
|                 echo "Now type 'make' to compile $PKG_NAME" || exit 1 | ||||
|         fi | ||||
| else | ||||
|         echo "Skipping configure process." | ||||
| fi | ||||
|   | ||||
| @@ -3,7 +3,7 @@ dnl Configure script for the Gnome library | ||||
| dnl | ||||
|  | ||||
| m4_define([libgtop_major_version], [2]) | ||||
| m4_define([libgtop_minor_version], [38]) | ||||
| m4_define([libgtop_minor_version], [40]) | ||||
| m4_define([libgtop_micro_version], [0]) | ||||
| m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version]) | ||||
|  | ||||
| @@ -12,7 +12,7 @@ m4_define([libgtop_current], [11]) | ||||
|  | ||||
| dnl  increment any time the source changes; set to | ||||
| dnl  0 if you increment CURRENT | ||||
| m4_define([libgtop_revision], [0]) | ||||
| m4_define([libgtop_revision], [1]) | ||||
|  | ||||
| dnl  increment if any interfaces have been added; set to 0 | ||||
| dnl  if any interfaces have been removed. removal has | ||||
|   | ||||
| @@ -58,7 +58,7 @@ struct _glibtop_mountlist | ||||
|  * @buf: | ||||
|  * @all_fs: | ||||
|  * | ||||
|  * Returns: (transfer full): | ||||
|  * Returns: (transfer full) (array zero-terminated=1): | ||||
|  */ | ||||
|  | ||||
| /** | ||||
| @@ -66,7 +66,7 @@ struct _glibtop_mountlist | ||||
|  * @buf: (out): | ||||
|  * @all_fs: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  * Returns: (transfer full) (array zero-terminated=1): | ||||
|  */ | ||||
|  | ||||
| /** | ||||
| @@ -74,7 +74,7 @@ struct _glibtop_mountlist | ||||
|  * @buf: (out): | ||||
|  * @all_fs: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  * Returns: (transfer full) (array zero-terminated=1): | ||||
|  */ | ||||
|  | ||||
| /** | ||||
| @@ -82,7 +82,7 @@ struct _glibtop_mountlist | ||||
|  * @buf: (out): | ||||
|  * @all_fs: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  * Returns: (transfer full) (array zero-terminated=1): | ||||
|  */ | ||||
|  | ||||
| glibtop_mountentry * | ||||
|   | ||||
| @@ -45,7 +45,7 @@ struct _glibtop_netlist | ||||
|  * glibtop_get_netlist: | ||||
|  * @buf: a #glibtop_netlist | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of network | ||||
|  * Returns: (array zero-terminated=1) (transfer full): an array of network | ||||
|  *          interface names. | ||||
|  */ | ||||
| char** glibtop_get_netlist(glibtop_netlist *buf); | ||||
| @@ -61,7 +61,7 @@ char** glibtop_get_netlist(glibtop_netlist *buf); | ||||
|  * @server: a #glibtop server | ||||
|  * @buf: a #glibtop_netlist | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of network | ||||
|  * Returns: (array zero-terminated=1) (transfer full): an array of network | ||||
|  *          interface names. | ||||
|  */ | ||||
| char** glibtop_get_netlist_l (glibtop *server, glibtop_netlist *buf); | ||||
| @@ -74,7 +74,7 @@ void _glibtop_init_netlist_p (glibtop *server); | ||||
|  * @server: a #glibtop server | ||||
|  * @buf: a #glibtop_netlist | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of network | ||||
|  * Returns: (array zero-terminated=1) (transfer full): an array of network | ||||
|  *          interface names. | ||||
|  */ | ||||
| char** glibtop_get_netlist_p (glibtop *server, glibtop_netlist *buf); | ||||
| @@ -86,7 +86,7 @@ void _glibtop_init_netlist_s (glibtop *server); | ||||
|  * @server: a #glibtop server | ||||
|  * @buf: a #glibtop_netlist | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of network | ||||
|  * Returns: (array zero-terminated=1) (transfer full): an array of network | ||||
|  *          interface names. | ||||
|  */ | ||||
| char** glibtop_get_netlist_s (glibtop *server, glibtop_netlist *buf); | ||||
|   | ||||
| @@ -133,7 +133,7 @@ struct _glibtop_proclist | ||||
|  * @which: a #GLIBTOP_* constant specifying process type | ||||
|  * @arg: an argument specific for the process type | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of process | ||||
|  * Returns: (array zero-terminated=1) (transfer full): an array of process | ||||
|  *     ids | ||||
|  */ | ||||
| pid_t* | ||||
| @@ -152,7 +152,7 @@ glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg); | ||||
|  * @which: a #GLIBTOP_* constant specifying process type | ||||
|  * @arg: an argument specific for the process type | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of process | ||||
|  * Returns: (array zero-terminated=1) (transfer full): an array of process | ||||
|  *     ids | ||||
|  */ | ||||
| pid_t* | ||||
| @@ -169,7 +169,7 @@ void _glibtop_init_proclist_p (glibtop *server); | ||||
|  * @which: a #GLIBTOP_* constant specifying process type | ||||
|  * @arg: an argument specific for the process type | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of process | ||||
|  * Returns: (array zero-terminated=1) (transfer full): an array of process | ||||
|  *     ids | ||||
|  */ | ||||
| pid_t* | ||||
| @@ -185,7 +185,7 @@ void _glibtop_init_proclist_s (glibtop *server); | ||||
|  * @which: a #GLIBTOP_* constant specifying process type | ||||
|  * @arg: an argument specific for the process type | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of process | ||||
|  * Returns: (array zero-terminated=1) (transfer full): an array of process | ||||
|  *     ids | ||||
|  */ | ||||
| pid_t* | ||||
|   | ||||
| @@ -98,7 +98,7 @@ struct _glibtop_proc_map | ||||
|  * @buf: | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  * Returns: (transfer full) (array zero-terminated=1): | ||||
|  */ | ||||
| glibtop_map_entry * | ||||
| glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid); | ||||
| @@ -111,7 +111,7 @@ glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid); | ||||
|  * @buf: (out): | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  * Returns: (transfer full) (array zero-terminated=1): | ||||
|  */ | ||||
|  | ||||
| /** | ||||
| @@ -120,7 +120,7 @@ glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid); | ||||
|  * @buf: (out): | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  * Returns: (transfer full) (array zero-terminated=1): | ||||
|  */ | ||||
|  | ||||
| /** | ||||
| @@ -129,7 +129,7 @@ glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid); | ||||
|  * @buf: (out): | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  * Returns: (transfer full) (array zero-terminated=1): | ||||
|  */ | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_MAP | ||||
|   | ||||
| @@ -99,7 +99,7 @@ struct _glibtop_proc_open_files | ||||
|  * @buf: | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  * Returns: (transfer full) (array zero-terminated=1): | ||||
|  */ | ||||
|  | ||||
| glibtop_open_files_entry * | ||||
| @@ -118,7 +118,7 @@ glibtop_get_proc_open_files(glibtop_proc_open_files *buf, pid_t pid); | ||||
|  * @buf: (out): | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  * Returns: (transfer full) (array zero-terminated=1): | ||||
|  */ | ||||
|  | ||||
| glibtop_open_files_entry * | ||||
| @@ -134,7 +134,7 @@ void _glibtop_init_proc_open_files_p (glibtop *server); | ||||
|  * @buf: (out): | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  * Returns: (transfer full) (array zero-terminated=1): | ||||
|  */ | ||||
|  | ||||
| glibtop_open_files_entry * | ||||
|   | ||||
| @@ -33,9 +33,10 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[ | ||||
| 	linux*) | ||||
| 	  libgtop_sysdeps_dir=linux | ||||
| 	  libgtop_have_sysinfo=yes | ||||
| 	  libgtop_need_server=no | ||||
| 	  libgtop_need_server=yes | ||||
| 	  libgtop_sysdeps_private_mountlist=yes | ||||
| 	  libgtop_sysdeps_private_fsusage=yes | ||||
| 	  libgtop_postinstall='chown root $(bindir)/libgtop_server2 && chmod 4755 $(bindir)/libgtop_server2' | ||||
| 	  ;; | ||||
| 	netbsd*|bsdi*) | ||||
| 	  libgtop_sysdeps_dir=bsd | ||||
|   | ||||
| @@ -18,7 +18,7 @@ XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 | ||||
| # or entity, or to disclaim their copyright.  The empty string stands for | ||||
| # the public domain; in this case the translators are expected to disclaim | ||||
| # their copyright. | ||||
| COPYRIGHT_HOLDER = libgtop contributors | ||||
| COPYRIGHT_HOLDER = libgtop authors | ||||
|  | ||||
| # This tells whether or not to prepend "GNU " prefix to the package | ||||
| # name that gets inserted into the header of the $(DOMAIN).pot file. | ||||
| @@ -41,7 +41,7 @@ PACKAGE_GNU = no | ||||
| # It can be your email address, or a mailing list address where translators | ||||
| # can write to without being subscribed, or the URL of a web page through | ||||
| # which the translators can contact you. | ||||
| MSGID_BUGS_ADDRESS = https://bugzilla.gnome.org/enter_bug.cgi?product=libgtop&keywords=I18N+L10N&component=general | ||||
| MSGID_BUGS_ADDRESS = https://gitlab.gnome.org/GNOME/libgtop/issues | ||||
|  | ||||
| # This is the list of locale categories, beyond LC_MESSAGES, for which the | ||||
| # message catalogs shall be used.  It is usually empty. | ||||
| @@ -51,7 +51,7 @@ EXTRA_LOCALE_CATEGORIES = | ||||
| # context.  Possible values are "yes" and "no".  Set this to yes if the | ||||
| # package uses functions taking also a message context, like pgettext(), or | ||||
| # if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. | ||||
| USE_MSGCTXT = no | ||||
| USE_MSGCTXT = yes | ||||
|  | ||||
| # These options get passed to msgmerge. | ||||
| # Useful options are in particular: | ||||
|   | ||||
							
								
								
									
										13
									
								
								po/da.po
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								po/da.po
									
									
									
									
									
								
							| @@ -10,12 +10,11 @@ | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: libgtop\n" | ||||
| "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" | ||||
| "product=libgtop&keywords=I18N+L10N&component=general\n" | ||||
| "POT-Creation-Date: 2017-04-07 11:45+0000\n" | ||||
| "PO-Revision-Date: 2017-09-10 17:51+0200\n" | ||||
| "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libgtop/issues\n" | ||||
| "POT-Creation-Date: 2018-01-25 10:19+0000\n" | ||||
| "PO-Revision-Date: 2019-02-14 00:00+0200\n" | ||||
| "Last-Translator: Ole Laursen <olau@hardworking.dk>\n" | ||||
| "Language-Team: Danish <dansk@klid.dk>\n" | ||||
| "Language-Team: Danish <dansk@dansk-gruppen.dk>\n" | ||||
| "Language: da\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| @@ -66,7 +65,9 @@ msgstr "Kaldt fra inetd" | ||||
| #: src/daemon/gnuserv.c:498 | ||||
| #, c-format | ||||
| msgid "Run “%s --help” to see a full list of available command line options.\n" | ||||
| msgstr "Kør “%s --help” for at få en liste over alle tilgængelige kommandolinjetilvalg.\n" | ||||
| msgstr "" | ||||
| "Kør “%s --help” for at få en liste over alle tilgængelige " | ||||
| "kommandolinjetilvalg.\n" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 | ||||
| msgid "Hangup" | ||||
|   | ||||
							
								
								
									
										110
									
								
								po/eo.po
									
									
									
									
									
								
							
							
						
						
									
										110
									
								
								po/eo.po
									
									
									
									
									
								
							| @@ -2,193 +2,193 @@ | ||||
| # Copyright (C) 2006-2011 Free Software Foundation, Inc. | ||||
| # This file is distributed under the same license as the libgtop package. | ||||
| # Dominique PELLE <dominique.pelle@free.fr>, 2006. | ||||
| # Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2010, 2011. | ||||
| # | ||||
| # Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2010, 2011, 2019. | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: libgtop\n" | ||||
| "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" | ||||
| "product=libgtop&component=general\n" | ||||
| "POT-Creation-Date: 2011-03-31 17:35+0000\n" | ||||
| "PO-Revision-Date: 2011-06-08 11:49+0200\n" | ||||
| "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libgtop/issues\n" | ||||
| "POT-Creation-Date: 2018-01-25 10:19+0000\n" | ||||
| "PO-Revision-Date: 2019-02-24 12:06+0200\n" | ||||
| "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n" | ||||
| "Language-Team: Esperanto <ubuntu-l10n-eo@lists.launchpad.net>\n" | ||||
| "Language-Team: Esperanto <gnome-eo-list@gnome.org>\n" | ||||
| "Language: eo\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "Plural-Forms: nplurals=2; plural=(n != 1)\n" | ||||
| "X-Launchpad-Export-Date: 2011-06-08 09:44+0000\n" | ||||
| "X-Generator: Launchpad (build 13144)\n" | ||||
| "Plural-Forms: nplurals=2; plural=(n != 1);\n" | ||||
| "X-Generator: Virtaal 0.7.1\n" | ||||
|  | ||||
| #: ../lib/read.c:51 | ||||
| #: lib/read.c:49 | ||||
| #, c-format | ||||
| msgid "read %d byte" | ||||
| msgid_plural "read %d bytes" | ||||
| msgstr[0] "legis %d bajton" | ||||
| msgstr[1] "legis %d bajtojn" | ||||
|  | ||||
| #: ../lib/read_data.c:51 | ||||
| #: lib/read_data.c:49 | ||||
| msgid "read data size" | ||||
| msgstr "grando de legita datumo" | ||||
|  | ||||
| #: ../lib/read_data.c:70 | ||||
| #: lib/read_data.c:66 | ||||
| #, c-format | ||||
| msgid "read %lu byte of data" | ||||
| msgid_plural "read %lu bytes of data" | ||||
| msgstr[0] "legis %lu bajton da datumo" | ||||
| msgstr[1] "legis %lu bajtojn da datumo" | ||||
|  | ||||
| #: ../lib/write.c:51 | ||||
| #: lib/write.c:49 | ||||
| #, c-format | ||||
| msgid "wrote %d byte" | ||||
| msgid_plural "wrote %d bytes" | ||||
| msgstr[0] "skribis %d bajton" | ||||
| msgstr[1] "skribis %d bajtojn" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:456 | ||||
| msgid "Enable debugging" | ||||
| msgstr "Enŝalti sencimigon" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:458 | ||||
| msgid "Enable verbose output" | ||||
| msgstr "Enŝalti babileman eligon" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:459 | ||||
| msgid "Don't fork into background" | ||||
| #: src/daemon/gnuserv.c:460 | ||||
| #| msgid "Don't fork into background" | ||||
| msgid "Don’t fork into background" | ||||
| msgstr "Ne forki fonen" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:461 | ||||
| #: src/daemon/gnuserv.c:462 | ||||
| msgid "Invoked from inetd" | ||||
| msgstr "Alvokita de \"inetd\"" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:495 | ||||
| #: src/daemon/gnuserv.c:498 | ||||
| #, c-format | ||||
| msgid "Run '%s --help' to see a full list of available command line options.\n" | ||||
| #| msgid "" | ||||
| #| "Run '%s --help' to see a full list of available command line options.\n" | ||||
| msgid "Run “%s --help” to see a full list of available command line options.\n" | ||||
| msgstr "" | ||||
| "Ruli '%s --help' por vidigi tutan liston de disponeblajn komandliniaj " | ||||
| "opciojn.\n" | ||||
| "Ruli “%s --help” por vidi tutan liston de disponeblajn komandliniaj opciojn." | ||||
| "\n" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 | ||||
| #: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 | ||||
| msgid "Hangup" | ||||
| msgstr "Malkonekti" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 | ||||
| #: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 | ||||
| msgid "Interrupt" | ||||
| msgstr "Interrompi" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 | ||||
| #: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 | ||||
| msgid "Quit" | ||||
| msgstr "Ĉesi" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 | ||||
| #: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 | ||||
| msgid "Illegal instruction" | ||||
| msgstr "Nevalida komando" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 | ||||
| #: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 | ||||
| msgid "Trace trap" | ||||
| msgstr "Spura escepto" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 | ||||
| #: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 | ||||
| msgid "Abort" | ||||
| msgstr "Ĉesigi" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 | ||||
| #: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 | ||||
| msgid "EMT error" | ||||
| msgstr "EMT-eraro" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 | ||||
| #: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 | ||||
| msgid "Floating-point exception" | ||||
| msgstr "Glitpunkta escepto" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 | ||||
| #: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 | ||||
| msgid "Kill" | ||||
| msgstr "Mortigi" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 | ||||
| #: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 | ||||
| msgid "Bus error" | ||||
| msgstr "Bus-eraro" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 | ||||
| #: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 | ||||
| msgid "Segmentation violation" | ||||
| msgstr "Aliro al nerezervita memoro" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 | ||||
| #: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 | ||||
| msgid "Bad argument to system call" | ||||
| msgstr "Nevalida argumento al sistemvoko" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 | ||||
| #: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 | ||||
| msgid "Broken pipe" | ||||
| msgstr "Rompita dukto" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 | ||||
| #: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 | ||||
| msgid "Alarm clock" | ||||
| msgstr "Alarm-takto" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 | ||||
| #: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 | ||||
| msgid "Termination" | ||||
| msgstr "Finiĝo" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 | ||||
| #: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 | ||||
| msgid "Urgent condition on socket" | ||||
| msgstr "Urĝa kondiĉo ĉe kontaktoskatolo" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 | ||||
| #: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 | ||||
| msgid "Stop" | ||||
| msgstr "Haltigi" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 | ||||
| #: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 | ||||
| msgid "Keyboard stop" | ||||
| msgstr "Klavara halto" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 | ||||
| #: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 | ||||
| msgid "Continue" | ||||
| msgstr "Daŭrigi" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 | ||||
| #: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 | ||||
| msgid "Child status has changed" | ||||
| msgstr "Stato de ido ŝanĝiĝis" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 | ||||
| #: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 | ||||
| msgid "Background read from tty" | ||||
| msgstr "Fona lego de  \"tty\"" | ||||
| msgstr "Fona lego de \"tty\"" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 | ||||
| #: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 | ||||
| msgid "Background write to tty" | ||||
| msgstr "Fona skribo al \"tty\"" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 | ||||
| #: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 | ||||
| msgid "I/O now possible" | ||||
| msgstr "Eneligo nun eblas" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 | ||||
| #: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 | ||||
| msgid "CPU limit exceeded" | ||||
| msgstr "Limo de procesilo superitas" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 | ||||
| #: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 | ||||
| msgid "File size limit exceeded" | ||||
| msgstr "Limo de dosiergrando superitas" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 | ||||
| #: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 | ||||
| msgid "Virtual alarm clock" | ||||
| msgstr "Virtuala alarm-takto" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 | ||||
| #: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 | ||||
| msgid "Profiling alarm clock" | ||||
| msgstr "Profila alarm-takto" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 | ||||
| #: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 | ||||
| msgid "Window size change" | ||||
| msgstr "Ŝanĝo de fenestrogrando" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 | ||||
| #: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 | ||||
| msgid "Information request" | ||||
| msgstr "Informpeto" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 | ||||
| #: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 | ||||
| msgid "User defined signal 1" | ||||
| msgstr "Uzant-difinita signalo 1" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 | ||||
| #: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 | ||||
| msgid "User defined signal 2" | ||||
| msgstr "Uzant-difinita signalo 2" | ||||
|   | ||||
							
								
								
									
										95
									
								
								po/et.po
									
									
									
									
									
								
							
							
						
						
									
										95
									
								
								po/et.po
									
									
									
									
									
								
							| @@ -11,183 +11,184 @@ | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: libgtop HEAD\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2007-05-14 03:41+0100\n" | ||||
| "PO-Revision-Date: 2007-05-14 08:09+0300\n" | ||||
| "Last-Translator: Ivar Smolin <okul@linux.ee>\n" | ||||
| "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libgtop/issues\n" | ||||
| "POT-Creation-Date: 2018-01-25 10:19+0000\n" | ||||
| "PO-Revision-Date: 2019-03-10 19:08+0200\n" | ||||
| "Last-Translator: Mart Raudsepp <leio@gentoo.org>\n" | ||||
| "Language-Team: Estonian <gnome-et@linux.ee>\n" | ||||
| "Language: et\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "Plural-Forms: nplurals=2; plural=(n != 1);\n" | ||||
| "X-Generator: Poedit 2.2\n" | ||||
|  | ||||
| #: ../lib/read.c:51 | ||||
| #: lib/read.c:49 | ||||
| #, c-format | ||||
| msgid "read %d byte" | ||||
| msgid_plural "read %d bytes" | ||||
| msgstr[0] "loetud %d bait" | ||||
| msgstr[1] "loetud %d baiti" | ||||
|  | ||||
| #: ../lib/read_data.c:51 | ||||
| #: lib/read_data.c:49 | ||||
| msgid "read data size" | ||||
| msgstr "loetud andmete hulk" | ||||
|  | ||||
| #: ../lib/read_data.c:70 | ||||
| #: lib/read_data.c:66 | ||||
| #, c-format | ||||
| msgid "read %lu byte of data" | ||||
| msgid_plural "read %lu bytes of data" | ||||
| msgstr[0] "loetud %lu bait andmeid" | ||||
| msgstr[1] "loetud %lu baiti andmeid" | ||||
|  | ||||
| #: ../lib/write.c:51 | ||||
| #: lib/write.c:49 | ||||
| #, c-format | ||||
| msgid "wrote %d byte" | ||||
| msgid_plural "wrote %d bytes" | ||||
| msgstr[0] "kirjutatud %d bait" | ||||
| msgstr[1] "kirjutatud %d baiti" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:458 | ||||
| #: src/daemon/gnuserv.c:456 | ||||
| msgid "Enable debugging" | ||||
| msgstr "Silumise lubamine" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:460 | ||||
| #: src/daemon/gnuserv.c:458 | ||||
| msgid "Enable verbose output" | ||||
| msgstr "Teaberohke väljundi lubamine" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:462 | ||||
| msgid "Don't fork into background" | ||||
| #: src/daemon/gnuserv.c:460 | ||||
| msgid "Don’t fork into background" | ||||
| msgstr "Taustale siirdumine keelatud" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:464 | ||||
| #: src/daemon/gnuserv.c:462 | ||||
| msgid "Invoked from inetd" | ||||
| msgstr "Käivitatakse inetd abil" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:498 | ||||
| #: src/daemon/gnuserv.c:498 | ||||
| #, c-format | ||||
| msgid "Run '%s --help' to see a full list of available command line options.\n" | ||||
| msgstr "Kõigi käsureavõtmete nimekirja vaatamiseks käivita '%s --help'.\n" | ||||
| msgid "Run “%s --help” to see a full list of available command line options.\n" | ||||
| msgstr "Kõigi käsureavõtmete nimekirja vaatamiseks käivita „%s --help“.\n" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 | ||||
| #: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 | ||||
| msgid "Hangup" | ||||
| msgstr "Toru hargilepanek" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 | ||||
| #: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 | ||||
| msgid "Interrupt" | ||||
| msgstr "Katkestamine" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 | ||||
| #: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 | ||||
| msgid "Quit" | ||||
| msgstr "Lõpetamine" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 | ||||
| #: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 | ||||
| msgid "Illegal instruction" | ||||
| msgstr "Lubamatu instruktsioon" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 | ||||
| #: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 | ||||
| msgid "Trace trap" | ||||
| msgstr "Jälitamispüünis" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 | ||||
| #: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 | ||||
| msgid "Abort" | ||||
| msgstr "Katkestamine" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 | ||||
| #: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 | ||||
| msgid "EMT error" | ||||
| msgstr "EMT viga" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 | ||||
| #: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 | ||||
| msgid "Floating-point exception" | ||||
| msgstr "Ujukomaviga" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 | ||||
| #: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 | ||||
| msgid "Kill" | ||||
| msgstr "Kõrvaldamine" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 | ||||
| #: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 | ||||
| msgid "Bus error" | ||||
| msgstr "Siini viga" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 | ||||
| #: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 | ||||
| msgid "Segmentation violation" | ||||
| msgstr "Segmenteerimisviga" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 | ||||
| #: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 | ||||
| msgid "Bad argument to system call" | ||||
| msgstr "Vigane süsteemikutsungi argument" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 | ||||
| #: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 | ||||
| msgid "Broken pipe" | ||||
| msgstr "Katkine toru" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 | ||||
| #: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 | ||||
| msgid "Alarm clock" | ||||
| msgstr "Alarmkell" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 | ||||
| #: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 | ||||
| msgid "Termination" | ||||
| msgstr "Lõpetamine" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 | ||||
| #: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 | ||||
| msgid "Urgent condition on socket" | ||||
| msgstr "Sokli edasilükkamatu seisund" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 | ||||
| #: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 | ||||
| msgid "Stop" | ||||
| msgstr "Seiskamine" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 | ||||
| #: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 | ||||
| msgid "Keyboard stop" | ||||
| msgstr "Seiskamine klaviatuurilt" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 | ||||
| #: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 | ||||
| msgid "Continue" | ||||
| msgstr "Jätkamine" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 | ||||
| #: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 | ||||
| msgid "Child status has changed" | ||||
| msgstr "Lapsprotsessi olek muudetud" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 | ||||
| #: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 | ||||
| msgid "Background read from tty" | ||||
| msgstr "Taustalugemine tty'lt" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 | ||||
| #: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 | ||||
| msgid "Background write to tty" | ||||
| msgstr "Taustakirjutamine tty'le" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 | ||||
| #: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 | ||||
| msgid "I/O now possible" | ||||
| msgstr "S/V on nüüd võimalik" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 | ||||
| #: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 | ||||
| msgid "CPU limit exceeded" | ||||
| msgstr "Protsessoriaja piirang ületatud" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 | ||||
| #: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 | ||||
| msgid "File size limit exceeded" | ||||
| msgstr "Failisuuruse piirang ületatud" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 | ||||
| #: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 | ||||
| msgid "Virtual alarm clock" | ||||
| msgstr "Virtuaalne alarmkell" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 | ||||
| #: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 | ||||
| msgid "Profiling alarm clock" | ||||
| msgstr "Alarmkella profileerimine" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 | ||||
| #: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 | ||||
| msgid "Window size change" | ||||
| msgstr "Akna suuruse muutmine" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 | ||||
| #: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 | ||||
| msgid "Information request" | ||||
| msgstr "Teabepäring" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 | ||||
| #: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 | ||||
| msgid "User defined signal 1" | ||||
| msgstr "Kasutaja kirjeldatud signaal 1" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 | ||||
| #: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 | ||||
| msgid "User defined signal 2" | ||||
| msgstr "Kasutaja kirjeldatud signaal 2" | ||||
|   | ||||
							
								
								
									
										27
									
								
								po/fr.po
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								po/fr.po
									
									
									
									
									
								
							| @@ -7,21 +7,22 @@ | ||||
| # Christophe Merlet <redfox@redfoxcenter.org>, 2000-2004. | ||||
| # Benoit Dejean <tazforever@dlfp.org>, 2004. | ||||
| # Stéphane Raimbault <stephane.raimbault@gmail.com>, 2007. | ||||
| # Charles Monzat <charles.monzat@numericable.fr>, 2018. | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: libgtop 2.9.91\n" | ||||
| "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" | ||||
| "product=libgtop&keywords=I18N+L10N&component=general\n" | ||||
| "POT-Creation-Date: 2017-04-07 11:45+0000\n" | ||||
| "PO-Revision-Date: 2017-08-15 09:18+0200\n" | ||||
| "Last-Translator: Stéphane Raimbault <stephane.raimbault@gmail.com>\n" | ||||
| "Language-Team: GNOME French Team <gnomefr@traduc.org>\n" | ||||
| "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libgtop/issues\n" | ||||
| "POT-Creation-Date: 2018-01-25 10:19+0000\n" | ||||
| "PO-Revision-Date: 2018-11-19 13:23+0100\n" | ||||
| "Last-Translator: Charles Monzat <charles.monzat@numericable.fr>\n" | ||||
| "Language-Team: français <gnomefr@traduc.org>\n" | ||||
| "Language: fr\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "Plural-Forms: nplurals=2; plural=n>1;\n" | ||||
| "Plural-Forms: nplurals=2; plural=(n > 1);\n" | ||||
| "X-Generator: Gtranslator 3.30.0\n" | ||||
|  | ||||
| #: lib/read.c:49 | ||||
| #, c-format | ||||
| @@ -89,7 +90,7 @@ msgstr "Instruction illégale" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 | ||||
| msgid "Trace trap" | ||||
| msgstr "Point d'arrêt rencontré" | ||||
| msgstr "Point d’arrêt rencontré" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 | ||||
| msgid "Abort" | ||||
| @@ -117,7 +118,7 @@ msgstr "Violation de segmentation" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 | ||||
| msgid "Bad argument to system call" | ||||
| msgstr "Mauvais argument d'appel système" | ||||
| msgstr "Mauvais argument d’appel système" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 | ||||
| msgid "Broken pipe" | ||||
| @@ -125,7 +126,7 @@ msgstr "Tube cassé" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 | ||||
| msgid "Alarm clock" | ||||
| msgstr "Alarme d'horloge" | ||||
| msgstr "Alarme d’horloge" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 | ||||
| msgid "Termination" | ||||
| @@ -149,7 +150,7 @@ msgstr "Continuer" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 | ||||
| msgid "Child status has changed" | ||||
| msgstr "L'état du fils a changé" | ||||
| msgstr "L’état du fils a changé" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 | ||||
| msgid "Background read from tty" | ||||
| @@ -177,7 +178,7 @@ msgstr "Alarme virtuelle" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 | ||||
| msgid "Profiling alarm clock" | ||||
| msgstr "Profile de l'alarme" | ||||
| msgstr "Profil de l’alarme" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 | ||||
| msgid "Window size change" | ||||
| @@ -185,7 +186,7 @@ msgstr "Redimensionnement de la fenêtre" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 | ||||
| msgid "Information request" | ||||
| msgstr "Demande d'information" | ||||
| msgstr "Demande d’information" | ||||
|  | ||||
| #: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 | ||||
| msgid "User defined signal 1" | ||||
|   | ||||
							
								
								
									
										101
									
								
								po/ml.po
									
									
									
									
									
								
							
							
						
						
									
										101
									
								
								po/ml.po
									
									
									
									
									
								
							| @@ -7,189 +7,184 @@ | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: libgtop.master.ml\n" | ||||
| "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=libgtop&component=general\n" | ||||
| "POT-Creation-Date: 2009-04-17 10:17+0000\n" | ||||
| "PO-Revision-Date: 2009-09-12 20:37+0530\n" | ||||
| "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libgtop/issues\n" | ||||
| "POT-Creation-Date: 2018-01-25 10:19+0000\n" | ||||
| "PO-Revision-Date: 2018-10-26 19:49+0530\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team:  <en@li.org>\n" | ||||
| "Language-Team: <en@li.org>\n" | ||||
| "Language: ml\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "X-Generator: KBabel 1.11.4\n" | ||||
| "X-Generator: Poedit 2.2\n" | ||||
| "Plural-Forms: nplurals=2; plural=(n != 1);\n" | ||||
| "\n" | ||||
|  | ||||
| #: ../lib/read.c:51 | ||||
| #: lib/read.c:49 | ||||
| #, c-format | ||||
| msgid "read %d byte" | ||||
| msgid_plural "read %d bytes" | ||||
| msgstr[0] "%d ബൈറ്റ് വായിക്കുക" | ||||
| msgstr[1] "%d ബൈറ്റ്സ് വായിക്കുക" | ||||
|  | ||||
| #: ../lib/read_data.c:51 | ||||
| #: lib/read_data.c:49 | ||||
| msgid "read data size" | ||||
| msgstr "ഡേറ്റായുടെ വലിപ്പം വായിക്കുക" | ||||
|  | ||||
| #: ../lib/read_data.c:70 | ||||
| #: lib/read_data.c:66 | ||||
| #, c-format | ||||
| msgid "read %lu byte of data" | ||||
| msgid_plural "read %lu bytes of data" | ||||
| msgstr[0] "%lu ബൈറ്റ് ഡേറ്റാ വായിക്കുക" | ||||
| msgstr[1] "%lu ബൈറ്റ്സ് ഡേറ്റാ വായിക്കുക" | ||||
|  | ||||
| #: ../lib/write.c:51 | ||||
| #: lib/write.c:49 | ||||
| #, c-format | ||||
| msgid "wrote %d byte" | ||||
| msgid_plural "wrote %d bytes" | ||||
| msgstr[0] "%d ബൈറ്റ് എഴുതി" | ||||
| msgstr[1] "%d ബൈറ്റ്സ് എഴുതി" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:455 | ||||
| #: src/daemon/gnuserv.c:456 | ||||
| msgid "Enable debugging" | ||||
| msgstr "ഡീബഗ്ഗിങ് പ്രവര്ത്തന സജ്ജമാക്കുക" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:457 | ||||
| #: src/daemon/gnuserv.c:458 | ||||
| msgid "Enable verbose output" | ||||
| msgstr "വര്ബറോസ് ഔട്ട് പുട്ട് പ്രവര്ത്തന സജ്ജമാക്കുക" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:459 | ||||
| msgid "Don't fork into background" | ||||
| msgstr "പശ്ചാത്തലത്തിലേക്ക് fork ചെയ്യുവാന് പാടില്ല" | ||||
| #: src/daemon/gnuserv.c:460 | ||||
| msgid "Don’t fork into background" | ||||
| msgstr "പശ്ചാത്തലത്തിലേക്ക് ഫോർക്  ചെയ്യുവാന് പാടില്ല" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:461 | ||||
| #: src/daemon/gnuserv.c:462 | ||||
| msgid "Invoked from inetd" | ||||
| msgstr "inetd-ല് നിന്നുമുളള വിളി" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:495 | ||||
| #: src/daemon/gnuserv.c:498 | ||||
| #, c-format | ||||
| #| msgid "" | ||||
| #| "Error on option %s: %s.\n" | ||||
| #| "Run '%s --help' to see a full list of available command line options.\n" | ||||
| msgid "Run '%s --help' to see a full list of available command line options.\n" | ||||
| msgid "Run “%s --help” to see a full list of available command line options.\n" | ||||
| msgstr "ലഭ്യമായ കമാന്ഡ് ലൈന് ഉപാധികളുടെ മുഴുവന് പട്ടികയ്ക്ക് '%s --help' പ്രവര്ത്തിപ്പിക്കുക.\n" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 | ||||
| #: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 | ||||
| msgid "Hangup" | ||||
| msgstr "അവസാനിപ്പിക്കുക" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 | ||||
| #: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 | ||||
| msgid "Interrupt" | ||||
| msgstr "ഇന്ററപ്റ്റ്" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 | ||||
| #: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 | ||||
| msgid "Quit" | ||||
| msgstr "പുറത്ത് കടക്കുക" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 | ||||
| #: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 | ||||
| msgid "Illegal instruction" | ||||
| msgstr "തെറ്റായ നിര്ദ്ദേശം" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 | ||||
| #: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 | ||||
| msgid "Trace trap" | ||||
| msgstr "തടസ്സം കണ്ടുപിടിക്കുക" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 | ||||
| #: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 | ||||
| msgid "Abort" | ||||
| msgstr "നിര്ത്തലാക്കുക" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 | ||||
| #: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 | ||||
| msgid "EMT error" | ||||
| msgstr "EMT പിശക്" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 | ||||
| #: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 | ||||
| msgid "Floating-point exception" | ||||
| msgstr "ഫ്ളോട്ടിങ്-പോയിന്റ് എക്സെപ്ഷന്" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 | ||||
| #: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 | ||||
| msgid "Kill" | ||||
| msgstr "അവസാനിപ്പിക്കുക" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 | ||||
| #: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 | ||||
| msgid "Bus error" | ||||
| msgstr "ബസില് പിശക്" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 | ||||
| #: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 | ||||
| msgid "Segmentation violation" | ||||
| msgstr "സെഗ്മന്റേഷനില് തെറ്റ്" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 | ||||
| #: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 | ||||
| msgid "Bad argument to system call" | ||||
| msgstr "സിസ്റ്റം കോളിലേക്ക് തെറ്റായ ആര്ഗ്യുമെന്റ്" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 | ||||
| #: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 | ||||
| msgid "Broken pipe" | ||||
| msgstr "പൊട്ടിയ പൈപ്പ്" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 | ||||
| #: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 | ||||
| msgid "Alarm clock" | ||||
| msgstr "അലാറം ക്ളോക്ക്" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 | ||||
| #: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 | ||||
| msgid "Termination" | ||||
| msgstr "അവസാനിപ്പിക്കല്" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 | ||||
| #: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 | ||||
| msgid "Urgent condition on socket" | ||||
| msgstr "സോക്കന്റില് ഗുരുതരമായ അവസ്ഥ" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 | ||||
| #: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 | ||||
| msgid "Stop" | ||||
| msgstr "നിര്ത്തുക" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 | ||||
| #: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 | ||||
| msgid "Keyboard stop" | ||||
| msgstr "കീബോര്ഡ് നിര്ത്തുക" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 | ||||
| #: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 | ||||
| msgid "Continue" | ||||
| msgstr "തുടരുക" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 | ||||
| #: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 | ||||
| msgid "Child status has changed" | ||||
| msgstr "ചൈള്ഡിന്റെ അവസ്ഥ മാറിയിരിക്കുന്നു" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 | ||||
| #: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 | ||||
| msgid "Background read from tty" | ||||
| msgstr "tty-ല് നിന്നും പശ്ചാത്തലം വായിക്കുക" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 | ||||
| #: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 | ||||
| msgid "Background write to tty" | ||||
| msgstr "tty-ലേക്ക് പശ്ചാത്തലം എഴുതുക" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 | ||||
| #: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 | ||||
| msgid "I/O now possible" | ||||
| msgstr "I/O ഇപ്പോള് സാധ്യമാണ്" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 | ||||
| #: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 | ||||
| msgid "CPU limit exceeded" | ||||
| msgstr "CPU പരിമിധി കവിഞ്ഞു" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 | ||||
| #: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 | ||||
| msgid "File size limit exceeded" | ||||
| msgstr "ഫയലിന്റെ വലിപ്പ പരിമിധി കവിഞ്ഞു" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 | ||||
| #: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 | ||||
| msgid "Virtual alarm clock" | ||||
| msgstr "വിര്ച്ച്വല് അലാറം ക്ളോക്ക്" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 | ||||
| #: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 | ||||
| msgid "Profiling alarm clock" | ||||
| msgstr "അലാറം ക്ളോക്ക് പ്രൊഫൈല് ചെയ്യുന്നു" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 | ||||
| #: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 | ||||
| msgid "Window size change" | ||||
| msgstr "ജീലകത്തിന്റെ വലിപ്പത്തലുളള മാറ്റം" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 | ||||
| #: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 | ||||
| msgid "Information request" | ||||
| msgstr "വിവരങ്ങള്ക്കായുളള അഭ്യര്ത്ഥന" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 | ||||
| #: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 | ||||
| msgid "User defined signal 1" | ||||
| msgstr "യൂസര് ഡിഫൈന്ഡ് സിഗ്നല് 1" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 | ||||
| #: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 | ||||
| msgid "User defined signal 2" | ||||
| msgstr "യൂസര് ഡിഫൈന്ഡ് സിഗ്നല് 2" | ||||
|  | ||||
|   | ||||
							
								
								
									
										102
									
								
								po/ro.po
									
									
									
									
									
								
							
							
						
						
									
										102
									
								
								po/ro.po
									
									
									
									
									
								
							| @@ -1,23 +1,24 @@ | ||||
| # Romanian translation for libgtop | ||||
| # Copyright (C) 2003 - 2009, Free Software Foundation, Inc. | ||||
| # Mișu Moldovan <dumol@gnome.ro>, 2003 - 2009. | ||||
| # | ||||
| # Daniel Șerbănescu <daniel [at] serbanescu [dot] dk>, 2018. | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: libgtop\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2007-09-13 08:49+0100\n" | ||||
| "PO-Revision-Date: 2009-09-20 00:44+0300\n" | ||||
| "Last-Translator: Mișu Moldovan <dumol@gnome.ro>\n" | ||||
| "Language-Team: Romanian <gnomero-list@lists.sourceforge.net>\n" | ||||
| "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libgtop/issues\n" | ||||
| "POT-Creation-Date: 2018-03-26 20:36+0000\n" | ||||
| "PO-Revision-Date: 2018-03-25 14:30+0200\n" | ||||
| "Last-Translator: Daniel Șerbănescu <daniel [at] serbanescu [dot] dk>\n" | ||||
| "Language-Team: Gnome Romanian Translation Team\n" | ||||
| "Language: ro\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "Plural-Forms: nplurals=3;plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" | ||||
| "2:1))\n" | ||||
| "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " | ||||
| "20)) ? 1 : 2);;\n" | ||||
| "X-Generator: Virtaal 0.7.1\n" | ||||
|  | ||||
| #: ../lib/read.c:51 | ||||
| #: lib/read.c:49 | ||||
| #, c-format | ||||
| msgid "read %d byte" | ||||
| msgid_plural "read %d bytes" | ||||
| @@ -25,11 +26,11 @@ msgstr[0] "s-a citit un octet" | ||||
| msgstr[1] "s-au citit %d octeți" | ||||
| msgstr[2] "s-au citit %d de octeți" | ||||
|  | ||||
| #: ../lib/read_data.c:51 | ||||
| #: lib/read_data.c:49 | ||||
| msgid "read data size" | ||||
| msgstr "mărime date citite" | ||||
|  | ||||
| #: ../lib/read_data.c:70 | ||||
| #: lib/read_data.c:66 | ||||
| #, c-format | ||||
| msgid "read %lu byte of data" | ||||
| msgid_plural "read %lu bytes of data" | ||||
| @@ -37,7 +38,7 @@ msgstr[0] "s-a citit un octet de date" | ||||
| msgstr[1] "s-au citit %lu octeți de date" | ||||
| msgstr[2] "s-au citit %lu de octeți de date" | ||||
|  | ||||
| #: ../lib/write.c:51 | ||||
| #: lib/write.c:49 | ||||
| #, c-format | ||||
| msgid "wrote %d byte" | ||||
| msgid_plural "wrote %d bytes" | ||||
| @@ -45,148 +46,147 @@ msgstr[0] "s-a scris un octet" | ||||
| msgstr[1] "s-au scris %d octeți" | ||||
| msgstr[2] "s-au scris %d de octeți" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:458 | ||||
| #: src/daemon/gnuserv.c:456 | ||||
| msgid "Enable debugging" | ||||
| msgstr "Activează depanarea" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:460 | ||||
| #: src/daemon/gnuserv.c:458 | ||||
| msgid "Enable verbose output" | ||||
| msgstr "Mesaje de ieșire explicite" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:462 | ||||
| msgid "Don't fork into background" | ||||
| #: src/daemon/gnuserv.c:460 | ||||
| msgid "Don’t fork into background" | ||||
| msgstr "Nu clona în fundal" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:464 | ||||
| #: src/daemon/gnuserv.c:462 | ||||
| msgid "Invoked from inetd" | ||||
| msgstr "Pornit de inetd" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:498 | ||||
| #: src/daemon/gnuserv.c:498 | ||||
| #, c-format | ||||
| msgid "Run '%s --help' to see a full list of available command line options.\n" | ||||
| msgid "Run “%s --help” to see a full list of available command line options.\n" | ||||
| msgstr "Încercați „%s --help” pentru a vedea o listă completă a opțiunilor.\n" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 | ||||
| #: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 | ||||
| msgid "Hangup" | ||||
| msgstr "Terminare" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 | ||||
| #: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 | ||||
| msgid "Interrupt" | ||||
| msgstr "Întrerupere" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 | ||||
| #: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 | ||||
| msgid "Quit" | ||||
| msgstr "Ieșire" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 | ||||
| #: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 | ||||
| msgid "Illegal instruction" | ||||
| msgstr "Instrucțiune ilegală" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 | ||||
| #: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 | ||||
| msgid "Trace trap" | ||||
| msgstr "Punct de oprire întâlnit" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 | ||||
| #: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 | ||||
| msgid "Abort" | ||||
| msgstr "Renunță" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 | ||||
| #: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 | ||||
| msgid "EMT error" | ||||
| msgstr "Eroare EMT" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 | ||||
| #: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 | ||||
| msgid "Floating-point exception" | ||||
| msgstr "Excepție în virgulă mobilă" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 | ||||
| #: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 | ||||
| msgid "Kill" | ||||
| msgstr "Omoară" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 | ||||
| #: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 | ||||
| msgid "Bus error" | ||||
| msgstr "Eroare de bus" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 | ||||
| #: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 | ||||
| msgid "Segmentation violation" | ||||
| msgstr "Violare a segmentului" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 | ||||
| #: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 | ||||
| msgid "Bad argument to system call" | ||||
| msgstr "Argument greșit în apelul de sistem" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 | ||||
| #: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 | ||||
| msgid "Broken pipe" | ||||
| msgstr "Filtru nefuncțional" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 | ||||
| #: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 | ||||
| msgid "Alarm clock" | ||||
| msgstr "Ceas de alarmă" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 | ||||
| #: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 | ||||
| msgid "Termination" | ||||
| msgstr "Terminare" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 | ||||
| #: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 | ||||
| msgid "Urgent condition on socket" | ||||
| msgstr "Condiție de urgență în socket" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 | ||||
| #: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 | ||||
| msgid "Stop" | ||||
| msgstr "Stop" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 | ||||
| #: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 | ||||
| msgid "Keyboard stop" | ||||
| msgstr "Întrerupere de la tastatură" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 | ||||
| #: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 | ||||
| msgid "Continue" | ||||
| msgstr "Continuă" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 | ||||
| #: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 | ||||
| msgid "Child status has changed" | ||||
| msgstr "Starea copilului s-a schimbat" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 | ||||
| #: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 | ||||
| msgid "Background read from tty" | ||||
| msgstr "Citire în fundal de la tty" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 | ||||
| #: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 | ||||
| msgid "Background write to tty" | ||||
| msgstr "Scriere în fundal către tty" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 | ||||
| #: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 | ||||
| msgid "I/O now possible" | ||||
| msgstr "Operațiile I/O sunt acum posibile" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 | ||||
| #: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 | ||||
| msgid "CPU limit exceeded" | ||||
| msgstr "Limită depășită CPU" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 | ||||
| #: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 | ||||
| msgid "File size limit exceeded" | ||||
| msgstr "Limită depășită mărime fișier" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 | ||||
| #: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 | ||||
| msgid "Virtual alarm clock" | ||||
| msgstr "Ceas de alarmă virtual" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 | ||||
| #: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 | ||||
| msgid "Profiling alarm clock" | ||||
| msgstr "Ceas de alarmă pentru „profiling”" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 | ||||
| #: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 | ||||
| msgid "Window size change" | ||||
| msgstr "Schimbare de mărime a ferestrei" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 | ||||
| #: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 | ||||
| msgid "Information request" | ||||
| msgstr "Cerere de informație" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 | ||||
| #: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 | ||||
| msgid "User defined signal 1" | ||||
| msgstr "Semnal 1 definit de utilizator" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 | ||||
| #: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 | ||||
| msgid "User defined signal 2" | ||||
| msgstr "Semnal 2 definit de utilizator" | ||||
|  | ||||
|   | ||||
							
								
								
									
										104
									
								
								po/zh_CN.po
									
									
									
									
									
								
							
							
						
						
									
										104
									
								
								po/zh_CN.po
									
									
									
									
									
								
							| @@ -1,187 +1,191 @@ | ||||
| # translation of libgtop.po to simplified chinese. | ||||
| # Copyright (C) 2001,2003 Free Software Foundation, Inc. | ||||
| # Dillion Chen <dillon.chen@turbolinux.com.cn>, 2003. | ||||
| # Funda Wang <fundawang@linux.net.cn>, 2004 | ||||
| # Funda Wang <fundawang@linux.net.cn>, 2004. | ||||
| # Mingcong Bai <jeffbai@aosc.xyz>, 2017. | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: libgtop\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2007-05-14 03:41+0100\n" | ||||
| "PO-Revision-Date: 2007-09-07 17:29+0800\n" | ||||
| "Last-Translator: Funda Wang <fundawang@linux.net.cn>\n" | ||||
| "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" | ||||
| "product=libgtop&keywords=I18N+L10N&component=general\n" | ||||
| "POT-Creation-Date: 2017-04-07 11:45+0000\n" | ||||
| "PO-Revision-Date: 2017-06-10 14:27+0800\n" | ||||
| "Last-Translator: Mingcong Bai <jeffbai@aosc.xyz>\n" | ||||
| "Language-Team: zh_CN <i18n-translation@lists.linux.net.cn>\n" | ||||
| "Language: zh_CN\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "Plural-Forms: nplurals=1; plural=0;\n" | ||||
| "X-Generator: Poedit 2.0.2\n" | ||||
|  | ||||
| #: ../lib/read.c:51 | ||||
| #: lib/read.c:49 | ||||
| #, c-format | ||||
| msgid "read %d byte" | ||||
| msgid_plural "read %d bytes" | ||||
| msgstr[0] "读取 %d 字节" | ||||
|  | ||||
| #: ../lib/read_data.c:51 | ||||
| #: lib/read_data.c:49 | ||||
| msgid "read data size" | ||||
| msgstr "读取数据大小" | ||||
|  | ||||
| #: ../lib/read_data.c:70 | ||||
| #: lib/read_data.c:66 | ||||
| #, c-format | ||||
| msgid "read %lu byte of data" | ||||
| msgid_plural "read %lu bytes of data" | ||||
| msgstr[0] "读取了 %lu 字节数据" | ||||
|  | ||||
| #: ../lib/write.c:51 | ||||
| #: lib/write.c:49 | ||||
| #, c-format | ||||
| msgid "wrote %d byte" | ||||
| msgid_plural "wrote %d bytes" | ||||
| msgstr[0] "写入了 %d 字节" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:458 | ||||
| #: src/daemon/gnuserv.c:456 | ||||
| msgid "Enable debugging" | ||||
| msgstr "允许调试" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:460 | ||||
| #: src/daemon/gnuserv.c:458 | ||||
| msgid "Enable verbose output" | ||||
| msgstr "允许详细输出" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:462 | ||||
| msgid "Don't fork into background" | ||||
| msgstr "不能在后台生成子进程" | ||||
| #: src/daemon/gnuserv.c:460 | ||||
| msgid "Don’t fork into background" | ||||
| msgstr "不要在后台生成子进程" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:464 | ||||
| #: src/daemon/gnuserv.c:462 | ||||
| msgid "Invoked from inetd" | ||||
| msgstr "从 inetd 调用" | ||||
|  | ||||
| #: ../src/daemon/gnuserv.c:498 | ||||
| #: src/daemon/gnuserv.c:498 | ||||
| #, c-format | ||||
| msgid "Run '%s --help' to see a full list of available command line options.\n" | ||||
| msgstr "" | ||||
| "运行“%s --help”可查看可用命令行选项的完整列表\n" | ||||
| msgid "" | ||||
| "Run “%s --help” to see a full list of available command line " | ||||
| "options.\n" | ||||
| msgstr "运行“%s --help”可查看可用命令行选项的完整列表。\n" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 | ||||
| #: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 | ||||
| msgid "Hangup" | ||||
| msgstr "挂起" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 | ||||
| #: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 | ||||
| msgid "Interrupt" | ||||
| msgstr "中断" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 | ||||
| #: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 | ||||
| msgid "Quit" | ||||
| msgstr "退出" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 | ||||
| #: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 | ||||
| msgid "Illegal instruction" | ||||
| msgstr "非法指令" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 | ||||
| #: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 | ||||
| msgid "Trace trap" | ||||
| msgstr "跟踪陷阱" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 | ||||
| #: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 | ||||
| msgid "Abort" | ||||
| msgstr "中止" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 | ||||
| #: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 | ||||
| msgid "EMT error" | ||||
| msgstr "EMT 错误" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 | ||||
| #: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 | ||||
| msgid "Floating-point exception" | ||||
| msgstr "浮点意外" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 | ||||
| #: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 | ||||
| msgid "Kill" | ||||
| msgstr "杀死" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 | ||||
| #: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 | ||||
| msgid "Bus error" | ||||
| msgstr "总线错误" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 | ||||
| #: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 | ||||
| msgid "Segmentation violation" | ||||
| msgstr "进程段异常" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 | ||||
| #: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 | ||||
| msgid "Bad argument to system call" | ||||
| msgstr "系统调用参数错误" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 | ||||
| #: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 | ||||
| msgid "Broken pipe" | ||||
| msgstr "损坏的通道" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 | ||||
| #: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 | ||||
| msgid "Alarm clock" | ||||
| msgstr "警告时钟" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 | ||||
| #: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 | ||||
| msgid "Termination" | ||||
| msgstr "终止" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 | ||||
| #: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 | ||||
| msgid "Urgent condition on socket" | ||||
| msgstr "套接字紧急条件" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 | ||||
| #: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 | ||||
| msgid "Stop" | ||||
| msgstr "停止" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 | ||||
| #: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 | ||||
| msgid "Keyboard stop" | ||||
| msgstr "键盘停止" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 | ||||
| #: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 | ||||
| msgid "Continue" | ||||
| msgstr "继续" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 | ||||
| #: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 | ||||
| msgid "Child status has changed" | ||||
| msgstr "子状态变更" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 | ||||
| #: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 | ||||
| msgid "Background read from tty" | ||||
| msgstr "后台从 tty 读取" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 | ||||
| #: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 | ||||
| msgid "Background write to tty" | ||||
| msgstr "后台写到 tty" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 | ||||
| #: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 | ||||
| msgid "I/O now possible" | ||||
| msgstr "现可以 I/O" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 | ||||
| #: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 | ||||
| msgid "CPU limit exceeded" | ||||
| msgstr "达到 CPU 限制" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 | ||||
| #: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 | ||||
| msgid "File size limit exceeded" | ||||
| msgstr "达到文件大小限制" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 | ||||
| #: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 | ||||
| msgid "Virtual alarm clock" | ||||
| msgstr "虚拟警报时钟" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 | ||||
| #: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 | ||||
| msgid "Profiling alarm clock" | ||||
| msgstr "个性化警报时钟" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 | ||||
| #: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 | ||||
| msgid "Window size change" | ||||
| msgstr "窗口大小更改" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 | ||||
| #: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 | ||||
| msgid "Information request" | ||||
| msgstr "信息请求" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 | ||||
| #: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 | ||||
| msgid "User defined signal 1" | ||||
| msgstr "用户自定义信号 1" | ||||
|  | ||||
| #: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 | ||||
| #: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 | ||||
| msgid "User defined signal 2" | ||||
| msgstr "用户自定义信号 2" | ||||
|  | ||||
|   | ||||
| @@ -55,6 +55,16 @@ static gulong mem_get_by_bytes (glibtop *server, const char *name) { | ||||
| 	return result; | ||||
| } | ||||
|  | ||||
| static gulong try_mem_get_by_bytes (glibtop *server, const char *name) { | ||||
| 	gulong result = 0; | ||||
| 	size_t len = sizeof (result); | ||||
|  | ||||
| 	if (sysctlbyname (name, &result, &len, NULL, 0)) { | ||||
| 		return 0; | ||||
| 	} | ||||
| 	return result; | ||||
| } | ||||
|  | ||||
| static gulong mem_get_by_pages (glibtop *server, const char *name) { | ||||
| 	guint result = 0; | ||||
| 	size_t len = sizeof (result); | ||||
| @@ -71,29 +81,35 @@ glibtop_get_mem_s (glibtop *server, glibtop_mem *buf) | ||||
| 	gulong memtotal; | ||||
| 	gulong memactive; | ||||
| 	gulong meminactive; | ||||
| 	gulong memlaundry; | ||||
| 	gulong memwired; | ||||
| 	gulong memcached; | ||||
| 	gulong membuffer; | ||||
| 	gulong memfree; | ||||
| 	gulong zfs_arc_size; | ||||
|  | ||||
| 	memset (buf, 0, sizeof *buf); | ||||
|  | ||||
| 	memtotal = mem_get_by_bytes (server, "hw.physmem"); | ||||
| 	memactive = mem_get_by_pages (server, "vm.stats.vm.v_active_count"); | ||||
| 	meminactive = mem_get_by_pages (server, "vm.stats.vm.v_inactive_count"); | ||||
| 	memlaundry = mem_get_by_pages (server, "vm.stats.vm.v_laundry_count"); | ||||
| 	memwired = mem_get_by_pages (server, "vm.stats.vm.v_wire_count"); | ||||
| 	memcached = mem_get_by_pages (server, "vm.stats.vm.v_cache_count"); | ||||
| 	membuffer = mem_get_by_bytes (server, "vfs.bufspace"); | ||||
| 	memfree = mem_get_by_pages (server, "vm.stats.vm.v_free_count"); | ||||
|  | ||||
| 	zfs_arc_size = try_mem_get_by_bytes (server, "kstat.zfs.misc.arcstats.size"); | ||||
|  | ||||
| 	buf->total = memtotal; | ||||
| 	buf->used = memtotal - memfree; | ||||
| 	buf->free = memfree; | ||||
| 	buf->shared = 0; | ||||
| 	buf->buffer = membuffer; | ||||
| 	buf->cached = memcached; | ||||
| 	buf->cached = memcached + zfs_arc_size; | ||||
| 	buf->locked = 0; | ||||
|  | ||||
| 	buf->user = memactive + memwired; | ||||
| 	buf->user = memactive + memlaundry + memwired - zfs_arc_size; | ||||
|  | ||||
| 	buf->flags = _glibtop_sysdeps_mem; | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| AM_CPPFLAGS			= @AM_CPPFLAGS@ | ||||
|  | ||||
| noinst_LTLIBRARIES		= libgtop_sysdeps-2.0.la | ||||
| noinst_LTLIBRARIES		= libgtop_sysdeps-2.0.la libgtop_sysdeps_suid-2.0.la | ||||
|  | ||||
| EXTRA_DIST			= procmap_smaps.gperf procmap_smaps.c | ||||
|  | ||||
| @@ -17,7 +17,9 @@ libgtop_sysdeps_2_0_la_LIBADD	=  @GLIB_LIBS@ | ||||
|  | ||||
| # libgtop_sysdeps_2_0_la_LDFLAGS	= $(LT_VERSION_INFO) | ||||
|  | ||||
| libgtopinclude_HEADERS		= glibtop_server.h glibtop_machine.h | ||||
| libgtop_sysdeps_suid_2_0_la_SOURCES = suid_open.c | ||||
|  | ||||
| libgtopinclude_HEADERS		= glibtop_server.h glibtop_machine.h glibtop_suid.h | ||||
| libgtopincludedir		= $(includedir)/libgtop-2.0 | ||||
|  | ||||
| noinst_HEADERS			= glibtop_private.h | ||||
|   | ||||
| @@ -28,6 +28,10 @@ G_BEGIN_DECLS | ||||
|  | ||||
| struct _glibtop_machine | ||||
| { | ||||
|   uid_t uid; | ||||
|   uid_t euid; | ||||
|   gid_t gid; | ||||
|   gid_t egid; | ||||
| }; | ||||
|  | ||||
| G_END_DECLS | ||||
|   | ||||
							
								
								
									
										49
									
								
								sysdeps/linux/glibtop_suid.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								sysdeps/linux/glibtop_suid.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,49 @@ | ||||
| /* Copyright (C) 2018 Benoît Dejean | ||||
|  | ||||
|    LibGTop 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. | ||||
|  | ||||
|    LibGTop 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 LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_SUID_H__ | ||||
| #define __GLIBTOP_SUID_H__ | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #include <glibtop_machine.h> | ||||
|  | ||||
| static inline void glibtop_suid_enter (glibtop *server) { | ||||
| 	glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid()); | ||||
| 	setreuid (server->machine->uid, server->machine->euid); | ||||
| 	glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid()); | ||||
| }; | ||||
|  | ||||
| static inline void glibtop_suid_leave (glibtop *server) { | ||||
| 	glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid()); | ||||
| 	if (setreuid (server->machine->euid, server->machine->uid)) | ||||
| 		_exit (1); | ||||
| 	glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid()); | ||||
| }; | ||||
|  | ||||
| void | ||||
| glibtop_init_p (glibtop *server, const unsigned long features, | ||||
| 		const unsigned flags); | ||||
| void | ||||
| glibtop_open_p (glibtop *server, const char *program_name, | ||||
| 		const unsigned long features, | ||||
| 		const unsigned flags); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -136,7 +136,7 @@ parse_line(char* line, | ||||
| { | ||||
| 	/* %16llx-%16llx %4c %16llx %02hx:%02hx %llu%*[ ]%n */ | ||||
|  | ||||
| 	char *p, *next; | ||||
| 	char *p; | ||||
|  | ||||
| 	p = line; | ||||
|  | ||||
|   | ||||
							
								
								
									
										334
									
								
								sysdeps/linux/procmap.c.suid_example
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										334
									
								
								sysdeps/linux/procmap.c.suid_example
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,334 @@ | ||||
| /* | ||||
| Don't forget to set | ||||
| 	#define GLIBTOP_SUID_PROC_MAP          (1 << GLIBTOP_SYSDEPS_PROC_MAP) | ||||
| in sysdeps/linux/glibtop_server.h | ||||
|  | ||||
| Make sure to pair each glibtop_suid_enter with a glibtop_suid_leave. | ||||
| */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop 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. | ||||
|  | ||||
|    LibGTop 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 LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
| #include <glib.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/error.h> | ||||
| #include <glibtop/procmap.h> | ||||
|  | ||||
| #include <linux/kdev_t.h> | ||||
| #include <stddef.h> | ||||
|  | ||||
| #include "glibtop_private.h" | ||||
| #include "glibtop_suid.h" | ||||
|  | ||||
| #include "procmap_smaps.c" | ||||
|  | ||||
| #define  MAPS_FILE "/proc/%u/maps" | ||||
| #define SMAPS_FILE "/proc/%u/smaps" | ||||
|  | ||||
|  | ||||
| #define PROC_MAPS_FORMAT "%16" G_GINT64_MODIFIER "x-%16" G_GINT64_MODIFIER "x %4c %16" G_GINT64_MODIFIER "x %02hx:%02hx %" G_GINT64_MODIFIER "u%*[ ]%n" | ||||
|  | ||||
|  | ||||
| static const unsigned long _glibtop_sysdeps_proc_map = | ||||
| (1L << GLIBTOP_PROC_MAP_NUMBER) + (1L << GLIBTOP_PROC_MAP_TOTAL) + | ||||
| (1L << GLIBTOP_PROC_MAP_SIZE); | ||||
|  | ||||
| static const unsigned long _glibtop_sysdeps_map_entry = | ||||
| (1L << GLIBTOP_MAP_ENTRY_START) + (1L << GLIBTOP_MAP_ENTRY_END) + | ||||
| (1L << GLIBTOP_MAP_ENTRY_OFFSET) + (1L << GLIBTOP_MAP_ENTRY_PERM) + | ||||
| (1L << GLIBTOP_MAP_ENTRY_INODE) + (1L << GLIBTOP_MAP_ENTRY_DEVICE) + | ||||
| (1L << GLIBTOP_MAP_ENTRY_FILENAME); | ||||
|  | ||||
| static const unsigned long _glibtop_sysdeps_map_entry_smaps = | ||||
| (1UL << GLIBTOP_MAP_ENTRY_SIZE) + (1UL << GLIBTOP_MAP_ENTRY_RSS) + | ||||
| (1UL << GLIBTOP_MAP_ENTRY_PSS) + (1UL << GLIBTOP_MAP_ENTRY_SWAP) + | ||||
| (1UL << GLIBTOP_MAP_ENTRY_SHARED_DIRTY) + (1UL << GLIBTOP_MAP_ENTRY_SHARED_CLEAN) + | ||||
| (1UL << GLIBTOP_MAP_ENTRY_PRIVATE_DIRTY) + (1UL << GLIBTOP_MAP_ENTRY_PRIVATE_CLEAN); | ||||
|  | ||||
|  | ||||
| /* Init function. */ | ||||
|  | ||||
| void | ||||
| _glibtop_init_proc_map_p (glibtop *server) | ||||
| { | ||||
| 	server->sysdeps.proc_map = _glibtop_sysdeps_proc_map; | ||||
| } | ||||
|  | ||||
| /* Provides detailed information about a process. */ | ||||
|  | ||||
|  | ||||
| static const char* | ||||
| is_smap_value(const char* s) | ||||
| { | ||||
| 	for ( ; *s; ++s) { | ||||
|  | ||||
| 		if (isspace(*s)) | ||||
| 			return NULL; | ||||
|  | ||||
| 		if (*s == ':') | ||||
| 			return s; | ||||
| 	} | ||||
|  | ||||
| 	return NULL; | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|   Returns whether line is a 'value' line | ||||
|   and add if we know its meaning | ||||
| */ | ||||
| static gboolean | ||||
| parse_smaps(glibtop_map_entry *entry, const char* line) | ||||
| { | ||||
|  | ||||
| 	const struct smap_value* smap; | ||||
| 	size_t len; | ||||
| 	const char* colon; | ||||
|  | ||||
| 	if ((colon = is_smap_value(line)) == NULL) | ||||
| 		return FALSE; | ||||
|  | ||||
| 	len = colon - line; | ||||
| 	smap = _glibtop_find_smap(line, len); | ||||
|  | ||||
| //		g_debug("smap %s -> %p", line, smap); | ||||
|  | ||||
| 	if (smap) { | ||||
| 		char *offset; | ||||
| 		guint64 *value; | ||||
|  | ||||
| 		offset = (void*) entry; | ||||
| 		offset += smap->offset; | ||||
| 		value = (void*) offset; | ||||
|  | ||||
| 		*value = get_scaled(line + len, NULL); | ||||
| 	} | ||||
|  | ||||
| 	return TRUE; | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|   sscanf is too slow | ||||
|   and system-monitor calls procmap for each pid every second | ||||
|  | ||||
|   manual parsing is faster | ||||
|  | ||||
|   error checking is weaker | ||||
| */ | ||||
|  | ||||
| static gboolean | ||||
| parse_line(char* line, | ||||
| 	   guint64* start, guint64* end, char flags[4], guint64* offset, | ||||
| 	   gushort* dev_major, gushort* dev_minor, guint64* inode, | ||||
| 	   char** filename) | ||||
| { | ||||
| 	/* %16llx-%16llx %4c %16llx %02hx:%02hx %llu%*[ ]%n */ | ||||
|  | ||||
| 	char *p, *next; | ||||
|  | ||||
| 	p = line; | ||||
|  | ||||
| 	*start = strtoull(p, &p, 16); | ||||
|  | ||||
| 	if (G_UNLIKELY(*p != '-')) | ||||
| 		return FALSE; | ||||
| 	p++; | ||||
|  | ||||
| 	*end = strtoull(p, &p, 16); | ||||
|  | ||||
| 	p = next_token(p); | ||||
|  | ||||
| 	memcpy(flags, p, 4); | ||||
| 	p += 4; | ||||
|  | ||||
| 	*offset = strtoull(p, &p, 16); | ||||
|  | ||||
| 	*dev_major = strtoul(p, &p, 16); | ||||
|  | ||||
| 	if (G_UNLIKELY(*p != ':')) | ||||
| 		return FALSE; | ||||
| 	p++; | ||||
|  | ||||
| 	*dev_minor = strtoul(p, &p, 16); | ||||
|  | ||||
| 	*inode = strtoull(p, &p, 10); | ||||
|  | ||||
| 	p = next_token(p); | ||||
|  | ||||
| 	*filename = p; | ||||
|  | ||||
| 	for ( ; *p; p++) { | ||||
| 		if (*p == '\n') { | ||||
| 			*p = '\0'; | ||||
| 			break; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return TRUE; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| glibtop_map_entry * | ||||
| glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf,	pid_t pid) | ||||
| { | ||||
| 	char procfilename[GLIBTOP_MAP_FILENAME_LEN+1]; | ||||
|  | ||||
| 	/* | ||||
| 	  default size of 100 maybe inaccurate. | ||||
| 	  It's the average number of entry per process on my laptop | ||||
| 	*/ | ||||
|  | ||||
| 	size_t added = 0, entry_list_capacity = 100; | ||||
| 	GArray *entry_list = g_array_sized_new(FALSE, FALSE, | ||||
| 					       sizeof(glibtop_map_entry), | ||||
| 					       entry_list_capacity); | ||||
| 	FILE *maps; | ||||
| 	const char *filename; | ||||
| 	gboolean has_smaps; | ||||
| 	char *line = NULL; | ||||
| 	size_t line_size = 0; | ||||
|  | ||||
| 	memset (buf, 0, sizeof (glibtop_proc_map)); | ||||
|  | ||||
| 	has_smaps = server->os_version_code >= LINUX_VERSION_CODE(2, 6, 14); | ||||
|  | ||||
| 	if (has_smaps) | ||||
| 		filename = SMAPS_FILE; | ||||
| 	else | ||||
| 		filename = MAPS_FILE; | ||||
|  | ||||
| 	snprintf (procfilename, sizeof procfilename, filename, (unsigned)pid); | ||||
|  | ||||
| 	glibtop_suid_enter (server); | ||||
|  | ||||
| 	if((maps = fopen (procfilename, "r")) == NULL) { | ||||
| 	  glibtop_suid_leave (server); | ||||
| 	  return (glibtop_map_entry*) g_array_free(entry_list, TRUE); | ||||
| 	} | ||||
|  | ||||
| 	glibtop_debug("opened %p", maps); | ||||
|  | ||||
| 	glibtop_suid_leave (server); | ||||
|  | ||||
| 	while(TRUE) | ||||
| 	{ | ||||
| 		unsigned long perm; | ||||
| 		/* int line_end; */ | ||||
|  | ||||
| 		unsigned short dev_major, dev_minor; | ||||
| 		guint64 start, end, offset, inode; | ||||
| 		char flags[4]; | ||||
| 		char *filename; | ||||
|  | ||||
| 		glibtop_map_entry *entry; | ||||
|  | ||||
| 		if (getline(&line, &line_size, maps) == -1) | ||||
| 			break; | ||||
|  | ||||
| 	new_entry_line: | ||||
|  | ||||
| 		if (!parse_line(line, | ||||
| 				&start, &end, flags, &offset, | ||||
| 				&dev_major, &dev_minor, &inode, &filename)) | ||||
| 			continue; | ||||
|  | ||||
| 		/* | ||||
| 		if (sscanf(line, PROC_MAPS_FORMAT, | ||||
| 			   &start, &end, flags, &offset, | ||||
| 			   &dev_major, &dev_minor, &inode, &line_end) != 7) | ||||
| 			continue; | ||||
|  | ||||
| 		filename = line + line_end; | ||||
| 		g_strstrip(filename); | ||||
| 		*/ | ||||
|  | ||||
| 		/* Compute access permissions. */ | ||||
| 		perm = 0; | ||||
|  | ||||
| 		if (flags [0] == 'r') | ||||
| 			perm |= GLIBTOP_MAP_PERM_READ; | ||||
|  | ||||
| 		if (flags [1] == 'w') | ||||
| 			perm |= GLIBTOP_MAP_PERM_WRITE; | ||||
|  | ||||
| 		if (flags [2] == 'x') | ||||
| 			perm |= GLIBTOP_MAP_PERM_EXECUTE; | ||||
|  | ||||
| 		if (flags [3] == 's') | ||||
| 			perm |= GLIBTOP_MAP_PERM_SHARED; | ||||
| 		else if (flags [3] == 'p') | ||||
| 			perm |= GLIBTOP_MAP_PERM_PRIVATE; | ||||
|  | ||||
| 		/* | ||||
| 		  avoid copying the entry, grow by 1 and point to the last | ||||
| 		  element. | ||||
| 		*/ | ||||
|  | ||||
| 		if (G_UNLIKELY(added >= entry_list_capacity)) { | ||||
| 			entry_list_capacity *= 2; | ||||
| 			g_array_set_size(entry_list, entry_list_capacity); | ||||
| 		} | ||||
|  | ||||
| 		entry = &g_array_index(entry_list, glibtop_map_entry, added++); | ||||
|  | ||||
| 		entry->flags = _glibtop_sysdeps_map_entry; | ||||
| 		entry->start = start; | ||||
| 		entry->end = end; | ||||
| 		entry->offset = offset; | ||||
| 		entry->perm = perm; | ||||
| 		entry->device = MKDEV(dev_major, dev_minor); | ||||
| 		entry->inode = inode; | ||||
| 		g_strlcpy(entry->filename, filename, sizeof entry->filename); | ||||
|  | ||||
| 		if (has_smaps) { | ||||
| 			ssize_t ret; | ||||
| 			entry->flags |= _glibtop_sysdeps_map_entry_smaps; | ||||
|  | ||||
| 			while ((ret = getline(&line, &line_size, maps)) != -1) { | ||||
| 				if (!parse_smaps(entry, line)) | ||||
| 					goto new_entry_line; | ||||
| 			} | ||||
|  | ||||
| 			if (ret == -1) | ||||
| 				goto eof; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| eof: | ||||
|  | ||||
| 	g_array_set_size(entry_list, added); | ||||
| 	free(line); | ||||
| 	fclose (maps); | ||||
|  | ||||
| 	buf->flags = _glibtop_sysdeps_proc_map; | ||||
|  | ||||
| 	buf->number = added; | ||||
| 	buf->size = sizeof (glibtop_map_entry); | ||||
| 	buf->total = buf->number * buf->size; | ||||
|  | ||||
| 	return (glibtop_map_entry*) g_array_free(entry_list, FALSE); | ||||
| } | ||||
| @@ -35,7 +35,7 @@ static const unsigned long _glibtop_sysdeps_proc_mem_pss = | ||||
|  | ||||
|  | ||||
| static unsigned long | ||||
| get_pss(glibtop* server, pid_t pid) | ||||
| G_GNUC_UNUSED get_pss(glibtop* server, pid_t pid) | ||||
| { | ||||
| 	char filepath[128]; | ||||
| 	FILE* smaps; | ||||
| @@ -86,7 +86,7 @@ glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf, pid_t pid) | ||||
|  | ||||
| 	memset (buf, 0, sizeof (glibtop_proc_mem)); | ||||
|  | ||||
| 	/* As of 2.6.24 in fs/proc/*.c | ||||
| 	/* As of 2.6.24 in fs/proc/ *.c | ||||
|  | ||||
| 	   == rss vs. resident == | ||||
|  | ||||
|   | ||||
							
								
								
									
										80
									
								
								sysdeps/linux/suid_open.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								sysdeps/linux/suid_open.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,80 @@ | ||||
| /* Copyright (C) 2018 Benoît Dejean | ||||
|  | ||||
|    LibGTop 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. | ||||
|  | ||||
|    LibGTop 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 LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/error.h> | ||||
| #include <glibtop/cpu.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/init_hooks.h> | ||||
| #include <glibtop/machine.h> | ||||
|  | ||||
|  | ||||
| /* !!! THIS FUNCTION RUNS SUID ROOT - CHANGE WITH CAUTION !!! */ | ||||
|  | ||||
| void | ||||
| glibtop_init_p (glibtop *server, const unsigned long features, | ||||
| 		const unsigned flags) | ||||
| { | ||||
| 	const _glibtop_init_func_t *init_fkt; | ||||
|  | ||||
| 	if (server == NULL) | ||||
| 		glibtop_error_r (NULL, "glibtop_init_p (server == NULL)"); | ||||
|  | ||||
| 	/* Do the initialization, but only if not already initialized. */ | ||||
|  | ||||
| 	if ((server->flags & _GLIBTOP_INIT_STATE_SYSDEPS) == 0) { | ||||
| 		glibtop_open_p (server, "glibtop", features, flags); | ||||
|  | ||||
| 		for (init_fkt = _glibtop_init_hook_p; *init_fkt; init_fkt++) | ||||
| 			(*init_fkt) (server); | ||||
|  | ||||
| 		server->flags |= _GLIBTOP_INIT_STATE_SYSDEPS; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_open_p (glibtop *server, const char *program_name, | ||||
| 		const unsigned long features, | ||||
| 		const unsigned flags) | ||||
| { | ||||
| 	glibtop_debug ("glibtop_open_p ()"); | ||||
|  | ||||
| 	/* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */ | ||||
| 	server->machine->uid = getuid (); | ||||
| 	server->machine->euid = geteuid (); | ||||
| 	server->machine->gid = getgid (); | ||||
| 	server->machine->egid = getegid (); | ||||
|  | ||||
| 	/* Drop priviledges. */ | ||||
|  | ||||
| 	glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid()); | ||||
|  | ||||
| 	if (setreuid (server->machine->euid, server->machine->uid)) | ||||
| 		_exit (1); | ||||
|  | ||||
| 	if (setregid (server->machine->egid, server->machine->gid)) | ||||
| 		_exit (1); | ||||
|  | ||||
| 	glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid()); | ||||
|  | ||||
| 	/* !!! END OF SUID ROOT PART !!! */ | ||||
|  | ||||
| 	/* Our effective uid is now those of the user invoking the server, | ||||
| 	 * so we do no longer have any priviledges. */ | ||||
| } | ||||
		Reference in New Issue
	
	Block a user