#!/usr/bin/perl use POSIX qw(:termios_h); sub IUTF8 {0x4000} my $term = POSIX::Termios->new; $term->getattr(fileno(STDIN)); my $iflag = $term->getiflag(); my $param = $ARGV[0]; my $changed = 0; if (!defined($param)) { printf "UTF-8 is %s.\n", ($iflag & IUTF8) ? "on" : "off"; } elsif ($param eq "on") { if ($iflag & IUTF8) { print "UTF-8 is already on.\n"; } else { print "UTF-8 was off, turning it on.\n"; $iflag |= IUTF8; $changed = 1; } } elsif ($param eq "off") { if ($iflag & IUTF8) { print "UTF-8 was on, turning it off.\n"; $iflag &= ~IUTF8; $changed = 1; } else { print "UTF-8 is already off.\n"; } } else { print "Bad option\n"; exit 1; } if ($changed) { $term->setiflag($iflag); $term->setattr(fileno(STDIN), TCSANOW); }