Subject: Re: bug#17309: 24.4.50; Typos in autotype info

From: Nicolas Richard <[email-masked]>
Date: Tue, 22 Apr 2014 17:24:16 +0200

Nicolas Richard <[email-masked]> writes:

> Stefan Monnier <[email-masked]> writes:
>
>>>      "Iff" means "if and only if".  This terminology comes from
>>>      mathematics.  Try to avoid using this term in documentation, since
>>>      many are unfamiliar with it and mistake it for a typo.
>>
>> Indeed, I think "iff" is perfectly fine in docstrings, but we should
>> refrain from using it in the Texinfo documentation.
>
> I grepped for '\biff\b' and got:
> ./info/message.info:625:     header.  (Iff `Cc' header is not present, `Bcc' header will be
> ./info/autotype.info:231:     Logical and.  Iff preceding element moved point, i.e., usually
> ./info/autotype.info:235:     Logical xor.  Iff preceding element didn't move point, i.e.,
> (+ entries explaining it, or saying not to use it)
>
> Having no experience with the involved packages, I don't suggest a
> patch.

In view of Drew Adams' comment, here's the rest of the grep -- I removed
entries which are not part of docstrings (mostly ChangeLog, plain
comments and auto generated files) :

./lisp/progmodes/js.el:1355:variable name in the spec.  Return true iff this was actually a
./lisp/progmodes/gdb-mi.el:1982:  "Return non-nil iff STR and MATCH are equal up to the end of either strings.
./lisp/progmodes/gdb-mi.el:1992:  "Return non-nil iff CHARACTER is a numerical character between 0 and 9."
./lisp/progmodes/prolog.el:3231:    "Non-nil iff the mark is set.  Lobotomized version for Emacsen that do not provide their own."
./lisp/progmodes/sh-script.el:2363:;;  "Iff it isn't, define the current shell as abbrev table and fill that.
./lisp/url/url-parse.el:128:FULLNESS is non-nil iff the hierarchical sequence component of
./lisp/cedet/semantic/tag.el:175:  "Return the buffer TAG resides in IFF tag is already in a buffer.
./lisp/cedet/semantic/ia-sb.el:142:  "Show documentation about CONTEXT iff CONTEXT points at a complete symbol."
./lisp/cedet/semantic/bovine/c.el:1597:handled.  A class is abstract iff its destructor is virtual."
./lisp/cedet/ede.el:103:argument, the directory name; the function should return t iff
./lisp/cedet/ede.el:707:Return nil iff DIR should not be in `ede-project-directories'."
./lisp/menu-bar.el:925:  "Return non-nil iff VAL is a positive number."
./lisp/textmodes/reftex-parse.el:360:  "Return non-nil iff we are using biblatex rather than bibtex."
./lisp/minibuffer.el:2776:Those chars are treated as delimiters iff this variable is non-nil.
./lisp/gnus/gnus-registry.el:1130:the user is asked first.  Returns non-nil iff the registry is enabled."
./lisp/allout-widgets.el:269:Table is maintained iff `allout-widgets-maintain-tally' is non-nil.
./lisp/allout-widgets.el:1855:Optional HAS-SUCCESSOR is true iff the item is followed by a sibling.
./lisp/org/org-mouse.el:242:  "Return non-nil iff the line contains only white space."
./lisp/org/org-mouse.el:284:enabled for a given keyword iff (funcall SELECTED keyword) return
./src/floatfns.c:145:       doc: /* Return non nil iff argument X is a NaN.  */)
./lisp/progmodes/verilog-mode.el:3163:  "Return t iff the scan cache is up to date."
./lisp/progmodes/js.el:1305:  "Return non-nil iff point is in a function parameter list."
./lisp/progmodes/js.el:1316:  "Return non-nil iff point is in a Dojo multiple-inheritance class block."

The grep command was:

find . -type d \( -path \*/.eunit -o -path \*/.git -o -path \*/.hg -o -path \*/.fslckout -o -path \*/.bzr -o -path \*/_darcs -o -path \*/venv -o -path \*/build -o -path \*/SCCS -o -path \*/RCS -o -path \*/CVS -o -path \*/MCVS -o -path \*/.svn -o -path \*/_MTN -o -path \*/\{arch\} \) -prune -o \! -type d \( -name TAGS -o -name .\#\* -o -name \*mtc\* -o -name \*maf -o -name \*.o -o -name \*\~ -o -name \*.bin -o -name \*.lbin -o -name \*.so -o -name \*.a -o -name \*.ln -o -name \*.blg -o -name \*.bbl -o -name \*.elc -o -name \*.lof -o -name \*.glo -o -name \*.idx -o -name \*.lot -o -name \*.fmt -o -name \*.tfm -o -name \*.class -o -name \*.fas -o -name \*.lib -o -name \*.mem -o -name \*.x86f -o -name \*.sparcf -o -name \*.dfsl -o -name \*.pfsl -o -name \*.d64fsl -o -name \*.p64fsl -o -name \*.lx64fsl -o -name \*.lx32fsl -o -name \*.dx64fsl -o -name \*.dx32fsl -o -name \*.fx64fsl -o -name \*.fx32fsl -o -name \*.sx64fsl -o -name \*.sx32fsl -o -name \*.wx64fsl -o -name \*.wx32fsl -o -name \*.fasl -o -name \*.ufsl -o -name \*.fsl -o -name \*.dxl -o -name \*.lo -o -name \*.la -o -name \*.gmo -o -name \*.mo -o -name \*.toc -o -name \*.aux -o -name \*.cp -o -name \*.fn -o -name \*.ky -o -name \*.pg -o -name \*.tp -o -name \*.vr -o -name \*.cps -o -name \*.fns -o -name \*.kys -o -name \*.pgs -o -name \*.tps -o -name \*.vrs -o -name \*.pyc -o -name \*.pyo \) -prune -o  -type f \( -name \* -o -name .\* \) -exec grep -i -nH -e \\biff\\b {}+ 

which returns 194 lines. Removal was then done mostly manually.

-- 
Nico.