groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Groff] calling all automake'ers ...


From: Mike Bianchi
Subject: Re: [Groff] calling all automake'ers ...
Date: Sat, 18 Apr 2015 19:11:03 -0400
User-agent: Mutt/1.5.21 (2010-09-15)

Thanks Ralph, but I'm still hoping someone with autoconf knowledge will know
what to do.
                                                                Mike


On Sat, Apr 18, 2015 at 03:57:56PM +0100, Ralph Corderoy wrote:
> Hi Mike,
> 
> > I know the current code uses  diff -Dname  option which is not
> > universal.
> 
> As an aside, I see POSIX has diff support -e for ed(1) output.  And -s
> for running a script.  How about turning -e's output into ed that
> inserts the cpp(1) commands and carrying on as before?  Have a poke at
> 
> --8<--snip--
>     #! /bin/bash
> 
>     seq 10 >foo
>     seq 12 | sed '3,4d; 6s/./&&/; 7p' >bar
> 
>     diff -Dfoo foo bar
>     echo
> 
>     cp foo foo.new
>     diff -e foo bar |
>     awk -F, '
>         copy {
>             if ($0 == ".") {
>                 if (closing)
>                     print closing
>                 copy = 0
>             }
>             print
>             next
>         }
> 
>         # 42a -> 42,a
>         /[acd]$/ {
>             $0 = substr($0, 1, length - 1) FS substr($0, length)
>         }
>         # 42,a -> 42,42,a
>         NF == 2 {
>             $0 = $1 FS $1 FS $2
>         }
> 
>         {
>             print "\t=" $0
>         }
> 
>         # 42,a
>         $NF == "a" {
>             print $1 "a"
>             print "#ifdef foo"
>             closing = "#endif /* foo */"
>             copy = 1
>             next
>         }
> 
>         # 42,314,c
>         $NF == "c" {
>             print $1 "i"
>             print "#ifndef foo"
>             print "."
>             print ($2 + 1) "a"   # Bumped on by insert.
>             print "#else /* foo */"
>             copy = 1
>             closing = "#endif /* foo */"
>             next
>         }
> 
>         # 42,314,d
>         $NF == "d" {
>             print $2 "a"
>             print "#endif /* ! foo */"
>             print "."
>             print $1 "i"
>             print "#ifndef foo"
>             print "."
>             next
>         }
> 
>         END {
>             print "w\nq"
>         }
>     ' >foo.ed
>     cat foo.ed
>     echo
> 
>     sed -i '/^\t=/d' foo.ed
>     ed -s foo.new <foo.ed
> 
>     diff <(diff -Dfoo foo bar) foo.new && echo ok
> --8<--snip--
> 
> It's not had much testing as I've just knocked it up, but it shows the
> idea.  And you might want to ditch the cpp commands and switch to
> something that's nicer to handle in the rest of the script.  Or maybe do
> the .mk-up directly.
> 
> Cheers, Ralph.
> 

-- 
 Mike Bianchi
 Foveal Systems

 973 822-2085

 address@hidden
 http://www.AutoAuditorium.com
 http://www.FovealMounts.com



reply via email to

[Prev in Thread] Current Thread [Next in Thread]