1#!/usr/bin/perl -w 2# dcgen -- convert dircolors.hin to dircolors.h. 3 4# Copyright (C) 1996-2023 Free Software Foundation, Inc. 5 6# This program is free software: you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation, either version 3 of the License, or 9# (at your option) any later version. 10 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15 16# You should have received a copy of the GNU General Public License 17# along with this program. If not, see <https://www.gnu.org/licenses/>. 18 19# written by Jim Meyering 20 21require 5.002; 22use strict; 23(my $ME = $0) =~ s|.*/||; 24 25# A global destructor to close standard output with error checking. 26sub END 27{ 28 defined fileno STDOUT 29 or return; 30 close STDOUT 31 and return; 32 warn "$ME: closing standard output: $!\n"; 33 $? ||= 1; 34} 35 36my @line; 37while (<>) 38 { 39 chomp; 40 s/[[:blank:]]+/ /g; 41 $_ 42 and push @line, $_; 43 } 44 45my $indent = ' '; 46 47print "static char const G_line[] =\n{\n"; 48foreach (@line) 49 { 50 s/./'$&',/g; 51 s/'\\'/'\\\\'/g; 52 s/'''/'\\''/g; 53 print "$indent${_}0,\n"; 54 } 55print "};\n"; 56