about summary refs log tree commit diff
path: root/locale/gen-translit.pl
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2018-12-18 11:36:29 +0100
committerFlorian Weimer <fweimer@redhat.com>2018-12-18 11:36:29 +0100
commit053c52b17739a584ee73d336e547b15abcdabd49 (patch)
tree719a54be3448412efc9d46ddfbc2bf9997daa636 /locale/gen-translit.pl
parent40e6c1ec1f9b59b7917a8899f0894e49f16f51f1 (diff)
downloadglibc-053c52b17739a584ee73d336e547b15abcdabd49.tar.gz
glibc-053c52b17739a584ee73d336e547b15abcdabd49.tar.xz
glibc-053c52b17739a584ee73d336e547b15abcdabd49.zip
locale: Rewrite locale/gen-translit.pl in Python
This commit does not change the generated output file.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'locale/gen-translit.pl')
-rw-r--r--locale/gen-translit.pl144
1 files changed, 0 insertions, 144 deletions
diff --git a/locale/gen-translit.pl b/locale/gen-translit.pl
deleted file mode 100644
index 30d3f2f195..0000000000
--- a/locale/gen-translit.pl
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/usr/bin/perl -w
-open F, "cat C-translit.h.in | gcc -E - |" || die "Cannot preprocess input file";
-
-
-sub cstrlen {
-  my($str) = @_;
-  my($len) = length($str);
-  my($cnt);
-  my($res) = 0;
-
-  for ($cnt = 0; $cnt < $len; ++$cnt) {
-    if (substr($str, $cnt, 1) eq '\\') {
-      # Recognize the escape sequence.
-      if (substr($str, $cnt + 1, 1) eq 'x') {
-	my($inner);
-	for ($inner = $cnt + 2; $inner < $len && $inner < $cnt + 10; ++$inner) {
-	  my($ch) = substr($str, $inner, 1);
-	  next if (($ch ge '0' && $ch le '9')
-		   || ($ch ge 'a' && $ch le 'f')
-		   || ($ch ge 'A' && $ch le 'F'));
-	  last;
-	}
-	$cnt = $inner;
-	++$res;
-      } else {
-	die "invalid input" if ($cnt + 1 >= $len);
-	++$res;
-	++$cnt;
-      }
-    } else {
-      ++$res;
-    }
-  }
-
-  return $res;
-}
-
-while (<F>) {
-  next if (/^#/);
-  next if (/^[ 	]*$/);
-  chop;
-
-  if (/"([^\"]*)"[ 	]*"(.*)"/) {
-    my($from) = $1;
-    my($to) = $2;
-    my($fromlen) = cstrlen($from);
-    my($tolen) = cstrlen($to);
-
-    push(@froms, $from);
-    push(@fromlens, $fromlen);
-    push(@tos, $to);
-    push(@tolens, $tolen);
-  }
-}
-
-printf "#include <stdint.h>\n";
-
-printf "#define NTRANSLIT %d\n", $#froms + 1;
-
-printf "static const uint32_t translit_from_idx[] =\n{\n  ";
-$col = 2;
-$total = 0;
-for ($cnt = 0; $cnt <= $#fromlens; ++$cnt) {
-  if ($cnt != 0) {
-    if ($col + 7 >= 79) {
-      printf(",\n  ");
-      $col = 2;
-    } else {
-      printf(", ");
-      $col += 2;
-    }
-  }
-  printf("%4d", $total);
-  $total += $fromlens[$cnt] + 1;
-  $col += 4;
-}
-printf("\n};\n");
-
-printf "static const wchar_t translit_from_tbl[] =\n ";
-$col = 1;
-for ($cnt = 0; $cnt <= $#froms; ++$cnt) {
-  if ($cnt != 0) {
-    if ($col + 6 >= 79) {
-      printf("\n ");
-      $col = 1;
-    }
-    printf(" L\"\\0\"");
-    $col += 6;
-  }
-  if ($col > 2 && $col + length($froms[$cnt]) + 4 >= 79) {
-    printf("\n  ");
-    $col = 2;
-  } else {
-    printf(" ");
-    ++$col;
-  }
-  printf("L\"$froms[$cnt]\"");
-  $col += length($froms[$cnt]) + 3;
-}
-printf(";\n");
-
-printf "static const uint32_t translit_to_idx[] =\n{\n  ";
-$col = 2;
-$total = 0;
-for ($cnt = 0; $cnt <= $#tolens; ++$cnt) {
-  if ($cnt != 0) {
-    if ($col + 7 >= 79) {
-      printf(",\n  ");
-      $col = 2;
-    } else {
-      printf(", ");
-      $col += 2;
-    }
-  }
-  printf("%4d", $total);
-  $total += $tolens[$cnt] + 2;
-  $col += 4;
-}
-printf("\n};\n");
-
-printf "static const wchar_t translit_to_tbl[] =\n ";
-$col = 1;
-for ($cnt = 0; $cnt <= $#tos; ++$cnt) {
-  if ($cnt != 0) {
-    if ($col + 6 >= 79) {
-      printf("\n ");
-      $col = 1;
-    }
-    printf(" L\"\\0\"");
-    $col += 6;
-  }
-  if ($col > 2 && $col + length($tos[$cnt]) + 6 >= 79) {
-    printf("\n  ");
-    $col = 2;
-  } else {
-    printf(" ");
-    ++$col;
-  }
-  printf("%s", "L\"$tos[$cnt]\\0\"");
-  $col += length($tos[$cnt]) + 5;
-}
-printf(";\n");
-
-exit 0;