#!/bin/sh . /usr/share/debconf/confmodule db_version 2.0 db_capb backup db_settitle libpaper/defaultpaper if [ -f /etc/papersize ]; then paper=`head -n 1 /etc/papersize` db_set libpaper/defaultpaper $paper #elif [ -n "$LC_PAPER" ] # if [ -e /usr/share/i18n/locales/"$LC_PAPER" ] # then # f=/usr/share/i18n/locales/"$LC_PAPER" # else # nocharset=${LC_PAPER%.*} # if [ -e /usr/share/i18n/locales/"$nocharset" ] # then # f=/usr/share/i18n/locales/"$nocharset" # else # nocountry=${LC_PAPER%_*} # if [ -e /usr/share/i18n/locales/"$nocountry" ] # then # f=/usr/share/i18n/locales/"$nocountry" # fi # fi # fi # if [ -n "$f" ] # then # # # # Start looking in the locales definition file # # for width and height of default paper. # # This is always in millimeters. # wh=$(awk 'BEGIN {noPAP=1;} #/^LC_PAPER/ {noPAP=0;} #/^height/ { if (noPAP==0) {h=$2} } #/^width/ { if (noPAP==0) {w=$2} } #/^END LC_PAPER/ {print w " mm " h " mm"; exit 0}' "$f" ) # # # # Next look into libpaper database and see if we find a matching paper size # # and, eventually, find its name. # # # # PROBLEM: it doesn't work for page sizes that arent exact millimeter multiple # # since libpaper database is using decimal numbers, while i18n database is rounded # # to integer. # [ -n "$wh" ] && line=$(paperconf -asm | grep -n "$wh" | sed -e 's/\(^[^:]*\):.*$/\1/') # [ -n "$line" ] && paper=$(paperconf -a | head -$line | head -1) # [ -n "$paper" ] && db_set libpaper/defaultpaper $paper # fi fi db_fget libpaperg/defaultpaper seen if [ $? = true ]; then db_fset libpaper/defaultpaper seen fi db_input medium libpaper/defaultpaper db_go exit 0