Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > main-release-src > by-pkgid > 3e7fe1e288b8b9db7cf23cf8eba04067 > files > 1

lilo-22.8-3mdv2010.1.src.rpm

--- lilo-21.6/keytab-lilo.pl.pix	Fri Aug 25 04:15:24 2000
+++ lilo-21.6/keytab-lilo.pl	Mon Nov  6 01:34:41 2000
@@ -1,13 +1,12 @@
 #!/usr/bin/perl
 $DEFAULT_MAP = "us";
-$DEFAULT_EXT = ".map";
 
 sub usage
 {
     print STDERR
       "usage: $0 [ -p old_code=new_code ] ...\n".
       (" "x(8+length $0))."[path]default_layout[.map] ] ".
-      "[path]kbd_layout[.map]\n";
+      "[path]kbd_layout\n";
     exit 1;
 }
 
@@ -35,7 +34,6 @@
     local ($empty,$current);
 
     $map = $DEFAULT_MAP unless defined $map;
-    $map .= $DEFAULT_EXT unless $map =~ m|/[^/]+\.[^/]+$|;
     if (!open(FILE,"loadkeys -m $map |")) {
 	print STDERR "loadkeys -m $map: $!\n";
 	exit 1;
@@ -82,7 +80,9 @@
 	$code = $set;
 	for (split(",",$map{"kbd:".$map})) {
 	    die "bad map entry $_ (kbd, map $map)" unless /^0x\S\S(\S\S)$/;
-	    $table[$tmp[$code]] = hex $1 unless $table[$tmp[$code]];
+	    $table[$tmp[$code]] ||= hex $1 if $tmp[$code] > ord(' ') && ($code - $set) <= 59;
+	    # ' ' is the first real character
+	    # 59 is the end of the standard keyboard (test with showkey)
 	    $code++;
 	}
 	$set += 256;