(let (position
(print-symbols-bare t)) ; Possibly redundant binding.
;; Insert the doc string, and make it a comment with #@LENGTH.
- (and (>= (nth 1 info) 0)
- dynamic-docstrings
- (progn
- (setq position
- (byte-compile-output-as-comment
- (nth (nth 1 info) form) nil))
- ;; If the doc string starts with * (a user variable),
- ;; negate POSITION.
- (if (and (stringp (nth (nth 1 info) form))
- (> (length (nth (nth 1 info) form)) 0)
- (eq (aref (nth (nth 1 info) form) 0) ?*))
- (setq position (- position)))))
+ (when (and (>= (nth 1 info) 0) dynamic-docstrings)
+ (setq position (byte-compile-output-as-comment
+ (nth (nth 1 info) form) nil)))
(let ((print-continuous-numbering t)
print-number-table
unibyte string. If it is actually a doc string, caller must make
it multibyte. */
- /* Position is negative for user variables. */
+ /* We used to emit negative positions for 'user variables' (whose doc
+ strings started with an asterisk); take the absolute value for
+ compatibility. */
EMACS_INT pos = eabs (XFIXNUM (XCDR (val)));
struct saved_string *ss = &saved_strings[0];
struct saved_string *ssend = ss + ARRAYELTS (saved_strings);