Add tilde before \ref{}s to tables.

* lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): Reference
tables with ~\ref{...} instead of only \ref{...}.
* customize.texi (Custom Themes): Document custom-known-themes.

* custom.el (custom-available-themes): Doc fix.
Fix bug #16179 with ls-lisp emulation of the ls -s switch.

 src/ls-lisp.el (ls-lisp-insert-directory): Don't modify %d and %f
 formats for displaying file sizes when the -s switch is given.
 Instead, compute a separate format for displaying the size in
 blocks, which is displayed in addition to the "regular" size.
 When -h is given in addition to -s, produce size in blocks in
 human-readable form as well.
Avoid compiler warnings in w32fns.c:emacs_abort.

 src/w32fns.c (emacs_abort): Use intptr_t as argument of
 INT_BUFSIZE_BOUND, to avoid compiler warnings.
* eshell/em-prompt.el (eshell-emit-prompt): Fix last change.
Minor fixes for recent openp changes.

* lisp.h (GCPRO7): New macro.
* lread.c (openp): Use bool for boolean; all callers changed.
Protect save_string from GC.  Don't assume that file descriptors
are nonzero.  Redo save_mtime comparison to avoid bogus GCC
warning about uninitialized variable.
lisp/gnus/gnus-icalendar.el  (gnus-icalendar-identities): Make changing the value of gnus-icalendar-additional-identities work without restart
Add comment to my previous lread.c change.
* lisp/help-mode.el (help-mode-map): Bind "l" to help-go-back,
and "r" to help-go-forward for compatibity with Info.
* lisp/vc/log-edit.el (log-edit-hook): Add `log-edit-insert-message-template'
to the default list.  Move `log-edit-show-files' to the end.
Add more available functions to options.
(log-edit): Move default specific settings to
`log-edit-insert-message-template'.  Don't move point.
(log-edit-insert-message-template): New function.
(log-edit-insert-changelog): Add `save-excursion' and don't move point.
query-replace backward

* lisp/replace.el (query-replace-read-args): Split a non-negative arg
and a negative arg into separate elements.
(query-replace, query-replace-regexp, replace-string)
(replace-regexp): Add arg `backward'.  Doc fix.
(replace-match-maybe-edit): When new arg `backward' is non-nil,
move point to the beginning of the match.
(replace-search, replace-highlight): Use new arg `backward'
to set the value of `isearch-forward'.
(perform-replace): Add arg `backward' and use it to perform
replacement backward. 

* lisp/isearch.el (isearch-query-replace): Use a negative prefix arg
to call `perform-replace' with a non-nil arg `backward'.
* lisp/progmodes/ruby-mode.el (ruby-smie--args-separator-p): Allow the
first arg to be a string (fixed dead code), or an operator symbol.
(ruby-smie--forward-token): Tokenize ` @ ' before strings and
operator symbols.
(ruby-smie-rules): Remove parent token check in the `.' clause, it
did nothing.  Don't respond to `(:after ".")', it will be called
with :before anyway.  Remove the ` @ ' rule, it didn't seem to
change anything.  Only return indentation for binary operators
when they are hanging.  De-dent opening paren when its parent is
`.', otherwise it looks bad when the dot is not at bol or eol.
lisp/gnus/gnus-uu.el: Fix temporary files deletion bug
lisp/gnus/ChangeLog: Fix timestamp of last commit
* lisp/progmodes/ruby-mode.el (ruby-smie-rules): Indent middle-of-block
keywords to their parent.