summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbwarken <bwarken>2013-04-26 23:33:22 +0000
committerbwarken <bwarken>2013-04-26 23:33:22 +0000
commit577bd0202826b8f8b1bf04c09d0a48b74adeb799 (patch)
tree9ce59c72eb41efbf024d3df7e61df1d7b0764fb8 /src
parentd92cd1cfd422db89483261b9c0641d54226474ce (diff)
downloadgroff-577bd0202826b8f8b1bf04c09d0a48b74adeb799.tar.gz
src/roff/groff:
`read_groff_options.pl' is no longer needed. `Makefile.sub': Get `groff' options from `getopt' in `groff.cpp'. Store it in a new file `groff_options.txt', which is installed in `groff libdir'.
Diffstat (limited to 'src')
-rw-r--r--src/roff/groff/Makefile.sub27
-rwxr-xr-xsrc/roff/groff/read_groff_options.pl165
2 files changed, 15 insertions, 177 deletions
diff --git a/src/roff/groff/Makefile.sub b/src/roff/groff/Makefile.sub
index 2be61fb5..8fd89cdb 100644
--- a/src/roff/groff/Makefile.sub
+++ b/src/roff/groff/Makefile.sub
@@ -31,25 +31,28 @@ CCSRCS=$(srcdir)/groff.cpp
CSRCS=$(srcdir)/pipeline.c
HDRS=$(srcdir)/pipeline.h
-MOSTLYCLEANADD=groff_options.info
+MOSTLYCLEANADD=groff_options.txt
RM=rm -f
-all: groff_options.info
+all: groff_options.txt
-groff_options.info: read_groff_options.pl
- ./$< > $@
+groff_options.txt: groff.cpp
+ $(EGREP) -A2 -e 'getopt' $< \
+ | sed -n -e '/"/p' \
+ | sed -e 's/^[^"\]*"//' \
+ | sed -e 's/"[^"]*$$//' > $@
-install_data: groff_options.info
- -test -d $(DESTDIR)$(libdir)/groff \
- || $(mkinstalldirs) $(DESTDIR)$(libdir)/groff
- $(RM) $(DESTDIR)$(libdir)/groff/$<
- $(INSTALL_SCRIPT) $< $(DESTDIR)$(libdir)/groff
+install_data: groff_options.txt
+ -test -d $(DESTDIR)$(libprogramdir) \
+ || $(mkinstalldirs) $(DESTDIR)$(libprogramdir)
+ $(RM) $(DESTDIR)$(libprogramdir)/$<
+ $(INSTALL_SCRIPT) $< $(DESTDIR)$(libprogramdir)
uninstall_sub:
- $(RM) $(DESTDIR)$(libdir)/groff/groff_options.info
- -test -d $(DESTDIR)$(libdir)/groff \
- && -rmdir $(DESTDIR)$(libdir)/groff
+ $(RM) $(DESTDIR)$(libprogramdir)/groff_options.txt
+ -test -d $(DESTDIR)$(libprogramdir) \
+ && -rmdir $(DESTDIR)$(libprogramdir)
########################################################################
diff --git a/src/roff/groff/read_groff_options.pl b/src/roff/groff/read_groff_options.pl
deleted file mode 100755
index a403fbe7..00000000
--- a/src/roff/groff/read_groff_options.pl
+++ /dev/null
@@ -1,165 +0,0 @@
-#! /usr/bin/env perl
-
-use strict;
-use warnings;
-use diagnostics;
-
-
-########################################################################
-# Legalese
-########################################################################
-
-use constant LASTUPDATE => '25 Apr 2013'; # date of last update
-
-### The following constants `LICENSE[12]' are the license for this
-### file using `GPL' >= 3
-
-use constant LICENSE1 => q*
-read_groff_options.pl - generate lines with the `groff' options.
-
-Source file position: <groff-source>/src/roff/groff/read_groff_options.pl
-*;
-
-use constant LICENSE2 => q*
-Copyright (C) 2013
- Free Software Foundation, Inc.
- Written by Bernd Warken <groff-bernd.warken-72@web.de>.
-
-This file is part of `groff'.
-
- `GNU groff' is free software: you can redistribute it and/or modify it
-under the terms of the `GNU General Public License' as published by the
-`Free Software Foundation', either version 3 of the License, or (at your
-option) any later version.
-
- `GNU groff' is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the `GNU
-General Public License' for more details.
-
- You should have received a copy of the 'GNU General Public License`
-along with `groff', see the files `COPYING' and `LICENSE' in the top
-directory of the `groff' source package. If not, see
-<http://www.gnu.org/licenses/>.*;
-
-
-use constant DOCUMENTATION => q*
- This file is not installed, but is used to generate output
-containing information of the `groff' options, which are read from the
-function `synopsis' of the file `groff.cpp' in
-`<groff-source>/src/roff/groff/'. The output is something like:
-
-groff_noarg: CENRSUVXZabceghijklpstvz
-groff_witharg: DFIKLMPTWdfmnorw
-*;
-
-
-##### end legalese
-
-$\ = "\n"; # adds newline at each print
-$/ = "\n"; # newline separates input
-$| = 1; # flush after each print or write command
-
-
-my $file = undef;
-{
- use constant FALSE => 0;
- use constant TRUE => 1;
-
- use File::Spec qw[];
-
- my $arg = shift;
- my $cpp = 'groff.cpp';
-
- if ( defined($arg) ) {
- if ( -d $arg ) {
- $file = File::Spec->catfile($arg, $cpp);
- $file = undef unless ( -f $file );;
- }
- if ( -f $arg && $arg =~ /groff.cpp$/ ) {
- $file = $arg;
- }
- } else { # no argument
- if ( -f $cpp ) {
- $file = $cpp;
- }
- }
- die "read_groff_options.pl: needs a directory with $cpp as argument: $!."
- unless ( defined($file) );
-
-}
-
-# $file is cpp-file
-
-my @lines = ();
-{
- open(FH, '<', $file);
- my $start_synopsis = FALSE;
- foreach ( <FH> ) {
- chomp;
- if ( /^void\s+synopsis\(/ ) {
- $start_synopsis = TRUE;
- next;
- }
- if ( $start_synopsis ) {
- if ( /\[-/ ) {
- s/\\n//g;
- push @lines, $_;
- $start_synopsis = FALSE;
- }
- next;
- }
- if ( @lines ) {
- if ( /\[-/ ) {
- s/\\n//g;
- push @lines, $_;
- next;
- } else {
- last;
- }
- }
- next;
- }
-}
-
-{
- my $noarg = '';
- my $witharg = '';
- my $first = shift @lines;
- chomp $first;
- $first =~ s/^[^-]*-(\w+)\]\s*//;
- $noarg = $1;
- unshift @lines, $first;
-
- foreach ( @lines ) {
- my $s = $_;
- while ( $s =~ /-/ ) {
- $s =~ s/^[^-]*-(\w)\w+]//;
- $witharg .= $1;
- }
- }
-
- sub sort_opts {
- my @opts = split '', shift;
- @opts = sort @opts;
- return join '', @opts;
- }
-
- my $res = &sort_opts($noarg);
- print 'groff_noarg: ' . $res;
-
- $res = &sort_opts($witharg);
- print 'groff_witharg: ' . $res;
-}
-
-print '';
-print '#' x 30 . ' License ' . '#' x 30;
-print q*
-groff_options.info - 2 lines with the `groff' options.
-
-This file is generated by the run of `make' in the `groff' source by
-the file <groff-source>/src/roff/groff/read_groff_options.pl.
-
-This file `groff_options.info' is installed in the `groff libdir'.*;
-
-print LICENSE2;