#!/usr/bin/perl -w use strict; use POSIX; use vars qw(%UNSUPPORTED_XLFD); my $PangoAlias = '/var/lib/defoma/pango.d/pangox.aliases'; my $ConfFile = '/etc/defoma/config/pango.conf'; my @clean = ("/usr/bin/defoma-app", "clean", "pango"); my @update = ("/usr/bin/defoma-app", "update", "pango"); # write section sub write_section { my $file = shift; my $family = shift; open (F, ">> $file"); print F "$family normal normal normal normal \\\n\t\""; if (exists ($UNSUPPORTED_XLFD {"$family-normal-normal-normal-normal"})) { print F $UNSUPPORTED_XLFD {"$family-normal-normal-normal-normal"}; print F ",\\\n\t"; } print F "-*-fixed-medium-r-normal--*-*-*-*-*-*-*-*\"\n\n"; print F "$family italic normal normal normal \\\n\t\""; if (exists ($UNSUPPORTED_XLFD {"$family-italic-normal-normal-normal"})) { print F $UNSUPPORTED_XLFD {"$family-italic-normal-normal-normal"}; print F ",\\\n\t"; } print F "-*-fixed-medium-i-normal--*-*-*-*-*-*-*-*\"\n\n"; print F "$family normal normal bold normal \\\n\t\""; if (exists ($UNSUPPORTED_XLFD {"$family-normal-normal-bold-normal"})) { print F $UNSUPPORTED_XLFD {"$family-normal-normal-bold-normal"}; print F ",\\\n\t"; } print F "-*-fixed-bold-r-normal--*-*-*-*-*-*-*-*\"\n\n"; print F "$family italic normal bold normal \\\n\t\""; if (exists ($UNSUPPORTED_XLFD {"$family-italic-normal-bold-normal"})) { print F $UNSUPPORTED_XLFD {"$family-italic-normal-bold-normal"}; print F ",\\\n\t"; } print F "-*-fixed-bold-i-normal--*-*-*-*-*-*-*-*\"\n\n"; close F; } system (@clean) == 0 or die "Failed to clean up for defoma: $?"; system (@update) == 0 or die "Failed to update for defoma: $?"; if ( ! -e $PangoAlias ) { print "*** You don't have any defomized font packages.\n"; print "*** So we are trying to force to generate pangox.aliases...\n"; do "$ConfFile" or die ("$@\n"); open (F, "> $PangoAlias.bak") or die "Can't create $PangoAlias.bak: $?"; print F "## THIS FILE IS GENERATED BY UPDATE-PANGOX-ALIAS, DO NOT EDIT\n\n"; close F; ## Sans write_section ("$PangoAlias.bak", "sans"); ## Serif write_section ("$PangoAlias.bak", "serif"); ## Monospace write_section ("$PangoAlias.bak", "monospace"); rename ("$PangoAlias.bak", "$PangoAlias"); } 1;