diff options
Diffstat (limited to 'community/xdiskusage/stdin-is-null.patch')
-rw-r--r-- | community/xdiskusage/stdin-is-null.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/community/xdiskusage/stdin-is-null.patch b/community/xdiskusage/stdin-is-null.patch new file mode 100644 index 000000000..e70789c13 --- /dev/null +++ b/community/xdiskusage/stdin-is-null.patch @@ -0,0 +1,31 @@ +--- xdiskusage-1.48/xdiskusage.C 2004-09-21 07:23:14.000000000 +0200 ++++ xdiskusage-1.48.carles/xdiskusage.C 2007-07-30 23:42:05.000000000 +0200 +@@ -223,6 +223,19 @@ + return 1; + } + ++// returns true if stdin is /dev/null ++// To fix Debian bug #276193 ++// Technically could be possible that returns "true" and is not "true", ++// because same device ID is used across file systems. But is the best ++// solutions that I have ++int isstdinnull() { ++ struct stat ststdin,stnull; ++ stat("/dev/null",&stnull); ++ fstat(0,&ststdin); ++ ++ return (ststdin.st_rdev==stnull.st_rdev); ++} ++ + int main(int argc, char**argv) { + #if FL_MAJOR_VERSION < 2 + // Make fltk look more like KDE/Windoze: +@@ -253,7 +266,7 @@ + OutputWindow* d = OutputWindow::make(argv[n++]); + if (d) d->show(argc,argv); + } +- } else if (!isatty(0)) { ++ } else if (!isatty(0) && !isstdinnull()) { + // test for pipe, if so read stdin: + OutputWindow* d = OutputWindow::make(0); + if (d) d->show(argc,argv); |