Date: Mon, 09 Apr 2001 20:58:52 -0700 From: Dima Dorfman <dima@unixfreak.org> To: Nik Clayton <nik@freebsd.org> Cc: doc@freebsd.org Subject: Re: <programlisting> cleanup (was: cvs commit: doc/en_US.ISO_8859-1/articles/fonts article.sgml ...) Message-ID: <20010410035852.69F523E09@bazooka.unixfreak.org> In-Reply-To: <20010409100310.A876@canyon.nothing-going-on.org>; from nik@freebsd.org on "Mon, 9 Apr 2001 10:03:10 %2B0100"
index | next in thread | previous in thread | raw e-mail
If any of the translation teams want to clean up their parts of the
repository to use <programlisting> correctly (you'd be amazed how many
times it isn't), keep reading.
Nik Clayton <nik@freebsd.org> writes:
> On Sun, Apr 08, 2001 at 05:33:59PM -0700, Dima Dorfman wrote:
> > Log:
> > DocBook police: open and close tags for <programlisting> should cuddle
> > up to the contents within.
>
> Can you post the script/code that did this to the -doc list, so that the
> translation teams can use it as well. Cheers,
Attached is the Emacs Lisp program (if you can call it that) to
correct one file. Run it like this:
emacs -batch -l /home/you/the-prog.el filename.sgml -f correct-buffer
where /home/you/the-prog.el is the path to the program attached, and
filename.sgml is the file you want to correct. I ran it inside a loop
like so to correct all SGML files under en_US.ISO_8859-1:
#!/bin/sh
for f in `find . -name "*.sgml" -print`; do
emacs -batch -l /home/dima/pgc.el $f -f correct-buffer;
done
It's not terribly efficient since it runs Emacs multiple times (and we
all know how large that is), but it works well as far as I know.
Dima Dorfman
dima@unixfreak.org
P.S. I used elisp because it seems Emacs has the only regular
expression engine capable of dealing with newlines correctly. Yes,
you could do it in sed using the 'N' function, but I couldn't get it
to work right.
(defun opentag-pass ()
(beginning-of-buffer)
(while (re-search-forward "\\(<programlisting>\\)\n" nil t)
(replace-match "\\1" nil nil)))
(defun closetag-pass ()
(beginning-of-buffer)
(while (re-search-forward "\n *\\(</programlisting>\\)" nil t)
(replace-match "\\1" nil nil)))
(defun correct-buffer ()
(opentag-pass)
(closetag-pass)
(save-buffer))
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-doc" in the body of the message
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010410035852.69F523E09>
