* Fixed NLS problems and some double ))s - Thanks to Jakub Bogusz
* Added Basque translation
* More NLS related fixes - Thanks to Guillem Jover
+ * killall aborts if it gets unknown flags Debian #250794
+ * Symbolic link created properly for pstree.x11 Debian #250096
+ * Strange mount points handled better Debian #178972
+ * Added Catalan translation
Changes in 21.5
===============
AC_TYPE_UID_T
dnl Check for language stuff
-ALL_LINGUAS="de eu fi fr it pl pt sv"
+ALL_LINGUAS="ca de eu fi fr it pl pt sv"
AM_GNU_GETTEXT([external])
dnl Checks for library functions.
bin_PROGRAMS = fuser killall pstree
-bin_SCRIPTS = pstree.x11
-
fuser_SOURCES = fuser.c comm.h signals.c signals.h loop.h
killall_SOURCES = killall.c comm.h signals.c signals.h
EXTRA_DIST = signames.c
-CLEANFILES = signames.h pstree.x11
+CLEANFILES = signames.h
signames.h: signames.c Makefile
@CPP@ -dM $< |\
grep '^{ 1,"HUP" },$$' signames.h >/dev/null || \
{ rm -f signames.h; exit 1; }
-Makefile: signames.h
-
-pstree.x11: pstree
- ln -s pstree pstree.x11
+install-exec-hook:
+ cd $(DESTDIR)$(bindir) && \
+ $(LN_S) pstree pstree.x11
#include <linux/kdev_t.h> /* for MKDEV */
#include <linux/major.h> /* for LOOP_MAJOR */
#endif
+#include <errno.h>
#include "i18n.h"
#include "comm.h"
{
if (sscanf (line, "%as %as", &path, &mounted) != 2)
continue;
- /* new kernel :-) */
- if (stat (path, &st_dev) < 0) {
- free (path); /* might be NFS or such */
- free (mounted);
- continue;
- }
- if (S_ISBLK (st_dev.st_mode) && MAJOR (st_dev.st_rdev) == LOOP_MAJOR)
- {
- struct loop_info loopinfo;
- int fd;
-
- if ((fd = open(path, O_RDWR)) > 0) {
- if (ioctl(fd, LOOP_GET_STATUS, &loopinfo) >= 0) {
- add_other(it_loop,loopinfo.lo_device,loopinfo.lo_device,loopinfo.lo_inode,path);
- }
- (void) close(fd);
+ if ( stat (path, &st_dev) == 0) {
+ if (S_ISBLK (st_dev.st_mode) && MAJOR (st_dev.st_rdev) == LOOP_MAJOR) {
+ struct loop_info loopinfo;
+ int fd;
+
+ if ((fd = open(path, O_RDWR)) > 0) {
+ if (ioctl(fd, LOOP_GET_STATUS, &loopinfo) >= 0) {
+ add_other(it_loop,loopinfo.lo_device,loopinfo.lo_device,loopinfo.lo_inode,path);
+ }
+ (void) close(fd);
}
}
+ }
if (stat (mounted, &st_mounted) < 0)
{
perror (mounted);
case '?':
/* Signal names are in uppercase, so check to see if the argv
* is upper case */
- if (argv[optind-1][1] >= 'A' && argv[optind-1][1] <= 'Z')
- sig_num = get_signal (argv[optind-1]+1, "killall");
- /* Might also be a -## signal too */
- if (argv[optind-1][1] >= '0' && argv[optind-1][1] <= '9')
- sig_num = atoi(argv[optind-1]+1);
+ if (argv[optind-1][1] >= 'A' && argv[optind-1][1] <= 'Z') {
+ sig_num = get_signal (argv[optind-1]+1, "killall");
+ } else {
+ /* Might also be a -## signal too */
+ if (argv[optind-1][1] >= '0' && argv[optind-1][1] <= '9') {
+ sig_num = atoi(argv[optind-1]+1);
+ } else {
+ usage();
+ }
+ }
break;
}
}
-/*
- if (*walk)
- if (walk != *argv + 1 || pidof)
- usage ();
- else
- sig_num = get_signal (*argv + 1, "killall");
- }
- }
- */
myoptind = optind;
if (argc - myoptind < 1)
usage();