summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2018-04-12 18:41:22 +0200
committerDidier Raboud <odyx@debian.org>2018-04-12 18:41:22 +0200
commit8dffdabb54892e19aaf8c400e7127115e8b4a1ca (patch)
treef7300cc554be2a79b1f4e3a505641826c7eaef85 /filter
parent03ce7a0be4d4a991df92746c3f6c711b07331784 (diff)
New upstream version 1.20.3
Diffstat (limited to 'filter')
-rw-r--r--filter/braille/filters/cups-braille.sh.in93
-rw-r--r--filter/braille/filters/liblouis1.defs.gen.in424
-rw-r--r--filter/gstoraster.c24
3 files changed, 307 insertions, 234 deletions
diff --git a/filter/braille/filters/cups-braille.sh.in b/filter/braille/filters/cups-braille.sh.in
index 433b6fe14..bc6c5d747 100644
--- a/filter/braille/filters/cups-braille.sh.in
+++ b/filter/braille/filters/cups-braille.sh.in
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2015-2017 Samuel Thibault <samuel.thibault@ens-lyon.org>
+# Copyright (c) 2015-2018 Samuel Thibault <samuel.thibault@ens-lyon.org>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
@@ -294,7 +294,7 @@ echo "DEBUG: resulting graphical area: ${GRAPHICWIDTH}x${GRAPHICHEIGHT}" >&2
TABLESDIR=@TABLESDIR@
echo "DEBUG: Liblouis table directory is $TABLESDIR" >&2
-
+
getOptionLibLouis () {
OPTION=$1
VALUE=$(getOption $OPTION)
@@ -310,6 +310,59 @@ getOptionLibLouis () {
LOCALE=${LANG%@*}
LOCALE=${LOCALE%.*}
LANGUAGE=${LOCALE%_*}
+ COUNTRY=${LOCALE#*_}
+ LOUIS_LOCALE=$LANGUAGE-$COUNTRY
+
+ getLibLouisTableScore () {
+ GRADE="$1"
+ printf "DEBUG: looking for locale '%s' and grade '%s' \n" "$LOCALE" "$GRADE" >&2
+ # Try to select a good table from its metadata
+ selected=
+ selectedscore=0
+ for table in "$TABLESDIR/"*.tbl "$TABLESDIR/"*.ctb "$TABLESDIR/"*.utb; do
+ score=0
+ name=${table#$TABLESDIR/}
+
+ if grep -q "^#+locale:$LOUIS_LOCALE$" $table; then
+ printf "DEBUG: %s has correct locale %s\n" "$name" "$LOUIS_LOCALE" >&2
+ score=$((score + 15))
+ elif grep -q "^#+locale:$LANGUAGE$" $table; then
+ printf "DEBUG: %s has correct language %s\n" "$name" "$LANGUAGE" >&2
+ score=$((score + 10))
+ else
+ # Requested language is a must
+ continue
+ fi
+
+ if [ -n "$GRADE" ]; then
+ if grep -q "^#+grade:$GRADE$" $table || \
+ ( [ "$GRADE" = 0 ] && grep -q "^#+contraction:no" $table ) \
+ then
+ printf "DEBUG: %s has correct grade %s\n" "$name" "$GRADE" >&2
+ score=$((score + 10))
+ else
+ # Requested grade is a must
+ continue
+ fi
+ fi
+
+ # Dot numbers are not always specified in liblouis :/
+ if grep -q "^#+dots:$TEXTDOTS$" $table || \
+ ( [ "$TEXTDOTS" = 6 ] && grep -q "^#+grade:[1-3]" $table ) \
+ then
+ printf "DEBUG: %s has correct dots %s\n" "$name" "$TEXTDOTS" >&2
+ score=$((score + 2))
+ fi
+
+ if [ $score -gt $selectedscore ]; then
+ printf "DEBUG: %s has better score $score\n" "$name" >&2
+ selected=$name
+ selectedscore=$score
+ fi
+ done
+
+ echo $selected
+ }
# Check presence of table
case "$VALUE" in
@@ -317,28 +370,36 @@ getOptionLibLouis () {
printf None
;;
Locale)
- if [ -f "$TABLESDIR/$LOCALE.tbl" ]
- then
+ selected=$(getLibLouisTableScore '')
+ # Try tagged tables before untagged ones
+ if [ -n "$selected" ]; then
+ printf "%s" "$selected"
+ elif [ -f "$TABLESDIR/$LOCALE.tbl" ]; then
printf "%s" "$LOCALE.tbl"
- elif [ -f "$TABLESDIR/$LANGUAGE.tbl" ]
- then
+ elif [ -f "$TABLESDIR/$LANGUAGE.tbl" ]; then
printf "%s" "$LANGUAGE.tbl"
else
- printf "WARN: Could not find $OPTION table '%s.tbl' or '%s.tbl'\n" "$LOCALE" "$LANGUAGE" >&2
+ printf "WARN: Could not find $OPTION table with locale %s\n" "$LOCALE" >&2
printf None
fi
;;
Locale-g[0-3])
GRADE=${VALUE#Locale-g}
- for i in "$TABLESDIR/$LOCALE.tbl" "$TABLESDIR/$LOCALE"*.tbl "$TABLESDIR/$LANGUAGE.tbl" "$TABLESDIR/$LANGUAGE"*.tbl
- do
- if grep -q "^#+grade:$GRADE$" "$i"
- then
- printf "%s" "${i//*\/}"
- exit 0
- fi
- done
- printf "ERROR: Could not find $OPTION table '%s*.tbl' or '%s*.tbl' with grade $GRADE\n" "$LOCALE" "$LANGUAGE" >&2
+ selected=$(getLibLouisTableScore $GRADE)
+ if [ -n "$selected" ]; then
+ printf "%s" "$selected"
+ exit 0
+ else
+ for i in "$TABLESDIR/$LOCALE.tbl" "$TABLESDIR/$LOCALE"*.tbl "$TABLESDIR/$LANGUAGE.tbl" "$TABLESDIR/$LANGUAGE"*.tbl
+ do
+ if grep -q "^#+grade:$GRADE$" "$i"
+ then
+ printf "%s" "${i//*\/}"
+ exit 0
+ fi
+ done
+ fi
+ printf "ERROR: Could not find $OPTION table with locale %s and grade %s\n" "$LOCALE" "$GRADE" >&2
printf None
exit 1
;;
diff --git a/filter/braille/filters/liblouis1.defs.gen.in b/filter/braille/filters/liblouis1.defs.gen.in
index bb85e8627..aab3ff388 100644
--- a/filter/braille/filters/liblouis1.defs.gen.in
+++ b/filter/braille/filters/liblouis1.defs.gen.in
@@ -1,7 +1,7 @@
#!/bin/bash
#
-# Copyright (c) 2015, 2017 Samuel Thibault <samuel.thibault@ens-lyon.org>
+# Copyright (c) 2015, 2017-2018 Samuel Thibault <samuel.thibault@ens-lyon.org>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
@@ -39,182 +39,209 @@ echo ' Choice "Locale-g3/Default for language grade 3" ""'
for i in $TABLESDIR/*.utb $TABLESDIR/*.ctb
do
file=${i##*/}
- name=${file%.ctb}
- name=${name%.utb}
- DESC=$name
- LANGUAGE=""
+ ext=${file##*.}
+ name=${file%.$ext}
+ TYPE=""
+ LANGUAGE="$name"
LOCATION=""
GRADE=""
- case $name in
- "afr-za-g1") LANGUAGE=Afrikaans DESC="grade 1" ;;
- "ar-ar-g1") LANGUAGE=Arabic DESC="grade 1" ;;
- "ar-fa") LANGUAGE=Persian DESC="grade 1" ;;
- "as-in-g1") LANGUAGE=Assamese DESC="grade 1" ;;
- "aw-in-g1") LANGUAGE=Awadhi DESC="grade 1" ;;
- "be-in-g1") LANGUAGE=Bengali DESC="grade 1" ;;
- "bg") LANGUAGE=Bulgarian DESC="grade 1" ;;
- "bh") LANGUAGE=Bihari DESC="grade 1" ;;
- "bo") LANGUAGE=Tibetan DESC="grade 1" ;;
- "boxes") DESC="Box drawing" ;;
- "br-in-g1") LANGUAGE=Braj DESC="Box drawing" ;;
- "ca-g1") LANGUAGE=Catalan DESC="grade 1" ;;
- "chr-us-g1") LANGUAGE=Cherokee DESC="grade 1" ;;
- "ckb-g1") LANGUAGE="Sorani (Kurdish)" DESC="grade 1" ;;
- "cs-g1") LANGUAGE=Czech DESC="grade 1" ;;
- "cy-cy-g1") LANGUAGE=Welsh DESC="grade 1" ;;
- "cy-cy-g2") LANGUAGE=Welsh DESC="grade 2" ;;
- "Cz-Cz-g1") LANGUAGE=Czech DESC="grade 1" ;;
- "da-dk-g08") LANGUAGE=Danish DESC="grade 0" ;;
- "da-dk-g16") LANGUAGE=Danish DESC="grade 1 6 dots" ;;
- "da-dk-g18") LANGUAGE=Danish DESC="grade 1 8 dots" ;;
- "da-dk-g26") LANGUAGE=Danish DESC="grade 2 6 dots" ;;
- "da-dk-g26l") LANGUAGE=Danish DESC="grade 2 6 dots limited" ;;
- "da-dk-g28") LANGUAGE=Danish DESC="grade 2 8 dots" ;;
- "da-dk-g28l") LANGUAGE=Danish DESC="grade 2 8 dots limited" ;;
- "da-lt") LANGUAGE=Danish DESC="LogText" ;;
- "de-chess") LANGUAGE=German DESC="Chess" ;;
- "de-ch-g0") LANGUAGE=German LOCATION=Swiss DESC="grade 0" ;;
- "de-ch-g1") LANGUAGE=German LOCATION=Swiss DESC="grade 1" ;;
- "de-ch-g2") LANGUAGE=German LOCATION=Swiss DESC="grade 2" ;;
- "de-de-comp8") LANGUAGE=German LOCATION=Germany DESC="computer" ;;
- "de-de-g0") LANGUAGE=German LOCATION=Germany DESC="grade 0" ;;
- "de-de-g1") LANGUAGE=German LOCATION=Germany DESC="grade 1" ;;
- "de-de-g2") LANGUAGE=German LOCATION=Germany DESC="grade 2" ;;
- "dra") LANGUAGE=Dravidian DESC="grade 1" ;;
- "en_CA") LANGUAGE=English LOCATION=Canada DESC="grade 1" ;;
- "en-chess") LANGUAGE=English DESC="Chess" ;;
- "en-gb-comp8") LANGUAGE=English LOCATION=U.K. DESC="computer" ;;
- "en-gb-g1") LANGUAGE=English LOCATION=U.K. DESC="grade 1" ;;
- "en-GB-g2") LANGUAGE=English LOCATION=U.K. DESC="grade 2" ;;
- "en-in-g1") LANGUAGE=English LOCATION=India DESC="grade 1" ;;
- "en-ueb-g1") LANGUAGE=English DESC="Unified grade 1" ;;
- "en-ueb-g2") LANGUAGE=English DESC="Unified grade 2" ;;
- "en-us-comp6") LANGUAGE=English LOCATION=U.S. DESC="computer 6 dots" ;;
- "en-us-comp8") LANGUAGE=English LOCATION=U.S. DESC="computer 8 dots" ;;
- "en-us-compbrl") LANGUAGE=English LOCATION=U.S. DESC="computer" ;;
- "en-us-g1") LANGUAGE=English LOCATION=U.S. DESC="grade 1" ;;
- "en-us-g2") LANGUAGE=English LOCATION=U.S. DESC="grade 2" ;;
- "en-us-interline") LANGUAGE=English LOCATION=U.S. DESC="interline" ;;
- "en-us-mathtext") LANGUAGE=English LOCATION=U.S. DESC="mathtext" ;;
- "eo-g1") LANGUAGE=Esperanto DESC="grade 1" ;;
- "eo-g1-x-system") LANGUAGE=Esperanto DESC="grade 1 x-system" ;;
- "Es-Es-G0") LANGUAGE=Spanish DESC="grade 0" ;;
- "Es-Es-g1") LANGUAGE=Spanish DESC="grade 1" ;;
- "es-g1") LANGUAGE=Spanish DESC="grade 1" ;;
- "et") LANGUAGE=Estonian DESC="grade 1" ;;
- "et-g0") LANGUAGE=Estonian DESC="grade 0" ;;
- "ethio-g1") LANGUAGE=Ethiopic DESC="grade 1" ;;
- "fi") LANGUAGE=Finnish DESC="6 dot" ;;
- "fi1") LANGUAGE=Finnish DESC="grade 1" ;;
- "fi2") LANGUAGE=Finnish DESC="grade 2" ;;
- "fi-fi-8dot") LANGUAGE=Finnish DESC="8dot" ;;
- "fi-fi") LANGUAGE=Finnish DESC="6dot" ;;
- "fr-2007") LANGUAGE=French DESC="2007" ;;
- "fr-bfu-comp6") LANGUAGE=French DESC="Braille Français Unifié computer 6 dots" ;;
- "fr-bfu-comp8") LANGUAGE=French DESC="Braille Français Unifié computer 8 dots" ;;
- "fr-bfu-g2") LANGUAGE=French DESC="Braille Français Unifié grade 2" ;;
- "fr-ca-g1") LANGUAGE=French LOCATION=Canada DESC="grade 1" ;;
- "Fr-Ca-g2") LANGUAGE=French LOCATION=Canada DESC="grade 2" ;;
- "fr-fr-g1") LANGUAGE=French LOCATION=France DESC="grade 1" ;;
- "Fr-Fr-g2") LANGUAGE=French LOCATION=France DESC="grade 2" ;;
- "ga-g1") LANGUAGE=Gaeilge DESC="grade 1" ;;
- "ga-g2") LANGUAGE=Gaeilge DESC="grade 2" ;;
- "gd") LANGUAGE=Gaelic DESC="grade 1" ;;
- "gon") LANGUAGE=Gondi DESC="grade 1" ;;
- "gr-bb") LANGUAGE=Greek DESC="bb" ;;
- "gr-gr-g1") LANGUAGE=Greek DESC="grade 1" ;;
- "gu-in-g1") LANGUAGE=Gujarati DESC="grade 1" ;;
- "haw-us-g1") LANGUAGE=Hawaiian DESC="grade 1" ;;
- "he") LANGUAGE=Hebrew DESC="grade 1" ;;
- "hi-in-g1") LANGUAGE=Hindi DESC="grade 1" ;;
- "hr") LANGUAGE=Croatian DESC="grade 1" ;;
- "hu-hu-comp8") LANGUAGE=Hungarian DESC="computer 8 dots" ;;
- "hu-hu-g1") LANGUAGE=Hungarian DESC="grade 1" ;;
- "hy") LANGUAGE=Armenian DESC="grade 1" ;;
- "is") LANGUAGE=Icelandic DESC="grade 1" ;;
- "it-it-comp6") LANGUAGE=Italian DESC="computer 6 dots" ;;
- "it-it-comp8") LANGUAGE=Italian DESC="computer 8 dots" ;;
- "iu-ca-g1") LANGUAGE=Inuktitut DESC="grade 1" ;;
- "ka-in-g1") LANGUAGE=Kannada DESC="grade 1" ;;
- "kh-in-g1") LANGUAGE=Khasi DESC="grade 1" ;;
- "ko-2006-g1") LANGUAGE=Korean DESC="grade 1 2006" ;;
- "ko-2006-g2") LANGUAGE=Korean DESC="grade 2 2006" ;;
- "ko-g1") LANGUAGE=Korean DESC="grade 1" ;;
- "ko-g2") LANGUAGE=Korean DESC="grade 2" ;;
- "kok") LANGUAGE=Konkani DESC="grade 1" ;;
- "kru") LANGUAGE=Kurukh DESC="grade 1" ;;
- "ks-in-g1") LANGUAGE=Kashmiri DESC="grade 1" ;;
- "lt") LANGUAGE=Lithuanian DESC="grade 1" ;;
- "Lv-Lv-g1") LANGUAGE=Latvian DESC="grade 1" ;;
- "mao-nz-g1") LANGUAGE=Maori DESC="grade 1" ;;
- "marburg") DESC="Marburg maths" ;;
- "marburg_edit") DESC="Marburg maths post-translation editing" ;;
- "ml-in-g1") LANGUAGE=Malayalam DESC="grade 1" ;;
- "mn-in-g1") LANGUAGE=Manipuri DESC="grade 1" ;;
- "mn-MN") LANGUAGE=Mongolian DESC="grade 1" ;;
- "mr-in-g1") LANGUAGE=Marathi DESC="grade 1" ;;
- "mt") LANGUAGE=Maltese DESC="grade 1" ;;
- "mun") LANGUAGE=Munda DESC="grade 1" ;;
- "mwr") LANGUAGE=Marwari DESC="grade 1" ;;
- "ne") LANGUAGE=Nepali DESC="grade 1" ;;
- "nemeth") DESC="Nemeth Maths" ;;
- "nemeth_edit") DESC="Nemeth Maths post-translation editing" ;;
- "nl-BE-g0") LANGUAGE=Dutch LOCATION=Belgium DESC="grade 0" ;;
- "nl-g0") LANGUAGE=Dutch DESC="grade 0" ;;
- "nl-NL-g0") LANGUAGE=Dutch LOCATION="Netherlands" DESC="grade 0" ;;
- "Nl-Nl-g1") LANGUAGE=Dutch LOCATION=Netherlands DESC="grade 1" ;;
- "no-no-8dot-fallback-6dot-g0") LANGUAGE=Norwegian DESC="grade 0 8 dots fallback 6 dots" ;;
- "no-no-8dot") LANGUAGE=Norwegian DESC="grade 0 8 dots" ;;
- "no-no-comp8") LANGUAGE=Norwegian DESC="grade 0 computer" ;;
- "no-no-g0") LANGUAGE=Norwegian DESC="grade 0" ;;
- "no-no-g1") LANGUAGE=Norwegian DESC="grade 1" ;;
- "no-no-g2") LANGUAGE=Norwegian DESC="grade 2" ;;
- "no-no-g3") LANGUAGE=Norwegian DESC="grade 3" ;;
- "no-no-generic") LANGUAGE=Norwegian DESC="generic" ;;
- "np-in-g1") LANGUAGE=Nepali DESC="grade 1" ;;
- "or-in-g1") LANGUAGE=Oriya DESC="grade 1" ;;
- "pi") LANGUAGE=Pali DESC="grade 1" ;;
- "pl-pl-comp8") LANGUAGE=Polish DESC="computer" ;;
- "Pl-Pl-g1") LANGUAGE=Polish DESC="grade 1" ;;
- "pt-pt-comp8") LANGUAGE=Portuguese DESC="computer" ;;
- "pt-pt-g1") LANGUAGE=Portuguese DESC="grade 1" ;;
- "pt-pt-g2") LANGUAGE=Portuguese DESC="grade 2" ;;
- "pu-in-g1") LANGUAGE=Punjabi DESC="grade 1" ;;
- "ro") LANGUAGE=Romanian DESC="grade 1" ;;
- "ru-compbrl") LANGUAGE=Russian DESC="computer" ;;
- "ru") LANGUAGE=Russian DESC="grade 1" ;;
- "ru-litbrl") LANGUAGE=Russian DESC="literary" ;;
- "ru-ru-g1") LANGUAGE=Russian DESC="grade 1" ;;
- "sa-in-g1") LANGUAGE=Sasnskrit DESC="grade 1" ;;
- "se-se") LANGUAGE=Swedish DESC="grade 1" ;;
- "Se-Se-g1") LANGUAGE=Swedish DESC="grade 1" ;;
- "si-in-g1") LANGUAGE=Sindhi DESC="grade 1" ;;
- "sk-g1") LANGUAGE=Slovak DESC="grade 1" ;;
- "sk-sk-g1") LANGUAGE=Slovak DESC="grade 1" ;;
- "sk-sk") LANGUAGE=Slovak DESC="grade 1" ;;
- "sl-si-comp8") LANGUAGE=Slovenian DESC="computer" ;;
- "sl-si-g1") LANGUAGE=Slovenian DESC="grade 1" ;;
- "sot-za-g1") LANGUAGE=Sotho DESC="grade 1" ;;
- "spaces") DESC="Spaces" ;;
- "sr-g1") LANGUAGE=Serbian DESC="grade 1" ;;
- "sv-1989") LANGUAGE=Swedish DESC="1989" ;;
- "sv-1996") LANGUAGE=Swedish DESC="1996" ;;
- "ta") LANGUAGE=Tamil DESC="grade 1" ;;
- "ta-ta-g1") LANGUAGE=Tamil DESC="grade 1" ;;
- "te-in-g1") LANGUAGE=Telugu DESC="grade 1" ;;
- "tr") LANGUAGE=Turkish DESC="grade 1" ;;
- "tsn-za-g1") LANGUAGE=Tswana DESC="grade 1" ;;
- "UEBC-g1") LANGUAGE=English DESC="Unified grade 1" ;;
- "UEBC-g2") LANGUAGE=English DESC="Unified grade 2" ;;
- "ukmaths") DESC="U.K maths" ;;
- "ukmaths_edit") DESC="U.K maths post-translation editing" ;;
- "vi") LANGUAGE=Vietnamese DESC="grade 1" ;;
- "vi-g1") LANGUAGE=Vietnamese DESC="grade 1" ;;
- "wiskunde") LANGUAGE=Flemish DESC="grade 1" ;;
- "zh-hk") LANGUAGE=Chinese LOCATION="Hong Kong" DESC="grade 1" ;;
- "zh-tw") LANGUAGE=Chinese LOCATION="Taiwan" DESC="grade 1" ;;
- esac
- echo "$file:$LANGUAGE:$LOCATION:$DESC"
+ DISPLAY_NAME=""
+ display_name=$(grep ^#-display-name: "$i" | cut -d ' ' -f 2-)
+ if [ -n "$display_name" ]; then
+ # Table provides a display name, neat
+ DISPLAY_NAME=$display_name
+ LANGUAGE=$DISPLAY_NAME
+ else
+ case $name in
+ "afr-za-g1") LANGUAGE=Afrikaans TYPE="grade 1" ;;
+ "ar-ar-g1") LANGUAGE=Arabic TYPE="grade 1" ;;
+ "ar-fa") LANGUAGE=Persian TYPE="grade 1" ;;
+ "as-in-g1") LANGUAGE=Assamese TYPE="grade 1" ;;
+ "aw-in-g1") LANGUAGE=Awadhi TYPE="grade 1" ;;
+ "be-in-g1") LANGUAGE=Bengali TYPE="grade 1" ;;
+ "bg") LANGUAGE=Bulgarian TYPE="grade 1" ;;
+ "bh") LANGUAGE=Bihari TYPE="grade 1" ;;
+ "bo") LANGUAGE=Tibetan TYPE="grade 1" ;;
+ "boxes") TYPE="Box drawing" ;;
+ "br-in-g1") LANGUAGE=Braj TYPE="Box drawing" ;;
+ "ca-g1") LANGUAGE=Catalan TYPE="grade 1" ;;
+ "chr-us-g1") LANGUAGE=Cherokee TYPE="grade 1" ;;
+ "ckb-g1") LANGUAGE="Sorani (Kurdish)" TYPE="grade 1" ;;
+ "cs-g1") LANGUAGE=Czech TYPE="grade 1" ;;
+ "cy-cy-g1") LANGUAGE=Welsh TYPE="grade 1" ;;
+ "cy-cy-g2") LANGUAGE=Welsh TYPE="grade 2" ;;
+ "Cz-Cz-g1") LANGUAGE=Czech TYPE="grade 1" ;;
+ "da-dk-g08") LANGUAGE=Danish TYPE="grade 0" ;;
+ "da-dk-g16") LANGUAGE=Danish TYPE="grade 1 6 dots" ;;
+ "da-dk-g18") LANGUAGE=Danish TYPE="grade 1 8 dots" ;;
+ "da-dk-g26") LANGUAGE=Danish TYPE="grade 2 6 dots" ;;
+ "da-dk-g26l") LANGUAGE=Danish TYPE="grade 2 6 dots limited" ;;
+ "da-dk-g28") LANGUAGE=Danish TYPE="grade 2 8 dots" ;;
+ "da-dk-g28l") LANGUAGE=Danish TYPE="grade 2 8 dots limited" ;;
+ "da-lt") LANGUAGE=Danish TYPE="LogText" ;;
+ "de-chess") LANGUAGE=German TYPE="Chess" ;;
+ "de-ch-g0") LANGUAGE=German LOCATION=Swiss TYPE="grade 0" ;;
+ "de-ch-g1") LANGUAGE=German LOCATION=Swiss TYPE="grade 1" ;;
+ "de-ch-g2") LANGUAGE=German LOCATION=Swiss TYPE="grade 2" ;;
+ "de-de-comp8") LANGUAGE=German LOCATION=Germany TYPE="computer" ;;
+ "de-de-g0") LANGUAGE=German LOCATION=Germany TYPE="grade 0" ;;
+ "de-de-g1") LANGUAGE=German LOCATION=Germany TYPE="grade 1" ;;
+ "de-de-g2") LANGUAGE=German LOCATION=Germany TYPE="grade 2" ;;
+ "dra") LANGUAGE=Dravidian TYPE="grade 1" ;;
+ "el") LANGUAGE=Greek TYPE="grade 1" ;;
+ "en_CA") LANGUAGE=English LOCATION=Canada TYPE="grade 1" ;;
+ "en-chess") LANGUAGE=English TYPE="Chess" ;;
+ "en-gb-comp8") LANGUAGE=English LOCATION=U.K. TYPE="computer" ;;
+ "en-gb-g1") LANGUAGE=English LOCATION=U.K. TYPE="grade 1" ;;
+ "en-GB-g2") LANGUAGE=English LOCATION=U.K. TYPE="grade 2" ;;
+ "en-in-g1") LANGUAGE=English LOCATION=India TYPE="grade 1" ;;
+ "en-ueb-g1") LANGUAGE=English TYPE="Unified grade 1" ;;
+ "en-ueb-g2") LANGUAGE=English TYPE="Unified grade 2" ;;
+ "en-ueb-math") LANGUAGE=English TYPE="Unified math definitions" ;;
+ "en-us-comp6") LANGUAGE=English LOCATION=U.S. TYPE="computer 6 dots" ;;
+ "en-us-comp8") LANGUAGE=English LOCATION=U.S. TYPE="computer 8 dots" ;;
+ "en-us-compbrl") LANGUAGE=English LOCATION=U.S. TYPE="computer" ;;
+ "en-us-g1") LANGUAGE=English LOCATION=U.S. TYPE="grade 1" ;;
+ "en-us-g2") LANGUAGE=English LOCATION=U.S. TYPE="grade 2" ;;
+ "en-us-interline") LANGUAGE=English LOCATION=U.S. TYPE="interline" ;;
+ "en-us-mathtext") LANGUAGE=English LOCATION=U.S. TYPE="mathtext" ;;
+ "eo-g1") LANGUAGE=Esperanto TYPE="grade 1" ;;
+ "eo-g1-x-system") LANGUAGE=Esperanto TYPE="grade 1 x-system" ;;
+ "Es-Es-G0") LANGUAGE=Spanish TYPE="grade 0" ;;
+ "Es-Es-g1") LANGUAGE=Spanish TYPE="grade 1" ;;
+ "es-g1") LANGUAGE=Spanish TYPE="grade 1" ;;
+ "et") LANGUAGE=Estonian TYPE="grade 1" ;;
+ "et-g0") LANGUAGE=Estonian TYPE="grade 0" ;;
+ "ethio-g1") LANGUAGE=Ethiopic TYPE="grade 1" ;;
+ "fi") LANGUAGE=Finnish TYPE="6 dot" ;;
+ "fi1") LANGUAGE=Finnish TYPE="grade 1" ;;
+ "fi2") LANGUAGE=Finnish TYPE="grade 2" ;;
+ "fi-fi-8dot") LANGUAGE=Finnish TYPE="8dot" ;;
+ "fi-fi") LANGUAGE=Finnish TYPE="6dot" ;;
+ "fr-2007") LANGUAGE=French TYPE="2007" ;;
+ "fr-bfu-comp6") LANGUAGE=French TYPE="Braille Français Unifié computer 6 dots" ;;
+ "fr-bfu-comp8") LANGUAGE=French TYPE="Braille Français Unifié computer 8 dots" ;;
+ "fr-bfu-g2") LANGUAGE=French TYPE="Braille Français Unifié grade 2" ;;
+ "fr-ca-g1") LANGUAGE=French LOCATION=Canada TYPE="grade 1" ;;
+ "Fr-Ca-g2") LANGUAGE=French LOCATION=Canada TYPE="grade 2" ;;
+ "fr-fr-g1") LANGUAGE=French LOCATION=France TYPE="grade 1" ;;
+ "Fr-Fr-g2") LANGUAGE=French LOCATION=France TYPE="grade 2" ;;
+ "ga-g1") LANGUAGE=Gaeilge TYPE="grade 1" ;;
+ "ga-g2") LANGUAGE=Gaeilge TYPE="grade 2" ;;
+ "gd") LANGUAGE=Gaelic TYPE="grade 1" ;;
+ "gon") LANGUAGE=Gondi TYPE="grade 1" ;;
+ "gr-bb") LANGUAGE=Greek TYPE="bb" ;;
+ "gr-gr-g1") LANGUAGE=Greek TYPE="grade 1" ;;
+ "gu-in-g1") LANGUAGE=Gujarati TYPE="grade 1" ;;
+ "haw-us-g1") LANGUAGE=Hawaiian TYPE="grade 1" ;;
+ "he") LANGUAGE=Hebrew TYPE="grade 1" ;;
+ "hi-in-g1") LANGUAGE=Hindi TYPE="grade 1" ;;
+ "hr"|"hr-g1") LANGUAGE=Croatian TYPE="grade 1" ;;
+ "hr-comp8") LANGUAGE=Croatian TYPE="computer 8 dots" ;;
+ "hu-hu-comp8") LANGUAGE=Hungarian TYPE="computer 8 dots" ;;
+ "hu-hu-g1") LANGUAGE=Hungarian TYPE="grade 1" ;;
+ "hy") LANGUAGE=Armenian TYPE="grade 1" ;;
+ "is") LANGUAGE=Icelandic TYPE="grade 1" ;;
+ "it-it-comp6") LANGUAGE=Italian TYPE="computer 6 dots" ;;
+ "it-it-comp8") LANGUAGE=Italian TYPE="computer 8 dots" ;;
+ "iu-ca-g1") LANGUAGE=Inuktitut TYPE="grade 1" ;;
+ "ka-in-g1") LANGUAGE=Kannada TYPE="grade 1" ;;
+ "kh-in-g1") LANGUAGE=Khasi TYPE="grade 1" ;;
+ "ko-2006-g1") LANGUAGE=Korean TYPE="grade 1 2006" ;;
+ "ko-2006-g2") LANGUAGE=Korean TYPE="grade 2 2006" ;;
+ "ko-g1") LANGUAGE=Korean TYPE="grade 1" ;;
+ "ko-g2") LANGUAGE=Korean TYPE="grade 2" ;;
+ "kok") LANGUAGE=Konkani TYPE="grade 1" ;;
+ "kru") LANGUAGE=Kurukh TYPE="grade 1" ;;
+ "ks-in-g1") LANGUAGE=Kashmiri TYPE="grade 1" ;;
+ "lt") LANGUAGE=Lithuanian TYPE="grade 1" ;;
+ "lt-6dot") LANGUAGE=Lithuanian TYPE="6 dots" ;;
+ "Lv-Lv-g1") LANGUAGE=Latvian TYPE="grade 1" ;;
+ "mao-nz-g1") LANGUAGE=Maori TYPE="grade 1" ;;
+ "marburg") TYPE="Marburg maths" ;;
+ "marburg_edit") TYPE="Marburg maths post-translation editing" ;;
+ "ml-in-g1") LANGUAGE=Malayalam TYPE="grade 1" ;;
+ "mn-in-g1") LANGUAGE=Manipuri TYPE="grade 1" ;;
+ "mn-MN"|"mn-MN-g1") LANGUAGE=Mongolian TYPE="grade 1" ;;
+ "mn-MN-g2") LANGUAGE=Mongolian TYPE="grade 2" ;;
+ "mr-in-g1") LANGUAGE=Marathi TYPE="grade 1" ;;
+ "mt") LANGUAGE=Maltese TYPE="grade 1" ;;
+ "mun") LANGUAGE=Munda TYPE="grade 1" ;;
+ "mwr") LANGUAGE=Marwari TYPE="grade 1" ;;
+ "ne") LANGUAGE=Nepali TYPE="grade 1" ;;
+ "nemeth") TYPE="Nemeth Maths" ;;
+ "nemeth_edit") TYPE="Nemeth Maths post-translation editing" ;;
+ "nl-BE-g0") LANGUAGE=Dutch LOCATION=Belgium TYPE="grade 0" ;;
+ "nl-g0") LANGUAGE=Dutch TYPE="grade 0" ;;
+ "nl-NL-g0") LANGUAGE=Dutch LOCATION="Netherlands" TYPE="grade 0" ;;
+ "Nl-Nl-g1") LANGUAGE=Dutch LOCATION=Netherlands TYPE="grade 1" ;;
+ "no-no-8dot-fallback-6dot-g0") LANGUAGE=Norwegian TYPE="grade 0 8 dots fallback 6 dots" ;;
+ "no-no-8dot") LANGUAGE=Norwegian TYPE="grade 0 8 dots" ;;
+ "no-no-comp8") LANGUAGE=Norwegian TYPE="grade 0 computer" ;;
+ "no-no-g0") LANGUAGE=Norwegian TYPE="grade 0" ;;
+ "no-no-g1") LANGUAGE=Norwegian TYPE="grade 1" ;;
+ "no-no-g2") LANGUAGE=Norwegian TYPE="grade 2" ;;
+ "no-no-g3") LANGUAGE=Norwegian TYPE="grade 3" ;;
+ "no-no-generic") LANGUAGE=Norwegian TYPE="generic" ;;
+ "np-in-g1") LANGUAGE=Nepali TYPE="grade 1" ;;
+ "or-in-g1") LANGUAGE=Oriya TYPE="grade 1" ;;
+ "pi") LANGUAGE=Pali TYPE="grade 1" ;;
+ "pl-pl-comp8") LANGUAGE=Polish TYPE="computer" ;;
+ "Pl-Pl-g1") LANGUAGE=Polish TYPE="grade 1" ;;
+ "pt-pt-comp8") LANGUAGE=Portuguese TYPE="computer" ;;
+ "pt-pt-g1") LANGUAGE=Portuguese TYPE="grade 1" ;;
+ "pt-pt-g2") LANGUAGE=Portuguese TYPE="grade 2" ;;
+ "pu-in-g1") LANGUAGE=Punjabi TYPE="grade 1" ;;
+ "ro") LANGUAGE=Romanian TYPE="grade 1" ;;
+ "ru-compbrl") LANGUAGE=Russian TYPE="computer" ;;
+ "ru") LANGUAGE=Russian TYPE="grade 1" ;;
+ "ru-litbrl") LANGUAGE=Russian TYPE="literary" ;;
+ "ru-ru-g1") LANGUAGE=Russian TYPE="grade 1" ;;
+ "sa-in-g1") LANGUAGE=Sasnskrit TYPE="grade 1" ;;
+ "se-se") LANGUAGE=Swedish TYPE="grade 1" ;;
+ "Se-Se-g1") LANGUAGE=Swedish TYPE="grade 1" ;;
+ "si-in-g1") LANGUAGE=Sindhi TYPE="grade 1" ;;
+ "sin") LANGUAGE=Sinhala TYPE="grade 1" ;;
+ "sk-g1") LANGUAGE=Slovak TYPE="grade 1" ;;
+ "sk-sk-g1") LANGUAGE=Slovak TYPE="grade 1" ;;
+ "sk-sk") LANGUAGE=Slovak TYPE="grade 1" ;;
+ "sl-si-comp8") LANGUAGE=Slovenian TYPE="computer" ;;
+ "sl-si-g1") LANGUAGE=Slovenian TYPE="grade 1" ;;
+ "sot-za-g1") LANGUAGE=Sotho TYPE="grade 1" ;;
+ "spaces") TYPE="Spaces" ;;
+ "sr-g1") LANGUAGE=Serbian TYPE="grade 1" ;;
+ "sv-1989") LANGUAGE=Swedish TYPE="1989" ;;
+ "sv-1996") LANGUAGE=Swedish TYPE="1996" ;;
+ "ta") LANGUAGE=Tamil TYPE="grade 1" ;;
+ "ta-ta-g1") LANGUAGE=Tamil TYPE="grade 1" ;;
+ "te-in-g1") LANGUAGE=Telugu TYPE="grade 1" ;;
+ "tr"|"tr-g1") LANGUAGE=Turkish TYPE="grade 1" ;;
+ "tsn-za-g1") LANGUAGE=Tswana TYPE="grade 1" ;;
+ "UEBC-g1") LANGUAGE=English TYPE="Unified grade 1" ;;
+ "UEBC-g2") LANGUAGE=English TYPE="Unified grade 2" ;;
+ "ukmaths") TYPE="U.K maths" ;;
+ "ukmaths_edit") TYPE="U.K maths post-translation editing" ;;
+ "ur-pk-g1") LANGUAGE=Urdu TYPE="grade 1" ;;
+ "ur-pk-g2") LANGUAGE=Urdu TYPE="grade 2" ;;
+ "vi") LANGUAGE=Vietnamese TYPE="grade 1" ;;
+ "vi-g1") LANGUAGE=Vietnamese TYPE="grade 1" ;;
+ "wiskunde") LANGUAGE=Flemish TYPE="grade 1" ;;
+ "zh-hk") LANGUAGE=Chinese LOCATION="Hong Kong" TYPE="grade 1" ;;
+ "zh-tw") LANGUAGE=Chinese LOCATION="Taiwan" TYPE="grade 1" ;;
+ "zh-chn") LANGUAGE=Chinese LOCATION="China" TYPE="grade 1" ;;
+ *) locale=$(grep ^#+locale: "$i" | cut -d ':' -f 2-)
+ if [ -n "$locale" ]; then
+ LANGUAGE="$locale"
+ fi
+ if [ $ext = ctb ]; then
+ TYPE="contracted"
+ else
+ TYPE="computer"
+ fi
+ ;;
+ esac
+ fi
+ echo "$file:$LANGUAGE:$LOCATION:$TYPE:$DISPLAY_NAME"
done
for i in $TABLESDIR/hyph_*.dic
@@ -227,38 +254,37 @@ echo ' Choice "Locale-g3/Default for language grade 3" ""'
LOCATION=""
GRADE=""
case $name in
- brl_da_dk) LANGUAGE=Danish ;;
- cs_CZ) LANGUAGE=Czech ;;
- de_DE) LANGUAGE=German ;;
- en_US) LANGUAGE=English ;;
- eo) LANGUAGE=Esperanto ;;
- es_ES) LANGUAGE=Spanish ;;
- fr_FR) LANGUAGE=French ;;
- hu_HU) LANGUAGE=Hungarian ;;
- it_IT) LANGUAGE=Italian ;;
- nb_NO) LANGUAGE="Norwegian Bokmål" ;;
- nl_NL) LANGUAGE=Dutch ;;
- nn_NO) LANGUAGE="Norwegian Nynorsk" ;;
- pl_PL) LANGUAGE=Polish ;;
- pt_PT) LANGUAGE=Portuguese ;;
- ru) LANGUAGE=Russian ;;
- sv_SE) LANGUAGE=Swedish ;;
+ brl_da_dk) LANGUAGE=Danish ;;
+ cs_CZ) LANGUAGE=Czech ;;
+ da_DK) LANGUAGE=Danish ;;
+ de_DE) LANGUAGE=German ;;
+ en_US) LANGUAGE=English ;;
+ eo) LANGUAGE=Esperanto ;;
+ es_ES) LANGUAGE=Spanish ;;
+ fr_FR) LANGUAGE=French ;;
+ hu_HU) LANGUAGE=Hungarian ;;
+ it_IT) LANGUAGE=Italian ;;
+ nb_NO) LANGUAGE="Norwegian Bokmål" ;;
+ nl_NL) LANGUAGE=Dutch ;;
+ nn_NO) LANGUAGE="Norwegian Nynorsk" ;;
+ pl_PL) LANGUAGE=Polish ;;
+ pt_PT) LANGUAGE=Portuguese ;;
+ ru) LANGUAGE=Russian ;;
+ sv_SE) LANGUAGE=Swedish ;;
+ *) LANGUAGE=$name ;;
esac
- echo "$file:$LANGUAGE:$LOCATION:hyphenation rules"
+ echo "$file:$LANGUAGE:$LOCATION:hyphenation rules:"
done
-) | sort -t : -k 2,3 | (
+) | sort -f -t : -k 2,3 | (
IFS=:
-while read file LANGUAGE LOCATION DESC
+while read file LANGUAGE LOCATION TYPE DISPLAY_NAME
do
- if [ -z "$DESC" ]
- then
- echo "empty description for $file!"
- exit 1
- fi
+ DESC="$TYPE ($file)"
[ -n "$LOCATION" ] && DESC="$LOCATION $DESC"
[ -n "$LANGUAGE" ] && DESC="$LANGUAGE $DESC"
+ [ -n "$DISPLAY_NAME" ] && DESC="$DISPLAY_NAME ($file)"
echo " Choice \"$file/$DESC\" \"\""
done
)
diff --git a/filter/gstoraster.c b/filter/gstoraster.c
index 4248b4eb3..f916ecb9a 100644
--- a/filter/gstoraster.c
+++ b/filter/gstoraster.c
@@ -73,29 +73,15 @@ static GsDocType
parse_doc_type(FILE *fp)
{
char buf[5];
- GsDocType doc_type;
- char *rc;
/* get the first few bytes of the file */
- doc_type = GS_DOC_TYPE_UNKNOWN;
rewind(fp);
- rc = fgets(buf,sizeof(buf),fp);
- if (rc == NULL)
- goto out;
-
- /* is PDF */
- if (strncmp(buf,"%PDF",4) == 0) {
- doc_type = GS_DOC_TYPE_PDF;
- goto out;
+/* skip until PDF/PS start header */
+ while (fgets(buf,sizeof(buf),fp) != 0) {
+ if (strncmp(buf,"%PDF",4) == 0) return GS_DOC_TYPE_PDF;
+ if (strncmp(buf,"%!",2) == 0) return GS_DOC_TYPE_PS;
}
-
- /* is PS */
- if (strncmp(buf,"%!",2) == 0) {
- doc_type = GS_DOC_TYPE_PS;
- goto out;
- }
-out:
- return doc_type;
+ return GS_DOC_TYPE_UNKNOWN;
}
static void