[PATCH 09/17] setterm: remove devfs and /dev/vcsa0 support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The devfs files /dev/vcc/a* does not need to be supported, and vcsa0 has
not existed in years if ever.

Reference: http://lwn.net/Articles/65197/
Reference: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/devices.txt?id=14186fea0cb06bc43181ce239efe0df6f1af260a#n260
Signed-off-by: Sami Kerola <kerolasa@xxxxxx>
---
 bash-completion/setterm |  2 +-
 term-utils/setterm.c    | 26 +++++++-------------------
 2 files changed, 8 insertions(+), 20 deletions(-)

diff --git a/bash-completion/setterm b/bash-completion/setterm
index a7ef6eb..f47debf 100644
--- a/bash-completion/setterm
+++ b/bash-completion/setterm
@@ -40,7 +40,7 @@ _setterm_module()
 			;;
 		'-dump'|'-append')
 			local NUM_CONS
-			NUM_CONS=(/sys/class/tty/*)
+			NUM_CONS=(/dev/vcsa?*)
 			COMPREPLY=( $(compgen -W "{1..${#NUM_CONS[*]}}" -- $cur) )
 			return 0
 			;;
diff --git a/term-utils/setterm.c b/term-utils/setterm.c
index d889db4..3a02347 100644
--- a/term-utils/setterm.c
+++ b/term-utils/setterm.c
@@ -724,31 +724,18 @@ static void show_tabs(void)
 
 static void __attribute__((__noreturn__)) read_error(struct setterm_control *ctl)
 {
-	if (ctl->opt_sn_num != 0)
-		errx(EXIT_DUMPFILE, _("Couldn't read %s"), ctl->in_device);
-	else
-		errx(EXIT_DUMPFILE, _("Couldn't read neither /dev/vcsa0 nor /dev/vcsa"));
+	err(EXIT_DUMPFILE, _("Couldn't read %s"), ctl->in_device);
 }
 
 static int open_snapshot_device(struct setterm_control *ctl)
 {
-	char infile[MAXPATHLEN];
 	int fd;
 
-	sprintf(infile, "/dev/vcsa%d", ctl->opt_sn_num);
-	fd = open(infile, O_RDONLY);
-	if (fd < 0 && ctl->opt_sn_num == 0) {
-		/* vcsa0 is often called vcsa */
-		sprintf(infile, "/dev/vcsa");
-		fd = open(infile, O_RDONLY);
-	}
-	if (fd < 0) {
-		/* try devfs name - for zero ctl->opt_sn_num just /dev/vcc/a */
-		/* some gcc's warn for %.u - add 0 */
-		sprintf(infile, "/dev/vcc/a%.0u", ctl->opt_sn_num);
-		fd = open(infile, O_RDONLY);
-	}
-	ctl->in_device = infile;
+	if (ctl->opt_sn_num)
+		xasprintf(&ctl->in_device, "/dev/vcsa%d", ctl->opt_sn_num);
+	else
+		xasprintf(&ctl->in_device, "/dev/vcsa");
+	fd = open(ctl->in_device, O_RDONLY);
 	if (fd < 0)
 		read_error(ctl);
 	return fd;
@@ -803,6 +790,7 @@ static void screendump(struct setterm_control *ctl)
 	close(fd);
 	free(inbuf);
 	free(outbuf);
+	free(ctl->in_device);
 	if (close_stream(out) != 0)
 		errx(EXIT_FAILURE, _("write error"));
 	return;
-- 
1.9.2

--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux