Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
#######
#
# E-scripts on texinfo.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
# An introduction to eev can be found here:
#
#   (find-eev-quick-intro)
#   http://angg.twu.net/eev-intros/find-eev-quick-intro.html
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/a/e/texinfo.e>
#           or at <http://angg.twu.net/e/texinfo.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.emacs[.html]>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######




# «.mailing-lists»		(to "mailing-lists")
# «.generating-html»		(to "generating-html")
# «.sample.info»		(to "sample.info")
# «.shortsample.texi»		(to "shortsample.texi")
# «.texinfo-mode»		(to "texinfo-mode")
# «.menus»			(to "menus")
# «.pinfo»			(to "pinfo")
# «.eev.texi»			(to "eev.texi")

# «.eetexi»			(to "eetexi")
# «.eetexi-prelim»		(to "eetexi-prelim")
# «.images»			(to "images")
# «.texinfoizing-eev-article»	(to "texinfoizing-eev-article")
# «.makeinfo»			(to "makeinfo")
# «.texinfo-6.8»		(to "texinfo-6.8")
# «.makeinfo-html»		(to "makeinfo-html")
# «.rmsessays»			(to "rmsessays")
# «.gendocs.sh»			(to "gendocs.sh")
# «.texinfo-template»		(to "texinfo-template")
# «.texi2html»			(to "texi2html")
# «.texi2html»			(to "texi2html")
# «.texinfo-deb-src»		(to "texinfo-deb-src")
# «.texinfo-doc-nonfree-deb-src»  (to "texinfo-doc-nonfree-deb-src")
# «.texinfo.lua»		(to "texinfo.lua")
# «.hyphenation»		(to "hyphenation")
# «.rcirc-manual»		(to "rcirc-manual")
# «.dir-file»			(to "dir-file")
# «.triggers»			(to "triggers")
# «.no-info-dir-entry»		(to "no-info-dir-entry")
# «.org-texinfo»		(to "org-texinfo")
# «.node-names»			(to "node-names")
# «.manual-name»		(to "manual-name")
# «.texinfo-to-epub»		(to "texinfo-to-epub")
# «.x-in-y-minutes»		(to "x-in-y-minutes")
# «.tag-table»			(to "tag-table")
# «.Info-directory-list»	(to "Info-directory-list")


# (find-es "dpkg" "install-info")
# (find-es "lua" "lua.info")
# (find-es "expect" "expect.info")




# (find-status   "texinfo")
# (find-vldifile "texinfo.list")
# (find-udfile   "texinfo/")
# (find-texinode "")

# (find-status   "texinfo-doc-nonfree")
# (find-vldifile "texinfo-doc-nonfree.list")
# (find-udfile   "texinfo-doc-nonfree/")

# (find-ecvsfile "")
# (find-ecvsfile "omb" "makeinfo --force emacs.texi")
# (find-ecvsfile "man/")
# (find-ecvsfile "man/cl.texi")
# (find-ecvsfile "lispintro/")
# (find-ecvsfile "lispintro/emacs-lisp-intro.texi")

# (find-texinode "exampleindent")
@exampleindent 0
@exampleindent 5




#####
#
# mailing-lists
# 2021apr20
#
#####

# «mailing-lists»  (to ".mailing-lists")
# https://lists.gnu.org/archive/html/bug-texinfo/




#####
#
# Generating HTML
# 2019mar02
#
#####

# «generating-html» (to ".generating-html")
# (find-texinode "Generating HTML")
# (find-texinode "HTML Splitting")
# (find-texinode "Invoking texi2any")
# (find-texinode "Invoking texi2any" "--html")
# (find-makenode "Top")
# (find-node "(make)Top")

# (find-sh "locate .texi")
# (find-gitemacsfile "doc/emacs/Makefile")
# (find-gitemacsfile "doc/emacs/Makefile" "emacs.html: ")





#####
#
# sample.info
# 2000aep05
#
#####

# «sample.info»  (to ".sample.info")
# (find-texinode "Short Sample")
# (find-texinode "Short Sample Texinfo File")
# (find-fline "~/TEXINFO/sample.texi")

# (find-texinode "")

# (find-texinode "Command List")
# (find-texinode "Texinfo File Header")
# (find-texinode "Command List" "`@setfilename INFO-FILE-NAME'")
# (find-texinode "Command List" "`@settitle TITLE'")
# (find-texinode "Command List" "`@node NAME, NEXT, PREVIOUS, UP'")
# (find-texinode "Menus")
# (find-texinode "Command List" "`@chapter TITLE'")
# (find-texinode "Command List" "`@cindex ENTRY'")
# (find-texinode "Command List" "`@unnumbered TITLE'")
# (find-texinode "Command List" "`@printindex INDEX-NAME'")
# (find-texinode "Command List" "`@contents'")
# (find-texinode "Command List" "`@bye'")

#*
cd ~/TEXINFO/
cat > sample.texi <<'--%%--'
\input texinfo
@setfilename sample.info
@settitle Sample Document
@node    Top,       First Chapter,         , (dir)
@menu
* First Chapter::    The first chapter is the
                     only chapter in this sample.
* Concept Index::    This index has two entries.
@end menu
@node    First Chapter, Concept Index, Top,      Top
@chapter First Chapter
@cindex Sample index entry
@node    Concept Index,    ,  First Chapter, Top
@unnumbered Concept Index
@printindex cp
@contents
@bye
--%%--

makeinfo sample.texi \
  && less sample.info
#*

# A way to test the effect of small changes in the texinfo code above:
# F3 it, then run "ee" in a vt; apply the small change, F3 it again,
# and run "ee" in another vt. Switch vts many times by hand to
# identify the differences visually.

# Seems that makeinfo ignores blank lines in the source (possible
# exception: the ones that indicate change of paragraph) but keeps the
# line breaks, at least in menus.

# (find-node "(~/TEXINFO/sample)Top")
# (find-fline "~/TEXINFO/sample.texi")
# (progn (find-fline "~/TEXINFO/sample.texi") (texinfo-show-structure))
# (find-texinode "Showing the Structure")
# (find-texinode "Nodes")
# (find-texinode "node" "one for each section,\nsubsection, and subsubsection")



#####
#
# shortsample.texi
# 2022jun11
#
#####

# «shortsample.texi»  (to ".shortsample.texi")
# (find-angg "TEXINFO/shortsample.texi")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "/tmp/texinfo/")
rm -Rv /tmp/texinfo/
mkdir  /tmp/texinfo/
cd     /tmp/texinfo/
cp -v ~/TEXINFO/shortsample.texi .
texi2any  shortsample.texi

# (find-node "(/tmp/texinfo/shortsample)")




#####
#
# the texinfo mode for Emacs
# 2000sep05
#
#####

# «texinfo-mode»  (to ".texinfo-mode")
# (find-texinode "node")
# (find-efile "textmodes/texinfo.el")
# (find-efile "textmodes/texnfo-upd.el")
# (find-efile "textmodes/texnfo-upd.el" "Buffer lacks ordinary `Top'")



#####
#
# Menus
# 2000sep05
#
#####

# «menus»  (to ".menus")
# (find-texinode "Menus" "have no effect in printed manuals")
# (find-texinode "Less Cluttered Menu Entry")
# (find-texinode "Other Info Files" "* FIRST-ENTRY-NAME:(FILENAME)NODENAME.")
# (find-texinode "Other Info Files" "menu entries\nthat list only file names")

# (find-texinode "Menu Example" "Here is an example")




#####
#
# pinfo
# 2000sep06
#
#####

# «pinfo»  (to ".pinfo")
# (find-status "pinfo")
# (find-vldifile "pinfo.list")
# (find-fline "/usr/doc/pinfo/")

# (find-fline "/etc/pinforc")
# (eeman "1 pinfo")

pinfo "(texinfo)node"
pinfo texinfo --node="node"

#Initial errors/warnings:
# Przemek's Info Viewer v0.5.9
# Security warning: Unable to get GID of group called: nobody
# Warning: could not find tag table
# Warning: tag table not found...
# Trying to create alternate tag table...





# (find-status "texinfo")
# (find-vldifile "texinfo.list")
# (find-fline "/usr/doc/texinfo/")

# (find-node "(texinfo)Top")
# (find-node "(texinfo)makeinfo options" "`--html'")

# (find-man "1 makeinfo")
# (find-man "1 texindex")
# (find-man "1 texi2dvi")
# (find-man "5 texinfo")


# (code-c-d "texi" "..." "texinfo")
# (find-texinode "")
# (find-texinode "Texinfo Mode")
# (find-texinode "Emacs Editing")
# (find-texinode "Showing the Structure")

# (find-hurdfile "doc/")
# (find-hurdfile "doc/hurd.texi")

# (find-texinode "Short Sample")
# (find-fline "~/TEXINFO/eev.texi")



@c The hyperlinks are seen as comments by all programming languages,
@c and they can point to places in manpages, Info pages and text and
@c HTML files; using them you can place pointers to all relevant
@c online sources of information inside the code.

@c (find-texinode "Sample Texinfo File")
@c (find-texinode "Beginning a File")
@c (find-texinode "Defining New Texinfo Commands")
@c (find-texinode "Invoking Macros")
@c (find-texinode "Creating an Info File")
@c (find-texinode "Menu Location")






@c (find-grubfile "docs/")
@c (find-grubfile "docs/grub.texi" "@top")
@c (find-texinode "makeinfo top")
@c (find-fline "sample.texi")
@c (find-es "texinfo")
@c (find-efile "textmodes/texinfo.el")
@c (find-efile "textmodes/texnfo-upd.el" "Buffer lacks ordinary `Top'")

@c (find-texinode "Inserting")
@c (find-texinode "Structuring" "of chapters, sections, subsections,")
@c (find-texinode "Updating Requirements")
@c (find-texinode "Updating Commands" "`M-x texinfo-master-menu'")
@c (find-texinode "Updating Commands" "`M-x texinfo-update-node'")
@c (find-texinode "Updating Commands" "`M-x texinfo-make-menu'")
@c (find-texinode "Updating Commands" "`M-x texinfo-every-node-update'")
@c (find-texinode "Updating Commands" "`M-x texinfo-all-menus-update'")




#####
#
# eev.texi
# 2000sep16
#
#####

# «eev.texi»  (to ".eev.texi")
# (find-fline "~/TEXINFO/eev.texi")




#####
#
# texinfo source
# 2001mar03
#
#####

# (find-status "texinfo")
# (find-vldifile "texinfo.list")
# (find-fline "/usr/doc/texinfo/")

#*
pdsc $SDEBIAN/dists/potato/main/source/doc/texinfo_4.0-4.dsc
cd /usr/src/texinfo-4.0/
# debian/rules binary	|& tee odrb

cd /usr/src/texinfo-4.0/
texi2dvi texinfo.txi	|& tee ot

#*
xdvi /usr/src/texinfo-4.0/doc/texinfo.dvi &




#####
#
# html2texi
# 2001mar12
#
#####

# (find-shttpw3 "www.texinfo.org/")
#*
rm -Rv /usr/src/html2texi-0.1.2/
cd /usr/src/
tar -xvzf $S/http/www.uncg.edu/~wlestes/software/html2texi/html2texi-0.1.2.tar.gz
cd /usr/src/html2texi-0.1.2/
./configure	|& tee oc
# Oops, make doesn't work!
make		|& tee om
#*

# (code-c-d "h2texi" "/usr/src/html2texi-0.1.2/" "/usr/src/html2texi-0.1.2/html2texi")
# (find-h2texinode "")

cd /tmp/








@c (find-texinode "Multitable Column Widths")

@c @multitable {return} {break} {function} {while} {repeat}
@c @item @code{and}    @tab @code{break} @tab @code{do}       @tab @code{else}  @tab @code{elseif}
@c @item @code{end}    @tab @code{for}   @tab @code{function} @tab @code{if}    @tab @code{in}
@c @item @code{local}  @tab @code{nil}   @tab @code{not}      @tab @code{or}    @tab @code{repeat}
@c @item @code{return} @tab @code{then}  @tab @code{until}    @tab @code{while} @tab @code{foo}
@c @end multitable




# http://lists.debian.org/debian-mentors/2001/05/msg00253.html

From: Josip Rodin <joy@cibalia.gkvk.hr>
To: peter karlsson <peter@softwolves.pp.se>
Date: Sun, 20 May 2001 19:36:01 +0200
Cc: debian-mentors@lists.debian.org
Subject: Re: install-info

On Sun, May 20, 2001 at 04:40:08PM +0200, peter karlsson wrote:
> What does this error message mean?
>
> "No `START-INFO-DIR-ENTRY' and no `This file documents'.
>  install-info: unable to determine description for `dir' entry - giving up"

Your info file should have something like this near the top:

INFO-DIR-SECTION Texinfo documentation system
START-INFO-DIR-ENTRY
* Info: (info).                 Documentation browsing system.
END-INFO-DIR-ENTRY

In Texinfo sources, you'd write that like this:

@dircategory Texinfo documentation system
@direntry
* Info: (info).                 Documentation browsing system.
@end direntry

It's either that or having to specify loads of command line options to
install-info.





#####
#
# eetexi - preliminary tests
# 2005jul26
#
#####

# «eetexi-prelim»  (to ".eetexi-prelim")
# (find-es "texinfo" "sample.info" "cat > sample.texi")
#*
# (progn (eev-bounded) (find-sh ". $EE"))
rm -Rv /tmp/texi/
mkdir  /tmp/texi/
cd     /tmp/texi/
cat > ee.texi <<'--%%--'
\input texinfo
@setfilename ee.info
@settitle Temporary TeXinfo stuff
@c*
@c (eetexi-bounded)
@node    Top,       First Chapter,         , (dir)
@menu
* First Chapter::    The only chapter.
@end menu
@node    First Chapter, , Top,      Top
@chapter First Chapter
@c*
@bye
--%%--

makeinfo ee.texi \
  && ls -l && cat ee.info

#*



#####
#
# eetexi
# 2005jul26
#
#####

# «eetexi»  (to ".eetexi")
;;*
;; (ee-once (eeb-eval))

(defun eetexi (s &optional e)
  (interactive "r")
  (find-sh0 "rm -Rv /tmp/texi/; mkdir /tmp/texi/")
  (ee-write s e "\\input texinfo
@setfilename ee.info
@settitle Temporary TeXinfo stuff\n" "\n@bye\n" "/tmp/texi/ee.texi")
  (find-sh "cd /tmp/texi/ && makeinfo ee.texi && ls -l")
  (find-fline "/tmp/texi/ee.info")
  (find-node "(/tmp/texi/ee)Top"))

(eeb-define 'eetexi-bounded 'eetexi "\n@c*\n" nil t t)

;;*
@c*
@c (eetexi-bounded)
@c (find-texinode "Top")
@node    Top,       First Chapter,         , (dir)
@menu
* First Chapter::    The only chapter.
@end menu
@node    First Chapter, , Top,      Top
@chapter First Chapter

@c*




#####
#
# images in .info files
# 2005jul26
#
#####

# «images»  (to ".images")
# (find-node "(texinfo)Image Syntax")
# (find-sh "cd /usr/share/info/ && zgrep -a 'image src=' $(find *)")
# (find-sh "locate lilypond | grep info")

# (find-fline "/usr/share/info/lilypond/lilypond.info-1.gz")
# (find-fline "/usr/share/info/lilypond/lilypond.info-1.gz" "image src=")
# (find-node "(lilypond/lilypond-internals)Top")
# (find-node "(lilypond/lilypond)Top")
# (find-node "(lilypond/lilypond)Engraving")
#*
rm -Rv /tmp/foo/
mkdir  /tmp/foo/
cd     /tmp/foo/
cp -iv /usr/share/info/lilypond/* /tmp/foo/
cp -iv /usr/share/doc/lilypond/html/Documentation/user/out-www/*-flat-bw.png \
  /tmp/foo/

#*
# (find-node "(/tmp/foo/lilypond)Top")
# (find-node "(/tmp/foo/lilypond)Engraving")

# (find-efile "info.el" "defun Info-select-node")
# (find-efile "info.el" "defun Info-select-node" "Info-display-images-node")
# (find-efile "info.el" "[broken image]")




#####
#
# about TeXinfo-izing the article about eev
# 2006jun28
#
#####

# «texinfoizing-eev-article»  (to ".texinfoizing-eev-article")
# My message to the mailing list, and Karl's answer:
# http://lists.gnu.org/archive/html/bug-texinfo/2006-06/msg00048.html
# http://lists.gnu.org/archive/html/bug-texinfo/2006-06/msg00049.html

# (find-eevafile "")

# (find-node "(texinfo)Image Syntax")
#*
rm -Rv /tmp/eev-texi/
mkdir  /tmp/eev-texi/
cd     /tmp/eev-texi/

cat > eev.texi <<'--%%--'
\input texinfo
@setfilename eev.info
@settitle Sample Document
@node    Top,       First Chapter,         , (dir)
@menu
* First Chapter::    The first chapter is the
                     only chapter in this sample.
* Concept Index::    This index has two entries.
@end menu
@node    First Chapter, Concept Index, Top,      Top
@chapter First Chapter
@cindex Sample index entry
@node    Concept Index,    ,  First Chapter, Top

@ifinfo
@set redstarchar *
@end ifinfo
@iftex

@c (find-eevfile "article/eev.tex" "\\myttbox{$\\bullet$}")
@c @def@myttbox#1{{@setbox0=@hbox{@texttt{a}}@hbox to @wd0{@hss#1@hss}}}
@c @catcode`*=13 @def*{@myttbox{$@bullet$}}

@set redstarchar @bullet{}

@end iftex

A red star: @value{redstarchar}.

Another one: *

@unnumbered Concept Index
@printindex cp
@contents
@bye
--%%--

makeinfo eev.texi \
  && texi2dvi eev.texi \
  && xdvi eev.dvi

# && less eev.info 

#*


# (find-node "(texinfo)definfoenclose")
# (find-node "(texinfo)bullet")
# (find-eevfile "article/eev.tex" "\\myttbox{$\\bullet$}")
# (find-fline "/tmp/eev-texi/eev.texi" 30)
# (find-fline "/usr/bin/texi2dvi")
# (find-fline "/usr/share/texmf/tex/texinfo/texinfo.tex")
# (find-fline "/usr/share/texmf/tex/texinfo/texinfo.tex" "add-hook")






#####
#
# Free Software, Free Society (Selected Essays by RMS)
# 2007oct23
#
#####

# «rmsessays»  (to ".rmsessays")
# (find-angg ".emacs.papers" "rmsessays")
# http://www.gnu.org/doc/book13.html
#*
rm -Rv ~/usrc/rms-essays/
cd     ~/usrc/
tar -xvzf ~/tmp/rms-essays-cvs.tgz
cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/rms-essays co rms-essays
cd     ~/usrc/
tar -cvzf ~/tmp/rms-essays-cvs.tgz rms-essays/
cd     ~/usrc/rms-essays/

#*
rm -Rv ~/usrc/rms-essays/
tar -C ~/usrc/ -xvzf ~/tmp/rms-essays-cvs.tgz
cd     ~/usrc/rms-essays/

makeinfo rms-essays.texi  |& tee omi
# How do I make an info version of the essays?
# (find-rmsessaysfile "")
# (find-rmsessaysfile "omi")
# (find-rmsessaysgrep "grep -nH -e 20th *.texi")
# (find-rmsessaysgrep "grep -nH -e unnumbered *")

dvipdf rms-essays.dvi

#*
# (find-rmsessaysfile "")
# (find-rmsessayspage 1)





#####
#
# gendocs.sh
# 2007nov11
#
#####

# «gendocs.sh»  (to ".gendocs.sh")
# http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh

# Upstream:
# http://www.gnu.org/software/texinfo/
# http://ftp.gnu.org/gnu/texinfo/
# http://ftp.gnu.org/gnu/texinfo/texinfo-4.11.tar.gz
#*
rm -Rv ~/usrc/texinfo-4.11/
tar -C ~/usrc/ -xvzf \
  $S/http/ftp.gnu.org/gnu/texinfo/texinfo-4.11.tar.gz
cd     ~/usrc/texinfo-4.11/

#*
# (code-c-d "texinfo" "~/usrc/texinfo-4.11/")
# (find-texinfofile "")




#####
#
# a texinfo skeleton/template
# 2008mar02
#
#####

# «texinfo-template»  (to ".texinfo-template")
# (find-eonfile "eon.texinfo")





#####
#
# texi2html
# 2007apr08
#
#####

# «texi2html»  (to ".texi2html")
# (find-es "wget" "wget-flv-player")
# (code-c-d "wget" "~/usrc/wget/wget-1.10.2/")
# (find-wgetfile "")
# (find-wgetfile "doc/")
# (find-wgetfile "doc/Makefile")
# (find-wgetfile "doc/Makefile" "texi2html -expandinfo -split_chapter")

* (eepitch-shell)
rm -Rv /tmp/wgetdoc/
mkdir  /tmp/wgetdoc/
cd     /tmp/wgetdoc/
cp -v ~/usrc/wget/wget-1.10.2/doc/* /tmp/wgetdoc/
texi2html -expandinfo -split_chapter wget.texi
texi2html -expandinfo -split section wget.texi
# (find-fline "/tmp/wgetdoc/")

# (find-status   "texi2html")
# (find-vldifile "texi2html.list")
# (find-udfile   "texi2html/")

# (find-node "(texi2html)")
# (find-node "(texi2html)CustHTML")
# (find-node "(texi2html)OptionSplit")
# (find-node "(texi2html)OptionSubDir")

# http://www.mathematik.uni-kl.de/~obachman/Texi2html/
# http://texinfo.org/texi2html/
# ^ That page says: "As of version 4.0, the Texinfo distribution
# contains integrated support for HTML. That is, makeinfo will be able
# to output in that format. But does not (yet) have all the bells and
# whistles texi2html has accumulated over the years."

# But texi2html is old (2000) and its (most obvious) splitting methods
# create numbered pages, with names lik wget-nnn.html - and I want
# named pages, sectionname.html




#####
#
# texi2html
# 2008jun28
#
#####

# «texi2html»  (to ".texi2html")
# (find-es "texinfo" "texi2html")
# (find-bashsrcfile "")
# (find-bashsrcfile "doc/")
# (find-bashsrcfile "doc/Makefile.in")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)

rm -Rv /tmp/bashref/
mkdir  /tmp/bashref/
cd     /tmp/bashref/
cp -v /home/edrx/usrc/bash-3.1/doc/*.texi .

makeinfo --html bashref.texi

texi2html --split --node-files bashref.texi
# (find-fline "/tmp/bashref/")
# (find-fline "/tmp/bashref/bashref/")
# (find-bashnode "Copying This Manual")

# (find-man "texi2html")
# (find-man "texi2html")

# (find-status   "texi2html")
# (find-vldifile "texi2html.list")
# (find-udfile   "texi2html/")
# (find-node "(texi2html)Top")
# (find-node "(texi2html)Invoking texi2html")
# (find-node "(texi2html)Splitting output")
# (find-node "(texi2html)Output files" "`--node-files'")
# (find-node "(texi2html)Output files" "texi2html -split chapter")
# (find-node "(texi2html)Output files" "file names")

# (find-node "(texi2html)Indexop")

# (find-status   "texinfo")
# (find-vldifile "texinfo.list")
# (find-udfile   "texinfo/")
# (find-status   "texinfo-doc-nonfree")
# (find-vldifile "texinfo-doc-nonfree.list")
# (find-udfile   "texinfo-doc-nonfree/")

# (find-fline "/usr/share/doc/texinfo/html/")



#####
#
# makeinfo
# 2019jul12
#
#####

# «makeinfo» (to ".makeinfo")
# (find-texinode "Output Formats" "Info" "makeinfo")
# (find-texinode "makeinfo Advantages")
# (find-texinode "makeinfo in Emacs")
# (find-texinode "makeinfo Preferred")
# (find-man "1 makeinfo")
# (find-texinode "Reference Implementation")
# (find-texinode "Reference Implementation" "texi2any")



#####
#
# texinfo-6.8
# 2022aug18
#
#####

# «texinfo-6.8»  (to ".texinfo-6.8")
# (find-es "apt" "install-from-sid")
# https://en.wikipedia.org/wiki/Texinfo
# https://git.savannah.gnu.org/cgit/texinfo.git
# https://git.savannah.gnu.org/cgit/texinfo.git/snapshot/texinfo-6.8.tar.gz



#####
#
# makeinfo --html
# 2007apr11 / 2021dec22
#
#####

# «makeinfo-html»  (to ".makeinfo-html")
# (find-node "(texinfo)Generating HTML")
# See above.

* (eepitch-shell)
rm -Rv /tmp/wgetdoc/
mkdir  /tmp/wgetdoc/
cd     /tmp/wgetdoc/
cp -v ~/usrc/wget/wget-1.10.2/doc/* /tmp/wgetdoc/
texi2html -expandinfo -split_chapter wget.texi
texi2html -expandinfo -split section wget.texi
makeinfo --html wget.texi

# (find-fline "/tmp/wgetdoc/wget/")

# (find-node "(texinfo)makeinfo options")
# (find-node "(texinfo)makeinfo options" "\n`--html'")
# (find-node "(texinfo)HTML Splitting")





#####
#
# texinfo (from the debian sources)
# 2008jun28
#
#####

# «texinfo-deb-src»  (to ".texinfo-deb-src")
# (find-angg ".emacs" "eepitch-makeinfo")
# http://ftp.debian.org/debian/pool/main/t/texinfo/
# http://ftp.debian.org/debian/pool/main/t/texinfo/texinfo_4.11.dfsg.1-4.dsc
# http://ftp.debian.org/debian/pool/main/t/texinfo/texinfo_4.11.dfsg.1-4.diff.gz
# http://ftp.debian.org/debian/pool/main/t/texinfo/texinfo_4.11.dfsg.1.orig.tar.gz
#*
rm -Rv ~/usrc/texinfo/
mkdir  ~/usrc/texinfo/
cd $S/http/ftp.debian.org/debian/pool/main/t/texinfo/
cp -v texinfo_4.11.dfsg.1* ~/usrc/texinfo/
cd     ~/usrc/texinfo/
dpkg-source -sn -x texinfo_4.11.dfsg.1-4.dsc
cd     ~/usrc/texinfo/texinfo-4.11.dfsg.1/
dpkg-buildpackage -us -uc -b -rfakeroot     |& tee odb

#*
# (find-fline "~/usrc/texinfo/")
* (eepitch-shell)
cd ~/usrc/texinfo/
sudo dpkg -i *.deb

#*
# (code-c-d "texinfo" "~/usrc/texinfo/texinfo-4.11.dfsg.1/" "texinfo")
# (code-c-d "texi"    "~/usrc/texinfo/texinfo-4.11.dfsg.1/" "texinfo")
# (find-texinfofile "")
# (find-texinfofile "makeinfo/")
# (find-texinode "Top")

* (eepitch-gdb-makeinfo)
* (eepitch-gdb-makeinfo-kill)
* (eepitch-gdb-makeinfo)
tbr main
run
n






#####
#
# texinfo-doc-nonfree (from the debian sources)
# 2008jun28
#
#####

# «texinfo-doc-nonfree-deb-src»  (to ".texinfo-doc-nonfree-deb-src")
# (find-status   "texinfo-doc-nonfree")
# (find-vldifile "texinfo-doc-nonfree.list")
# (find-udfile   "texinfo-doc-nonfree/")
# http://ftp.de.debian.org/debian/pool/non-free/t/texinfo-doc-nonfree/
# http://ftp.de.debian.org/debian/pool/non-free/t/texinfo-doc-nonfree/texinfo-doc-nonfree_4.11-1.dsc
# http://ftp.de.debian.org/debian/pool/non-free/t/texinfo-doc-nonfree/texinfo-doc-nonfree_4.11-1.diff.gz
# http://ftp.de.debian.org/debian/pool/non-free/t/texinfo-doc-nonfree/texinfo-doc-nonfree_4.11.orig.tar.gz
#*
rm -Rv ~/usrc/texinfo-doc-nonfree/
mkdir  ~/usrc/texinfo-doc-nonfree/
cd $S/http/ftp.de.debian.org/debian/pool/non-free/t/texinfo-doc-nonfree/
cp -v texinfo-doc-nonfree_4.11* ~/usrc/texinfo-doc-nonfree/
cd     ~/usrc/texinfo-doc-nonfree/
dpkg-source -sn -x texinfo-doc-nonfree_4.11-1.dsc
cd     ~/usrc/texinfo-doc-nonfree/texinfo-doc-nonfree-4.11/
dpkg-buildpackage -us -uc -b -rfakeroot     |& tee odb

#*
# (eev "apti texinfo-doc-nonfree")
# (find-fline "~/usrc/texinfo-doc-nonfree/")
* (eepitch-shell)
cd ~/usrc/texinfo-doc-nonfree/
sudo dpkg -i *.deb

#*
# (code-c-d "texinfodocnonfree" "~/usrc/texinfo-doc-nonfree/texinfo-doc-nonfree-4.11/")
# (find-texinfodocnonfreefile "")
# (find-texinfodocnonfreefile "texinfo.html/")
# (find-texinfodocnonfreefile "odb")
# (find-texinfodocnonfreefile "odb" "makeinfo --html texinfo.txi")





#####
#
# texinfo.lua
# 2008aug27
#
#####

# «texinfo.lua»  (to ".texinfo.lua")
# (find-angg "LUA/texinfo.lua")
# (find-angg "TEXINFO/eev.texi")
# (find-angg "LUA/lua50init.lua" "ee_dofile")
# (find-texinode "Top")
# (find-texinode "Texinfo Mode")
# (find-texinode "Node Menu Illustration")
# (find-texinode "makeinfo Pointer Creation")
# (find-texinode "makeinfo Pointer Creation" "@chapter" "following" "@node")
# (find-texinode "Inserting" "C-c C-c n" "texinfo-insert-@node")
# (find-texinode "Command and Variable Index")
# (find-texinode "chapter")

# (find-fline "/tmp/tmp.texi")

* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
ee_dofile "~/LUA/texinfo.lua"  -- (find-angg "LUA/texinfo.lua")
pa()
sa()

* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
ee_dofile "~/LUA/texinfo.lua"  -- (find-angg "LUA/texinfo.lua")
depth = {}
TOP("", "", "This is the top node.")
CHAPTER("c1",  "C1",  "Chapter one.")
CHAPTER("c2",  "C2",  "Chapter two.")
SECTION("s21", "s21", "A section.")
SECTION("s22", "s22", "Another section.")

pa()

-- (find-es "lua5" "lpeg.Cmt")
loadlpeg()
Open        = lpeg.S "{"
Close       = lpeg.S "}"
Middlechar  = 1 - lpeg.S "{}"
Middlechars = Middlechar^1
Middle      = lpeg.P { (Middlechars + Open * lpeg.V(1) * Close)^0 }
Block       = Open * Middle * Close
CBlock      = Open * Middle:C() * Close
OptSpaces   = lpeg.S " \t" ^0
SCBlock     = OptSpaces * CBlock
SCBlock1    = SCBlock
SCBlock2    = SCBlock * SCBlock
SCBlock3    = SCBlock * SCBlock * SCBlock
SCBlock4    = SCBlock * SCBlock * SCBlock * SCBlock
OneArg      = SCBlock * lpeg.Cp()
TwoArgs     = SCBlock * SCBlock * lpeg.Cp()
ThreeArgs   = SCBlock * SCBlock * SCBlock * lpeg.Cp()
FourArgs    = SCBlock * SCBlock * SCBlock * SCBlock * lpeg.Cp()

argthing = function (ArgPat, subj, pos, f, default)
    local T = { ArgPat:match(subj, pos) }
    local newpos = T[#T]
    assert(newpos, "No args!")
    T[#T] = nil
    if #T == 0 and default then return newpos, default end
    return newpos, f(unpack(T))
  end
g = function (a, b) return "<"..a.."><"..b..">" end   -- for tests

--[[
= argthing(TwoArgs, " { bli }{ blo } ploc", 1, print)
= argthing(TwoArgs, "_ { bli }{ blo } ploc", 1, print)
= argthing(TwoArgs, " { bli }{ blo } ploc", 1, g)
--]]

ALPHA      = lpeg.R"AZ" + "_"
ALPHANUM   = lpeg.R"AZ" + "_" + lpeg.R"09"
CmdName_   = ALPHA * ALPHANUM^0
CmdName    = lpeg.P"@" * CmdName_:C()
Cmd        = lpeg.P"@" * CmdName_:Cmt(function(subj, pos, cmdname)
    print("hello")
    if cmdname == "FOO" then return argthing(TwoArgs, subj, pos, g, "oo") end
    if cmdname == "BAR" then return argthing(TwoArgs, subj, pos, print, "oo") end
  end)

lpeg.testt = function (pat, str) PP(pat:Ct():match(str)) end

Cmd:test "@FOO { bii } { aaa } mm ppp"
Cmd:test "@BAR { bii } { aaa } mm ppp"
PP(Cmd:test "@BAR { bii } { aaa } mm ppp")
PP(Cmd:testt "@BAR { bii } { aaa } mm ppp")

-- (find-angg "LUA/lua50init.lua" "lpeg_gsub")
-- (find-angg "LUA/lua50init.lua" "lpeg_gsub" "Example:")

lpeg.togsub = lpeg_togsub
lpeg.gsub   = lpeg_gsub
= Cmd:gsub("foo @FOO{a}{b} ccc", print)


-- Word        = lpeg.R("AZ")^1 / function (s) return "<"..s..">" end
-- = Word:gsub("abFOOcdBAR", function (s) return "_"..s.."_" end)
--         --> "_ab_<FOO>_cd_<BAR>__"






-- (find-lpegw3m "lpeg.html#matchtime")
-- (find-lpegw3m "lpeg.html#func")



_TAP = {}   -- texinfo: argparsing pattern
_TF  = {}   -- texinfo: function to run with the args





(lpeg.R"AZ" + lpeg.R"09"

= lpeg.R"AZ09"

  local a, b, c, d, newpos = :match(subj, pos)
  local T = { ArgPat:match(subj, pos) }
  local newpos = T[#T]
  if newpos == nil then error("No args


Cmd     = lpeg.P "@" * Cmdname:Cmt(function(subj, pos, cmdname)
    if cmdname == "one" then
      local a, newpos = Onearg:match(subj, pos)
      if newpos then return newpos, "<"..a..">" end
    elseif cmdname == "two" then
      local a, b, newpos = Twoargs:match(subj, pos)
      if newpos then return newpos, "<"..a..">", "<"..b..">" end
    end
  end)



tofunction_ = function (sorf, where)
    if type(sorf) == "function" then return f end
    if type(sorf) == "string" then return (where or _G)[sorf] end
  end
tofunction = function (sorf, where)
    local f = tofunction_(sorf, where)
    if not f then print("Not a function: ", sorf); error() end
    return f
  end



* (find-fline "/tmp/tmp.texi")




#####
#
# hyphenation for other languages
# 2008oct18
#
#####

# «hyphenation»  (to ".hyphenation")
# http://lists.gnu.org/archive/html/bug-texinfo/2008-10/msg00000.html
# http://lists.gnu.org/archive/html/bug-texinfo/2008-10/msg00007.html

The basic trick is to process the texinfo file with `eplain'
instead of `tex'.  With TeXLive, this gives access to all
configured hyphenation patterns.  `bplain' would do the same, but
there is (currently) no soft link to the `tex' binary.

In txi-de.tex, add the following lines at the very beginning:

  \makeatletter
  \global\lefthyphenmin 2
  \global\righthyphenmin 2
  \global\language\l@ngerman
  \makeatother

That's it.  Add, for example, the following at the beginning of your
texinfo file:

 @documentlanguage de
 @documentencoding UTF-8

(...)

Sorry, my mistake.  It works with etex too if you use this snippet
instead of the previous one:

 \catcode`\@11\relax
 \global\lefthyphenmin 2
 \global\righthyphenmin 2
 \global\language\lang@ngerman
 \catcode`\@12\relax




#####
#
# rcirc manual
# 2008nov19
#
#####

# «rcirc-manual»  (to ".rcirc-manual")
# (find-fline "~/bigsrc/emacs/doc/misc/rcirc.texi")
#*
rm -Rv /tmp/rcirc/
mkdir  /tmp/rcirc/
cd  ~/bigsrc/emacs/doc/misc/
cp -v rcirc.texi doclicense.texi /tmp/rcirc/
cd     /tmp/rcirc/
mkdir html/
makeinfo -o html/ --html rcirc.texi

#*
# (find-node "(texinfo)makeinfo options")
# (find-node "(texinfo)makeinfo options" "\n`--html'")
# (find-node "(texinfo)makeinfo options" "\n`-o FILE'")
# (find-fline "/tmp/rcirc/")
# (find-w3m "/tmp/rcirc/html/index.html")




#####
#
# where is the dir file?
# 2011oct13
#
#####

# «dir-file»  (to ".dir-file")
# (find-ecvsfile "")
# (find-ecvsfile "info/")
# (find-ecvsfile "info/dir")
# (find-ecvssh "find | sort | grep -i dir")
# (find-efile "" "info")




#####
#
# Processing triggers...
# 2011dec26
#
#####

# «triggers»  (to ".triggers")
# (find-es "anatocc" "objdump")
# (find-vldifile "" "binutils-doc.list")

Processing triggers for install-info ...
install-info: warning: no info dir entry in `/usr/share/info/python2.5-lib.info.gz'
install-info: warning: no info dir entry in `/usr/share/info/python2.5-api.info.gz'
install-info: warning: no info dir entry in `/usr/share/info/latex2rtf.info.gz'
install-info: warning: no info dir entry in `/usr/share/info/ocaml.info.gz'
install-info: warning: no info dir entry in `/usr/share/info/python2.5-ref.info.gz'
Setting up binutils-doc (2.20.1-16) ...




#####
#
# install-info: warning: no info dir entry in...
# 2012may10
#
#####

# «no-info-dir-entry»  (to ".no-info-dir-entry")
# "install-info: warning: no info dir entry in"...
# https://bugs.launchpad.net/ubuntu/+source/menu/+bug/391466
# http://wiki.debian.org/Transitions/DpkgToGnuInstallInfo
# http://us.generation-nt.com/answer/bug-609884-no-info-dir-entry-menu-info-help-201750032.html




#####
#
# org-texinfo
# 2012jul19
#
#####

# «org-texinfo»  (to ".org-texinfo")
# (find-es "org" "org-texinfo")
# http://lists.gnu.org/archive/html/emacs-orgmode/2012-07/msg00572.html



#####
#
# Node names
# 2019jul12
#
#####

# «node-names» (to ".node-names")
# (find-node "(texinfo)Writing a Node")
# (find-texinode "Writing a Node")
# (find-texinode "Node Menu Illustration")
# (find-texinode "Referring to a Manual as a Whole")



#####
#
# The names - long, short, etc - of a manual
# 2019jul12
#
#####

# «manual-name» (to ".manual-name")
# (find-texinode "@settitle")
# (find-texinode "@setfilename")

# (find-gitemacsfile "doc/lispref/elisp.texi")
# (find-gitemacsfile "doc/lispref/elisp.texi" "@settitle GNU Emacs Lisp Reference Manual")
# (find-gitemacsfile "doc/lispref/elisp.texi" "This is the @cite{GNU Emacs Lisp Reference Manual}")
# (find-gitemacsfile "doc/lispref/elisp.texi" "@top Emacs Lisp")
# (find-elnode "Top")
# (find-elnode "Top" "Emacs Lisp")




#####
#
# texinfo-to-epub
# 2019dec24
#
#####

# «texinfo-to-epub» (to ".texinfo-to-epub")
# https://lists.gnu.org/archive/html/emacs-devel/2019-12/msg00614.html
# https://per.bothner.com/blog/2016/texinfo-roadmap/
# https://github.com/jlhg/texinfo2epub
# https://github.com/ikrukov/epub
# https://lists.gnu.org/archive/html/bug-texinfo/2018-07/msg00009.html




#####
#
# x-in-y-minutes
# 2022jun11
#
#####

# «x-in-y-minutes»  (to ".x-in-y-minutes")
# https://learnxinyminutes.com/docs/texinfo/
# https://learnxinyminutes.com/docs/files/learntexinfo.texi
# (find-texinode "Reference Implementation")

# (find-man "texi2any")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "/tmp/texinfo/")
# (find-fline "/tmp/texinfo/learntexinfo.texi")
rm -Rv /tmp/texinfo/
mkdir  /tmp/texinfo/
cd     /tmp/texinfo/
cp -v $S/https/learnxinyminutes.com/docs/files/learntexinfo.texi .
cat > version.texi <<'%%%'
%%%
texi2any learntexinfo.texi
texi2any sample.texi



# (find-fline "/tmp/texinfo/simple-document.texi")
# wget https://learnxinyminutes.com/docs/files/learntexinfo.texi
# mv -v learntexinfo.texi simple-document.texi
texi2any simple-document.texi





#####
#
# tag-table
# 2022jun22
#
#####

# «tag-table»  (to ".tag-table")
# (find-es "maxima" "tag-table")
# (find-texinode "Info Format Tag Table")
# (find-texinode "@anchor")
# (find-maximagitfile "doc/info/Differentiation.texi" "@anchor{gradef}")

# (find-maximanode "intanalysis")
# (code-c-d "ulsi" "/usr/local/share/info/")
# (find-ulsifile "")
# (find-ulsigrep "grep --color=auto -nH --null -e intanalysis maxima*")
# (find-ulsifile "maxima.info" "Tag Table:")
# (find-efunctiondescr 'Info-find-in-tag-table)
# (find-efunction      'Info-find-in-tag-table)
# (find-efunctiondescr 'Info-find-node-2)
# (find-efunction      'Info-find-node-2)
# (find-egrep "grep --color=auto -nH --null -e 'tag table' info.el")
# (find-efile "info.el" " *info tag table*")

(let ((default-directory "/usr/share/info/"))
  (grep "zgrep --color=auto -niH -e 'tag table' *")
  )

(progn
 (find-maximanode "intanalysis")
 (find-ebuffer " *info tag table*")
 )

 (widen)
 (goto-char Info-tag-table-marker)




#####
#
# Info-directory-list
# 2022oct01
#
#####

# «Info-directory-list»  (to ".Info-directory-list")
# (find-fline "~/LOGS/2022oct01.emacs" "<bpalmer> ,infopath")




makeinfo --html bashref.texi





# 2007jun22:
# http://www.emacswiki.org/cgi-bin/wiki/JorgenSchaefersEmacsConfig
unhtml < $S/http/www.emacswiki.org/cgi-bin/wiki/JorgenSchaefersEmacsConfig > /tmp/.emacs-forcer.el
# (find-fline "/tmp/.emacs-forcer.el")
# (find-fline "/tmp/.emacs-forcer.el" "defun fc-insert-texinfo-skeleton")





# http://savannah.gnu.org/mail/?group=texinfo
# http://lists.gnu.org/archive/html/bug-texinfo/2007-08/msg00007.html

> And no one is going to read 'info info' until they find the
> reference to info-stnd in "Advanced Info Commands".

I don't know about "nobody".  I think it's reasonable to have the
reference to info-stnd after explaining the basic commands and
features of the Info system.  Of course, if someone is in a hurry,
they might not be patient enough to get there, but impatient people in
a hurry cannot be helped with documentation anyway, in my experience.


# Good CSS:
http://common-lisp.net/~loliveira/tmp/iterate-manual/html_node/Introduction.html



Single key navigation for texinfos HTML
http://lists.gnu.org/archive/html/bug-texinfo/2009-01/index.html
http://orgmode.org/worg/code/org-info-js/
2009jan20

https://lwn.net/Articles/625072/ Emacs and changing documentation formats





#  Local Variables:
#  coding:               utf-8-unix
#  End: