File: calendar_stdio.diff

package info (click to toggle)
bsdmainutils 12.1.8
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 1,108 kB
  • sloc: ansic: 2,356; sh: 131; python: 105; makefile: 50; perl: 39
file content (27 lines) | stat: -rw-r--r-- 1,165 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Description: Allow calendar file input from stdin.
Author: Michael Meskes <meskes@debian.org>

diff -ru bsdmainutils/usr.bin/calendar/calendar.c bsdmainutils/usr.bin/calendar/calendar.c
--- bsdmainutils/usr.bin/calendar/calendar.c	2012-01-19 10:07:37.302810662 +0100
+++ bsdmainutils/usr.bin/calendar/calendar.c	2012-01-19 10:05:54.734809800 +0100
@@ -88,7 +88,7 @@
 			break;
 
 		case 'f': /* other calendar file */
-		        calendarFile = optarg;
+		        calendarFile = (strcmp(optarg, "-") == 0) ? "/dev/stdin" : optarg;
 			break;
 
 		case 't': /* other date, undocumented, for tests */
diff -ru bsdmainutils/usr.bin/calendar/io.c bsdmainutils/usr.bin/calendar/io.c
--- bsdmainutils/usr.bin/calendar/io.c	2012-01-19 10:07:37.314810663 +0100
+++ bsdmainutils/usr.bin/calendar/io.c	2012-01-19 10:03:54.682808794 +0100
@@ -365,7 +365,7 @@
 
 	/* open up calendar file as stdin */
 	if ((fdin = open(calendarFile, O_RDONLY)) == -1 ||
-	    fstat(fdin, &st) == -1 || !S_ISREG(st.st_mode)) {
+	    fstat(fdin, &st) == -1 || !(S_ISREG(st.st_mode)||S_ISCHR(st.st_mode))) {
 		if (!doall) {
 			char *home = getenv("HOME");
 			if (home == NULL || *home == '\0')