]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from origin/emacs-25
authorJohn Wiegley <johnw@newartisans.com>
Fri, 11 Mar 2016 21:33:32 +0000 (13:33 -0800)
committerJohn Wiegley <johnw@newartisans.com>
Fri, 11 Mar 2016 21:33:32 +0000 (13:33 -0800)
facb5e2 Update Emacs manual section related to character folding
4efea8e ; * etc/DEBUG: Fix a typo.  (Bug#22984)
f8df21b Update admin/notes/unicode
950be68 Add symref-filepattern entries for c?perl-mode
8b8a6ad Don't use XRANDR 1.3 extensions if the server doesn't support them.
985dacf ; NEWS update for the last change in etags
741a6f8 Sync with gnulib
7352c6c Rework C source files to avoid ^(
a589e9a By default, etags produces unqualified Perl tag names
72c7438 Indent methods with keyword names correctly
28532a9 Propertize character literals and special global variables
        differently
a7d6f39 ; Fix last change in NEWS
83b2a20 Change how /etc/NEWS presents character folding
b417c5a Revert "Revert "Backport: * lisp/isearch.el: Turn char-folding
        off by default""
711ca36 Properly handle lambda as read function (bug 22961)
1b9d616 Propertize operator symbol names with symbol syntax class
9b16bc2 Stop recognizing :#{} as symbol in ruby-mode
366ec77 Allow using the left shift operator without spaces on both sides
02bf7cc Properly handle unquoting in wdired (bug 22938)
16cf469 ; Spelling fix and tighten up comment
f50bc04 Allow splat operator before percent literal
991c801 Don't apply the return value of goto-char as syntax class
6e63b3e Guard against nested percent literals
066f3bc Recognize iuwu-mod after an escaped newline
6f7a57c Fix symbolic mode string conversion for s and t
50b9826 Update 'ucs-names' database
993b2fb Improve doc string of 'shell-command'
b71c717 Make the code in movemail_strftime more general
cc057e4 Speed up redisplay of binary files with long series of nulls
e51b27e Remove the highlighting support for quoting 'like this' inside
        Lisp docstrings
b1abce1 Restore leading space in movemail pop output
98b8d44 Fix bidi-paragraph-direction in Rmail view buffer
dc9d837 Don't misindent computed property generator methods
7923112 Fix mbox files produced by movemail on MS-Windows
c45a1ca doc string file descriptor exhaustion fix
265141b Fix Bug#22814

71 files changed:
1  2 
configure.ac
doc/man/etags.1
etc/NEWS
lib-src/etags.c
lib-src/pop.c
lisp/emacs-lisp/lisp-mode.el
lisp/files.el
lisp/mail/rmail.el
lisp/progmodes/js.el
lisp/progmodes/ruby-mode.el
lisp/simple.el
lisp/wdired.el
nt/inc/ms-w32.h
nt/inc/sys/socket.h
src/alloc.c
src/buffer.c
src/ccl.c
src/charset.c
src/coding.c
src/conf_post.h
src/dired.c
src/dispnew.c
src/doc.c
src/editfns.c
src/emacs-module.c
src/emacs-module.h
src/emacs.c
src/eval.c
src/filelock.c
src/fns.c
src/fontset.c
src/frame.c
src/frame.h
src/gnutls.c
src/gnutls.h
src/image.c
src/keyboard.c
src/kqueue.c
src/lastfile.c
src/lisp.h
src/process.c
src/process.h
src/ralloc.c
src/sheap.c
src/syntax.c
src/sysdep.c
src/unexcw.c
src/unexelf.c
src/vm-limit.c
src/w32.c
src/w32console.c
src/w32fns.c
src/w32inevt.c
src/w32term.h
src/window.c
src/window.h
src/xdisp.c
src/xfns.c
src/xsmfns.c
test/lisp/progmodes/ruby-mode-tests.el
test/manual/etags/CTAGS.good
test/manual/etags/ETAGS.good_1
test/manual/etags/ETAGS.good_2
test/manual/etags/ETAGS.good_3
test/manual/etags/ETAGS.good_4
test/manual/etags/ETAGS.good_5
test/manual/etags/c-src/emacs/src/keyboard.c
test/manual/etags/c-src/emacs/src/lisp.h
test/manual/etags/c-src/etags.c
test/manual/indent/js.js
test/manual/indent/ruby.rb

diff --cc configure.ac
Simple merge
diff --cc doc/man/etags.1
Simple merge
diff --cc etc/NEWS
Simple merge
diff --cc lib-src/etags.c
Simple merge
diff --cc lib-src/pop.c
Simple merge
Simple merge
diff --cc lisp/files.el
Simple merge
Simple merge
Simple merge
index fb942b34ddc7a0095d82bfec83fb44c7f3e3dfd0,be8f96dcfd9d271948a48634a5c9b63c3f2bbc56..d2370741972fd1a6e3f2a74239be23510bdec3ce
@@@ -889,12 -888,18 +888,18 @@@ and `\\' when preceded by `?'.
            ((and (eq c ?:) (or (not b) (eq (char-syntax b) ? ))))
            ((eq c ?\\) (eq b ??)))))
  
- (defun ruby-singleton-class-p (&optional pos)
+ (defun ruby-verify-heredoc (&optional pos)
    (save-excursion
      (when pos (goto-char pos))
-     (forward-word -1)
-     (and (or (bolp) (not (eq (char-before (point)) ?_)))
-          (looking-at ruby-singleton-class-re))))
+     ;; Not right after a symbol or prefix character.
+     ;; Method names are only allowed when separated by
+     ;; whitespace.  Not a limitation in Ruby, but it's hard for
+     ;; us to do better.
+     (when (not (memq (car (syntax-after (1- (point)))) '(2 3 6 10)))
+       (or (not (memq (char-before) '(?\s ?\t)))
 -          (ignore (forward-word-strictly -1))
++          (ignore (forward-word -1))
+           (eq (char-before) ?_)
+           (not (looking-at ruby-singleton-class-re))))))
  
  (defun ruby-expr-beg (&optional option)
    "Check if point is possibly at the beginning of an expression.
diff --cc lisp/simple.el
Simple merge
diff --cc lisp/wdired.el
Simple merge
diff --cc nt/inc/ms-w32.h
Simple merge
Simple merge
diff --cc src/alloc.c
Simple merge
diff --cc src/buffer.c
Simple merge
diff --cc src/ccl.c
Simple merge
diff --cc src/charset.c
Simple merge
diff --cc src/coding.c
Simple merge
diff --cc src/conf_post.h
Simple merge
diff --cc src/dired.c
Simple merge
diff --cc src/dispnew.c
Simple merge
diff --cc src/doc.c
Simple merge
diff --cc src/editfns.c
Simple merge
Simple merge
Simple merge
diff --cc src/emacs.c
Simple merge
diff --cc src/eval.c
Simple merge
diff --cc src/filelock.c
Simple merge
diff --cc src/fns.c
Simple merge
diff --cc src/fontset.c
Simple merge
diff --cc src/frame.c
Simple merge
diff --cc src/frame.h
Simple merge
diff --cc src/gnutls.c
Simple merge
diff --cc src/gnutls.h
Simple merge
diff --cc src/image.c
Simple merge
diff --cc src/keyboard.c
Simple merge
diff --cc src/kqueue.c
Simple merge
diff --cc src/lastfile.c
Simple merge
diff --cc src/lisp.h
Simple merge
diff --cc src/process.c
Simple merge
diff --cc src/process.h
Simple merge
diff --cc src/ralloc.c
Simple merge
diff --cc src/sheap.c
Simple merge
diff --cc src/syntax.c
Simple merge
diff --cc src/sysdep.c
Simple merge
diff --cc src/unexcw.c
Simple merge
diff --cc src/unexelf.c
Simple merge
diff --cc src/vm-limit.c
Simple merge
diff --cc src/w32.c
Simple merge
Simple merge
diff --cc src/w32fns.c
Simple merge
diff --cc src/w32inevt.c
Simple merge
diff --cc src/w32term.h
Simple merge
diff --cc src/window.c
Simple merge
diff --cc src/window.h
Simple merge
diff --cc src/xdisp.c
Simple merge
diff --cc src/xfns.c
Simple merge
diff --cc src/xsmfns.c
Simple merge
index da8d77c5157beb1cd28aac45a81ee809c4a45a05,0000000000000000000000000000000000000000..4fa7470218afad8c0115c2be3110d34e83e11bce
mode 100644,000000..100644
--- /dev/null
@@@ -1,713 -1,0 +1,730 @@@
 +;;; ruby-mode-tests.el --- Test suite for ruby-mode
 +
 +;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
 +
 +;; This file is part of GNU Emacs.
 +
 +;; GNU Emacs is free software: you can redistribute it and/or modify
 +;; it under the terms of the GNU General Public License as published by
 +;; the Free Software Foundation, either version 3 of the License, or
 +;; (at your option) any later version.
 +
 +;; GNU Emacs is distributed in the hope that it will be useful,
 +;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +;; GNU General Public License for more details.
 +
 +;; You should have received a copy of the GNU General Public License
 +;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 +
 +;;; Commentary:
 +
 +;;; Code:
 +
 +(require 'ert)
 +(require 'ruby-mode)
 +
 +(defmacro ruby-with-temp-buffer (contents &rest body)
 +  (declare (indent 1) (debug t))
 +  `(with-temp-buffer
 +     (insert ,contents)
 +     (ruby-mode)
 +     ,@body))
 +
 +(defun ruby-should-indent (content column)
 +  "Assert indentation COLUMN on the last line of CONTENT."
 +  (ruby-with-temp-buffer content
 +    (indent-according-to-mode)
 +    (should (= (current-indentation) column))))
 +
 +(defun ruby-should-indent-buffer (expected content)
 +  "Assert that CONTENT turns into EXPECTED after the buffer is re-indented.
 +
 +The whitespace before and including \"|\" on each line is removed."
 +  (ruby-with-temp-buffer (ruby-test-string content)
 +    (indent-region (point-min) (point-max))
 +    (should (string= (ruby-test-string expected) (buffer-string)))))
 +
 +(defun ruby-test-string (s &rest args)
 +  (apply 'format (replace-regexp-in-string "^[ \t]*|" "" s) args))
 +
 +(defun ruby-assert-state (content index value &optional point)
 +  "Assert syntax state values at the end of CONTENT.
 +
 +VALUES-PLIST is a list with alternating index and value elements."
 +  (ruby-with-temp-buffer content
 +    (when point (goto-char point))
 +    (syntax-propertize (point))
 +    (should (eq (nth index
 +                     (parse-partial-sexp (point-min) (point)))
 +                value))))
 +
 +(defun ruby-assert-face (content pos face)
 +  (ruby-with-temp-buffer content
 +    (font-lock-ensure nil nil)
 +    (should (eq face (get-text-property pos 'face)))))
 +
 +(ert-deftest ruby-indent-after-symbol-made-from-string-interpolation ()
 +  "It can indent the line after symbol made using string interpolation."
 +  (ruby-should-indent "def foo(suffix)\n  :\"bar#{suffix}\"\n"
 +                      ruby-indent-level))
 +
 +(ert-deftest ruby-indent-after-js-style-symbol-with-block-beg-name ()
 +  "JS-style hash symbol can have keyword name."
 +  (ruby-should-indent "link_to \"home\", home_path, class: \"foo\"\n" 0))
 +
 +(ert-deftest ruby-discern-singleton-class-from-heredoc ()
 +  (ruby-assert-state "foo <<asd\n" 3 ?\n)
 +  (ruby-assert-state "class <<asd\n" 3 nil))
 +
 +(ert-deftest ruby-heredoc-font-lock ()
 +  (let ((s "foo <<eos.gsub('^ *', '')"))
 +    (ruby-assert-face s 9 font-lock-string-face)
 +    (ruby-assert-face s 10 nil)))
 +
 +(ert-deftest ruby-singleton-class-no-heredoc-font-lock ()
 +  (ruby-assert-face "class<<a" 8 nil))
 +
 +(ert-deftest ruby-heredoc-highlights-interpolations ()
 +  (ruby-assert-face "s = <<EOS\n  #{foo}\nEOS" 15 font-lock-variable-name-face))
 +
 +(ert-deftest ruby-no-heredoc-inside-quotes ()
 +  (ruby-assert-state "\"<<\", \"\",\nfoo" 3 nil))
 +
++(ert-deftest ruby-no-heredoc-left-shift ()
++  ;; We can't really detect the left shift operator (like in similar
++  ;; cases, it depends on the type of foo), so we just require for <<
++  ;; to be preceded by a character from a known set.
++  (ruby-assert-state "foo(a<<b)" 3 nil))
++
++(ert-deftest ruby-no-heredoc-class-self ()
++  (ruby-assert-state "class <<self\nend" 3 nil))
++
 +(ert-deftest ruby-exit!-font-lock ()
 +  (ruby-assert-face "exit!" 5 font-lock-builtin-face))
 +
 +(ert-deftest ruby-deep-indent ()
 +  (let ((ruby-deep-arglist nil)
 +        (ruby-deep-indent-paren '(?\( ?\{ ?\[ ?\] t)))
 +    (ruby-should-indent "foo = [1,\n2" 7)
 +    (ruby-should-indent "foo = {a: b,\nc: d" 7)
 +    (ruby-should-indent "foo(a,\nb" 4)))
 +
 +(ert-deftest ruby-deep-indent-disabled ()
 +  (let ((ruby-deep-arglist nil)
 +        (ruby-deep-indent-paren nil))
 +    (ruby-should-indent "foo = [\n1" ruby-indent-level)
 +    (ruby-should-indent "foo = {\na: b" ruby-indent-level)
 +    (ruby-should-indent "foo(\na" ruby-indent-level)))
 +
 +(ert-deftest ruby-indent-after-keyword-in-a-string ()
 +  (ruby-should-indent "a = \"abc\nif\"\n  " 0)
 +  (ruby-should-indent "a = %w[abc\n       def]\n  " 0)
 +  (ruby-should-indent "a = \"abc\n      def\"\n  " 0))
 +
 +(ert-deftest ruby-regexp-doesnt-start-in-string ()
 +  (ruby-assert-state "'(/', /\d+/" 3 nil))
 +
 +(ert-deftest ruby-regexp-starts-after-string ()
 +  (ruby-assert-state "'(/', /\d+/" 3 ?/ 8))
 +
 +(ert-deftest ruby-regexp-interpolation-is-highlighted ()
 +  (ruby-assert-face "/#{foobs}/" 4 font-lock-variable-name-face))
 +
 +(ert-deftest ruby-regexp-skips-over-interpolation ()
 +  (ruby-assert-state "/#{foobs.join('/')}/" 3 nil))
 +
 +(ert-deftest ruby-regexp-continues-till-end-when-unclosed ()
 +  (ruby-assert-state "/bars" 3 ?/))
 +
 +(ert-deftest ruby-regexp-can-be-multiline ()
 +  (ruby-assert-state "/bars\ntees # toots \nfoos/" 3 nil))
 +
 +(ert-deftest ruby-slash-symbol-is-not-mistaken-for-regexp ()
 +  (ruby-assert-state ":/" 3 nil))
 +
 +(ert-deftest ruby-slash-char-literal-is-not-mistaken-for-regexp ()
 +  (ruby-assert-state "?/" 3 nil))
 +
 +(ert-deftest ruby-indent-simple ()
 +  (ruby-should-indent-buffer
 +   "if foo
 +   |  bar
 +   |end
 +   |zot
 +   |"
 +   "if foo
 +   |bar
 +   |  end
 +   |    zot
 +   |"))
 +
 +(ert-deftest ruby-indent-keyword-label ()
 +  (ruby-should-indent-buffer
 +   "bar(class: XXX) do
 +   |  foo
 +   |end
 +   |bar
 +   |"
 +   "bar(class: XXX) do
 +   |     foo
 +   |  end
 +   |    bar
 +   |"))
 +
 +(ert-deftest ruby-indent-method-with-question-mark ()
 +  (ruby-should-indent-buffer
 +   "if x.is_a?(XXX)
 +   |  foo
 +   |end
 +   |"
 +   "if x.is_a?(XXX)
 +   | foo
 +   |   end
 +   |"))
 +
 +(ert-deftest ruby-indent-expr-in-regexp ()
 +  (ruby-should-indent-buffer
 +   "if /#{foo}/ =~ s
 +   |  x = 1
 +   |end
 +   |"
 +   "if /#{foo}/ =~ s
 +   | x = 1
 +   |  end
 +   |"))
 +
 +(ert-deftest ruby-indent-singleton-class ()
 +  (ruby-should-indent-buffer
 +   "class<<bar
 +   |  foo
 +   |end
 +   |"
 +   "class<<bar
 +   |foo
 +   |   end
 +   |"))
 +
 +(ert-deftest ruby-indent-inside-heredoc-after-operator ()
 +  (ruby-should-indent-buffer
 +   "b=<<eos
 +   |     42"
 +   "b=<<eos
 +   |     42"))
 +
 +(ert-deftest ruby-indent-inside-heredoc-after-space ()
 +  (ruby-should-indent-buffer
 +   "foo <<eos.gsub(' ', '*')
 +   |     42"
 +   "foo <<eos.gsub(' ', '*')
 +   |     42"))
 +
 +(ert-deftest ruby-indent-array-literal ()
 +  (let ((ruby-deep-indent-paren nil))
 +    (ruby-should-indent-buffer
 +     "foo = [
 +     |  bar
 +     |]
 +     |"
 +     "foo = [
 +     | bar
 +     |  ]
 +     |"))
 +  (ruby-should-indent-buffer
 +   "foo do
 +   |  [bar]
 +   |end
 +   |"
 +   "foo do
 +   |[bar]
 +   |  end
 +   |"))
 +
 +(ert-deftest ruby-indent-begin-end ()
 +  (ruby-should-indent-buffer
 +   "begin
 +   |  a[b]
 +   |end
 +   |"
 +   "begin
 +   | a[b]
 +   |  end
 +   |"))
 +
 +(ert-deftest ruby-indent-array-after-paren-and-space ()
 +  (ruby-should-indent-buffer
 +   "class A
 +   |  def foo
 +   |    foo( [])
 +   |  end
 +   |end
 +   |"
 +   "class A
 +   | def foo
 +   |foo( [])
 +   |end
 +   |  end
 +   |"))
 +
 +(ert-deftest ruby-indent-after-block-in-continued-expression ()
 +  (ruby-should-indent-buffer
 +   "var =
 +   |  begin
 +   |    val
 +   |  end
 +   |statement"
 +   "var =
 +   |begin
 +   |val
 +   |end
 +   |statement"))
 +
 +(ert-deftest ruby-indent-spread-args-in-parens ()
 +  (let ((ruby-deep-indent-paren '(?\()))
 +    (ruby-should-indent-buffer
 +     "foo(1,
 +     |    2,
 +     |    3)
 +     |"
 +     "foo(1,
 +     | 2,
 +     |  3)
 +     |")))
 +
 +(ert-deftest ruby-align-to-stmt-keywords-t ()
 +  (let ((ruby-align-to-stmt-keywords t))
 +    (ruby-should-indent-buffer
 +     "foo = if bar?
 +     |  1
 +     |else
 +     |  2
 +     |end
 +     |
 +     |foo || begin
 +     |  bar
 +     |end
 +     |
 +     |foo ||
 +     |  begin
 +     |    bar
 +     |  end
 +     |"
 +     "foo = if bar?
 +     |       1
 +     |else
 +     |  2
 +     | end
 +     |
 +     | foo || begin
 +     |    bar
 +     |end
 +     |
 +     |  foo ||
 +     | begin
 +     |bar
 +     |  end
 +     |")
 +    ))
 +
 +(ert-deftest ruby-align-to-stmt-keywords-case ()
 +  (let ((ruby-align-to-stmt-keywords '(case)))
 +    (ruby-should-indent-buffer
 +     "b = case a
 +     |when 13
 +     |  6
 +     |else
 +     |  42
 +     |end"
 +     "b = case a
 +     |    when 13
 +     |  6
 +     |    else
 +     |      42
 +     |    end")))
 +
 +(ert-deftest ruby-align-chained-calls ()
 +  (let ((ruby-align-chained-calls t))
 +    (ruby-should-indent-buffer
 +     "one.two.three
 +     |       .four
 +     |
 +     |my_array.select { |str| str.size > 5 }
 +     |        .map    { |str| str.downcase }"
 +     "one.two.three
 +     |  .four
 +     |
 +     |my_array.select { |str| str.size > 5 }
 +     |   .map    { |str| str.downcase }")))
 +
 +(ert-deftest ruby-move-to-block-stops-at-indentation ()
 +  (ruby-with-temp-buffer "def f\nend"
 +    (beginning-of-line)
 +    (ruby-move-to-block -1)
 +    (should (looking-at "^def"))))
 +
 +(ert-deftest ruby-toggle-block-to-do-end ()
 +  (ruby-with-temp-buffer "foo {|b|\n}"
 +    (beginning-of-line)
 +    (ruby-toggle-block)
 +    (should (string= "foo do |b|\nend" (buffer-string)))))
 +
 +(ert-deftest ruby-toggle-block-to-brace ()
 +  (let ((pairs '((17 . "foo { |b| b + 2 }")
 +                 (16 . "foo { |b|\n  b + 2\n}"))))
 +    (dolist (pair pairs)
 +      (with-temp-buffer
 +        (let ((fill-column (car pair)))
 +          (insert "foo do |b|\n  b + 2\nend")
 +          (ruby-mode)
 +          (beginning-of-line)
 +          (ruby-toggle-block)
 +          (should (string= (cdr pair) (buffer-string))))))))
 +
 +(ert-deftest ruby-toggle-block-to-multiline ()
 +  (ruby-with-temp-buffer "foo {|b| b + 1}"
 +    (beginning-of-line)
 +    (ruby-toggle-block)
 +    (should (string= "foo do |b|\n  b + 1\nend" (buffer-string)))))
 +
 +(ert-deftest ruby-toggle-block-with-interpolation ()
 +  (ruby-with-temp-buffer "foo do\n  \"#{bar}\"\nend"
 +    (beginning-of-line)
 +    (ruby-toggle-block)
 +    (should (string= "foo { \"#{bar}\" }" (buffer-string)))))
 +
 +(ert-deftest ruby-recognize-symbols-starting-with-at-character ()
 +  (ruby-assert-face ":@abc" 3 font-lock-constant-face))
 +
 +(ert-deftest ruby-hash-character-not-interpolation ()
 +  (ruby-assert-face "\"This is #{interpolation}\"" 15
 +                    font-lock-variable-name-face)
 +  (ruby-assert-face "\"This is \\#{no interpolation} despite the #\""
 +                    15 font-lock-string-face)
 +  (ruby-assert-face "\n#@comment, not ruby code" 5 font-lock-comment-face)
 +  (ruby-assert-state "\n#@comment, not ruby code" 4 t)
 +  (ruby-assert-face "# A comment cannot have #{an interpolation} in it"
 +                    30 font-lock-comment-face)
 +  (ruby-assert-face "# #{comment}\n \"#{interpolation}\"" 16
 +                    font-lock-variable-name-face))
 +
 +(ert-deftest ruby-interpolation-suppresses-quotes-inside ()
 +  (let ((s "\"<ul><li>#{@files.join(\"</li><li>\")}</li></ul>\""))
 +    (ruby-assert-state s 8 nil)
 +    (ruby-assert-face s 9 font-lock-string-face)
 +    (ruby-assert-face s 10 font-lock-variable-name-face)
 +    (ruby-assert-face s 41 font-lock-string-face)))
 +
 +(ert-deftest ruby-interpolation-suppresses-one-double-quote ()
 +  (let ((s "\"foo#{'\"'}\""))
 +    (ruby-assert-state s 8 nil)
 +    (ruby-assert-face s 8 font-lock-variable-name-face)
 +    (ruby-assert-face s 11 font-lock-string-face)))
 +
 +(ert-deftest ruby-interpolation-suppresses-one-backtick ()
 +  (let ((s "`as#{'`'}das`"))
 +    (ruby-assert-state s 8 nil)))
 +
 +(ert-deftest ruby-interpolation-keeps-non-quote-syntax ()
 +  (let ((s "\"foo#{baz.tee}bar\""))
 +    (ruby-with-temp-buffer s
 +      (goto-char (point-min))
 +      (ruby-mode)
 +      (syntax-propertize (point-max))
 +      (search-forward "tee")
 +      (should (string= (thing-at-point 'symbol) "tee")))))
 +
 +(ert-deftest ruby-interpolation-inside-percent-literal ()
 +  (let ((s "%( #{boo} )"))
 +    (ruby-assert-face s 1 font-lock-string-face)
 +    (ruby-assert-face s 4 font-lock-variable-name-face)
 +    (ruby-assert-face s 10 font-lock-string-face)
 +    (ruby-assert-state s 8 nil)))
 +
 +(ert-deftest ruby-interpolation-inside-percent-literal-with-paren ()
 +  :expected-result :failed
 +  (let ((s "%(^#{\")\"}^)"))
 +    (ruby-assert-face s 3 font-lock-string-face)
 +    (ruby-assert-face s 4 font-lock-variable-name-face)
 +    (ruby-assert-face s 10 font-lock-string-face)
 +    ;; It's confused by the closing paren in the middle.
 +    (ruby-assert-state s 8 nil)))
 +
 +(ert-deftest ruby-interpolation-inside-double-quoted-percent-literals ()
 +  (ruby-assert-face "%Q{foo #@bar}" 8 font-lock-variable-name-face)
 +  (ruby-assert-face "%W{foo #@bar}" 8 font-lock-variable-name-face)
 +  (ruby-assert-face "%r{foo #@bar}" 8 font-lock-variable-name-face)
 +  (ruby-assert-face "%x{foo #@bar}" 8 font-lock-variable-name-face))
 +
 +(ert-deftest ruby-no-interpolation-in-single-quoted-literals ()
 +  (ruby-assert-face "'foo #@bar'" 7 font-lock-string-face)
 +  (ruby-assert-face "%q{foo #@bar}" 8 font-lock-string-face)
 +  (ruby-assert-face "%w{foo #@bar}" 8 font-lock-string-face)
 +  (ruby-assert-face "%s{foo #@bar}" 8 font-lock-string-face))
 +
 +(ert-deftest ruby-interpolation-after-dollar-sign ()
 +  (ruby-assert-face "\"$#{balance}\"" 2 'font-lock-string-face)
 +  (ruby-assert-face "\"$#{balance}\"" 3 'font-lock-variable-name-face))
 +
 +(ert-deftest ruby-no-unknown-percent-literals ()
 +  ;; No folding of case.
 +  (ruby-assert-face "%S{foo}" 4 nil)
 +  (ruby-assert-face "%R{foo}" 4 nil))
 +
++(ert-deftest ruby-no-nested-percent-literals ()
++  (ruby-with-temp-buffer "a = %w[b %()]"
++    (syntax-propertize (point))
++    (should (null (nth 8 (syntax-ppss))))
++    (should (eq t (nth 3 (syntax-ppss (1- (point-max))))))
++    (search-backward "[")
++    (should (eq t (nth 3 (syntax-ppss))))))
++
 +(ert-deftest ruby-add-log-current-method-examples ()
 +  (let ((pairs '(("foo" . "#foo")
 +                 ("C.foo" . ".foo")
 +                 ("self.foo" . ".foo"))))
 +    (dolist (pair pairs)
 +      (let ((name  (car pair))
 +            (value (cdr pair)))
 +        (ruby-with-temp-buffer (ruby-test-string
 +                                "module M
 +                                |  class C
 +                                |    def %s
 +                                |      _
 +                                |    end
 +                                |  end
 +                                |end"
 +                                name)
 +          (search-backward "_")
 +          (forward-line)
 +          (should (string= (ruby-add-log-current-method)
 +                           (format "M::C%s" value))))))))
 +
 +(ert-deftest ruby-add-log-current-method-outside-of-method ()
 +  (ruby-with-temp-buffer (ruby-test-string
 +                          "module M
 +                          |  class C
 +                          |    def foo
 +                          |    end
 +                          |    _
 +                          |  end
 +                          |end")
 +    (search-backward "_")
 +    (should (string= (ruby-add-log-current-method)"M::C"))))
 +
 +(ert-deftest ruby-add-log-current-method-in-singleton-class ()
 +  (ruby-with-temp-buffer (ruby-test-string
 +                          "class C
 +                          |  class << self
 +                          |    def foo
 +                          |      _
 +                          |    end
 +                          |  end
 +                          |end")
 +    (search-backward "_")
 +    (should (string= (ruby-add-log-current-method) "C.foo"))))
 +
 +(ert-deftest ruby-add-log-current-method-namespace-shorthand ()
 +  (ruby-with-temp-buffer (ruby-test-string
 +                          "class C::D
 +                          |  def foo
 +                          |    _
 +                          |  end
 +                          |end")
 +    (search-backward "_")
 +    (should (string= (ruby-add-log-current-method) "C::D#foo"))))
 +
 +(ert-deftest ruby-add-log-current-method-after-inner-class ()
 +  (ruby-with-temp-buffer (ruby-test-string
 +                          "module M
 +                          |  class C
 +                          |    class D
 +                          |    end
 +                          |    def foo
 +                          |      _
 +                          |    end
 +                          |  end
 +                          |end")
 +    (search-backward "_")
 +    (should (string= (ruby-add-log-current-method) "M::C#foo"))))
 +
 +(defvar ruby-block-test-example
 +  (ruby-test-string
 +   "class C
 +   |  def foo
 +   |    1
 +   |  end
 +   |
 +   |  def bar
 +   |    2
 +   |  end
 +   |
 +   |  def baz
 +   |some do
 +   |3
 +   |    end
 +   |  end
 +   |end"))
 +
 +(defmacro ruby-deftest-move-to-block (name &rest body)
 +  (declare (indent defun))
 +  `(ert-deftest ,(intern (format "ruby-move-to-block-%s" name)) ()
 +     (with-temp-buffer
 +       (insert ruby-block-test-example)
 +       (ruby-mode)
 +       (goto-char (point-min))
 +       ,@body)))
 +
 +(ruby-deftest-move-to-block works-on-do
 +  (forward-line 10)
 +  (ruby-end-of-block)
 +  (should (= 13 (line-number-at-pos)))
 +  (ruby-beginning-of-block)
 +  (should (= 11 (line-number-at-pos))))
 +
 +(ruby-deftest-move-to-block zero-is-noop
 +  (forward-line 4)
 +  (ruby-move-to-block 0)
 +  (should (= 5 (line-number-at-pos))))
 +
 +(ruby-deftest-move-to-block ok-with-three
 +  (forward-line 1)
 +  (ruby-move-to-block 3)
 +  (should (= 14 (line-number-at-pos))))
 +
 +(ruby-deftest-move-to-block ok-with-minus-two
 +  (forward-line 9)
 +  (ruby-move-to-block -2)
 +  (should (= 2 (line-number-at-pos))))
 +
 +(ert-deftest ruby-move-to-block-skips-percent-literal ()
 +  (dolist (s (list (ruby-test-string
 +                    "foo do
 +                    |  a = %%w(
 +                    |    def yaa
 +                    |  )
 +                    |end")
 +                   (ruby-test-string
 +                    "foo do
 +                    |  a = %%w|
 +                    |    end
 +                    |  |
 +                    |end")))
 +    (ruby-with-temp-buffer s
 +      (goto-char (point-min))
 +      (ruby-end-of-block)
 +      (should (= 5 (line-number-at-pos)))
 +      (ruby-beginning-of-block)
 +      (should (= 1 (line-number-at-pos))))))
 +
 +(ert-deftest ruby-move-to-block-skips-heredoc ()
 +  (ruby-with-temp-buffer
 +      (ruby-test-string
 +       "if something_wrong?
 +       |  ActiveSupport::Deprecation.warn(<<-eowarn)
 +       |  boo hoo
 +       |  end
 +       |  eowarn
 +       |end")
 +    (goto-char (point-min))
 +    (ruby-end-of-block)
 +    (should (= 6 (line-number-at-pos)))
 +    (ruby-beginning-of-block)
 +    (should (= 1 (line-number-at-pos)))))
 +
 +(ert-deftest ruby-move-to-block-does-not-fold-case ()
 +  (ruby-with-temp-buffer
 +      (ruby-test-string
 +       "foo do
 +       |  Module.to_s
 +       |end")
 +    (let ((case-fold-search t))
 +      (ruby-beginning-of-block))
 +    (should (= 1 (line-number-at-pos)))))
 +
 +(ert-deftest ruby-move-to-block-moves-from-else-to-if ()
 +  (ruby-with-temp-buffer (ruby-test-string
 +                          "if true
 +                          |  nested_block do
 +                          |  end
 +                          |else
 +                          |end")
 +    (goto-char (point-min))
 +    (forward-line 3)
 +    (ruby-beginning-of-block)
 +    (should (= 1 (line-number-at-pos)))))
 +
 +(ert-deftest ruby-beginning-of-defun-does-not-fold-case ()
 +  (ruby-with-temp-buffer
 +      (ruby-test-string
 +       "class C
 +       |  def bar
 +       |    Class.to_s
 +       |  end
 +       |end")
 +    (goto-char (point-min))
 +    (forward-line 3)
 +    (let ((case-fold-search t))
 +      (beginning-of-defun))
 +    (should (= 2 (line-number-at-pos)))))
 +
 +(ert-deftest ruby-end-of-defun-skips-to-next-line-after-the-method ()
 +  (ruby-with-temp-buffer
 +      (ruby-test-string
 +       "class D
 +       |  def tee
 +       |    'ho hum'
 +       |  end
 +       |end")
 +    (goto-char (point-min))
 +    (forward-line 1)
 +    (end-of-defun)
 +    (should (= 5 (line-number-at-pos)))))
 +
 +(defvar ruby-sexp-test-example
 +  (ruby-test-string
 +   "class C
 +   |  def foo
 +   |    self.end
 +   |    D.new.class
 +   |    [1, 2, 3].map do |i|
 +   |      i + 1
 +   |    end.sum
 +   |  end
 +   |end"))
 +
 +(ert-deftest ruby-forward-sexp-skips-method-calls-with-keyword-names ()
 +  (ruby-with-temp-buffer ruby-sexp-test-example
 +    (goto-line 2)
 +    (ruby-forward-sexp)
 +    (should (= 8 (line-number-at-pos)))))
 +
 +(ert-deftest ruby-backward-sexp-skips-method-calls-with-keyword-names ()
 +  (ruby-with-temp-buffer ruby-sexp-test-example
 +    (goto-line 8)
 +    (end-of-line)
 +    (ruby-backward-sexp)
 +    (should (= 2 (line-number-at-pos)))))
 +
 +(ert-deftest ruby--insert-coding-comment-ruby-style ()
 +  (with-temp-buffer
 +    (let ((ruby-encoding-magic-comment-style 'ruby))
 +      (ruby--insert-coding-comment "utf-8")
 +      (should (string= "# coding: utf-8\n" (buffer-string))))))
 +
 +(ert-deftest ruby--insert-coding-comment-emacs-style ()
 +  (with-temp-buffer
 +    (let ((ruby-encoding-magic-comment-style 'emacs))
 +      (ruby--insert-coding-comment "utf-8")
 +      (should (string= "# -*- coding: utf-8 -*-\n" (buffer-string))))))
 +
 +(ert-deftest ruby--insert-coding-comment-custom-style ()
 +  (with-temp-buffer
 +    (let ((ruby-encoding-magic-comment-style 'custom)
 +          (ruby-custom-encoding-magic-comment-template "# encoding: %s\n"))
 +      (ruby--insert-coding-comment "utf-8")
 +      (should (string= "# encoding: utf-8\n\n" (buffer-string))))))
 +
 +
 +(provide 'ruby-mode-tests)
 +
 +;;; ruby-mode-tests.el ends here
index ebde715272aa945c9ebdb308c6ee3f41d86c85ab,0000000000000000000000000000000000000000..19bc0bef6576bb0bbd2de0d890dcd8556acd1a8a
mode 100644,000000..100644
--- /dev/null
@@@ -1,4618 -1,0 +1,4618 @@@
- Bar::f4       perl-src/kai-test.pl    /^sub Bar::f4 {$/
- Bar::f5       perl-src/kai-test.pl    /^sub f5 {$/
 +#a-defer-word forth-src/test-forth.fth        /^defer #a-defer-word$/
 +#some-storage forth-src/test-forth.fth        /^2000 buffer: #some-storage$/
 +$0x80 c-src/sysdep.h  32
 +$SYS_##syscall_na     c-src/sysdep.h  31
 +$domain       php-src/lce_functions.php       175
 +$filename     php-src/lce_functions.php       174
 +$ignore_ws    php-src/lce_functions.php       171
 +$memassign    php-src/ptest.php       9
 +$memassign_space      php-src/ptest.php       10
 +$member       php-src/ptest.php       8
 +$msgid        php-src/lce_functions.php       107
 +$msgid        php-src/lce_functions.php       165
 +$msgid_lc     php-src/lce_functions.php       113
 +$msgstr       php-src/lce_functions.php       108
 +$msgstr       php-src/lce_functions.php       166
 +$msgstr_lc    php-src/lce_functions.php       114
 +$po_entries   php-src/lce_functions.php       172
 +$poe_num      php-src/lce_functions.php       173
 +$por_a        php-src/lce_functions.php       500
 +$prefix       php-src/lce_functions.php       72
 +$state        php-src/lce_functions.php       170
 +$sys_comment  php-src/lce_functions.php       110
 +$sys_comment  php-src/lce_functions.php       168
 +$sys_comment_lc       php-src/lce_functions.php       116
 +$test php-src/ptest.php       12
 +$unk_comment  php-src/lce_functions.php       111
 +$unk_comment  php-src/lce_functions.php       169
 +$unk_comment_lc       php-src/lce_functions.php       117
 +$user_comment php-src/lce_functions.php       109
 +$user_comment php-src/lce_functions.php       167
 +$user_comment_lc      php-src/lce_functions.php       115
 +${CHECKOBJS}  make-src/Makefile       /^${CHECKOBJS}: CFLAGS=-g3 -DNULLFREECHECK=0$/
 +%cdiff        make-src/Makefile       /^%cdiff: CTAGS% CTAGS ${infiles}$/
 +%ediff        make-src/Makefile       /^%ediff: ETAGS% ETAGS ${infiles}$/
 +($_,$flag,$opt,$f,$r,@temp    perl-src/yagrip.pl      8
 +($prog,$_,@list       perl-src/yagrip.pl      39
 +($string,$flag,@string,@temp,@last    perl-src/yagrip.pl      40
 +(a-forth-constant     forth-src/test-forth.fth        /^constant (a-forth-constant$/
 +(another-forth-word   forth-src/test-forth.fth        /^: (another-forth-word) ( -- )$/
 ++     ruby-src/test.rb        /^        def +(y)$/
 ++     tex-src/texinfo.tex     /^\\def+{{\\tt \\char 43}}$/
 +.PRECIOUS     make-src/Makefile       /^.PRECIOUS: ETAGS CTAGS ETAGS16 CTAGS16 ETAGS17 CTA/
 +/.notdef      ps-src/rfc1245.ps       /^\/.notdef \/.notdef \/.notdef \/.notdef \/.notdef \/.not/
 +/.notdef      ps-src/rfc1245.ps       /^\/.notdef \/.notdef \/.notdef \/.notdef \/.notdef \/.not/
 +/.notdef      ps-src/rfc1245.ps       /^\/.notdef \/.notdef \/.notdef \/.notdef \/.notdef \/.not/
 +/.notdef      ps-src/rfc1245.ps       /^\/.notdef \/.notdef \/.notdef \/.notdef \/.notdef \/.not/
 +/.notdef      ps-src/rfc1245.ps       /^\/.notdef \/.notdef \/.notdef \/.notdef \/space \/exclam/
 +/A    ps-src/rfc1245.ps       /^\/A { $/
 +/Acircumflex  ps-src/rfc1245.ps       /^\/Acircumflex \/Ecircumflex \/Aacute \/Edieresis \/Egra/
 +/B    ps-src/rfc1245.ps       /^\/B { $/
 +/BEGINBITMAP2BIT      ps-src/rfc1245.ps       /^\/BEGINBITMAP2BIT { $/
 +/BEGINBITMAP2BITc     ps-src/rfc1245.ps       /^\/BEGINBITMAP2BITc { $/
 +/BEGINBITMAPBW        ps-src/rfc1245.ps       /^\/BEGINBITMAPBW { $/
 +/BEGINBITMAPBWc       ps-src/rfc1245.ps       /^\/BEGINBITMAPBWc { $/
 +/BEGINBITMAPGRAY      ps-src/rfc1245.ps       /^\/BEGINBITMAPGRAY { $/
 +/BEGINBITMAPGRAYc     ps-src/rfc1245.ps       /^\/BEGINBITMAPGRAYc { $/
 +/BEGINPRINTCODE       ps-src/rfc1245.ps       /^\/BEGINPRINTCODE { $/
 +/BF   ps-src/rfc1245.ps       /^\/BF { $/
 +/BITMAPCOLOR  ps-src/rfc1245.ps       /^\/BITMAPCOLOR { $/
 +/BITMAPCOLORc ps-src/rfc1245.ps       /^\/BITMAPCOLORc { $/
 +/BITMAPGRAY   ps-src/rfc1245.ps       /^\/BITMAPGRAY { $/
 +/BITMAPGRAYc  ps-src/rfc1245.ps       /^\/BITMAPGRAYc { $/
 +/C    ps-src/rfc1245.ps       /^\/C { $/
 +/COMMONBITMAP ps-src/rfc1245.ps       /^\/COMMONBITMAP { $/
 +/COMMONBITMAPc        ps-src/rfc1245.ps       /^\/COMMONBITMAPc { $/
 +/D    ps-src/rfc1245.ps       /^\/D {curveto} bind def$/
 +/DiacriticEncoding    ps-src/rfc1245.ps       /^\/DiacriticEncoding [$/
 +/E    ps-src/rfc1245.ps       /^\/E {lineto} bind def$/
 +/ENDBITMAP    ps-src/rfc1245.ps       /^\/ENDBITMAP {$/
 +/ENDPRINTCODE ps-src/rfc1245.ps       /^\/ENDPRINTCODE {$/
 +/F    ps-src/rfc1245.ps       /^\/F { $/
 +/FMBEGINEPSF  ps-src/rfc1245.ps       /^\/FMBEGINEPSF { $/
 +/FMBEGINPAGE  ps-src/rfc1245.ps       /^\/FMBEGINPAGE { $/
 +/FMDEFINEFONT ps-src/rfc1245.ps       /^\/FMDEFINEFONT { $/
 +/FMDOCUMENT   ps-src/rfc1245.ps       /^\/FMDOCUMENT { $/
 +/FMENDEPSF    ps-src/rfc1245.ps       /^\/FMENDEPSF {$/
 +/FMENDPAGE    ps-src/rfc1245.ps       /^\/FMENDPAGE {$/
 +/FMLOCAL      ps-src/rfc1245.ps       /^\/FMLOCAL {$/
 +/FMNORMALIZEGRAPHICS  ps-src/rfc1245.ps       /^\/FMNORMALIZEGRAPHICS { $/
 +/FMVERSION    ps-src/rfc1245.ps       /^\/FMVERSION {$/
 +/FMversion    ps-src/rfc1245.ps       /^\/FMversion (2.0) def $/
 +/Fmcc ps-src/rfc1245.ps       /^\/Fmcc {$/
 +/FrameDict    ps-src/rfc1245.ps       /^\/FrameDict 190 dict def $/
 +/G    ps-src/rfc1245.ps       /^\/G { $/
 +/H    ps-src/rfc1245.ps       /^\/H { $/
 +/Icircumflex  ps-src/rfc1245.ps       /^\/Icircumflex \/Idieresis \/Igrave \/Oacute \/Ocircumfl/
 +/L    ps-src/rfc1245.ps       /^\/L \/M \/N \/O \/P \/Q \/R \/S \/T \/U \/V \/W \/X \/Y \/Z \/brac/
 +/L    ps-src/rfc1245.ps       /^\/L { $/
 +/M    ps-src/rfc1245.ps       /^\/M {newpath moveto} bind def$/
 +/N    ps-src/rfc1245.ps       /^\/N { $/
 +/Ntilde       ps-src/rfc1245.ps       /^\/Ntilde \/Odieresis \/Udieresis \/aacute \/agrave \/aci/
 +/O    ps-src/rfc1245.ps       /^\/O {closepath} bind def$/
 +/Otilde       ps-src/rfc1245.ps       /^\/Otilde \/OE \/oe \/endash \/emdash \/quotedblleft \/quo/
 +/P    ps-src/rfc1245.ps       /^\/P { $/
 +/PF   ps-src/rfc1245.ps       /^\/PF { $/
 +/R    ps-src/rfc1245.ps       /^\/R { $/
 +/RF   ps-src/rfc1245.ps       /^\/RF { $/
 +/RR   ps-src/rfc1245.ps       /^\/RR { $/
 +/ReEncode     ps-src/rfc1245.ps       /^\/ReEncode { $/
 +/S    ps-src/rfc1245.ps       /^\/S { $/
 +/SF   ps-src/rfc1245.ps       /^\/SF { $/
 +/T    ps-src/rfc1245.ps       /^\/T { $/
 +/TF   ps-src/rfc1245.ps       /^\/TF { $/
 +/U    ps-src/rfc1245.ps       /^\/U { $/
 +/Uacute       ps-src/rfc1245.ps       /^\/Uacute \/Ucircumflex \/Ugrave \/dotlessi \/circumflex/
 +/V    ps-src/rfc1245.ps       /^\/V { $/
 +/W    ps-src/rfc1245.ps       /^\/W { $/
 +/X    ps-src/rfc1245.ps       /^\/X { $/
 +/Y    ps-src/rfc1245.ps       /^\/Y { $/
 +/Z    ps-src/rfc1245.ps       /^\/Z {$/
 +/atilde       ps-src/rfc1245.ps       /^\/atilde \/aring \/ccedilla \/eacute \/egrave \/ecircumf/
 +/bl   ps-src/rfc1245.ps       /^\/bl { $/
 +/braceright   ps-src/rfc1245.ps       /^\/braceright \/asciitilde \/.notdef \/Adieresis \/Aring/
 +/bracketright ps-src/rfc1245.ps       /^\/bracketright \/asciicircum \/underscore \/grave \/a \//
 +/breve        ps-src/rfc1245.ps       /^\/breve \/dotaccent \/ring \/cedilla \/hungarumlaut \/og/
 +/cfs  ps-src/rfc1245.ps       /^\/cfs { $/
 +/colorsetup   ps-src/rfc1245.ps       /^\/colorsetup {$/
 +/desperatepapersize   ps-src/rfc1245.ps       /^\/desperatepapersize {$/
 +/dieresis     ps-src/rfc1245.ps       /^\/dieresis \/.notdef \/AE \/Oslash \/.notdef \/.notdef \//
 +/dmatrix      ps-src/rfc1245.ps       /^\/dmatrix matrix def$/
 +/dnormalize   ps-src/rfc1245.ps       /^\/dnormalize {$/
 +/dpi  ps-src/rfc1245.ps       /^\/dpi    72 0 dmatrix defaultmatrix dtransform$/
 +/exclamdown   ps-src/rfc1245.ps       /^\/exclamdown \/logicalnot \/.notdef \/florin \/.notdef /
 +/fakecolorsetup       ps-src/rfc1245.ps       /^\/fakecolorsetup {$/
 +/fillprocs    ps-src/rfc1245.ps       /^\/fillprocs 32 array def$/
 +/fl   ps-src/rfc1245.ps       /^\/fl { $/
 +/fraction     ps-src/rfc1245.ps       /^\/fraction \/currency \/guilsinglleft \/guilsinglright/
 +/freq ps-src/rfc1245.ps       /^\/freq dpi 18.75 div 8 div round dup 0 eq {pop 1} i/
 +/gn   ps-src/rfc1245.ps       /^\/gn { $/
 +/graymode     ps-src/rfc1245.ps       /^\/graymode true def$/
 +/grayness     ps-src/rfc1245.ps       /^\/grayness {$/
 +/guillemotleft        ps-src/rfc1245.ps       /^\/guillemotleft \/guillemotright \/ellipsis \/.notdef /
 +/home/www/pub/etags.c.gz      make-src/Makefile       /^\/home\/www\/pub\/etags.c.gz: etags.c$/
 +/home/www/pub/software/unix/etags.tar.gz      make-src/Makefile       /^\/home\/www\/pub\/software\/unix\/etags.tar.gz: Makefile/
 +/hx   ps-src/rfc1245.ps       /^\/hx { $/
 +/i    ps-src/rfc1245.ps       /^\/i \/j \/k \/l \/m \/n \/o \/p \/q \/r \/s \/t \/u \/v \/w \/x \/y/
 +/iacute       ps-src/rfc1245.ps       /^\/iacute \/igrave \/icircumflex \/idieresis \/ntilde \/o/
 +/ic   ps-src/rfc1245.ps       /^\/ic [ $/
 +/inch ps-src/rfc1245.ps       /^\/inch {72 mul} def$/
 +/ip   ps-src/rfc1245.ps       /^\/ip { $/
 +/less ps-src/rfc1245.ps       /^\/less \/equal \/greater \/question \/at \/A \/B \/C \/D \/E/
 +/lnormalize   ps-src/rfc1245.ps       /^\/lnormalize { $/
 +/manualpapersize      ps-src/rfc1245.ps       /^\/manualpapersize {$/
 +/max  ps-src/rfc1245.ps       /^\/max {2 copy lt {exch} if pop} bind def$/
 +/min  ps-src/rfc1245.ps       /^\/min {2 copy gt {exch} if pop} bind def$/
 +/ms   ps-src/rfc1245.ps       /^\/ms { $/
 +/nbluet       ps-src/rfc1245.ps       /^\/nbluet 256 array def$/
 +/ngrayt       ps-src/rfc1245.ps       /^\/ngrayt 256 array def$/
 +/ngreent      ps-src/rfc1245.ps       /^\/ngreent 256 array def$/
 +/normalize    ps-src/rfc1245.ps       /^\/normalize {$/
 +/nredt        ps-src/rfc1245.ps       /^\/nredt 256 array def$/
 +/numbersign   ps-src/rfc1245.ps       /^\/numbersign \/dollar \/percent \/ampersand \/quotesing/
 +/ocircumflex  ps-src/rfc1245.ps       /^\/ocircumflex \/odieresis \/otilde \/uacute \/ugrave \/u/
 +/ordfeminine  ps-src/rfc1245.ps       /^\/ordfeminine \/ordmasculine \/.notdef \/ae \/oslash \/q/
 +/pagedimen    ps-src/rfc1245.ps       /^\/pagedimen { $/
 +/papersize    ps-src/rfc1245.ps       /^\/papersize {$/
 +/paragraph    ps-src/rfc1245.ps       /^\/paragraph \/germandbls \/registered \/copyright \/tra/
 +/parenright   ps-src/rfc1245.ps       /^\/parenright \/asterisk \/plus \/comma \/hyphen \/period/
 +/periodcentered       ps-src/rfc1245.ps       /^\/periodcentered \/quotesinglbase \/quotedblbase \/per/
 +/quoteleft    ps-src/rfc1245.ps       /^\/quoteleft \/quoteright \/.notdef \/.notdef \/ydieresi/
 +/restorematrix        ps-src/rfc1245.ps       /^\/restorematrix {$/
 +/s1   ps-src/rfc1245.ps       /^\/s1 1 string def$/
 +/sangle       ps-src/rfc1245.ps       /^\/sangle 1 0 dmatrix defaultmatrix dtransform exch /
 +/savematrix   ps-src/rfc1245.ps       /^\/savematrix {$/
 +/setmanualfeed        ps-src/rfc1245.ps       /^\/setmanualfeed {$/
 +/setpapername ps-src/rfc1245.ps       /^\/setpapername { $/
 +/setpattern   ps-src/rfc1245.ps       /^\/setpattern {$/
 +/two  ps-src/rfc1245.ps       /^\/two \/three \/four \/five \/six \/seven \/eight \/nine \//
 +/udieresis    ps-src/rfc1245.ps       /^\/udieresis \/dagger \/.notdef \/cent \/sterling \/secti/
 +/wbytes       ps-src/rfc1245.ps       /^\/wbytes { $/
 +/wh   ps-src/rfc1245.ps       /^\/wh { $/
 +/yen  ps-src/rfc1245.ps       /^\/yen \/.notdef \/.notdef \/.notdef \/.notdef \/.notdef /
 +:a-forth-dictionary-entry     forth-src/test-forth.fth        /^create :a-forth-dictionary-entry$/
 +<     tex-src/texinfo.tex     /^\\def<{{\\tt \\less}}$/
 +<<    ruby-src/test.rb        /^        def <<(y)$/
 +<=    ruby-src/test.rb        /^        def <=(y)$/
 +<=>   ruby-src/test.rb        /^        def <=>(y)$/
 +=     tex-src/texinfo.tex     /^\\global\\let\\section = \\numberedsec$/
 +=     tex-src/texinfo.tex     /^\\global\\let\\subsection = \\numberedsubsec$/
 +=     tex-src/texinfo.tex     /^\\global\\let\\subsubsection = \\numberedsubsubsec$/
 +=     tex-src/texinfo.tex     /^\\global\\let\\section = \\appendixsec$/
 +=     tex-src/texinfo.tex     /^\\global\\let\\subsection = \\appendixsubsec$/
 +=     tex-src/texinfo.tex     /^\\global\\let\\subsubsection = \\appendixsubsubsec$/
 +=     tex-src/texinfo.tex     /^\\global\\let\\section = \\unnumberedsec$/
 +=     tex-src/texinfo.tex     /^\\global\\let\\subsection = \\unnumberedsubsec$/
 +=     tex-src/texinfo.tex     /^\\global\\let\\subsubsection = \\unnumberedsubsubsec$/
 +=     tex-src/texinfo.tex     /^\\global\\let\\section = \\numberedsec$/
 +=     tex-src/texinfo.tex     /^\\global\\let\\subsection = \\numberedsubsec$/
 +=     tex-src/texinfo.tex     /^\\global\\let\\subsubsection = \\numberedsubsubsec$/
 +=     tex-src/texinfo.tex     /^\\global\\def={{\\tt \\char 61}}}$/
 +=/f   ada-src/etags-test-for.ada      /^   function "=" (L, R : System.Address) return Boo/
 +==    ruby-src/test.rb        /^        def ==(y)$/
 +===   ruby-src/test.rb        /^        def ===(y)$/
 +=\indexdummyfont      tex-src/texinfo.tex     /^\\let\\cite=\\indexdummyfont$/
 +=\relax       tex-src/texinfo.tex     /^\\let\\chapter=\\relax$/
 +=\relax       tex-src/texinfo.tex     /^\\let\\section=\\relax$/
 +=\relax       tex-src/texinfo.tex     /^\\let\\subsection=\\relax$/
 +=\relax       tex-src/texinfo.tex     /^\\let\\subsubsection=\\relax$/
 +=\relax       tex-src/texinfo.tex     /^\\let\\appendix=\\relax$/
 +=\smartitalic tex-src/texinfo.tex     /^\\let\\cite=\\smartitalic$/
 +>     tex-src/texinfo.tex     /^\\def>{{\\tt \\gtr}}$/
 +>field1       forth-src/test-forth.fth        /^   9   field   >field1$/
 +>field2       forth-src/test-forth.fth        /^   5   field   >field2$/
 +A     c.c     162
 +A     cp-src/c.C      39
 +A     cp-src/c.C      56
 +A     cp-src/c.C      57
 +A     cp-src/c.C      /^void A::A() {}$/
 +A     cp-src/c.C      73
 +A     cp-src/c.C      117
 +A     cp-src/fail.C   7
 +A     cp-src/fail.C   23
 +A     ruby-src/test1.ru       /^class A$/
 +A     ruby-src/test1.ru       /^module A$/
 +ABC   ruby-src/test1.ru       11
 +ADASRC        make-src/Makefile       /^ADASRC=etags-test-for.ada 2ataspri.adb 2ataspri.ad/
 +ADDRESS       c-src/emacs/src/gmalloc.c       /^#define ADDRESS(B)    ((void *) (((B) - 1) * BLOCKSIZ/
 +ALIGNOF_STRUCT_LISP_VECTOR    c-src/emacs/src/lisp.h  1378
 +ALLOCATED_BEFORE_DUMPING      c-src/emacs/src/gmalloc.c       /^#define ALLOCATED_BEFORE_DUMPING(P) \\$/
 +ALLOCATE_PSEUDOVECTOR c-src/emacs/src/lisp.h  /^#define ALLOCATE_PSEUDOVECTOR(type, field, tag)                       /
 +ALLOCATE_ZEROED_PSEUDOVECTOR  c-src/emacs/src/lisp.h  /^#define ALLOCATE_ZEROED_PSEUDOVECTOR(type, field, /
 +AND   y-src/cccp.c    11
 +ANSIC c-src/h.h       84
 +ANSIC c-src/h.h       85
 +AREF  c-src/emacs/src/lisp.h  /^AREF (Lisp_Object array, ptrdiff_t idx)$/
 +ARGS  make-src/Makefile       /^ARGS=- < srclist$/
 +ARITH_EQUAL   c-src/emacs/src/lisp.h  3498
 +ARITH_GRTR    c-src/emacs/src/lisp.h  3501
 +ARITH_GRTR_OR_EQUAL   c-src/emacs/src/lisp.h  3503
 +ARITH_LESS    c-src/emacs/src/lisp.h  3500
 +ARITH_LESS_OR_EQUAL   c-src/emacs/src/lisp.h  3502
 +ARITH_NOTEQUAL        c-src/emacs/src/lisp.h  3499
 +ARRAYELTS     c-src/emacs/src/lisp.h  /^#define ARRAYELTS(arr) (sizeof (arr) \/ sizeof (arr/
 +ARRAYP        c-src/emacs/src/lisp.h  /^ARRAYP (Lisp_Object x)$/
 +ARRAY_MARK_FLAG       c-src/emacs/src/lisp.h  768
 +ASCII_CHAR_P  c-src/emacs/src/lisp.h  /^#define ASCII_CHAR_P(c) UNSIGNED_CMP (c, <, 0x80)$/
 +ASET  c-src/emacs/src/lisp.h  /^ASET (Lisp_Object array, ptrdiff_t idx, Lisp_Objec/
 +ASIZE c-src/emacs/src/lisp.h  /^ASIZE (Lisp_Object array)$/
 +ASRC  make-src/Makefile       /^ASRC=empty.zz empty.zz.gz$/
 +AST_Array::AST_Array  cp-src/c.C      /^AST_Array::AST_Array(UTL_ScopedName *n, unsigned l/
 +AST_ConcreteType::AST_ConcreteType    cp-src/c.C      /^AST_ConcreteType::AST_ConcreteType(AST_Decl::NodeT/
 +AST_Root      cp-src/c.C      92
 +AT    cp-src/c.C      52
 +AU    cp-src/c.C      53
 +AUTOLOADP     c-src/emacs/src/lisp.h  /^AUTOLOADP (Lisp_Object x)$/
 +AUTO_CONS     c-src/emacs/src/lisp.h  /^#define AUTO_CONS(name, a, b) Lisp_Object name = A/
 +AUTO_CONS_EXPR        c-src/emacs/src/lisp.h  /^#define AUTO_CONS_EXPR(a, b) \\$/
 +AUTO_LIST1    c-src/emacs/src/lisp.h  /^#define AUTO_LIST1(name, a)                                           \\$/
 +AUTO_LIST2    c-src/emacs/src/lisp.h  /^#define AUTO_LIST2(name, a, b)                                                \\$/
 +AUTO_LIST3    c-src/emacs/src/lisp.h  /^#define AUTO_LIST3(name, a, b, c)                                     \\$/
 +AUTO_LIST4    c-src/emacs/src/lisp.h  /^#define AUTO_LIST4(name, a, b, c, d)                                  \\$/
 +AUTO_STRING   c-src/emacs/src/lisp.h  /^#define AUTO_STRING(name, str)                                                \\$/
 +AVAIL_ALLOCA  c-src/emacs/src/lisp.h  /^#define AVAIL_ALLOCA(size) (sa_avail -= (size), al/
 +Abort_Handler_Pointer/t       ada-src/2ataspri.ads    /^   type Abort_Handler_Pointer is access procedure /
 +Abort_Task/p  ada-src/2ataspri.adb    /^   procedure Abort_Task (T : TCB_Ptr) is$/
 +Abort_Task/p  ada-src/2ataspri.ads    /^   procedure Abort_Task (T : TCB_Ptr);$/
 +Abort_Wrapper/p       ada-src/2ataspri.adb    /^   procedure Abort_Wrapper$/
 +Abort_Wrapper/p       ada-src/2ataspri.adb    /^   procedure Abort_Wrapper$/
 +Ada_funcs     c-src/etags.c   /^Ada_funcs (FILE *inf)$/
 +Ada_getit     c-src/etags.c   /^Ada_getit (FILE *inf, const char *name_qualifier)$/
 +Ada_help      c-src/etags.c   475
 +Ada_suffixes  c-src/etags.c   473
 +AddNullToNmStr        pas-src/common.pas      /^function AddNullToNmStr; (*($/
 +Address_To_Call_State/f       ada-src/2ataspri.adb    /^      function Address_To_Call_State is new$/
 +Address_To_TCB_Ptr/f  ada-src/2ataspri.ads    /^   function Address_To_TCB_Ptr is new$/
 +Advanced usage        tex-src/gzip.texi       /^@node Advanced usage, Environment, Invoking gzip, /
 +Aligned_Cons  c-src/emacs/src/lisp.h  4670
 +Aligned_String        c-src/emacs/src/lisp.h  4676
 +AppendTextString      pas-src/common.pas      /^function AppendTextString;(*($/
 +Arith_Comparison      c-src/emacs/src/lisp.h  3497
 +Asm_help      c-src/etags.c   504
 +Asm_labels    c-src/etags.c   /^Asm_labels (FILE *inf)$/
 +Asm_suffixes  c-src/etags.c   493
 +B     cp-src/c.C      54
 +B     cp-src/c.C      56
 +B     cp-src/c.C      74
 +B     cp-src/c.C      /^void B::B() {}$/
 +B     cp-src/c.C      122
 +B     cp-src/fail.C   8
 +B     cp-src/fail.C   24
 +B     ruby-src/test1.ru       /^  class B$/
 +BE_Node       cp-src/c.C      /^void BE_Node::BE_Node() {}$/
 +BE_Node       cp-src/c.C      77
 +BITS_PER_BITS_WORD    c-src/emacs/src/lisp.h  125
 +BITS_PER_BITS_WORD    c-src/emacs/src/lisp.h  129
 +BITS_PER_CHAR c-src/emacs/src/lisp.h  136
 +BITS_PER_EMACS_INT    c-src/emacs/src/lisp.h  139
 +BITS_PER_LONG c-src/emacs/src/lisp.h  138
 +BITS_PER_SHORT        c-src/emacs/src/lisp.h  137
 +BITS_WORD_MAX c-src/emacs/src/lisp.h  124
 +BITS_WORD_MAX c-src/emacs/src/lisp.h  128
 +BLACK cp-src/screen.hpp       12
 +BLOCK c-src/emacs/src/gmalloc.c       /^#define BLOCK(A)      (((char *) (A) - _heapbase) \/ BLO/
 +BLOCKIFY      c-src/emacs/src/gmalloc.c       /^#define BLOCKIFY(SIZE)        (((SIZE) + BLOCKSIZE - 1) \//
 +BLOCKLOG      c-src/emacs/src/gmalloc.c       125
 +BLOCKSIZE     c-src/emacs/src/gmalloc.c       126
 +BLUE  cp-src/screen.hpp       13
 +BOOL_VECTOR_BITS_PER_CHAR     c-src/emacs/src/lisp.h  114
 +BOOL_VECTOR_BITS_PER_CHAR     c-src/emacs/src/lisp.h  115
 +BOOL_VECTOR_P c-src/emacs/src/lisp.h  /^BOOL_VECTOR_P (Lisp_Object a)$/
 +BROWN cp-src/screen.hpp       18
 +BUFFERP       c-src/emacs/src/lisp.h  /^BUFFERP (Lisp_Object a)$/
 +BUFFERSIZE    objc-src/Subprocess.h   43
 +BUFFER_OBJFWDP        c-src/emacs/src/lisp.h  /^BUFFER_OBJFWDP (union Lisp_Fwd *a)$/
 +BYTE_MARK_STACK       c-src/emacs/src/lisp.h  3181
 +Bar   lua-src/test.lua        /^function Square.something:Bar ()$/
 +Bar   perl-src/kai-test.pl    /^package Bar;$/
- Foo::Bar::f6  perl-src/kai-test.pl    /^sub f6 {$/
- Foo::f3       perl-src/kai-test.pl    /^sub f3 {$/
 +Barrier_Function_Pointer/t    ada-src/etags-test-for.ada      /^   type Barrier_Function_Pointer is access$/
 +Bidule/b      ada-src/etags-test-for.ada      /^  protected body Bidule is$/
 +Bidule/b      ada-src/waroquiers.ada  /^  protected body Bidule is$/
 +Bidule/t      ada-src/etags-test-for.ada      /^  protected Bidule is$/
 +Bidule/t      ada-src/waroquiers.ada  /^  protected Bidule is$/
 +Body_Required/f       ada-src/etags-test-for.ada      /^   function Body_Required$/
 +Boo   cp-src/c.C      129
 +Boo   cp-src/c.C      /^    Boo(int _i, int _a, int _b) : i(_i), a(_a), b(/
 +Boo::Boo      cp-src/c.C      /^Boo::Boo(Boo) :$/
 +ButtonBar     pyt-src/server.py       /^def ButtonBar(frame, legend, ref, alternatives, co/
 +C     cp-src/fail.C   9
 +C     cp-src/fail.C   /^                         C(int i) {x = i;}$/
 +C     cp-src/fail.C   25
 +CALLMANY      c-src/emacs/src/lisp.h  /^#define CALLMANY(f, array) (f) (ARRAYELTS (array),/
 +CALLN c-src/emacs/src/lisp.h  /^#define CALLN(f, ...) CALLMANY (f, ((Lisp_Object [/
 +CAR   c-src/emacs/src/lisp.h  /^CAR (Lisp_Object c)$/
 +CAR_SAFE      c-src/emacs/src/lisp.h  /^CAR_SAFE (Lisp_Object c)$/
 +CATCHER       c-src/emacs/src/lisp.h  3021
 +CDR   c-src/emacs/src/lisp.h  /^CDR (Lisp_Object c)$/
 +CDR_SAFE      c-src/emacs/src/lisp.h  /^CDR_SAFE (Lisp_Object c)$/
 +CFLAGS        make-src/Makefile       /^CFLAGS=${WARNINGS} -ansi -g3 # -pg -O$/
 +CHAR  c-src/etags.c   /^#define CHAR(x)               ((unsigned int)(x) & (CHARS - 1))/
 +CHAR  y-src/cccp.c    7
 +CHARACTERBITS c-src/emacs/src/lisp.h  2457
 +CHARS c-src/etags.c   157
 +CHARTAB_SIZE_BITS     c-src/emacs/src/lisp.h  1565
 +CHARTAB_SIZE_BITS_0   c-src/emacs/src/lisp.h  1567
 +CHARTAB_SIZE_BITS_1   c-src/emacs/src/lisp.h  1568
 +CHARTAB_SIZE_BITS_2   c-src/emacs/src/lisp.h  1569
 +CHARTAB_SIZE_BITS_3   c-src/emacs/src/lisp.h  1570
 +CHAR_ALT      c-src/emacs/src/lisp.h  2445
 +CHAR_CLASS_MAX_LENGTH c-src/emacs/src/regex.h 593
 +CHAR_CLASS_MAX_LENGTH c-src/emacs/src/regex.h 597
 +CHAR_CLASS_MAX_LENGTH c-src/emacs/src/regex.h 605
 +CHAR_CTL      c-src/emacs/src/lisp.h  2449
 +CHAR_HYPER    c-src/emacs/src/lisp.h  2447
 +CHAR_META     c-src/emacs/src/lisp.h  2450
 +CHAR_MODIFIER_MASK    c-src/emacs/src/lisp.h  2452
 +CHAR_SHIFT    c-src/emacs/src/lisp.h  2448
 +CHAR_SUPER    c-src/emacs/src/lisp.h  2446
 +CHAR_TABLE_EXTRA_SLOTS        c-src/emacs/src/lisp.h  /^CHAR_TABLE_EXTRA_SLOTS (struct Lisp_Char_Table *ct/
 +CHAR_TABLE_P  c-src/emacs/src/lisp.h  /^CHAR_TABLE_P (Lisp_Object a)$/
 +CHAR_TABLE_REF        c-src/emacs/src/lisp.h  /^CHAR_TABLE_REF (Lisp_Object ct, int idx)$/
 +CHAR_TABLE_REF_ASCII  c-src/emacs/src/lisp.h  /^CHAR_TABLE_REF_ASCII (Lisp_Object ct, ptrdiff_t id/
 +CHAR_TABLE_SET        c-src/emacs/src/lisp.h  /^CHAR_TABLE_SET (Lisp_Object ct, int idx, Lisp_Obje/
 +CHAR_TABLE_STANDARD_SLOTS     c-src/emacs/src/lisp.h  1697
 +CHAR_TYPE_SIZE        cccp.y  87
 +CHAR_TYPE_SIZE        y-src/cccp.y    87
 +CHECKFLAGS    make-src/Makefile       /^CHECKFLAGS=-DDEBUG -Wno-unused-function$/
 +CHECKOBJS     make-src/Makefile       /^CHECKOBJS=chkmalloc.o chkxm.o$/
 +CHECK_ARRAY   c-src/emacs/src/lisp.h  /^CHECK_ARRAY (Lisp_Object x, Lisp_Object predicate)/
 +CHECK_BOOL_VECTOR     c-src/emacs/src/lisp.h  /^CHECK_BOOL_VECTOR (Lisp_Object x)$/
 +CHECK_BUFFER  c-src/emacs/src/lisp.h  /^CHECK_BUFFER (Lisp_Object x)$/
 +CHECK_CONS    c-src/emacs/src/lisp.h  /^CHECK_CONS (Lisp_Object x)$/
 +CHECK_LISP_OBJECT_TYPE        c-src/emacs/src/lisp.h  571
 +CHECK_LISP_OBJECT_TYPE        c-src/emacs/src/lisp.h  572
 +CHECK_LISP_OBJECT_TYPE        c-src/emacs/src/lisp.h  572
 +CHECK_LISP_OBJECT_TYPE        c-src/emacs/src/lisp.h  579
 +CHECK_LISP_OBJECT_TYPE        c-src/emacs/src/lisp.h  579
 +CHECK_LIST    c-src/emacs/src/lisp.h  /^CHECK_LIST (Lisp_Object x)$/
 +CHECK_LIST_CONS       c-src/emacs/src/lisp.h  /^# define CHECK_LIST_CONS(x, y) lisp_h_CHECK_LIST_C/
 +CHECK_NATNUM  c-src/emacs/src/lisp.h  /^CHECK_NATNUM (Lisp_Object x)$/
 +CHECK_NUMBER  c-src/emacs/src/lisp.h  /^# define CHECK_NUMBER(x) lisp_h_CHECK_NUMBER (x)$/
 +CHECK_NUMBER_CAR      c-src/emacs/src/lisp.h  /^CHECK_NUMBER_CAR (Lisp_Object x)$/
 +CHECK_NUMBER_CDR      c-src/emacs/src/lisp.h  /^CHECK_NUMBER_CDR (Lisp_Object x)$/
 +CHECK_NUMBER_COERCE_MARKER    c-src/emacs/src/lisp.h  /^#define CHECK_NUMBER_COERCE_MARKER(x)                                 \\$/
 +CHECK_NUMBER_OR_FLOAT c-src/emacs/src/lisp.h  /^CHECK_NUMBER_OR_FLOAT (Lisp_Object x)$/
 +CHECK_NUMBER_OR_FLOAT_COERCE_MARKER   c-src/emacs/src/lisp.h  /^#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(x)                                /
 +CHECK_PROCESS c-src/emacs/src/lisp.h  /^CHECK_PROCESS (Lisp_Object x)$/
 +CHECK_RANGED_INTEGER  c-src/emacs/src/lisp.h  /^#define CHECK_RANGED_INTEGER(x, lo, hi)                                       \\$/
 +CHECK_STRING_CAR      c-src/emacs/src/lisp.h  /^CHECK_STRING_CAR (Lisp_Object x)$/
 +CHECK_SYMBOL  c-src/emacs/src/lisp.h  /^# define CHECK_SYMBOL(x) lisp_h_CHECK_SYMBOL (x)$/
 +CHECK_TYPE    c-src/emacs/src/lisp.h  /^# define CHECK_TYPE(ok, predicate, x) lisp_h_CHECK/
 +CHECK_TYPE_RANGED_INTEGER     c-src/emacs/src/lisp.h  /^#define CHECK_TYPE_RANGED_INTEGER(type, x) \\$/
 +CHECK_VECTOR  c-src/emacs/src/lisp.h  /^CHECK_VECTOR (Lisp_Object x)$/
 +CHECK_VECTOR_OR_STRING        c-src/emacs/src/lisp.h  /^CHECK_VECTOR_OR_STRING (Lisp_Object x)$/
 +CHECK_WINDOW  c-src/emacs/src/lisp.h  /^CHECK_WINDOW (Lisp_Object x)$/
 +CK_ABS_C      y-src/parse.y   /^#define CK_ABS_C(x)   if((x)<MIN_COL || (x)>MAX_COL)/
 +CK_ABS_C      parse.y /^#define CK_ABS_C(x)   if((x)<MIN_COL || (x)>MAX_COL)/
 +CK_ABS_R      y-src/parse.y   /^#define CK_ABS_R(x)   if((x)<MIN_ROW || (x)>MAX_ROW)/
 +CK_ABS_R      parse.y /^#define CK_ABS_R(x)   if((x)<MIN_ROW || (x)>MAX_ROW)/
 +CK_REL_C      y-src/parse.y   /^#define CK_REL_C(x)   if(   ((x)>0 && MAX_COL-(x)<cu/
 +CK_REL_C      parse.y /^#define CK_REL_C(x)   if(   ((x)>0 && MAX_COL-(x)<cu/
 +CK_REL_R      y-src/parse.y   /^#define CK_REL_R(x)   if(   ((x)>0 && MAX_ROW-(x)<cu/
 +CK_REL_R      parse.y /^#define CK_REL_R(x)   if(   ((x)>0 && MAX_ROW-(x)<cu/
 +CMultiChannelCSC19_3D cp-src/c.C      2
 +CNL   c-src/etags.c   /^#define CNL()                                                         \\$/
 +CNL_SAVE_DEFINEDEF    c-src/etags.c   /^#define CNL_SAVE_DEFINEDEF()                                          \\$/
 +COBOLFLAGS    make-src/Makefile       /^COBOLFLAGS=--language=none --regex='\/.......[a-zA-/
 +COLORS        cp-src/screen.hpp       11
 +COMPILEDP     c-src/emacs/src/lisp.h  /^COMPILEDP (Lisp_Object a)$/
 +COMPILED_ARGLIST      c-src/emacs/src/lisp.h  2431
 +COMPILED_BYTECODE     c-src/emacs/src/lisp.h  2432
 +COMPILED_CONSTANTS    c-src/emacs/src/lisp.h  2433
 +COMPILED_DOC_STRING   c-src/emacs/src/lisp.h  2435
 +COMPILED_INTERACTIVE  c-src/emacs/src/lisp.h  2436
 +COMPILED_STACK_DEPTH  c-src/emacs/src/lisp.h  2434
 +CONDITION_CASE        c-src/emacs/src/lisp.h  3021
 +CONSP c-src/emacs/src/lisp.h  /^# define CONSP(x) lisp_h_CONSP (x)$/
 +CONSTYPE_HEAP c-src/emacs/src/lisp.h  3739
 +CONSTYPE_PURE c-src/emacs/src/lisp.h  3739
 +CONS_TO_INTEGER       c-src/emacs/src/lisp.h  /^#define CONS_TO_INTEGER(cons, type, var)                              \\$/
 +CONVERT_CHARSTRING_TO_VALUE   pas-src/common.pas      /^procedure CONVERT_CHARSTRING_TO_VALUE;(*($/
 +CPPFLAGS      make-src/Makefile       /^CPPFLAGS=${CHECKFLAGS} -DSTDC_HEADERS -DHAVE_GETCW/
 +CPSRC make-src/Makefile       /^CPSRC=c.C abstract.C abstract.H cfront.H burton.cp/
 +CSRC  make-src/Makefile       /^CSRC=abbrev.c ..\/etags\/h.h .\/\/c.c torture.c getopt/
 +CTAGS c-src/etags.c   146
 +CTAGS c-src/etags.c   147
 +CTAGS c-src/etags.c   149
 +CTAGS make-src/Makefile       /^CTAGS: ctags ${infiles}$/
 +CTAGS%        make-src/Makefile       /^CTAGS%: ctags% ${infiles}$/
 +CTAGS13 CTAGS14 CTAGS15       make-src/Makefile       /^CTAGS13 CTAGS14 CTAGS15: ctags% ${infiles}$/
 +CYAN  cp-src/screen.hpp       15
 +C_AUTO        c-src/etags.c   2198
 +C_EXT c-src/etags.c   2193
 +C_JAVA        c-src/etags.c   2197
 +C_PLAIN       c-src/etags.c   2194
 +C_PLPL        c-src/etags.c   2195
 +C_STAR        c-src/etags.c   2196
 +C_entries     c-src/etags.c   /^C_entries (int c_ext, FILE *inf)$/
 +C_stab_entry  c-src/etags.c   2271
 +C_symtype     c-src/etags.c   /^C_symtype (char *str, int len, int c_ext)$/
 +ChangeFileType        pas-src/common.pas      /^function ChangeFileType; (*(FileName : NameString;/
 +Circle.getPos lua-src/test.lua        /^function Circle.getPos ()$/
 +Cjava_entries c-src/etags.c   /^Cjava_entries (FILE *inf)$/
 +Cjava_help    c-src/etags.c   551
 +Cjava_suffixes        c-src/etags.c   549
 +ClassExample  ruby-src/test.rb        /^    class ClassExample$/
 +Clear/p       ada-src/2ataspri.adb    /^   procedure Clear (Cell : in out TAS_Cell) is$/
 +Clear/p       ada-src/2ataspri.ads    /^   procedure Clear        (Cell : in out TAS_Cell)/
 +Cobol_help    c-src/etags.c   558
 +Cobol_paragraphs      c-src/etags.c   /^Cobol_paragraphs (FILE *inf)$/
 +Cobol_suffixes        c-src/etags.c   556
 +CommentAD     php-src/lce_functions.php       70
 +CommentAD     php-src/lce_functions.php       /^      function CommentAD($/
 +ConcatT       pas-src/common.pas      /^function ConcatT;(*($/
 +Concept Index tex-src/gzip.texi       /^@node Concept Index, , Problems, Top$/
 +Cond_Signal/p ada-src/2ataspri.adb    /^   procedure Cond_Signal (Cond : in out Condition_/
 +Cond_Signal/p ada-src/2ataspri.ads    /^   procedure Cond_Signal (Cond : in out Condition_/
 +Cond_Timed_Wait/p     ada-src/2ataspri.adb    /^   procedure Cond_Timed_Wait$/
 +Cond_Timed_Wait/p     ada-src/2ataspri.ads    /^   procedure Cond_Timed_Wait$/
 +Cond_Wait/p   ada-src/2ataspri.adb    /^   procedure Cond_Wait (Cond : in out Condition_Va/
 +Cond_Wait/p   ada-src/2ataspri.ads    /^   procedure Cond_Wait (Cond : in out Condition_Va/
 +Condition_Variable/t  ada-src/2ataspri.ads    /^   type Condition_Variable is private;$/
 +Condition_Variable/t  ada-src/2ataspri.ads    /^   type Condition_Variable is$/
 +Configure     pyt-src/server.py       /^class Configure(Frame, ControlEdit):$/
 +ConfirmQuit   pyt-src/server.py       /^def ConfirmQuit(frame, context):$/
 +Constant      ruby-src/test1.ru       42
 +ControlEdit   pyt-src/server.py       /^class ControlEdit(Frame):$/
 +Controls      pyt-src/server.py       /^class Controls:$/
 +CopyTextString        pas-src/common.pas      /^function CopyTextString;(*($/
 +Copying       tex-src/gzip.texi       /^@node Copying, Overview, , Top$/
 +Cplusplus_entries     c-src/etags.c   /^Cplusplus_entries (FILE *inf)$/
 +Cplusplus_help        c-src/etags.c   540
 +Cplusplus_suffixes    c-src/etags.c   535
 +Create_LL_Task/p      ada-src/2ataspri.adb    /^   procedure Create_LL_Task$/
 +Create_LL_Task/p      ada-src/2ataspri.ads    /^   procedure Create_LL_Task$/
 +Cstar_entries c-src/etags.c   /^Cstar_entries (FILE *inf)$/
 +Cstar_suffixes        c-src/etags.c   562
 +Cube.data.getFoo      lua-src/test.lua        /^function Cube.data.getFoo ()$/
 +D     cp-src/fail.C   41
 +D     cp-src/fail.C   /^              D() : ::A::T2::T(97), x(1066) {}$/
 +DAEMON_RUNNING        c-src/emacs/src/lisp.h  4258
 +DAEMON_RUNNING        c-src/emacs/src/lisp.h  4262
 +DARKGRAY      cp-src/screen.hpp       20
 +DEAFUN        c.c     /^DEAFUN ("expand-file-name", Fexpand_file_name, Sex/
 +DEBUG c-src/etags.c   84
 +DEBUG c-src/etags.c   85
 +DEBUG c-src/etags.c   87
 +DEBUG objc-src/PackInsp.m     37
 +DECLARE_GDB_SYM       c-src/emacs/src/lisp.h  /^#define DECLARE_GDB_SYM(type, id) type const id EX/
 +DEFAULT_HASH_SIZE     c-src/emacs/src/lisp.h  1940
 +DEFAULT_HASH_SIZE     c-src/emacs/src/lisp.h  1940
 +DEFAULT_REHASH_SIZE   c-src/emacs/src/lisp.h  1950
 +DEFAULT_REHASH_THRESHOLD      c-src/emacs/src/lisp.h  1946
 +DEFINE_GDB_SYMBOL_BEGIN       c-src/emacs/src/lisp.h  /^# define DEFINE_GDB_SYMBOL_BEGIN(type, id) DECLARE/
 +DEFINE_GDB_SYMBOL_BEGIN       c-src/emacs/src/lisp.h  /^# define DEFINE_GDB_SYMBOL_BEGIN(type, id) extern /
 +DEFINE_GDB_SYMBOL_END c-src/emacs/src/lisp.h  /^# define DEFINE_GDB_SYMBOL_END(id) = id;$/
 +DEFINE_GDB_SYMBOL_END c-src/emacs/src/lisp.h  /^# define DEFINE_GDB_SYMBOL_END(val) ;$/
 +DEFINE_LISP_SYMBOL    c-src/emacs/src/lisp.h  /^#define DEFINE_LISP_SYMBOL(name) \\$/
 +DEFINE_NON_NIL_Q_SYMBOL_MACROS        c-src/emacs/src/lisp.h  755
 +DEFSYM        c-src/emacs/src/lisp.h  /^#define DEFSYM(sym, name) \/* empty *\/$/
 +DEFSYM        c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN (SYMBOL_CONSTANT_P, int, (Lisp_Ob/
 +DEFUN c-src/emacs/src/lisp.h  /^#define DEFUN(lname, fnname, sname, minargs, maxar/
 +DEFUN c-src/emacs/src/lisp.h  /^#define DEFUN(lname, fnname, sname, minargs, maxar/
 +DEFUN_ARGS_0  c-src/emacs/src/lisp.h  714
 +DEFUN_ARGS_1  c-src/emacs/src/lisp.h  715
 +DEFUN_ARGS_2  c-src/emacs/src/lisp.h  716
 +DEFUN_ARGS_3  c-src/emacs/src/lisp.h  717
 +DEFUN_ARGS_4  c-src/emacs/src/lisp.h  718
 +DEFUN_ARGS_5  c-src/emacs/src/lisp.h  719
 +DEFUN_ARGS_6  c-src/emacs/src/lisp.h  721
 +DEFUN_ARGS_7  c-src/emacs/src/lisp.h  723
 +DEFUN_ARGS_8  c-src/emacs/src/lisp.h  725
 +DEFUN_ARGS_MANY       c-src/emacs/src/lisp.h  712
 +DEFUN_ARGS_UNEVALLED  c-src/emacs/src/lisp.h  713
 +DEFUN_func2   c.c     /^DEFUN_func2()$/
 +DEFVAR_BOOL   c-src/emacs/src/lisp.h  /^#define DEFVAR_BOOL(lname, vname, doc)                \\$/
 +DEFVAR_BUFFER_DEFAULTS        c-src/emacs/src/lisp.h  /^#define DEFVAR_BUFFER_DEFAULTS(lname, vname, doc)     /
 +DEFVAR_INT    c-src/emacs/src/lisp.h  /^#define DEFVAR_INT(lname, vname, doc)         \\$/
 +DEFVAR_KBOARD c-src/emacs/src/lisp.h  /^#define DEFVAR_KBOARD(lname, vname, doc)                      \\$/
 +DEFVAR_LISP   c-src/emacs/src/lisp.h  /^#define DEFVAR_LISP(lname, vname, doc)                \\$/
 +DEFVAR_LISP_NOPRO     c-src/emacs/src/lisp.h  /^#define DEFVAR_LISP_NOPRO(lname, vname, doc)  \\$/
 +DEVICE_LAST   c-src/h.h       24
 +DEVICE_SWP    c-src/h.h       23
 +DOS_NT        c-src/etags.c   117
 +DOS_NT        c-src/etags.c   118
 +DUMPED        c-src/emacs/src/gmalloc.c       80
 +Debug cp-src/functions.cpp    /^void Debug ( int lineno, int level, char* func , c/
 +Def_  ruby-src/test1.ru       12
 +DisposeANameList      pas-src/common.pas      /^procedure DisposeANameList( $/
 +DisposeNameList       pas-src/common.pas      /^procedure DisposeNameList;$/
 +ELEM_I        c-src/h.h       3
 +ELSRC make-src/Makefile       /^ELSRC=TAGTEST.EL emacs\/lisp\/progmodes\/etags.el$/
 +EMACS_INT     c-src/emacs/src/lisp.h  91
 +EMACS_INT     c-src/emacs/src/lisp.h  96
 +EMACS_INT     c-src/emacs/src/lisp.h  103
 +EMACS_INT_MAX c-src/emacs/src/lisp.h  93
 +EMACS_INT_MAX c-src/emacs/src/lisp.h  98
 +EMACS_INT_MAX c-src/emacs/src/lisp.h  105
 +EMACS_LISP_H  c-src/emacs/src/lisp.h  22
 +EMACS_NAME    c-src/etags.c   786
 +EMACS_UINT    c-src/emacs/src/lisp.h  92
 +EMACS_UINT    c-src/emacs/src/lisp.h  97
 +EMACS_UINT    c-src/emacs/src/lisp.h  104
 +ENTRY c-src/sysdep.h  /^#define       ENTRY(name)                                                           \\$/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^#define ENUM_BF(TYPE) unsigned int$/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^#define ENUM_BF(TYPE) enum TYPE$/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^  ENUM_BF (symbol_redirect) redirect : 3;$/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^  ENUM_BF (Lisp_Misc_Type) type : 16;         \/* = Lisp_M/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^  ENUM_BF (Lisp_Misc_Type) type : 16;         \/* = Lisp_M/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^    ENUM_BF (Lisp_Misc_Type) type : 16;       \/* = Lisp_/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^    ENUM_BF (Lisp_Misc_Type) type : 16;       \/* = Lisp_/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^    ENUM_BF (Lisp_Misc_Type) type : 16;       \/* = Lisp_/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^    ENUM_BF (specbind_tag) kind : CHAR_BIT;$/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^      ENUM_BF (specbind_tag) kind : CHAR_BIT;$/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^      ENUM_BF (specbind_tag) kind : CHAR_BIT;$/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^      ENUM_BF (specbind_tag) kind : CHAR_BIT;$/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^      ENUM_BF (specbind_tag) kind : CHAR_BIT;$/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^      ENUM_BF (specbind_tag) kind : CHAR_BIT;$/
 +ENUM_BF       c-src/emacs/src/lisp.h  /^      ENUM_BF (specbind_tag) kind : CHAR_BIT;$/
 +EQ    c-src/emacs/src/lisp.h  /^# define EQ(x, y) lisp_h_EQ (x, y)$/
 +EQUAL y-src/cccp.c    12
 +ERLSRC        make-src/Makefile       /^ERLSRC=gs_dialog.erl lines.erl lists.erl$/
 +ERROR y-src/parse.y   303
 +ERROR parse.y 303
 +ERROR y-src/cccp.c    9
 +ETAGS make-src/Makefile       /^ETAGS: FRC etags ${infiles}$/
 +ETAGS%        make-src/Makefile       /^ETAGS%: FRC etags% ${infiles}$/
 +ETAGS12       make-src/Makefile       /^ETAGS12: etags12 ${infiles}$/
 +ETAGS13 ETAGS14 ETAGS15       make-src/Makefile       /^ETAGS13 ETAGS14 ETAGS15: etags% ${infiles}$/
 +EXFUN c-src/emacs/src/lisp.h  /^#define EXFUN(fnname, maxargs) \\$/
 +EXTAGS        make-src/Makefile       /^EXTAGS: extags ${infiles} Makefile$/
 +EXTERNALLY_VISIBLE    c-src/emacs/src/keyboard.c      3497
 +EXTERNALLY_VISIBLE    c-src/emacs/src/keyboard.c      4372
 +EmptyNmStr    pas-src/common.pas      /^function EmptyNmStr(* : NameString*);$/
 +Environment   tex-src/gzip.texi       /^@node Environment, Tapes, Advanced usage, Top$/
 +Erlang_functions      c-src/etags.c   /^Erlang_functions (FILE *inf)$/
 +Erlang_help   c-src/etags.c   567
 +Erlang_suffixes       c-src/etags.c   565
 +ErrStrToNmStr pas-src/common.pas      /^function ErrStrToNmStr;(*($/
 +Error_Information/t   ada-src/2ataspri.ads    /^   type Error_Information is new Interfaces.C.POSI/
 +Exit_LL_Task/p        ada-src/2ataspri.adb    /^   procedure Exit_LL_Task is$/
 +Exit_LL_Task/p        ada-src/2ataspri.ads    /^   procedure Exit_LL_Task;$/
 +ExtractCommentInfo    pas-src/common.pas      /^procedure ExtractCommentInfo; (*($/
 +FASTCFLAGS    make-src/Makefile       /^FASTCFLAGS=-O3 -finline-functions -ffast-math -fun/
 +FASTCFLAGSWARN        make-src/Makefile       /^FASTCFLAGSWARN=${WARNINGS} -Werror ${FASTCFLAGS}$/
 +FILTER        make-src/Makefile       /^FILTER=grep -v '\\.[Cchefy][lor]*,[1-9][0-9]*' || t/
 +FINALIZERP    c-src/emacs/src/lisp.h  /^FINALIZERP (Lisp_Object x)$/
 +FINAL_FREE_BLOCKS     c-src/emacs/src/gmalloc.c       135
 +FIXNUM_BITS   c-src/emacs/src/lisp.h  252
 +FIXNUM_OVERFLOW_P     c-src/emacs/src/lisp.h  /^#define FIXNUM_OVERFLOW_P(i) \\$/
 +FIXNUM_OVERFLOW_P     c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN (EQ, bool, (Lisp_Object x, Lisp_O/
 +FLOATP        c-src/emacs/src/lisp.h  /^# define FLOATP(x) lisp_h_FLOATP (x)$/
 +FLOAT_TO_STRING_BUFSIZE       c-src/emacs/src/lisp.h  3927
 +FORTHSRC      make-src/Makefile       /^FORTHSRC=test-forth.fth$/
 +FOR_EACH_ALIST_VALUE  c-src/emacs/src/lisp.h  /^#define FOR_EACH_ALIST_VALUE(head_var, list_var, v/
 +FOR_EACH_TAIL c-src/emacs/src/lisp.h  /^#define FOR_EACH_TAIL(hare, list, tortoise, n)        \\$/
 +FRAMEP        c-src/emacs/src/lisp.h  /^FRAMEP (Lisp_Object a)$/
 +FRC   make-src/Makefile       /^FRC:;$/
 +FREEFLOOD     c-src/emacs/src/gmalloc.c       1858
 +FSRC  make-src/Makefile       /^FSRC=entry.for entry.strange_suffix entry.strange$/
 +FUN0  y-src/parse.y   /^yylex FUN0()$/
 +FUN0  parse.y /^yylex FUN0()$/
 +FUN1  y-src/parse.y   /^yyerror FUN1(char *, s)$/
 +FUN1  y-src/parse.y   /^str_to_col FUN1(char **,str)$/
 +FUN1  parse.y /^yyerror FUN1(char *, s)$/
 +FUN1  parse.y /^str_to_col FUN1(char **,str)$/
 +FUN2  y-src/parse.y   /^make_list FUN2(YYSTYPE, car, YYSTYPE, cdr)$/
 +FUN2  y-src/parse.y   /^parse_cell_or_range FUN2(char **,ptr, struct rng */
 +FUN2  parse.y /^make_list FUN2(YYSTYPE, car, YYSTYPE, cdr)$/
 +FUN2  parse.y /^parse_cell_or_range FUN2(char **,ptr, struct rng */
 +FUNCTIONP     c-src/emacs/src/lisp.h  /^FUNCTIONP (Lisp_Object obj)$/
 +FUNCTION_KEY_OFFSET   c-src/emacs/src/keyboard.c      4766
 +FUNCTION_KEY_OFFSET   c-src/emacs/src/keyboard.c      5061
 +F_getit       c-src/etags.c   /^F_getit (FILE *inf)$/
 +F_takeprec    c-src/etags.c   /^F_takeprec (void)$/
 +Fails_t       c-src/h.h       5
 +Finalize_Cond/p       ada-src/2ataspri.adb    /^   procedure Finalize_Cond (Cond : in out Conditio/
 +Finalize_Cond/p       ada-src/2ataspri.ads    /^   procedure Finalize_Cond (Cond : in out Conditio/
 +Finalize_Lock/p       ada-src/2ataspri.adb    /^   procedure Finalize_Lock (L : in out Lock) is$/
 +Finalize_Lock/p       ada-src/2ataspri.ads    /^   procedure Finalize_Lock (L : in out Lock);$/
 +Finalize_TAS_Cell/p   ada-src/2ataspri.adb    /^   procedure Finalize_TAS_Cell (Cell : in out TAS_/
 +Finalize_TAS_Cell/p   ada-src/2ataspri.ads    /^   procedure Finalize_TAS_Cell   (Cell : in out TA/
 +First100Chars pas-src/common.pas      /^procedure First100Chars; (*($/
 +Foo   perl-src/kai-test.pl    /^package Foo;$/
 +Foo::Bar      perl-src/kai-test.pl    /^package Foo::Bar;$/
- main::f1      perl-src/kai-test.pl    /^sub f1 {$/
- main::f2      perl-src/kai-test.pl    /^sub main::f2 {$/
- main::f7      perl-src/kai-test.pl    /^sub f7 {$/
- main::file_end        perl-src/htlmify-cystic /^sub file_end ()$/
- main::finish_appendices       perl-src/htlmify-cystic /^sub finish_appendices ()$/
- main::finish_sections perl-src/htlmify-cystic /^sub finish_sections ()$/
- main::finish_subsections      perl-src/htlmify-cystic /^sub finish_subsections ()$/
- main::finish_subsubsections   perl-src/htlmify-cystic /^sub finish_subsubsections ()$/
- main::getopt  perl-src/yagrip.pl      /^sub getopt {$/
- main::read_toc        perl-src/htlmify-cystic /^sub read_toc ()$/
- main::section_href    perl-src/htlmify-cystic /^sub section_href ($)$/
- main::section_name    perl-src/htlmify-cystic /^sub section_name ($)$/
- main::section_url     perl-src/htlmify-cystic /^sub section_url ()$/
- main::section_url_base        perl-src/htlmify-cystic /^sub section_url_base ()$/
- main::section_url_name        perl-src/htlmify-cystic /^sub section_url_name ()$/
- main::toc_line        perl-src/htlmify-cystic /^sub toc_line ($)$/
- main::usage   perl-src/yagrip.pl      /^sub usage {$/
 +Forth_help    c-src/etags.c   573
 +Forth_suffixes        c-src/etags.c   571
 +Forth_words   c-src/etags.c   /^Forth_words (FILE *inf)$/
 +Fortran_functions     c-src/etags.c   /^Fortran_functions (FILE *inf)$/
 +Fortran_help  c-src/etags.c   579
 +Fortran_suffixes      c-src/etags.c   577
 +GCALIGNED     c-src/emacs/src/lisp.h  288
 +GCALIGNED     c-src/emacs/src/lisp.h  290
 +GCALIGNMENT   c-src/emacs/src/lisp.h  243
 +GCPRO1        c-src/emacs/src/lisp.h  /^#define GCPRO1(varname) ((void) gcpro1)$/
 +GCPRO1        c-src/emacs/src/lisp.h  /^#define GCPRO1(a)                                                     \\$/
 +GCPRO1        c-src/emacs/src/lisp.h  /^#define GCPRO1(a)                                                     \\$/
 +GCPRO2        c-src/emacs/src/lisp.h  /^#define GCPRO2(varname1, varname2) ((void) gcpro2,/
 +GCPRO2        c-src/emacs/src/lisp.h  /^#define GCPRO2(a, b)                                                  \\$/
 +GCPRO2        c-src/emacs/src/lisp.h  /^#define GCPRO2(a, b)                                                  \\$/
 +GCPRO3        c-src/emacs/src/lisp.h  /^#define GCPRO3(varname1, varname2, varname3) \\$/
 +GCPRO3        c-src/emacs/src/lisp.h  /^#define GCPRO3(a, b, c)                                                       \\$/
 +GCPRO3        c-src/emacs/src/lisp.h  /^#define GCPRO3(a, b, c)                                                       \\$/
 +GCPRO4        c-src/emacs/src/lisp.h  /^#define GCPRO4(varname1, varname2, varname3, varna/
 +GCPRO4        c-src/emacs/src/lisp.h  /^#define GCPRO4(a, b, c, d)                                            \\$/
 +GCPRO4        c-src/emacs/src/lisp.h  /^#define GCPRO4(a, b, c, d)                                            \\$/
 +GCPRO5        c-src/emacs/src/lisp.h  /^#define GCPRO5(varname1, varname2, varname3, varna/
 +GCPRO5        c-src/emacs/src/lisp.h  /^#define GCPRO5(a, b, c, d, e)                                         \\$/
 +GCPRO5        c-src/emacs/src/lisp.h  /^#define GCPRO5(a, b, c, d, e)                                         \\$/
 +GCPRO6        c-src/emacs/src/lisp.h  /^#define GCPRO6(varname1, varname2, varname3, varna/
 +GCPRO6        c-src/emacs/src/lisp.h  /^#define GCPRO6(a, b, c, d, e, f)                                      \\$/
 +GCPRO6        c-src/emacs/src/lisp.h  /^#define GCPRO6(a, b, c, d, e, f)                                      \\$/
 +GCPRO7        c-src/emacs/src/lisp.h  /^#define GCPRO7(a, b, c, d, e, f, g) (GCPRO6 (a, b,/
 +GCPRO7        c-src/emacs/src/lisp.h  /^#define GCPRO7(a, b, c, d, e, f, g)                                   \\$/
 +GCPRO7        c-src/emacs/src/lisp.h  /^#define GCPRO7(a, b, c, d, e, f, g)                                   \\$/
 +GCTYPEBITS    c-src/emacs/src/lisp.h  67
 +GCTYPEBITS    c-src/emacs/src/lisp.h  /^DEFINE_GDB_SYMBOL_BEGIN (int, GCTYPEBITS)$/
 +GC_MAKE_GCPROS_NOOPS  c-src/emacs/src/lisp.h  3172
 +GC_MARK_STACK c-src/emacs/src/lisp.h  3177
 +GC_MARK_STACK_CHECK_GCPROS    c-src/emacs/src/lisp.h  3173
 +GC_USE_GCPROS_AS_BEFORE       c-src/emacs/src/lisp.h  3171
 +GC_USE_GCPROS_CHECK_ZOMBIES   c-src/emacs/src/lisp.h  3174
 +GE    y-src/parse.c   8
 +GENERIC_PTR   cccp.y  56
 +GENERIC_PTR   cccp.y  58
 +GENERIC_PTR   y-src/cccp.y    56
 +GENERIC_PTR   y-src/cccp.y    58
 +GEQ   y-src/cccp.c    15
 +GETOPTOBJS    make-src/Makefile       /^GETOPTOBJS= #getopt.o getopt1.o$/
 +GREEN cp-src/screen.hpp       14
 +GROW_RAW_KEYBUF       c-src/emacs/src/keyboard.c      119
 +GatherControls        pyt-src/server.py       /^    def GatherControls(self):$/
 +GetLayerByName        lua-src/allegro.lua     /^function GetLayerByName (name)$/
 +GetNameList   pas-src/common.pas      /^function GetNameList; (* : BinNodePointer;*)$/
 +GetNewNameListNode    pas-src/common.pas      /^function GetNewNameListNode;(*($/
 +GetTextRef    pas-src/common.pas      /^function GetTextRef;(*($/
 +GetUniqueLayerName    lua-src/allegro.lua     /^function GetUniqueLayerName ()$/
 +Get_Own_Priority/f    ada-src/2ataspri.adb    /^   function Get_Own_Priority return System.Any_Pri/
 +Get_Own_Priority/f    ada-src/2ataspri.ads    /^   function Get_Own_Priority return System.Any_Pri/
 +Get_Priority/f        ada-src/2ataspri.adb    /^   function Get_Priority (T : TCB_Ptr) return Syst/
 +Get_Priority/f        ada-src/2ataspri.ads    /^   function Get_Priority (T : TCB_Ptr) return Syst/
 +HASH_HASH     c-src/emacs/src/lisp.h  /^HASH_HASH (struct Lisp_Hash_Table *h, ptrdiff_t id/
 +HASH_INDEX    c-src/emacs/src/lisp.h  /^HASH_INDEX (struct Lisp_Hash_Table *h, ptrdiff_t i/
 +HASH_KEY      c-src/emacs/src/lisp.h  /^HASH_KEY (struct Lisp_Hash_Table *h, ptrdiff_t idx/
 +HASH_NEXT     c-src/emacs/src/lisp.h  /^HASH_NEXT (struct Lisp_Hash_Table *h, ptrdiff_t id/
 +HASH_TABLE_P  c-src/emacs/src/lisp.h  /^HASH_TABLE_P (Lisp_Object a)$/
 +HASH_TABLE_SIZE       c-src/emacs/src/lisp.h  /^HASH_TABLE_SIZE (struct Lisp_Hash_Table *h)$/
 +HASH_VALUE    c-src/emacs/src/lisp.h  /^HASH_VALUE (struct Lisp_Hash_Table *h, ptrdiff_t i/
 +HAVE_NTGUI    c-src/etags.c   116
 +HEAP  c-src/emacs/src/gmalloc.c       131
 +HTMLSRC       make-src/Makefile       /^HTMLSRC=softwarelibero.html index.shtml algrthms.h/
 +HTML_help     c-src/etags.c   584
 +HTML_labels   c-src/etags.c   /^HTML_labels (FILE *inf)$/
 +HTML_suffixes c-src/etags.c   582
 +IEEE_FLOATING_POINT   c-src/emacs/src/lisp.h  2415
 +IMAGEP        c-src/emacs/src/lisp.h  /^IMAGEP (Lisp_Object x)$/
 +INPUT_EVENT_POS_MAX   c-src/emacs/src/keyboard.c      3698
 +INPUT_EVENT_POS_MIN   c-src/emacs/src/keyboard.c      3701
 +INSERT_TREE_NODE      pas-src/common.pas      /^procedure INSERT_TREE_NODE;(*( $/
 +INSTANTIATE_MDIAGARRAY_FRIENDS        cp-src/MDiagArray2.h    /^#define INSTANTIATE_MDIAGARRAY_FRIENDS(T) \\$/
 +INT   c-src/h.h       32
 +INT   y-src/cccp.c    6
 +INTEGERP      c-src/emacs/src/lisp.h  /^# define INTEGERP(x) lisp_h_INTEGERP (x)$/
 +INTEGER_TO_CONS       c-src/emacs/src/lisp.h  /^#define INTEGER_TO_CONS(i)                                        \\$/
 +INTERVAL      c-src/emacs/src/lisp.h  1149
 +INTMASK       c-src/emacs/src/lisp.h  437
 +INTTYPEBITS   c-src/emacs/src/lisp.h  249
 +INT_BIT       c-src/emacs/src/gmalloc.c       124
 +INT_TYPE_SIZE cccp.y  91
 +INT_TYPE_SIZE y-src/cccp.y    91
 +ISALNUM       c-src/etags.c   /^#define ISALNUM(c)    isalnum (CHAR (c))$/
 +ISALPHA       c-src/etags.c   /^#define ISALPHA(c)    isalpha (CHAR (c))$/
 +ISDIGIT       c-src/etags.c   /^#define ISDIGIT(c)    isdigit (CHAR (c))$/
 +ISLOWER       c-src/etags.c   /^#define ISLOWER(c)    islower (CHAR (c))$/
 +ISO_FUNCTION_KEY_OFFSET       c-src/emacs/src/keyboard.c      5149
 +ISUPPER       c-src/etags.c   /^# define ISUPPER(c)   isupper (CHAR (c))$/
 +IS_DAEMON     c-src/emacs/src/lisp.h  4257
 +IS_DAEMON     c-src/emacs/src/lisp.h  4261
 +InitNameList  pas-src/common.pas      /^procedure InitNameList;$/
 +InitNameStringPool    pas-src/common.pas      /^procedure InitNameStringPool;$/
 +InitializeStringPackage       pas-src/common.pas      /^procedure InitializeStringPackage;$/
 +Initialize_Cond/p     ada-src/2ataspri.adb    /^   procedure Initialize_Cond (Cond : in out Condit/
 +Initialize_Cond/p     ada-src/2ataspri.ads    /^   procedure Initialize_Cond (Cond : in out Condit/
 +Initialize_LL_Tasks/p ada-src/2ataspri.adb    /^   procedure Initialize_LL_Tasks (T : TCB_Ptr) is$/
 +Initialize_LL_Tasks/p ada-src/2ataspri.ads    /^   procedure Initialize_LL_Tasks (T : TCB_Ptr);$/
 +Initialize_Lock/p     ada-src/2ataspri.adb    /^   procedure Initialize_Lock$/
 +Initialize_Lock/p     ada-src/2ataspri.ads    /^   procedure Initialize_Lock (Prio : System.Any_Pr/
 +Initialize_TAS_Cell/p ada-src/2ataspri.adb    /^   procedure Initialize_TAS_Cell (Cell : out TAS_C/
 +Initialize_TAS_Cell/p ada-src/2ataspri.ads    /^   procedure Initialize_TAS_Cell (Cell :    out TA/
 +Inner1/b      ada-src/etags-test-for.ada      /^  package body Inner1 is$/
 +Inner1/b      ada-src/waroquiers.ada  /^  package body Inner1 is$/
 +Inner1/s      ada-src/etags-test-for.ada      /^  package Inner1 is$/
 +Inner1/s      ada-src/waroquiers.ada  /^  package Inner1 is$/
 +Inner2/b      ada-src/etags-test-for.ada      /^  package body Inner2 is$/
 +Inner2/b      ada-src/waroquiers.ada  /^  package body Inner2 is$/
 +Inner2/s      ada-src/etags-test-for.ada      /^  package Inner2 is$/
 +Inner2/s      ada-src/waroquiers.ada  /^  package Inner2 is$/
 +Install_Abort_Handler/p       ada-src/2ataspri.adb    /^   procedure Install_Abort_Handler (Handler : Abor/
 +Install_Abort_Handler/p       ada-src/2ataspri.ads    /^   procedure Install_Abort_Handler (Handler : Abor/
 +Install_Error_Handler/p       ada-src/2ataspri.adb    /^   procedure Install_Error_Handler (Handler : Syst/
 +Install_Error_Handler/p       ada-src/2ataspri.ads    /^   procedure Install_Error_Handler (Handler : Syst/
 +Invoking gzip tex-src/gzip.texi       /^@node Invoking gzip, Advanced usage, Sample, Top$/
 +IsControlChar pas-src/common.pas      /^function IsControlChar; (*($/
 +IsControlCharName     pas-src/common.pas      /^function IsControlCharName($/
 +Is_Set/f      ada-src/2ataspri.adb    /^   function  Is_Set (Cell : in TAS_Cell) return Bo/
 +Is_Set/f      ada-src/2ataspri.ads    /^   function  Is_Set       (Cell : in     TAS_Cell)/
 +JAVASRC       make-src/Makefile       /^JAVASRC=AWTEMul.java KeyEve.java SMan.java SysCol./
 +KBD_BUFFER_SIZE       c-src/emacs/src/keyboard.c      82
 +KBYTES        objc-src/PackInsp.m     58
 +KEY_TO_CHAR   c-src/emacs/src/keyboard.c      /^#define KEY_TO_CHAR(k) (XINT (k) & ((1 << CHARACTE/
 +LATEST        make-src/Makefile       /^LATEST=17$/
 +LCE_COMMENT   php-src/lce_functions.php       13
 +LCE_COMMENT_TOOL      php-src/lce_functions.php       17
 +LCE_COMMENT_USER      php-src/lce_functions.php       15
 +LCE_FUNCTIONS php-src/lce_functions.php       4
 +LCE_MSGID     php-src/lce_functions.php       19
 +LCE_MSGSTR    php-src/lce_functions.php       21
 +LCE_TEXT      php-src/lce_functions.php       23
 +LCE_UNKNOWN   php-src/lce_functions.php       9
 +LCE_WS        php-src/lce_functions.php       11
 +LDFLAGS       make-src/Makefile       /^LDFLAGS=#-static -lc_p$/
 +LE    y-src/parse.c   7
 +LEQ   y-src/cccp.c    14
 +LIGHTBLUE     cp-src/screen.hpp       21
 +LIGHTCYAN     cp-src/screen.hpp       23
 +LIGHTGRAY     cp-src/screen.hpp       19
 +LIGHTGREEN    cp-src/screen.hpp       22
 +LIGHTMAGENTA  cp-src/screen.hpp       25
 +LIGHTRED      cp-src/screen.hpp       24
 +LISP_INITIALLY        c-src/emacs/src/lisp.h  /^#define LISP_INITIALLY(i) {i}$/
 +LISP_INITIALLY        c-src/emacs/src/lisp.h  /^#define LISP_INITIALLY(i) (i)$/
 +LISP_INITIALLY_ZERO   c-src/emacs/src/lisp.h  582
 +LISP_MACRO_DEFUN      c-src/emacs/src/lisp.h  /^#define LISP_MACRO_DEFUN(name, type, argdecls, arg/
 +LISP_MACRO_DEFUN      c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN (XLI, EMACS_INT, (Lisp_Object o),/
 +LISP_MACRO_DEFUN      c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN (XPNTR, void *, (Lisp_Object a), /
 +LISP_MACRO_DEFUN      c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN (XHASH, EMACS_INT, (Lisp_Object a/
 +LISP_MACRO_DEFUN      c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN (XCONS, struct Lisp_Cons *, (Lisp/
 +LISP_MACRO_DEFUN      c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN (XCAR, Lisp_Object, (Lisp_Object /
 +LISP_MACRO_DEFUN      c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN (SYMBOL_VAL, Lisp_Object, (struct/
 +LISP_MACRO_DEFUN      c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN (NILP, bool, (Lisp_Object x), (x)/
 +LISP_MACRO_DEFUN      c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN (CONSP, bool, (Lisp_Object x), (x/
 +LISP_MACRO_DEFUN_VOID c-src/emacs/src/lisp.h  /^#define LISP_MACRO_DEFUN_VOID(name, argdecls, args/
 +LISP_MACRO_DEFUN_VOID c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN_VOID (CHECK_TYPE,$/
 +LISP_MACRO_DEFUN_VOID c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN_VOID (SET_SYMBOL_VAL,$/
 +LISP_MACRO_DEFUN_VOID c-src/emacs/src/lisp.h  /^LISP_MACRO_DEFUN_VOID (CHECK_LIST_CONS, (Lisp_Obje/
 +LISTCONTENTS  objc-src/PackInsp.m     39
 +LISTCONTENTSBUTTON    objc-src/PackInsp.m     48
 +LISTDESCRIPTIONBUTTON objc-src/PackInsp.m     49
 +LL_Assert/p   ada-src/2ataspri.adb    /^   procedure LL_Assert (B : Boolean; M : String) i/
 +LL_Assert/p   ada-src/2ataspri.ads    /^   procedure LL_Assert (B : Boolean; M : String);$/
 +LL_Task_Procedure_Access/t    ada-src/etags-test-for.ada      /^   type LL_Task_Procedure_Access is access procedu/
 +LL_Task_Procedure_Access/t    ada-src/2ataspri.ads    /^   type LL_Task_Procedure_Access is access procedu/
 +LL_Wrapper/p  ada-src/etags-test-for.ada      /^   procedure LL_Wrapper (T : TCB_Ptr);$/
 +LL_Wrapper/p  ada-src/2ataspri.adb    /^   procedure LL_Wrapper (T : TCB_Ptr);$/
 +LL_Wrapper/p  ada-src/2ataspri.adb    /^   procedure LL_Wrapper (T : TCB_Ptr) is$/
 +LOCALIZE      objc-src/PackInsp.m     /^#define LOCALIZE(s)           NXLoadLocalizedStringFromTabl/
 +LOCALIZE_ARCH objc-src/PackInsp.m     /^#define LOCALIZE_ARCH(s)      NXLoadLocalizedStringFrom/
 +LOCK  c-src/emacs/src/gmalloc.c       /^#define LOCK()                                        \\$/
 +LOCK  c-src/emacs/src/gmalloc.c       /^#define LOCK()$/
 +LOCK_ALIGNED_BLOCKS   c-src/emacs/src/gmalloc.c       /^#define LOCK_ALIGNED_BLOCKS()                         \\$/
 +LOCK_ALIGNED_BLOCKS   c-src/emacs/src/gmalloc.c       /^#define LOCK_ALIGNED_BLOCKS()$/
 +LONG_TYPE_SIZE        cccp.y  95
 +LONG_TYPE_SIZE        y-src/cccp.y    95
 +LOOKING_AT    c-src/etags.c   /^#define LOOKING_AT(cp, kw)  \/* kw is the keyword, /
 +LOOKING_AT_NOCASE     c-src/etags.c   /^#define LOOKING_AT_NOCASE(cp, kw) \/* the keyword i/
 +LOOKUP        objc-src/PackInsp.m     /^#define LOOKUP(key, notfound) ([table isKey:key] ?/
 +LOOKUP        objc-src/PackInsp.m     176
 +LOOP_ON_INPUT_LINES   c-src/etags.c   /^#define LOOP_ON_INPUT_LINES(file_pointer, line_buf/
 +LSH   y-src/cccp.c    16
 +LTGT  cp-src/MDiagArray2.h    35
 +LTGT  cp-src/MDiagArray2.h    39
 +LTGT  cp-src/MDiagArray2.h    42
 +LTGT  cp-src/MDiagArray2.h    144
 +LUASRC        make-src/Makefile       /^LUASRC=allegro.lua$/
 +L_CELL        y-src/parse.c   10
 +L_CONST       y-src/parse.c   13
 +L_FN0 y-src/parse.c   14
 +L_FN1 y-src/parse.c   15
 +L_FN1R        y-src/parse.c   20
 +L_FN2 y-src/parse.c   16
 +L_FN2R        y-src/parse.c   21
 +L_FN3 y-src/parse.c   17
 +L_FN3R        y-src/parse.c   22
 +L_FN4 y-src/parse.c   18
 +L_FN4R        y-src/parse.c   23
 +L_FNN y-src/parse.c   19
 +L_FNNR        y-src/parse.c   24
 +L_GE  y-src/parse.c   27
 +L_LE  y-src/parse.c   25
 +L_NE  y-src/parse.c   26
 +L_RANGE       y-src/parse.c   11
 +L_VAR y-src/parse.c   12
 +L_getit       c-src/etags.c   /^L_getit (void)$/
 +LabeledEntry  pyt-src/server.py       /^class LabeledEntry(Frame):$/
 +Lang_function c-src/etags.c   182
 +Lang_function c-src/h.h       6
 +Lisp_Bits     c-src/emacs/src/lisp.h  239
 +Lisp_Bool_Vector      c-src/emacs/src/lisp.h  1384
 +Lisp_Boolfwd  c-src/emacs/src/lisp.h  2284
 +Lisp_Buffer_Local_Value       c-src/emacs/src/lisp.h  2334
 +Lisp_Buffer_Objfwd    c-src/emacs/src/lisp.h  2302
 +Lisp_Char_Table       c-src/emacs/src/lisp.h  1575
 +Lisp_Compiled c-src/emacs/src/lisp.h  2429
 +Lisp_Cons     c-src/emacs/src/lisp.h  475
 +Lisp_Finalizer        c-src/emacs/src/lisp.h  2186
 +Lisp_Float    c-src/emacs/src/lisp.h  477
 +Lisp_Float    c-src/emacs/src/lisp.h  2391
 +Lisp_Free     c-src/emacs/src/lisp.h  2201
 +Lisp_Fwd      c-src/emacs/src/lisp.h  2368
 +Lisp_Fwd_Bool c-src/emacs/src/lisp.h  505
 +Lisp_Fwd_Buffer_Obj   c-src/emacs/src/lisp.h  507
 +Lisp_Fwd_Int  c-src/emacs/src/lisp.h  504
 +Lisp_Fwd_Kboard_Obj   c-src/emacs/src/lisp.h  508
 +Lisp_Fwd_Obj  c-src/emacs/src/lisp.h  506
 +Lisp_Fwd_Type c-src/emacs/src/lisp.h  502
 +Lisp_Hash_Table       c-src/emacs/src/lisp.h  1823
 +Lisp_Int0     c-src/emacs/src/lisp.h  461
 +Lisp_Int1     c-src/emacs/src/lisp.h  462
 +Lisp_Intfwd   c-src/emacs/src/lisp.h  2274
 +Lisp_Kboard_Objfwd    c-src/emacs/src/lisp.h  2362
 +Lisp_Marker   c-src/emacs/src/lisp.h  1978
 +Lisp_Misc     c-src/emacs/src/lisp.h  458
 +Lisp_Misc     c-src/emacs/src/lisp.h  2212
 +Lisp_Misc_Any c-src/emacs/src/lisp.h  1971
 +Lisp_Misc_Finalizer   c-src/emacs/src/lisp.h  491
 +Lisp_Misc_Float       c-src/emacs/src/lisp.h  494
 +Lisp_Misc_Free        c-src/emacs/src/lisp.h  487
 +Lisp_Misc_Limit       c-src/emacs/src/lisp.h  496
 +Lisp_Misc_Marker      c-src/emacs/src/lisp.h  488
 +Lisp_Misc_Overlay     c-src/emacs/src/lisp.h  489
 +Lisp_Misc_Save_Value  c-src/emacs/src/lisp.h  490
 +Lisp_Misc_Type        c-src/emacs/src/lisp.h  485
 +Lisp_Object   c-src/emacs/src/lisp.h  567
 +Lisp_Object   c-src/emacs/src/lisp.h  577
 +Lisp_Objfwd   c-src/emacs/src/lisp.h  2294
 +Lisp_Overlay  c-src/emacs/src/lisp.h  2021
 +Lisp_Save_Type        c-src/emacs/src/lisp.h  2064
 +Lisp_Save_Value       c-src/emacs/src/lisp.h  2110
 +Lisp_String   c-src/emacs/src/lisp.h  466
 +Lisp_Sub_Char_Table   c-src/emacs/src/lisp.h  1606
 +Lisp_Subr     c-src/emacs/src/lisp.h  1670
 +Lisp_Symbol   c-src/emacs/src/lisp.h  454
 +Lisp_Symbol   c-src/emacs/src/lisp.h  654
 +Lisp_Type     c-src/emacs/src/lisp.h  451
 +Lisp_Vector   c-src/emacs/src/lisp.h  1369
 +Lisp_Vectorlike       c-src/emacs/src/lisp.h  472
 +Lisp_functions        c-src/etags.c   /^Lisp_functions (FILE *inf)$/
 +Lisp_help     c-src/etags.c   591
 +Lisp_suffixes c-src/etags.c   589
 +ListEdit      pyt-src/server.py       /^class ListEdit(Frame):$/
 +Locate        pas-src/common.pas      /^function Locate; (*($/
 +Lock/t        ada-src/2ataspri.ads    /^   type Lock is private;$/
 +Lock/t        ada-src/2ataspri.ads    /^   type Lock is$/
 +LowerCaseNmStr        pas-src/common.pas      /^function LowerCaseNmStr; (*($/
 +Lua_functions c-src/etags.c   /^Lua_functions (FILE *inf)$/
 +Lua_help      c-src/etags.c   600
 +Lua_suffixes  c-src/etags.c   598
 +MAGENTA       cp-src/screen.hpp       17
 +MAGICBYTE     c-src/emacs/src/gmalloc.c       1856
 +MAGICFREE     c-src/emacs/src/gmalloc.c       1855
 +MAGICWORD     c-src/emacs/src/gmalloc.c       1854
 +MAKE  make-src/Makefile       /^MAKE:=$(MAKE) --no-print-directory$/
 +MAKESRC       make-src/Makefile       /^MAKESRC=Makefile$/
 +MALLOCFLOOD   c-src/emacs/src/gmalloc.c       1857
 +MANY  c-src/emacs/src/lisp.h  2833
 +MARKERP       c-src/emacs/src/lisp.h  /^# define MARKERP(x) lisp_h_MARKERP (x)$/
 +MAXPATHLEN    c-src/etags.c   115
 +MAX_ALLOCA    c-src/emacs/src/lisp.h  4556
 +MAX_ALLOCA    c-src/emacs/src/lisp.h  4556
 +MAX_ENCODED_BYTES     c-src/emacs/src/keyboard.c      2254
 +MAX_HASH_VALUE        c-src/etags.c   2329
 +MAX_WORD_LENGTH       c-src/etags.c   2327
 +MAYBEREL      y-src/parse.y   /^#define MAYBEREL(p) (*(p)=='[' && (isdigit((p)[1])/
 +MAYBEREL      parse.y /^#define MAYBEREL(p) (*(p)=='[' && (isdigit((p)[1])/
 +MBYTES        objc-src/PackInsp.m     59
 +MCHECK_DISABLED       c-src/emacs/src/gmalloc.c       285
 +MCHECK_FREE   c-src/emacs/src/gmalloc.c       287
 +MCHECK_HEAD   c-src/emacs/src/gmalloc.c       288
 +MCHECK_OK     c-src/emacs/src/gmalloc.c       286
 +MCHECK_TAIL   c-src/emacs/src/gmalloc.c       289
 +MDiagArray2   cp-src/MDiagArray2.h    78
 +MDiagArray2   cp-src/MDiagArray2.h    /^  MDiagArray2 (T *d, int r, int c) : DiagArray2<T>/
 +MDiagArray2   cp-src/MDiagArray2.h    /^  MDiagArray2 (void) : DiagArray2<T> () { }$/
 +MDiagArray2   cp-src/MDiagArray2.h    /^  MDiagArray2 (int r, int c) : DiagArray2<T> (r, c/
 +MDiagArray2   cp-src/MDiagArray2.h    /^  MDiagArray2 (int r, int c, const T& val) : DiagA/
 +MDiagArray2   cp-src/MDiagArray2.h    /^  MDiagArray2 (const Array<T>& a) : DiagArray2<T> /
 +MDiagArray2   cp-src/MDiagArray2.h    /^  MDiagArray2 (const DiagArray2<T>& a) : DiagArray/
 +MDiagArray2   cp-src/MDiagArray2.h    /^  MDiagArray2 (const MDiagArray2<T>& a) : DiagArra/
 +MIN_HASH_VALUE        c-src/etags.c   2328
 +MIN_WORD_LENGTH       c-src/etags.c   2326
 +MISCP c-src/emacs/src/lisp.h  /^# define MISCP(x) lisp_h_MISCP (x)$/
 +MOST_NEGATIVE_FIXNUM  c-src/emacs/src/lisp.h  835
 +MOST_POSITIVE_FIXNUM  c-src/emacs/src/lisp.h  834
 +MOVE  c-src/sysdep.h  /^#define MOVE(x,y)     movl x, y$/
 +MSDOS c-src/etags.c   100
 +MSDOS c-src/etags.c   106
 +MSDOS c-src/etags.c   107
 +MSDOS c-src/etags.c   110
 +MSGSEL        f-src/entry.for /^       ENTRY  MSGSEL ( TYPE )$/
 +MSGSEL        f-src/entry.strange_suffix      /^       ENTRY  MSGSEL ( TYPE )$/
 +MSGSEL        f-src/entry.strange     /^       ENTRY  MSGSEL ( TYPE )$/
 +MULTI_LETTER_MOD      c-src/emacs/src/keyboard.c      /^#define MULTI_LETTER_MOD(BIT, NAME, LEN)                      \\$/
 +MULTI_LETTER_MOD      c-src/emacs/src/keyboard.c      6231
 +MULTI_LETTER_MOD      c-src/emacs/src/keyboard.c      /^#define MULTI_LETTER_MOD(BIT, NAME, LEN)              \\$/
 +MULTI_LETTER_MOD      c-src/emacs/src/keyboard.c      6764
 +Machin_T/b    ada-src/waroquiers.ada  /^  protected body Machin_T is$/
 +Machin_T/t    ada-src/etags-test-for.ada      /^  protected type Machin_T is$/
 +Machin_T/t    ada-src/etags-test-for.ada      /^  protected Machin_T is$/
 +Machin_T/t    ada-src/waroquiers.ada  /^  protected type Machin_T is$/
 +Machine_Exceptions/t  ada-src/2ataspri.ads    /^   type Machine_Exceptions is new Interfaces.C.POS/
 +MakeDispose   pyt-src/server.py       /^    def MakeDispose(self):$/
 +MakeSitelist  pyt-src/server.py       /^    def MakeSitelist(self, master):$/
 +Makefile_filenames    c-src/etags.c   603
 +Makefile_help c-src/etags.c   605
 +Makefile_targets      c-src/etags.c   /^Makefile_targets (FILE *inf)$/
 +Mc    cp-src/c.C      /^int main (void) { my_function0(0); my_function1(1)/
 +Mcccp cccp.y  /^main ()$/
 +Mcccp y-src/cccp.y    /^main ()$/
 +Mconway.cpp   cp-src/conway.cpp       /^void main(void)$/
 +Metags        c-src/etags.c   /^main (int argc, char **argv)$/
 +Mfail cp-src/fail.C   /^main()$/
 +Mkai-test.pl  perl-src/kai-test.pl    /^package main;$/
 +ModuleExample ruby-src/test.rb        /^module ModuleExample$/
 +More_Lisp_Bits        c-src/emacs/src/lisp.h  801
 +MoveLayerAfter        lua-src/allegro.lua     /^function MoveLayerAfter (this_one)$/
 +MoveLayerBefore       lua-src/allegro.lua     /^function MoveLayerBefore (this_one)$/
 +MoveLayerBottom       lua-src/allegro.lua     /^function MoveLayerBottom ()$/
 +MoveLayerTop  lua-src/allegro.lua     /^function MoveLayerTop ()$/
 +Mtest.go      go-src/test.go  1
 +Mtest.go      go-src/test.go  /^func main() {$/
 +Mtest1.go     go-src/test1.go 1
 +Mtest1.go     go-src/test1.go /^func main() {$/
 +Mx.cc cp-src/x.cc     /^main(int argc, char *argv[])$/
 +NAME  y-src/cccp.c    8
 +NATNUMP       c-src/emacs/src/lisp.h  /^NATNUMP (Lisp_Object x)$/
 +NDEBUG        c-src/etags.c   88
 +NE    y-src/parse.c   6
 +NEG   y-src/parse.c   9
 +NEXT_ALMOST_PRIME_LIMIT       c-src/emacs/src/lisp.h  3573
 +NILP  c-src/emacs/src/lisp.h  /^# define NILP(x) lisp_h_NILP (x)$/
 +NIL_IS_ZERO   c-src/emacs/src/lisp.h  1515
 +NONPOINTER_BITS       c-src/emacs/src/lisp.h  78
 +NONPOINTER_BITS       c-src/emacs/src/lisp.h  80
 +NONSRCS       make-src/Makefile       /^NONSRCS=entry.strange lists.erl clheir.hpp.gz$/
 +NOTEQUAL      y-src/cccp.c    13
 +NULL  cccp.y  51
 +NULL  y-src/cccp.y    51
 +NULL_PTR      cccp.y  63
 +NULL_PTR      y-src/cccp.y    63
 +NUMSTATS      objc-src/PackInsp.h     36
 +NUM_MOD_NAMES c-src/emacs/src/keyboard.c      6325
 +NUM_RECENT_KEYS       c-src/emacs/src/keyboard.c      91
 +NameHasChar   pas-src/common.pas      /^function NameHasChar; (* (TheName : NameString; Th/
 +NameStringLess        pas-src/common.pas      /^function NameStringLess;(*(var Name1,Name2 : NameS/
 +NewLayer      lua-src/allegro.lua     /^function NewLayer (name, x, y, w, h)$/
 +NewLayerSet   lua-src/allegro.lua     /^function NewLayerSet (name)$/
 +NewNameString pas-src/common.pas      /^procedure NewNameString; (* (var NSP: NameStringPo/
 +NmStrToErrStr pas-src/common.pas      /^function NmStrToErrStr;(*($/
 +NmStrToInteger        pas-src/common.pas      /^function NmStrToInteger; (* (Str : NameString) : i/
 +OBJCPPSRC     make-src/Makefile       /^OBJCPPSRC=SimpleCalc.H SimpleCalc.M$/
 +OBJCSRC       make-src/Makefile       /^OBJCSRC=Subprocess.h Subprocess.m PackInsp.h PackI/
 +OBJS  make-src/Makefile       /^OBJS=${GETOPTOBJS} ${REGEXOBJS} ${CHECKOBJS}$/
 +OPENBUTTON    objc-src/PackInsp.m     47
 +OPTIONS       make-src/Makefile       /^OPTIONS=--members --declarations --regex=@regexfil/
 +OR    y-src/cccp.c    10
 +OTAGS make-src/Makefile       /^OTAGS: oetags ${SRCS} srclist$/
 +OVERLAYP      c-src/emacs/src/lisp.h  /^OVERLAYP (Lisp_Object x)$/
 +Objc_help     c-src/etags.c   613
 +Objc_suffixes c-src/etags.c   609
 +OperatorFun   c-src/h.h       88
 +Overview      tex-src/gzip.texi       /^@node Overview, Sample, Copying, Top$/
 +PASSRC        make-src/Makefile       /^PASSRC=common.pas$/
 +PDT   c-src/h.h       /^  Date 04 May 87 235311 PDT (Mon)$/
 +PERLSRC       make-src/Makefile       /^PERLSRC=htlmify-cystic yagrip.pl kai-test.pl mirro/
 +PHPSRC        make-src/Makefile       /^PHPSRC=lce_functions.php ptest.php sendmail.php$/
 +PHP_functions c-src/etags.c   /^PHP_functions (FILE *inf)$/
 +PHP_help      c-src/etags.c   639
 +PHP_suffixes  c-src/etags.c   637
 +POEntry       php-src/lce_functions.php       105
 +POEntry       php-src/lce_functions.php       /^      function POEntry()$/
 +POEntryAD     php-src/lce_functions.php       29
 +PORManager    php-src/lce_functions.php       498
 +PORManager    php-src/lce_functions.php       /^      function PORManager()$/
 +POReader      php-src/lce_functions.php       163
 +POReader      php-src/lce_functions.php       /^      function POReader($domain, $filename)$/
 +POSTSCRIPTFLAGS       make-src/Makefile       /^POSTSCRIPTFLAGS=--language=none --regex='#\/[^ \\t{]/
 +PRINT_UNDOCUMENTED_OPTIONS_HELP       c-src/etags.c   804
 +PROCESSP      c-src/emacs/src/lisp.h  /^PROCESSP (Lisp_Object a)$/
 +PROLSRC       make-src/Makefile       /^PROLSRC=ordsets.prolog natded.prolog$/
 +PROP  c-src/emacs/src/keyboard.c      /^#define PROP(IDX) AREF (tool_bar_item_properties, /
 +PROP  c-src/emacs/src/keyboard.c      8379
 +PROTECT_MALLOC_STATE  c-src/emacs/src/gmalloc.c       /^#define PROTECT_MALLOC_STATE(PROT) protect_malloc_/
 +PROTECT_MALLOC_STATE  c-src/emacs/src/gmalloc.c       /^#define PROTECT_MALLOC_STATE(PROT)    \/* empty *\/$/
 +PRTPKG        f-src/entry.for /^      LOGICAL FUNCTION PRTPKG ( SHORT, LONG, EXPL,/
 +PRTPKG        f-src/entry.strange_suffix      /^      LOGICAL FUNCTION PRTPKG ( SHORT, LONG, EXPL,/
 +PRTPKG        f-src/entry.strange     /^      LOGICAL FUNCTION PRTPKG ( SHORT, LONG, EXPL,/
 +PSEUDO        c-src/sysdep.h  /^#define       PSEUDO(name, syscall_name, args)                                      /
 +PSEUDOVECSIZE c-src/emacs/src/lisp.h  /^#define PSEUDOVECSIZE(type, nonlispfield)                     \\$/
 +PSEUDOVECTORP c-src/emacs/src/lisp.h  /^PSEUDOVECTORP (Lisp_Object a, int code)$/
 +PSEUDOVECTOR_AREA_BITS        c-src/emacs/src/lisp.h  818
 +PSEUDOVECTOR_FLAG     c-src/emacs/src/lisp.h  774
 +PSEUDOVECTOR_REST_BITS        c-src/emacs/src/lisp.h  813
 +PSEUDOVECTOR_REST_MASK        c-src/emacs/src/lisp.h  814
 +PSEUDOVECTOR_SIZE_BITS        c-src/emacs/src/lisp.h  808
 +PSEUDOVECTOR_SIZE_MASK        c-src/emacs/src/lisp.h  809
 +PSEUDOVECTOR_TYPEP    c-src/emacs/src/lisp.h  /^PSEUDOVECTOR_TYPEP (struct vectorlike_header *a, i/
 +PSSRC make-src/Makefile       /^PSSRC=rfc1245.ps$/
 +PS_functions  c-src/etags.c   /^PS_functions (FILE *inf)$/
 +PS_help       c-src/etags.c   649
 +PS_suffixes   c-src/etags.c   647
 +PTY_LENGTH    objc-src/Subprocess.m   21
 +PTY_TEMPLATE  objc-src/Subprocess.m   20
 +PUSH_C_STR    c-src/emacs/src/keyboard.c      /^#define PUSH_C_STR(str, listvar) \\$/
 +PUSH_HANDLER  c-src/emacs/src/lisp.h  /^#define PUSH_HANDLER(c, tag_ch_val, handlertype)      \\/
 +PVEC_BOOL_VECTOR      c-src/emacs/src/lisp.h  787
 +PVEC_BUFFER   c-src/emacs/src/lisp.h  788
 +PVEC_CHAR_TABLE       c-src/emacs/src/lisp.h  796
 +PVEC_COMPILED c-src/emacs/src/lisp.h  795
 +PVEC_FONT     c-src/emacs/src/lisp.h  798
 +PVEC_FRAME    c-src/emacs/src/lisp.h  785
 +PVEC_FREE     c-src/emacs/src/lisp.h  783
 +PVEC_HASH_TABLE       c-src/emacs/src/lisp.h  789
 +PVEC_NORMAL_VECTOR    c-src/emacs/src/lisp.h  782
 +PVEC_OTHER    c-src/emacs/src/lisp.h  793
 +PVEC_PROCESS  c-src/emacs/src/lisp.h  784
 +PVEC_SUBR     c-src/emacs/src/lisp.h  792
 +PVEC_SUB_CHAR_TABLE   c-src/emacs/src/lisp.h  797
 +PVEC_TERMINAL c-src/emacs/src/lisp.h  790
 +PVEC_TYPE_MASK        c-src/emacs/src/lisp.h  819
 +PVEC_WINDOW   c-src/emacs/src/lisp.h  786
 +PVEC_WINDOW_CONFIGURATION     c-src/emacs/src/lisp.h  791
 +PYTSRC        make-src/Makefile       /^PYTSRC=server.py$/
 +PackageInspector      objc-src/PackInsp.h     /^@interface PackageInspector:WMInspector$/
 +Pascal_functions      c-src/etags.c   /^Pascal_functions (FILE *inf)$/
 +Pascal_help   c-src/etags.c   621
 +Pascal_suffixes       c-src/etags.c   619
 +Perl_functions        c-src/etags.c   /^Perl_functions (FILE *inf)$/
 +Perl_help     c-src/etags.c   630
 +Perl_interpreters     c-src/etags.c   628
 +Perl_suffixes c-src/etags.c   626
 +Pkg1/b        ada-src/etags-test-for.ada      /^package body Pkg1 is$/
 +Pkg1/b        ada-src/waroquiers.ada  /^package body Pkg1 is$/
 +Pkg1/s        ada-src/etags-test-for.ada      /^package Pkg1 is$/
 +Pkg1/s        ada-src/waroquiers.ada  /^package Pkg1 is$/
 +Pkg1_Func1/f  ada-src/etags-test-for.ada      /^  function Pkg1_Func1 return Boolean;$/
 +Pkg1_Func1/f  ada-src/etags-test-for.ada      /^  function Pkg1_Func1 return Boolean is separate;$/
 +Pkg1_Func1/f  ada-src/etags-test-for.ada      /^function  Pkg1_Func1 return Boolean is$/
 +Pkg1_Func1/f  ada-src/waroquiers.ada  /^  function Pkg1_Func1 return Boolean;$/
 +Pkg1_Func1/f  ada-src/waroquiers.ada  /^  function Pkg1_Func1 return Boolean is separate;$/
 +Pkg1_Func1/f  ada-src/waroquiers.ada  /^function  Pkg1_Func1 return Boolean is$/
 +Pkg1_Func2/f  ada-src/etags-test-for.ada      /^  function Pkg1_Func2 (Ijk : Integer; Z : Integer)/
 +Pkg1_Func2/f  ada-src/etags-test-for.ada      /^  function Pkg1_Func2 (Ijk : Integer; Z : Integer)/
 +Pkg1_Func2/f  ada-src/waroquiers.ada  /^  function Pkg1_Func2 (Ijk : Integer; Z : Integer)/
 +Pkg1_Func2/f  ada-src/waroquiers.ada  /^  function Pkg1_Func2 (Ijk : Integer; Z : Integer)/
 +Pkg1_Pkg1/b   ada-src/etags-test-for.ada      /^  package body Pkg1_Pkg1 is separate;$/
 +Pkg1_Pkg1/b   ada-src/etags-test-for.ada      /^package body Pkg1_Pkg1 is$/
 +Pkg1_Pkg1/b   ada-src/waroquiers.ada  /^  package body Pkg1_Pkg1 is separate;$/
 +Pkg1_Pkg1/b   ada-src/waroquiers.ada  /^package body Pkg1_Pkg1 is$/
 +Pkg1_Pkg1/s   ada-src/etags-test-for.ada      /^  package Pkg1_Pkg1 is$/
 +Pkg1_Pkg1/s   ada-src/waroquiers.ada  /^  package Pkg1_Pkg1 is$/
 +Pkg1_Pkg1_Proc1/p     ada-src/etags-test-for.ada      /^    procedure Pkg1_Pkg1_Proc1;$/
 +Pkg1_Pkg1_Proc1/p     ada-src/etags-test-for.ada      /^  procedure Pkg1_Pkg1_Proc1 is$/
 +Pkg1_Pkg1_Proc1/p     ada-src/waroquiers.ada  /^    procedure Pkg1_Pkg1_Proc1;$/
 +Pkg1_Pkg1_Proc1/p     ada-src/waroquiers.ada  /^  procedure Pkg1_Pkg1_Proc1 is$/
 +Pkg1_Proc1/p  ada-src/etags-test-for.ada      /^  procedure Pkg1_Proc1;$/
 +Pkg1_Proc1/p  ada-src/etags-test-for.ada      /^  procedure Pkg1_Proc1 is$/
 +Pkg1_Proc1/p  ada-src/waroquiers.ada  /^  procedure Pkg1_Proc1;$/
 +Pkg1_Proc1/p  ada-src/waroquiers.ada  /^  procedure Pkg1_Proc1 is$/
 +Pkg1_Proc2/p  ada-src/etags-test-for.ada      /^  procedure Pkg1_Proc2 (I : Integer);$/
 +Pkg1_Proc2/p  ada-src/etags-test-for.ada      /^  procedure Pkg1_Proc2 (I : Integer) is$/
 +Pkg1_Proc2/p  ada-src/waroquiers.ada  /^  procedure Pkg1_Proc2 (I : Integer);$/
 +Pkg1_Proc2/p  ada-src/waroquiers.ada  /^  procedure Pkg1_Proc2 (I : Integer) is$/
 +PostControls  pyt-src/server.py       /^    def PostControls(self):$/
 +Pre_Call_State/t      ada-src/2ataspri.ads    /^   type Pre_Call_State is new System.Address;$/
 +PrintAdd      go-src/test1.go /^func (s str) PrintAdd() {$/
 +PrintAdd      go-src/test1.go /^func (n intNumber) PrintAdd() {$/
 +Private       objc-src/Subprocess.m   /^@interface Subprocess(Private)$/
 +Private_T/b   ada-src/etags-test-for.ada      /^    task body Private_T is$/
 +Private_T/b   ada-src/waroquiers.ada  /^    task body Private_T is$/
 +Private_T/k   ada-src/etags-test-for.ada      /^    task Private_T;$/
 +Private_T/k   ada-src/waroquiers.ada  /^    task Private_T;$/
 +Private_T/p   ada-src/etags-test-for.ada      /^    procedure Private_T;$/
 +Private_T/p   ada-src/etags-test-for.ada      /^    procedure Private_T is$/
 +Private_T/p   ada-src/waroquiers.ada  /^    procedure Private_T;$/
 +Private_T/p   ada-src/waroquiers.ada  /^    procedure Private_T is$/
 +Private_T/t   ada-src/etags-test-for.ada      /^  type Private_T is private;$/
 +Private_T/t   ada-src/etags-test-for.ada      /^  type Private_T is$/
 +Private_T/t   ada-src/waroquiers.ada  /^  type Private_T is private;$/
 +Private_T/t   ada-src/waroquiers.ada  /^  type Private_T is$/
 +Problems      tex-src/gzip.texi       /^@node Problems, Concept Index, Tapes, Top$/
 +Proc/t        ada-src/2ataspri.ads    /^   type Proc is access procedure (Addr : System.Ad/
 +Prolog_functions      c-src/etags.c   /^Prolog_functions (FILE *inf)$/
 +Prolog_help   c-src/etags.c   654
 +Prolog_suffixes       c-src/etags.c   652
 +Public_T/t    ada-src/etags-test-for.ada      /^  type Public_T is$/
 +Public_T/t    ada-src/waroquiers.ada  /^  type Public_T is$/
 +Python_functions      c-src/etags.c   /^Python_functions (FILE *inf)$/
 +Python_help   c-src/etags.c   660
 +Python_suffixes       c-src/etags.c   658
 +QUIT  c-src/emacs/src/lisp.h  3101
 +QUITP c-src/emacs/src/lisp.h  3112
 +Qpre_abbrev_expand_hook       c-src/abbrev.c  83
 +RANGED_INTEGERP       c-src/emacs/src/lisp.h  /^RANGED_INTEGERP (intmax_t lo, Lisp_Object x, intma/
 +RCSid objc-src/PackInsp.m     30
 +READABLE_EVENTS_DO_TIMERS_NOW c-src/emacs/src/keyboard.c      346
 +READABLE_EVENTS_FILTER_EVENTS c-src/emacs/src/keyboard.c      347
 +READABLE_EVENTS_IGNORE_SQUEEZABLES    c-src/emacs/src/keyboard.c      348
 +RECC_ALNUM    c-src/emacs/src/regex.h 610
 +RECC_ALPHA    c-src/emacs/src/regex.h 610
 +RECC_ASCII    c-src/emacs/src/regex.h 617
 +RECC_BLANK    c-src/emacs/src/regex.h 615
 +RECC_CNTRL    c-src/emacs/src/regex.h 613
 +RECC_DIGIT    c-src/emacs/src/regex.h 614
 +RECC_ERROR    c-src/emacs/src/regex.h 609
 +RECC_GRAPH    c-src/emacs/src/regex.h 611
 +RECC_LOWER    c-src/emacs/src/regex.h 612
 +RECC_MULTIBYTE        c-src/emacs/src/regex.h 616
 +RECC_NONASCII c-src/emacs/src/regex.h 616
 +RECC_PRINT    c-src/emacs/src/regex.h 611
 +RECC_PUNCT    c-src/emacs/src/regex.h 613
 +RECC_SPACE    c-src/emacs/src/regex.h 615
 +RECC_UNIBYTE  c-src/emacs/src/regex.h 617
 +RECC_UPPER    c-src/emacs/src/regex.h 612
 +RECC_WORD     c-src/emacs/src/regex.h 610
 +RECC_XDIGIT   c-src/emacs/src/regex.h 614
 +RED   cp-src/screen.hpp       16
 +REGEX make-src/Makefile       /^REGEX=\/[ \\t]*DEFVAR_[A-Z_ \\t\\n(]+"\\([^"]+\\)"\/$/
 +REGEXOBJS     make-src/Makefile       /^REGEXOBJS=regex.o$/
 +REGS_FIXED    c-src/emacs/src/regex.h 378
 +REGS_REALLOCATE       c-src/emacs/src/regex.h 377
 +REGS_UNALLOCATED      c-src/emacs/src/regex.h 376
 +REG_BADBR     c-src/emacs/src/regex.h 313
 +REG_BADPAT    c-src/emacs/src/regex.h 305
 +REG_BADRPT    c-src/emacs/src/regex.h 316
 +REG_EBRACE    c-src/emacs/src/regex.h 312
 +REG_EBRACK    c-src/emacs/src/regex.h 310
 +REG_ECOLLATE  c-src/emacs/src/regex.h 306
 +REG_ECTYPE    c-src/emacs/src/regex.h 307
 +REG_EEND      c-src/emacs/src/regex.h 319
 +REG_EESCAPE   c-src/emacs/src/regex.h 308
 +REG_ENOSYS    c.c     279
 +REG_ENOSYS    c-src/emacs/src/regex.h 297
 +REG_EPAREN    c-src/emacs/src/regex.h 311
 +REG_ERANGE    c-src/emacs/src/regex.h 314
 +REG_ERANGEX   c-src/emacs/src/regex.h 322
 +REG_ERPAREN   c-src/emacs/src/regex.h 321
 +REG_ESIZE     c-src/emacs/src/regex.h 320
 +REG_ESPACE    c-src/emacs/src/regex.h 315
 +REG_ESUBREG   c-src/emacs/src/regex.h 309
 +REG_EXTENDED  c-src/emacs/src/regex.h 263
 +REG_ICASE     c-src/emacs/src/regex.h 267
 +REG_NEWLINE   c-src/emacs/src/regex.h 272
 +REG_NOERROR   c-src/emacs/src/regex.h 300
 +REG_NOMATCH   c-src/emacs/src/regex.h 301
 +REG_NOSUB     c-src/emacs/src/regex.h 276
 +REG_NOTBOL    c-src/emacs/src/regex.h 286
 +REG_NOTEOL    c-src/emacs/src/regex.h 289
 +RELEASELIST   make-src/Makefile       /^RELEASELIST=pot@gnu.org xemacs-review@xemacs.org j/
 +RESUME_POLLING        c-src/emacs/src/keyboard.c      2170
 +RETURN_UNGCPRO        c-src/emacs/src/lisp.h  /^#define RETURN_UNGCPRO(expr)                  \\$/
 +RE_BACKSLASH_ESCAPE_IN_LISTS  c-src/emacs/src/regex.h 47
 +RE_BK_PLUS_QM c-src/emacs/src/regex.h 52
 +RE_CHAR_CLASSES       c-src/emacs/src/regex.h 58
 +RE_CONTEXT_INDEP_ANCHORS      c-src/emacs/src/regex.h 72
 +RE_CONTEXT_INDEP_OPS  c-src/emacs/src/regex.h 80
 +RE_CONTEXT_INVALID_OPS        c-src/emacs/src/regex.h 84
 +RE_DEBUG      c-src/emacs/src/regex.h 161
 +RE_DOT_NEWLINE        c-src/emacs/src/regex.h 88
 +RE_DOT_NOT_NULL       c-src/emacs/src/regex.h 92
 +RE_DUP_MAX    c-src/emacs/src/regex.h 253
 +RE_DUP_MAX    c-src/emacs/src/regex.h 256
 +RE_FRUGAL     c-src/emacs/src/regex.h 147
 +RE_HAT_LISTS_NOT_NEWLINE      c-src/emacs/src/regex.h 96
 +RE_INTERVALS  c-src/emacs/src/regex.h 101
 +RE_LIMITED_OPS        c-src/emacs/src/regex.h 105
 +RE_NEWLINE_ALT        c-src/emacs/src/regex.h 109
 +RE_NO_BK_BRACES       c-src/emacs/src/regex.h 114
 +RE_NO_BK_PARENS       c-src/emacs/src/regex.h 118
 +RE_NO_BK_REFS c-src/emacs/src/regex.h 122
 +RE_NO_BK_VBAR c-src/emacs/src/regex.h 126
 +RE_NO_EMPTY_RANGES    c-src/emacs/src/regex.h 132
 +RE_NO_GNU_OPS c-src/emacs/src/regex.h 144
 +RE_NO_NEWLINE_ANCHOR  c-src/emacs/src/regex.h 153
 +RE_NO_POSIX_BACKTRACKING      c-src/emacs/src/regex.h 140
 +RE_NREGS      c-src/emacs/src/regex.h 440
 +RE_SHY_GROUPS c-src/emacs/src/regex.h 150
 +RE_SYNTAX_AWK c-src/emacs/src/regex.h 186
 +RE_SYNTAX_ED  c-src/emacs/src/regex.h 216
 +RE_SYNTAX_EGREP       c-src/emacs/src/regex.h 206
 +RE_SYNTAX_EMACS       c-src/emacs/src/regex.h 183
 +RE_SYNTAX_GNU_AWK     c-src/emacs/src/regex.h 193
 +RE_SYNTAX_GREP        c-src/emacs/src/regex.h 201
 +RE_SYNTAX_POSIX_AWK   c-src/emacs/src/regex.h 197
 +RE_SYNTAX_POSIX_BASIC c-src/emacs/src/regex.h 225
 +RE_SYNTAX_POSIX_EGREP c-src/emacs/src/regex.h 212
 +RE_SYNTAX_POSIX_EXTENDED      c-src/emacs/src/regex.h 234
 +RE_SYNTAX_POSIX_MINIMAL_BASIC c-src/emacs/src/regex.h 231
 +RE_SYNTAX_POSIX_MINIMAL_EXTENDED      c-src/emacs/src/regex.h 242
 +RE_SYNTAX_SED c-src/emacs/src/regex.h 218
 +RE_TRANSLATE_TYPE     c-src/emacs/src/regex.h 332
 +RE_UNMATCHED_RIGHT_PAREN_ORD  c-src/emacs/src/regex.h 136
 +RSH   y-src/cccp.c    17
 +RTE/s ada-src/2ataspri.adb    /^   package RTE renames Interfaces.C.POSIX_RTE;$/
 +RUN   make-src/Makefile       /^RUN=time --quiet --format '%U + %S: %E'$/
 +RUN   make-src/Makefile       /^RUN=$/
 +RXINCLUDE     make-src/Makefile       /^RXINCLUDE=-Iemacs\/src$/
 +Range cp-src/Range.h  35
 +Range cp-src/Range.h  /^  Range (void)$/
 +Range cp-src/Range.h  /^  Range (const Range& r)$/
 +Range cp-src/Range.h  /^  Range (double b, double l)$/
 +Range cp-src/Range.h  /^  Range (double b, double l, double i)$/
 +ReadVacation  cp-src/functions.cpp    /^void ReadVacation ( char *filename ) {$/
 +Read_Lock/p   ada-src/2ataspri.adb    /^   procedure Read_Lock (L : in out Lock; Ceiling_V/
 +Read_Lock/p   ada-src/2ataspri.ads    /^   procedure Read_Lock (L : in out Lock; Ceiling_V/
 +Rectangle.getPos      lua-src/test.lua        /^function Rectangle.getPos ()$/
 +ReleaseNameString     pas-src/common.pas      /^procedure ReleaseNameString; (* (var NSP: NameStri/
 +RemoveLayer   lua-src/allegro.lua     /^function RemoveLayer ()$/
 +RemoveUnderlineControl        pas-src/common.pas      /^function RemoveUnderlineControl; (*($/
 +ReprOfChar    pas-src/common.pas      /^function ReprOfChar; (*( ch : char) : NameString;*/
 +S     c.c     156
 +SAFE_ALLOCA   c-src/emacs/src/lisp.h  /^#define SAFE_ALLOCA(size) ((size) <= sa_avail                         \\/
 +SAFE_ALLOCA_LISP      c-src/emacs/src/lisp.h  /^#define SAFE_ALLOCA_LISP(buf, nelt)                          \\$/
 +SAFE_ALLOCA_STRING    c-src/emacs/src/lisp.h  /^#define SAFE_ALLOCA_STRING(ptr, string)                       \\$/
 +SAFE_FREE     c-src/emacs/src/lisp.h  /^#define SAFE_FREE()                   \\$/
 +SAFE_NALLOCA  c-src/emacs/src/lisp.h  /^#define SAFE_NALLOCA(buf, multiplier, nitems)                  \\/
 +SAVE_FUNCPOINTER      c-src/emacs/src/lisp.h  2049
 +SAVE_INTEGER  c-src/emacs/src/lisp.h  2048
 +SAVE_OBJECT   c-src/emacs/src/lisp.h  2051
 +SAVE_POINTER  c-src/emacs/src/lisp.h  2050
 +SAVE_SLOT_BITS        c-src/emacs/src/lisp.h  2055
 +SAVE_TYPE_BITS        c-src/emacs/src/lisp.h  2062
 +SAVE_TYPE_FUNCPTR_PTR_OBJ     c-src/emacs/src/lisp.h  2076
 +SAVE_TYPE_INT_INT     c-src/emacs/src/lisp.h  2066
 +SAVE_TYPE_INT_INT_INT c-src/emacs/src/lisp.h  2067
 +SAVE_TYPE_MEMORY      c-src/emacs/src/lisp.h  2080
 +SAVE_TYPE_OBJ_OBJ     c-src/emacs/src/lisp.h  2069
 +SAVE_TYPE_OBJ_OBJ_OBJ c-src/emacs/src/lisp.h  2070
 +SAVE_TYPE_OBJ_OBJ_OBJ_OBJ     c-src/emacs/src/lisp.h  2071
 +SAVE_TYPE_PTR_INT     c-src/emacs/src/lisp.h  2073
 +SAVE_TYPE_PTR_OBJ     c-src/emacs/src/lisp.h  2074
 +SAVE_TYPE_PTR_PTR     c-src/emacs/src/lisp.h  2075
 +SAVE_UNUSED   c-src/emacs/src/lisp.h  2047
 +SAVE_VALUEP   c-src/emacs/src/lisp.h  /^SAVE_VALUEP (Lisp_Object x)$/
 +SAVE_VALUE_SLOTS      c-src/emacs/src/lisp.h  2058
 +SBYTES        c-src/emacs/src/lisp.h  /^SBYTES (Lisp_Object string)$/
 +SCHARS        c-src/emacs/src/lisp.h  /^SCHARS (Lisp_Object string)$/
 +SCREEN_FP     cp-src/screen.hpp       /^#define SCREEN_FP(x,y) \\$/
 +SCREEN_START  cp-src/screen.hpp       33
 +SDATA c-src/emacs/src/lisp.h  /^SDATA (Lisp_Object string)$/
 +SDTrefGetInteger      pas-src/common.pas      /^function SDTrefGetInteger : integer;$/
 +SDTrefIsEnd   pas-src/common.pas      /^function SDTrefIsEnd : Boolean;$/
 +SDTrefRecToString     pas-src/common.pas      /^procedure SDTrefRecToString  (* ($/
 +SDTrefSkipSpaces      pas-src/common.pas      /^procedure SDTrefSkipSpaces;$/
 +SDTrefStringToRec     pas-src/common.pas      /^procedure SDTrefStringToRec (* ($/
 +SETPRT        f-src/entry.for /^       ENTRY  SETPRT ( SHORT, EXPL, LONG, TRACE, D/
 +SETPRT        f-src/entry.strange_suffix      /^       ENTRY  SETPRT ( SHORT, EXPL, LONG, TRACE, D/
 +SETPRT        f-src/entry.strange     /^       ENTRY  SETPRT ( SHORT, EXPL, LONG, TRACE, D/
 +SET_SYMBOL_BLV        c-src/emacs/src/lisp.h  /^SET_SYMBOL_BLV (struct Lisp_Symbol *sym, struct Li/
 +SET_SYMBOL_FWD        c-src/emacs/src/lisp.h  /^SET_SYMBOL_FWD (struct Lisp_Symbol *sym, union Lis/
 +SET_SYMBOL_VAL        c-src/emacs/src/lisp.h  /^# define SET_SYMBOL_VAL(sym, v) lisp_h_SET_SYMBOL_/
 +SINGLE_LETTER_MOD     c-src/emacs/src/keyboard.c      /^#define SINGLE_LETTER_MOD(BIT)                                \\$/
 +SINGLE_LETTER_MOD     c-src/emacs/src/keyboard.c      6212
 +SINGLE_LETTER_MOD     c-src/emacs/src/keyboard.c      /^#define SINGLE_LETTER_MOD(BIT)                                \\$/
 +SINGLE_LETTER_MOD     c-src/emacs/src/keyboard.c      6763
 +SIZEFORMAT    objc-src/PackInsp.m     57
 +SPECPDL_BACKTRACE     c-src/emacs/src/lisp.h  2948
 +SPECPDL_LET   c-src/emacs/src/lisp.h  2949
 +SPECPDL_LET_DEFAULT   c-src/emacs/src/lisp.h  2952
 +SPECPDL_LET_LOCAL     c-src/emacs/src/lisp.h  2951
 +SPECPDL_UNWIND        c-src/emacs/src/lisp.h  2944
 +SPECPDL_UNWIND_INT    c-src/emacs/src/lisp.h  2946
 +SPECPDL_UNWIND_PTR    c-src/emacs/src/lisp.h  2945
 +SPECPDL_UNWIND_VOID   c-src/emacs/src/lisp.h  2947
 +SRCS  make-src/Makefile       /^SRCS=Makefile ${ADASRC} ${ASRC} ${CSRC} ${CPSRC} $/
 +SREF  c-src/emacs/src/lisp.h  /^SREF (Lisp_Object string, ptrdiff_t index)$/
 +SSDATA        c-src/emacs/src/lisp.h  /^SSDATA (Lisp_Object string)$/
 +SSET  c-src/emacs/src/lisp.h  /^SSET (Lisp_Object string, ptrdiff_t index, unsigne/
 +STACK_CONS    c-src/emacs/src/lisp.h  /^#define STACK_CONS(a, b) \\$/
 +STATE_ABORT   php-src/lce_functions.php       25
 +STATE_COMPRESSD       objc-src/PackInsp.m     54
 +STATE_INSTALLED       objc-src/PackInsp.m     53
 +STATE_LOOP    php-src/lce_functions.php       27
 +STATE_OK      php-src/lce_functions.php       26
 +STATE_UNINSTALLED     objc-src/PackInsp.m     52
 +STAT_EQ       objc-src/PackInsp.m     /^#define STAT_EQ(s1, s2)       ((s1)->st_ino == (s2)->st_/
 +STDIN c-src/etags.c   408
 +STDIN c-src/etags.c   411
 +STOP_POLLING  c-src/emacs/src/keyboard.c      2166
 +STRING_BYTES  c-src/emacs/src/lisp.h  /^STRING_BYTES (struct Lisp_String *s)$/
 +STRING_BYTES_BOUND    c-src/emacs/src/lisp.h  1261
 +STRING_MULTIBYTE      c-src/emacs/src/lisp.h  /^STRING_MULTIBYTE (Lisp_Object str)$/
 +STRING_SET_CHARS      c-src/emacs/src/lisp.h  /^STRING_SET_CHARS (Lisp_Object string, ptrdiff_t ne/
 +STRING_SET_MULTIBYTE  c-src/emacs/src/lisp.h  /^#define STRING_SET_MULTIBYTE(STR)                     \\$/
 +STRING_SET_UNIBYTE    c-src/emacs/src/lisp.h  /^#define STRING_SET_UNIBYTE(STR)                               \\$/
 +SUBRP c-src/emacs/src/lisp.h  /^SUBRP (Lisp_Object a)$/
 +SUB_CHAR_TABLE_OFFSET c-src/emacs/src/lisp.h  1701
 +SUB_CHAR_TABLE_P      c-src/emacs/src/lisp.h  /^SUB_CHAR_TABLE_P (Lisp_Object a)$/
 +SXHASH_REDUCE c-src/emacs/src/lisp.h  /^SXHASH_REDUCE (EMACS_UINT x)$/
 +SYMBOLP       c-src/emacs/src/lisp.h  /^# define SYMBOLP(x) lisp_h_SYMBOLP (x)$/
 +SYMBOL_BLV    c-src/emacs/src/lisp.h  /^SYMBOL_BLV (struct Lisp_Symbol *sym)$/
 +SYMBOL_CONSTANT_P     c-src/emacs/src/lisp.h  /^# define SYMBOL_CONSTANT_P(sym) lisp_h_SYMBOL_CONS/
 +SYMBOL_FORWARDED      c-src/emacs/src/lisp.h  651
 +SYMBOL_FWD    c-src/emacs/src/lisp.h  /^SYMBOL_FWD (struct Lisp_Symbol *sym)$/
 +SYMBOL_INDEX  c-src/emacs/src/lisp.h  /^#define SYMBOL_INDEX(sym) i##sym$/
 +SYMBOL_INTERNED       c-src/emacs/src/lisp.h  642
 +SYMBOL_INTERNED_IN_INITIAL_OBARRAY    c-src/emacs/src/lisp.h  643
 +SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P  c-src/emacs/src/lisp.h  /^SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P (Lisp_Object /
 +SYMBOL_INTERNED_P     c-src/emacs/src/lisp.h  /^SYMBOL_INTERNED_P (Lisp_Object sym)$/
 +SYMBOL_LOCALIZED      c-src/emacs/src/lisp.h  650
 +SYMBOL_NAME   c-src/emacs/src/lisp.h  /^SYMBOL_NAME (Lisp_Object sym)$/
 +SYMBOL_PLAINVAL       c-src/emacs/src/lisp.h  648
 +SYMBOL_UNINTERNED     c-src/emacs/src/lisp.h  641
 +SYMBOL_VAL    c-src/emacs/src/lisp.h  /^# define SYMBOL_VAL(sym) lisp_h_SYMBOL_VAL (sym)$/
 +SYMBOL_VARALIAS       c-src/emacs/src/lisp.h  649
 +SYSCALL       c-src/machsyscalls.c    /^#define       SYSCALL(name, number, type, args, typed_ar/
 +Sample        tex-src/gzip.texi       /^@node Sample, Invoking gzip, Overview, Top$/
 +Scheme_functions      c-src/etags.c   /^Scheme_functions (FILE *inf)$/
 +Scheme_help   c-src/etags.c   667
 +Scheme_suffixes       c-src/etags.c   665
 +SelectLayer   lua-src/allegro.lua     /^function SelectLayer (layer)$/
 +Self/f        ada-src/2ataspri.adb    /^   function Self return TCB_Ptr is$/
 +Self/f        ada-src/2ataspri.ads    /^   function Self return TCB_Ptr;$/
 +Server        pyt-src/server.py       /^class Server:$/
 +ServerEdit    pyt-src/server.py       /^class ServerEdit(Frame):$/
 +Set_Own_Priority/p    ada-src/2ataspri.adb    /^   procedure Set_Own_Priority (Prio : System.Any_P/
 +Set_Own_Priority/p    ada-src/2ataspri.ads    /^   procedure Set_Own_Priority (Prio : System.Any_P/
 +Set_Priority/p        ada-src/2ataspri.adb    /^   procedure Set_Priority$/
 +Set_Priority/p        ada-src/2ataspri.ads    /^   procedure Set_Priority (T : TCB_Ptr; Prio : Sys/
 +SimpleCalc    objcpp-src/SimpleCalc.H /^@interface SimpleCalc:Object$/
 +SkipBlanks    pas-src/common.pas      /^function SkipBlanks; (*($/
 +SkipChars     pas-src/common.pas      /^function SkipChars; (*($/
 +SkipSpaces    pas-src/common.pas      /^procedure SkipSpaces; (* (Str : NameString; var I /
 +Square.something:Bar  lua-src/test.lua        /^function Square.something:Bar ()$/
 +StartDay      cp-src/functions.cpp    /^Date StartDay(Date a,int days){\/\/Function to calcu/
 +StripPath     pas-src/common.pas      /^function StripPath; (*($/
 +SubString     pas-src/common.pas      /^function SubString; (*($/
 +Subprocess    objc-src/Subprocess.h   41
 +Subprocess    objc-src/Subprocess.h   /^@interface Subprocess:Object$/
 +System.Task_Primitives/b      ada-src/2ataspri.adb    /^package body System.Task_Primitives is$/
 +System.Task_Primitives/s      ada-src/2ataspri.ads    /^package System.Task_Primitives is$/
 +T     cp-src/fail.C   14
 +T2    cp-src/fail.C   16
 +T3    c.c     163
 +TAGS  make-src/Makefile       /^TAGS: etags.c$/
 +TAG_PTR       c-src/emacs/src/lisp.h  /^#define TAG_PTR(tag, ptr) \\$/
 +TAG_SYMOFFSET c-src/emacs/src/lisp.h  /^#define TAG_SYMOFFSET(offset)                             \\$/
 +TAS_Cell/t    ada-src/2ataspri.ads    /^   type TAS_Cell is private;$/
 +TAS_Cell/t    ada-src/2ataspri.ads    /^   type TAS_Cell is$/
 +TCB_Ptr/t     ada-src/2ataspri.ads    /^   type TCB_Ptr is access all Task_Control_Block;$/
 +TCLFLAGS      make-src/Makefile       /^TCLFLAGS=--lang=none --regex='\/proc[ \\t]+\\([^ \\t]+/
 +TERMINALP     c-src/emacs/src/lisp.h  /^TERMINALP (Lisp_Object a)$/
 +TEST  php-src/ptest.php       1
 +TEXSRC        make-src/Makefile       /^TEXSRC=testenv.tex gzip.texi texinfo.tex nonewline/
 +TEX_LESC      c-src/etags.c   4986
 +TEX_SESC      c-src/etags.c   4987
 +TEX_clgrp     c-src/etags.c   4922
 +TEX_decode_env        c-src/etags.c   /^TEX_decode_env (const char *evarname, const char */
 +TEX_defenv    c-src/etags.c   4912
 +TEX_esc       c-src/etags.c   4920
 +TEX_mode      c-src/etags.c   /^TEX_mode (FILE *inf)$/
 +TEX_opgrp     c-src/etags.c   4921
 +TEX_toktab    c-src/etags.c   4908
 +TOTAL_KEYWORDS        c-src/etags.c   2325
 +TSL/s ada-src/2ataspri.adb    /^   package TSL renames System.Tasking_Soft_Links;$/
 +TYPESTOSTAT   objc-src/PackInsp.h     37
 +TYPE_RANGED_INTEGERP  c-src/emacs/src/lisp.h  /^#define TYPE_RANGED_INTEGERP(type, x) \\$/
 +Tapes tex-src/gzip.texi       /^@node Tapes, Problems, Environment, Top$/
 +Task_Control_Block/t  ada-src/2ataspri.ads    /^   type Task_Control_Block is record$/
 +Task_Storage_Size/t   ada-src/2ataspri.ads    /^   type Task_Storage_Size is new Interfaces.C.size/
 +Task_Type/b   ada-src/etags-test-for.ada      /^  task body Task_Type is$/
 +Task_Type/b   ada-src/waroquiers.ada  /^  task body Task_Type is$/
 +Task_Type/k   ada-src/etags-test-for.ada      /^  task type Task_Type is$/
 +Task_Type/k   ada-src/waroquiers.ada  /^  task type Task_Type is$/
 +TeX_commands  c-src/etags.c   /^TeX_commands (FILE *inf)$/
 +TeX_help      c-src/etags.c   674
 +TeX_suffixes  c-src/etags.c   672
 +Test_Abort/p  ada-src/2ataspri.adb    /^   procedure Test_Abort is$/
 +Test_Abort/p  ada-src/2ataspri.ads    /^   procedure Test_Abort;$/
 +Test_And_Set/p        ada-src/2ataspri.adb    /^   procedure Test_And_Set (Cell : in out TAS_Cell;/
 +Test_And_Set/p        ada-src/2ataspri.ads    /^   procedure Test_And_Set (Cell : in out TAS_Cell;/
 +Texinfo_help  c-src/etags.c   688
 +Texinfo_nodes c-src/etags.c   /^Texinfo_nodes (FILE *inf)$/
 +Texinfo_suffixes      c-src/etags.c   686
 +Time_to_position      c-src/emacs/src/keyboard.c      /^Time_to_position (Time encoded_pos)$/
 +To_Lower      pas-src/common.pas      /^function To_Lower;(*(ch:char) : char;*)$/
 +To_Start_Addr/f       ada-src/2ataspri.adb    /^      function To_Start_Addr is new$/
 +To_TCB_Ptr/f  ada-src/2ataspri.adb    /^   function To_TCB_Ptr is new$/
 +To_Upper      pas-src/common.pas      /^function To_Upper;(*(ch:char) : char;*)$/
 +To_void_ptr/f ada-src/2ataspri.adb    /^   function To_void_ptr is new$/
 +Top   tex-src/gzip.texi       /^@node Top, , , (dir)$/
 +Truc.Bidule/b ada-src/etags-test-for.ada      /^package body Truc.Bidule is$/
 +Truc.Bidule/b ada-src/waroquiers.ada  /^package body Truc.Bidule is$/
 +Truc.Bidule/s ada-src/etags-test-for.ada      /^package Truc.Bidule is$/
 +Truc.Bidule/s ada-src/waroquiers.ada  /^package Truc.Bidule is$/
 +Truc/s        ada-src/etags-test-for.ada      /^package Truc is$/
 +Truc/s        ada-src/waroquiers.ada  /^package Truc is$/
 +Type_Specific_Data/t  ada-src/etags-test-for.ada      /^   type Type_Specific_Data is record$/
 +UCHAR c-src/emacs/src/lisp.h  2424
 +UNARY y-src/cccp.c    18
 +UNDEFINED     c-src/h.h       118
 +UNEVALLED     c-src/emacs/src/lisp.h  2834
 +UNGCPRO       c-src/emacs/src/lisp.h  3202
 +UNGCPRO       c-src/emacs/src/lisp.h  3257
 +UNGCPRO       c-src/emacs/src/lisp.h  3353
 +UNLOCK        c-src/emacs/src/gmalloc.c       /^#define UNLOCK()                              \\$/
 +UNLOCK        c-src/emacs/src/gmalloc.c       /^#define UNLOCK()$/
 +UNLOCK_ALIGNED_BLOCKS c-src/emacs/src/gmalloc.c       /^#define UNLOCK_ALIGNED_BLOCKS()                               \\$/
 +UNLOCK_ALIGNED_BLOCKS c-src/emacs/src/gmalloc.c       /^#define UNLOCK_ALIGNED_BLOCKS()$/
 +UNSIGNED_CMP  c-src/emacs/src/lisp.h  /^#define UNSIGNED_CMP(a, op, b)                                                \\$/
 +USE_LSB_TAG   c-src/emacs/src/lisp.h  271
 +USE_LSB_TAG   c-src/emacs/src/lisp.h  /^DEFINE_GDB_SYMBOL_BEGIN (bool, USE_LSB_TAG)$/
 +USE_PTHREAD   c-src/emacs/src/gmalloc.c       25
 +USE_SAFE_ALLOCA       c-src/emacs/src/lisp.h  4560
 +USE_STACK_CONS        c-src/emacs/src/lisp.h  4689
 +USE_STACK_LISP_OBJECTS        c-src/emacs/src/lisp.h  4652
 +USE_STACK_LISP_OBJECTS        c-src/emacs/src/lisp.h  4658
 +USE_STACK_LISP_OBJECTS        c-src/emacs/src/lisp.h  4659
 +USE_STACK_STRING      c-src/emacs/src/lisp.h  4691
 +U_CHAR        cccp.y  38
 +U_CHAR        y-src/cccp.y    38
 +Unlock/p      ada-src/2ataspri.adb    /^   procedure Unlock (L : in out Lock) is$/
 +Unlock/p      ada-src/2ataspri.ads    /^   procedure Unlock (L : in out Lock);$/
 +User  pyt-src/server.py       /^class User:$/
 +UserEdit      pyt-src/server.py       /^class UserEdit(Frame):$/
 +VALBITS       c-src/emacs/src/lisp.h  246
 +VALMASK       c-src/emacs/src/lisp.h  829
 +VALMASK       c-src/emacs/src/lisp.h  /^DEFINE_GDB_SYMBOL_BEGIN (EMACS_INT, VALMASK)$/
 +VAL_MAX       c-src/emacs/src/lisp.h  263
 +VECSIZE       c-src/emacs/src/lisp.h  /^#define VECSIZE(type)                                         \\$/
 +VECTORLIKEP   c-src/emacs/src/lisp.h  /^# define VECTORLIKEP(x) lisp_h_VECTORLIKEP (x)$/
 +VECTORP       c-src/emacs/src/lisp.h  /^VECTORP (Lisp_Object x)$/
 +VERSION       c-src/etags.c   789
 +VERSION       erl-src/gs_dialog.erl   /^-define(VERSION, '2001.1101').$/
 +VERSION       objc-src/PackInsp.m     34
 +VHDLFLAGS     make-src/Makefile       /^VHDLFLAGS=--language=none --regex='\/[ \\t]*\\(ARCHIT/
 +Vabbrev_start_location        c-src/abbrev.c  63
 +Vabbrev_start_location_buffer c-src/abbrev.c  66
 +Vabbrev_table_name_list       c-src/abbrev.c  43
 +ValToNmStr    pas-src/common.pas      /^function ValToNmStr; (*($/
 +Vfundamental_mode_abbrev_table        c-src/abbrev.c  52
 +Vglobal_abbrev_table  c-src/abbrev.c  48
 +Vlast_abbrev  c-src/abbrev.c  70
 +Vlast_abbrev_text     c-src/abbrev.c  75
 +Vlispy_mouse_stem     c-src/emacs/src/keyboard.c      5172
 +Vpre_abbrev_expand_hook       c-src/abbrev.c  83
 +WAIT_READING_MAX      c-src/emacs/src/lisp.h  4281
 +WAIT_READING_MAX      c-src/emacs/src/lisp.h  4283
 +WARNINGS      make-src/Makefile       /^WARNINGS=-pedantic -Wall -Wpointer-arith -Winline /
 +WCHAR_TYPE_SIZE       cccp.y  99
 +WCHAR_TYPE_SIZE       y-src/cccp.y    99
 +WHITE cp-src/screen.hpp       27
 +WINDOWP       c-src/emacs/src/lisp.h  /^WINDOWP (Lisp_Object a)$/
 +WINDOWSNT     c-src/etags.c   101
 +WINDOWSNT     c-src/etags.c   102
 +WINDOW_CONFIGURATIONP c-src/emacs/src/lisp.h  /^WINDOW_CONFIGURATIONP (Lisp_Object a)$/
 +WORKING       objc-src/PackInsp.m     368
 +WorkingDays   cp-src/functions.cpp    /^int WorkingDays(Date a, Date b){$/
 +Write_Lock/p  ada-src/2ataspri.adb    /^   procedure Write_Lock (L : in out Lock; Ceiling_/
 +Write_Lock/p  ada-src/2ataspri.ads    /^   procedure Write_Lock (L : in out Lock; Ceiling_/
 +X     c-src/h.h       100
 +XBOOL_VECTOR  c-src/emacs/src/lisp.h  /^XBOOL_VECTOR (Lisp_Object a)$/
 +XBUFFER       c-src/emacs/src/lisp.h  /^XBUFFER (Lisp_Object a)$/
 +XBUFFER_OBJFWD        c-src/emacs/src/lisp.h  /^XBUFFER_OBJFWD (union Lisp_Fwd *a)$/
 +XCAR  c-src/emacs/src/lisp.h  /^# define XCAR(c) lisp_h_XCAR (c)$/
 +XCDR  c-src/emacs/src/lisp.h  /^# define XCDR(c) lisp_h_XCDR (c)$/
 +XCHAR_TABLE   c-src/emacs/src/lisp.h  /^XCHAR_TABLE (Lisp_Object a)$/
 +XCHG_0        c-src/sysdep.h  47
 +XCHG_1        c-src/sysdep.h  48
 +XCHG_2        c-src/sysdep.h  49
 +XCHG_3        c-src/sysdep.h  50
 +XCHG_4        c-src/sysdep.h  51
 +XCHG_5        c-src/sysdep.h  52
 +XCONS c-src/emacs/src/lisp.h  /^# define XCONS(a) lisp_h_XCONS (a)$/
 +XDEFUN        c.c     /^XDEFUN ("x-get-selection-internal", Fx_get_selecti/
 +XFASTINT      c-src/emacs/src/lisp.h  /^#  define XFASTINT(a) lisp_h_XFASTINT (a)$/
 +XFASTINT      c-src/emacs/src/lisp.h  /^XFASTINT (Lisp_Object a)$/
 +XFINALIZER    c-src/emacs/src/lisp.h  /^XFINALIZER (Lisp_Object a)$/
 +XFLOAT        c-src/emacs/src/lisp.h  /^XFLOAT (Lisp_Object a)$/
 +XFLOATINT     c-src/emacs/src/lisp.h  /^XFLOATINT (Lisp_Object n)$/
 +XFLOAT_DATA   c-src/emacs/src/lisp.h  /^XFLOAT_DATA (Lisp_Object f)$/
 +XFWDTYPE      c-src/emacs/src/lisp.h  /^XFWDTYPE (union Lisp_Fwd *a)$/
 +XHASH c-src/emacs/src/lisp.h  /^# define XHASH(a) lisp_h_XHASH (a)$/
 +XHASH_TABLE   c-src/emacs/src/lisp.h  /^XHASH_TABLE (Lisp_Object a)$/
 +XIL   c-src/emacs/src/lisp.h  /^# define XIL(i) lisp_h_XIL (i)$/
 +XINT  c-src/emacs/src/lisp.h  /^#  define XINT(a) lisp_h_XINT (a)$/
 +XINT  c-src/emacs/src/lisp.h  /^XINT (Lisp_Object a)$/
 +XINTPTR       c-src/emacs/src/lisp.h  /^XINTPTR (Lisp_Object a)$/
 +XLI   c-src/emacs/src/lisp.h  /^# define XLI(o) lisp_h_XLI (o)$/
 +XLI_BUILTIN_LISPSYM   c-src/emacs/src/lisp.h  /^#define XLI_BUILTIN_LISPSYM(iname) TAG_SYMOFFSET (/
 +XMARKER       c-src/emacs/src/lisp.h  /^XMARKER (Lisp_Object a)$/
 +XMISC c-src/emacs/src/lisp.h  /^XMISC (Lisp_Object a)$/
 +XMISCANY      c-src/emacs/src/lisp.h  /^XMISCANY (Lisp_Object a)$/
 +XMISCTYPE     c-src/emacs/src/lisp.h  /^XMISCTYPE (Lisp_Object a)$/
 +XOVERLAY      c-src/emacs/src/lisp.h  /^XOVERLAY (Lisp_Object a)$/
 +XPNTR c-src/emacs/src/lisp.h  /^# define XPNTR(a) lisp_h_XPNTR (a)$/
 +XPROCESS      c-src/emacs/src/lisp.h  /^XPROCESS (Lisp_Object a)$/
 +XSAVE_FUNCPOINTER     c-src/emacs/src/lisp.h  /^XSAVE_FUNCPOINTER (Lisp_Object obj, int n)$/
 +XSAVE_INTEGER c-src/emacs/src/lisp.h  /^XSAVE_INTEGER (Lisp_Object obj, int n)$/
 +XSAVE_OBJECT  c-src/emacs/src/lisp.h  /^XSAVE_OBJECT (Lisp_Object obj, int n)$/
 +XSAVE_POINTER c-src/emacs/src/lisp.h  /^XSAVE_POINTER (Lisp_Object obj, int n)$/
 +XSAVE_VALUE   c-src/emacs/src/lisp.h  /^XSAVE_VALUE (Lisp_Object a)$/
 +XSETBOOL_VECTOR       c-src/emacs/src/lisp.h  /^#define XSETBOOL_VECTOR(a, b) (XSETPSEUDOVECTOR (a/
 +XSETBUFFER    c-src/emacs/src/lisp.h  /^#define XSETBUFFER(a, b) (XSETPSEUDOVECTOR (a, b, /
 +XSETCDR       c-src/emacs/src/lisp.h  /^XSETCDR (Lisp_Object c, Lisp_Object n)$/
 +XSETCHAR_TABLE        c-src/emacs/src/lisp.h  /^#define XSETCHAR_TABLE(a, b) (XSETPSEUDOVECTOR (a,/
 +XSETCOMPILED  c-src/emacs/src/lisp.h  /^#define XSETCOMPILED(a, b) (XSETPSEUDOVECTOR (a, b/
 +XSETCONS      c-src/emacs/src/lisp.h  /^#define XSETCONS(a, b) ((a) = make_lisp_ptr (b, Li/
 +XSETFASTINT   c-src/emacs/src/lisp.h  /^#define XSETFASTINT(a, b) ((a) = make_natnum (b))$/
 +XSETFLOAT     c-src/emacs/src/lisp.h  /^#define XSETFLOAT(a, b) ((a) = make_lisp_ptr (b, L/
 +XSETINT       c-src/emacs/src/lisp.h  /^#define XSETINT(a, b) ((a) = make_number (b))$/
 +XSETMISC      c-src/emacs/src/lisp.h  /^#define XSETMISC(a, b) ((a) = make_lisp_ptr (b, Li/
 +XSETPROCESS   c-src/emacs/src/lisp.h  /^#define XSETPROCESS(a, b) (XSETPSEUDOVECTOR (a, b,/
 +XSETPSEUDOVECTOR      c-src/emacs/src/lisp.h  /^#define XSETPSEUDOVECTOR(a, b, code) \\$/
 +XSETPVECTYPE  c-src/emacs/src/lisp.h  /^#define XSETPVECTYPE(v, code)                                         \\$/
 +XSETPVECTYPESIZE      c-src/emacs/src/lisp.h  /^#define XSETPVECTYPESIZE(v, code, lispsize, restsi/
 +XSETSTRING    c-src/emacs/src/lisp.h  /^#define XSETSTRING(a, b) ((a) = make_lisp_ptr (b, /
 +XSETSUBR      c-src/emacs/src/lisp.h  /^#define XSETSUBR(a, b) (XSETPSEUDOVECTOR (a, b, PV/
 +XSETSUB_CHAR_TABLE    c-src/emacs/src/lisp.h  /^#define XSETSUB_CHAR_TABLE(a, b) (XSETPSEUDOVECTOR/
 +XSETSYMBOL    c-src/emacs/src/lisp.h  /^#define XSETSYMBOL(a, b) ((a) = make_lisp_symbol (/
 +XSETTERMINAL  c-src/emacs/src/lisp.h  /^#define XSETTERMINAL(a, b) (XSETPSEUDOVECTOR (a, b/
 +XSETTYPED_PSEUDOVECTOR        c-src/emacs/src/lisp.h  /^#define XSETTYPED_PSEUDOVECTOR(a, b, size, code)              /
 +XSETVECTOR    c-src/emacs/src/lisp.h  /^#define XSETVECTOR(a, b) ((a) = make_lisp_ptr (b, /
 +XSETWINDOW    c-src/emacs/src/lisp.h  /^#define XSETWINDOW(a, b) (XSETPSEUDOVECTOR (a, b, /
 +XSETWINDOW_CONFIGURATION      c-src/emacs/src/lisp.h  /^#define XSETWINDOW_CONFIGURATION(a, b) \\$/
 +XSET_HASH_TABLE       c-src/emacs/src/lisp.h  /^#define XSET_HASH_TABLE(VAR, PTR) \\$/
 +XSTRING       c-src/emacs/src/lisp.h  /^XSTRING (Lisp_Object a)$/
 +XSUBR c-src/emacs/src/lisp.h  /^XSUBR (Lisp_Object a)$/
 +XSUB_CHAR_TABLE       c-src/emacs/src/lisp.h  /^XSUB_CHAR_TABLE (Lisp_Object a)$/
 +XSYMBOL       c-src/emacs/src/lisp.h  /^#  define XSYMBOL(a) lisp_h_XSYMBOL (a)$/
 +XSYMBOL       c-src/emacs/src/lisp.h  /^XSYMBOL (Lisp_Object a)$/
 +XTERMINAL     c-src/emacs/src/lisp.h  /^XTERMINAL (Lisp_Object a)$/
 +XTYPE c-src/emacs/src/lisp.h  /^#  define XTYPE(a) lisp_h_XTYPE (a)$/
 +XTYPE c-src/emacs/src/lisp.h  /^XTYPE (Lisp_Object a)$/
 +XUNTAG        c-src/emacs/src/lisp.h  /^#  define XUNTAG(a, type) lisp_h_XUNTAG (a, type)$/
 +XUNTAG        c-src/emacs/src/lisp.h  /^XUNTAG (Lisp_Object a, int type)$/
 +XWINDOW       c-src/emacs/src/lisp.h  /^XWINDOW (Lisp_Object a)$/
 +XX    cp-src/x.cc     1
 +Xyzzy ruby-src/test1.ru       13
 +Y     c-src/h.h       100
 +YACC  c-src/etags.c   2199
 +YELLOW        cp-src/screen.hpp       26
 +YSRC  make-src/Makefile       /^YSRC=parse.y parse.c atest.y cccp.c cccp.y$/
 +YYABORT       /usr/share/bison/bison.simple   153
 +YYABORT       /usr/share/bison/bison.simple   154
 +YYACCEPT      /usr/share/bison/bison.simple   152
 +YYACCEPT      /usr/share/bison/bison.simple   153
 +YYBACKUP      /usr/share/bison/bison.simple   /^#define YYBACKUP(Token, Value)                                        \\$/
 +YYBACKUP      /usr/share/bison/bison.simple   /^#define YYBACKUP(Token, Value)                                        \\$/
 +YYBISON       y-src/parse.c   4
 +YYBISON       y-src/cccp.c    4
 +YYDEBUG       parse.y 88
 +YYDEBUG       cccp.y  122
 +YYDPRINTF     /usr/share/bison/bison.simple   /^# define YYDPRINTF(Args)                      \\$/
 +YYDPRINTF     /usr/share/bison/bison.simple   /^# define YYDPRINTF(Args)$/
 +YYDPRINTF     /usr/share/bison/bison.simple   /^# define YYDPRINTF(Args)                      \\$/
 +YYDPRINTF     /usr/share/bison/bison.simple   /^# define YYDPRINTF(Args)$/
 +YYEMPTY       /usr/share/bison/bison.simple   150
 +YYEMPTY       /usr/share/bison/bison.simple   151
 +YYEOF /usr/share/bison/bison.simple   151
 +YYEOF /usr/share/bison/bison.simple   152
 +YYERRCODE     /usr/share/bison/bison.simple   178
 +YYERRCODE     /usr/share/bison/bison.simple   179
 +YYERROR       /usr/share/bison/bison.simple   154
 +YYERROR       /usr/share/bison/bison.simple   155
 +YYFAIL        /usr/share/bison/bison.simple   158
 +YYFAIL        /usr/share/bison/bison.simple   159
 +YYFINAL       parse.y 93
 +YYFINAL       cccp.y  127
 +YYFLAG        parse.y 94
 +YYFLAG        cccp.y  128
 +YYFPRINTF     /usr/share/bison/bison.simple   225
 +YYFPRINTF     /usr/share/bison/bison.simple   226
 +YYINITDEPTH   /usr/share/bison/bison.simple   244
 +YYINITDEPTH   /usr/share/bison/bison.simple   245
 +YYLAST        parse.y 266
 +YYLAST        cccp.y  274
 +YYLEX /usr/share/bison/bison.simple   200
 +YYLEX /usr/share/bison/bison.simple   202
 +YYLEX /usr/share/bison/bison.simple   206
 +YYLEX /usr/share/bison/bison.simple   208
 +YYLEX /usr/share/bison/bison.simple   212
 +YYLEX /usr/share/bison/bison.simple   201
 +YYLEX /usr/share/bison/bison.simple   203
 +YYLEX /usr/share/bison/bison.simple   207
 +YYLEX /usr/share/bison/bison.simple   209
 +YYLEX /usr/share/bison/bison.simple   213
 +YYLLOC_DEFAULT        /usr/share/bison/bison.simple   /^# define YYLLOC_DEFAULT(Current, Rhs, N)              \\$/
 +YYLLOC_DEFAULT        /usr/share/bison/bison.simple   /^# define YYLLOC_DEFAULT(Current, Rhs, N)              \\$/
 +YYMAXDEPTH    /usr/share/bison/bison.simple   255
 +YYMAXDEPTH    /usr/share/bison/bison.simple   259
 +YYMAXDEPTH    /usr/share/bison/bison.simple   256
 +YYMAXDEPTH    /usr/share/bison/bison.simple   260
 +YYNTBASE      parse.y 95
 +YYNTBASE      cccp.y  129
 +YYPARSE_PARAM_ARG     /usr/share/bison/bison.simple   351
 +YYPARSE_PARAM_ARG     /usr/share/bison/bison.simple   354
 +YYPARSE_PARAM_ARG     /usr/share/bison/bison.simple   358
 +YYPARSE_PARAM_ARG     /usr/share/bison/bison.simple   351
 +YYPARSE_PARAM_ARG     /usr/share/bison/bison.simple   354
 +YYPARSE_PARAM_ARG     /usr/share/bison/bison.simple   358
 +YYPARSE_PARAM_DECL    /usr/share/bison/bison.simple   352
 +YYPARSE_PARAM_DECL    /usr/share/bison/bison.simple   355
 +YYPARSE_PARAM_DECL    /usr/share/bison/bison.simple   359
 +YYPARSE_PARAM_DECL    /usr/share/bison/bison.simple   352
 +YYPARSE_PARAM_DECL    /usr/share/bison/bison.simple   355
 +YYPARSE_PARAM_DECL    /usr/share/bison/bison.simple   359
 +YYPOPSTACK    /usr/share/bison/bison.simple   445
 +YYPOPSTACK    /usr/share/bison/bison.simple   447
 +YYPOPSTACK    /usr/share/bison/bison.simple   445
 +YYPOPSTACK    /usr/share/bison/bison.simple   447
 +YYRECOVERING  /usr/share/bison/bison.simple   /^#define YYRECOVERING()  (!!yyerrstatus)$/
 +YYRECOVERING  /usr/share/bison/bison.simple   /^#define YYRECOVERING()  (!!yyerrstatus)$/
 +YYSIZE_T      /usr/share/bison/bison.simple   51
 +YYSIZE_T      /usr/share/bison/bison.simple   56
 +YYSIZE_T      /usr/share/bison/bison.simple   71
 +YYSIZE_T      /usr/share/bison/bison.simple   75
 +YYSIZE_T      /usr/share/bison/bison.simple   128
 +YYSIZE_T      /usr/share/bison/bison.simple   131
 +YYSIZE_T      /usr/share/bison/bison.simple   136
 +YYSIZE_T      /usr/share/bison/bison.simple   140
 +YYSIZE_T      /usr/share/bison/bison.simple   145
 +YYSIZE_T      /usr/share/bison/bison.simple   52
 +YYSIZE_T      /usr/share/bison/bison.simple   57
 +YYSIZE_T      /usr/share/bison/bison.simple   72
 +YYSIZE_T      /usr/share/bison/bison.simple   76
 +YYSIZE_T      /usr/share/bison/bison.simple   129
 +YYSIZE_T      /usr/share/bison/bison.simple   132
 +YYSIZE_T      /usr/share/bison/bison.simple   137
 +YYSIZE_T      /usr/share/bison/bison.simple   141
 +YYSIZE_T      /usr/share/bison/bison.simple   146
 +YYSTACK_ALLOC /usr/share/bison/bison.simple   50
 +YYSTACK_ALLOC /usr/share/bison/bison.simple   55
 +YYSTACK_ALLOC /usr/share/bison/bison.simple   59
 +YYSTACK_ALLOC /usr/share/bison/bison.simple   78
 +YYSTACK_ALLOC /usr/share/bison/bison.simple   51
 +YYSTACK_ALLOC /usr/share/bison/bison.simple   56
 +YYSTACK_ALLOC /usr/share/bison/bison.simple   60
 +YYSTACK_ALLOC /usr/share/bison/bison.simple   79
 +YYSTACK_BYTES /usr/share/bison/bison.simple   /^#  define YYSTACK_BYTES(N) \\$/
 +YYSTACK_BYTES /usr/share/bison/bison.simple   /^#  define YYSTACK_BYTES(N) \\$/
 +YYSTACK_BYTES /usr/share/bison/bison.simple   /^#  define YYSTACK_BYTES(N) \\$/
 +YYSTACK_BYTES /usr/share/bison/bison.simple   /^#  define YYSTACK_BYTES(N) \\$/
 +YYSTACK_FREE  /usr/share/bison/bison.simple   /^#  define YYSTACK_FREE(Ptr) do { \/* empty *\/; } wh/
 +YYSTACK_FREE  /usr/share/bison/bison.simple   79
 +YYSTACK_FREE  /usr/share/bison/bison.simple   /^#  define YYSTACK_FREE(Ptr) do { \/* empty *\/; } wh/
 +YYSTACK_FREE  /usr/share/bison/bison.simple   80
 +YYSTACK_GAP_MAX       /usr/share/bison/bison.simple   93
 +YYSTACK_GAP_MAX       /usr/share/bison/bison.simple   94
 +YYSTACK_RELOCATE      /usr/share/bison/bison.simple   /^# define YYSTACK_RELOCATE(Type, Stack)                                        \\$/
 +YYSTACK_RELOCATE      /usr/share/bison/bison.simple   548
 +YYSTACK_RELOCATE      /usr/share/bison/bison.simple   /^# define YYSTACK_RELOCATE(Type, Stack)                                        \\$/
 +YYSTACK_RELOCATE      /usr/share/bison/bison.simple   548
 +YYSTD /usr/share/bison/bison.simple   /^# define YYSTD(x) std::x$/
 +YYSTD /usr/share/bison/bison.simple   /^# define YYSTD(x) x$/
 +YYSTD /usr/share/bison/bison.simple   /^# define YYSTD(x) std::x$/
 +YYSTD /usr/share/bison/bison.simple   /^# define YYSTD(x) x$/
 +YYSTYPE       y-src/parse.y   71
 +YYSTYPE       y-src/parse.y   72
 +YYSTYPE       parse.y 71
 +YYSTYPE       parse.y 72
 +YYSTYPE       parse.y 85
 +YYSTYPE       cccp.y  119
 +YYTERROR      /usr/share/bison/bison.simple   177
 +YYTERROR      /usr/share/bison/bison.simple   178
 +YYTRANSLATE   parse.y /^#define YYTRANSLATE(x) ((unsigned)(x) <= 278 ? yyt/
 +YYTRANSLATE   cccp.y  /^#define YYTRANSLATE(x) ((unsigned)(x) <= 269 ? yyt/
 +YY_DECL_NON_LSP_VARIABLES     /usr/share/bison/bison.simple   374
 +YY_DECL_NON_LSP_VARIABLES     /usr/share/bison/bison.simple   374
 +YY_DECL_VARIABLES     /usr/share/bison/bison.simple   385
 +YY_DECL_VARIABLES     /usr/share/bison/bison.simple   391
 +YY_DECL_VARIABLES     /usr/share/bison/bison.simple   385
 +YY_DECL_VARIABLES     /usr/share/bison/bison.simple   391
 +Yacc_entries  c-src/etags.c   /^Yacc_entries (FILE *inf)$/
 +Yacc_help     c-src/etags.c   693
 +Yacc_suffixes c-src/etags.c   691
 +Z     c-src/h.h       100
 +[]    ruby-src/test.rb        /^        def [](y)$/
 +[]=   ruby-src/test.rb        /^        def []=(y, val)$/
 +\     tex-src/texinfo.tex     /^\\def\\ {{\\fontdimen2\\font=\\tclosesave{} }}%$/
 +\     tex-src/texinfo.tex     /^\\gdef\\sepspaces{\\def {\\ }}}$/
 +\'    tex-src/texinfo.tex     /^\\def\\'{{'}}$/
 +\*    tex-src/texinfo.tex     /^\\def\\*{\\hfil\\break\\hbox{}\\ignorespaces}$/
 +\.    tex-src/texinfo.tex     /^\\def\\.{.\\spacefactor=3000 }$/
 +\1    c-src/abbrev.c  /^  DEFVAR_LISP ("abbrev-table-name-list", &Vabbrev_/
 +\1    c-src/abbrev.c  /^  DEFVAR_LISP ("global-abbrev-table", &Vglobal_abb/
 +\1    c-src/abbrev.c  /^  DEFVAR_LISP ("fundamental-mode-abbrev-table", &V/
 +\1    c-src/abbrev.c  /^  DEFVAR_LISP ("last-abbrev", &Vlast_abbrev,
 +    "/
 +\1    c-src/abbrev.c  /^  DEFVAR_LISP ("last-abbrev-text", &Vlast_abbrev_t/
 +\1    c-src/abbrev.c  /^  DEFVAR_INT ("last-abbrev-location", &last_abbrev/
 +\1    c-src/abbrev.c  /^  DEFVAR_LISP ("abbrev-start-location", &Vabbrev_s/
 +\1    c-src/abbrev.c  /^  DEFVAR_LISP ("abbrev-start-location-buffer", &Va/
 +\1    c-src/abbrev.c  /^  DEFVAR_PER_BUFFER ("local-abbrev-table", &curren/
 +\1    c-src/abbrev.c  /^  DEFVAR_BOOL ("abbrevs-changed", &abbrevs_changed/
 +\1    c-src/abbrev.c  /^  DEFVAR_BOOL ("abbrev-all-caps", &abbrev_all_caps/
 +\1    c-src/abbrev.c  /^  DEFVAR_LISP ("pre-abbrev-expand-hook", &Vpre_abb/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("internal--top-level-message", Vint/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("last-command-event", last_command_/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("last-nonmenu-event", last_nonmenu_/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("last-input-event", last_input_even/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("unread-command-events", Vunread_co/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("unread-post-input-method-events", /
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("unread-input-method-events", Vunre/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("meta-prefix-char", meta_prefix_cha/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_KBOARD ("last-command", Vlast_command,
 +              /
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_KBOARD ("real-last-command", Vreal_last_c/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_KBOARD ("last-repeatable-command", Vlast_/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("this-command", Vthis_command,
 +         /
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("real-this-command", Vreal_this_com/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("this-command-keys-shift-translated/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("this-original-command", Vthis_orig/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_INT ("auto-save-interval", auto_save_inte/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("auto-save-timeout", Vauto_save_tim/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("echo-keystrokes", Vecho_keystrokes/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_INT ("polling-period", polling_period,
 +       /
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("double-click-time", Vdouble_click_/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_INT ("double-click-fuzz", double_click_fu/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_INT ("num-input-keys", num_input_keys,
 +       /
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_INT ("num-nonmacro-input-events", num_non/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("last-event-frame", Vlast_event_fra/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("tty-erase-char", Vtty_erase_char,
 +/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("help-char", Vhelp_char,
 +             do/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("help-event-list", Vhelp_event_list/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("help-form", Vhelp_form,
 +             do/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("prefix-help-command", Vprefix_help/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("top-level", Vtop_level,
 +             do/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_KBOARD ("keyboard-translate-table", Vkeyb/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_BOOL ("cannot-suspend", cannot_suspend,
 +      /
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_BOOL ("menu-prompting", menu_prompting,
 +      /
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("menu-prompt-more-char", menu_promp/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_INT ("extra-keyboard-modifiers", extra_ke/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("deactivate-mark", Vdeactivate_mark/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("pre-command-hook", Vpre_command_ho/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("post-command-hook", Vpost_command_/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("echo-area-clear-hook", ...,
 +           /
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("lucid-menu-bar-dirty-flag", Vlucid/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("menu-bar-final-items", Vmenu_bar_f/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("tool-bar-separator-image-expressio/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_KBOARD ("overriding-terminal-local-map",
 +/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("overriding-local-map", Voverriding/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("overriding-local-map-menu-flag", V/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("special-event-map", Vspecial_event/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("track-mouse", do_mouse_tracking,
 +      /
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_KBOARD ("system-key-alist", Vsystem_key_a/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_KBOARD ("local-function-key-map", Vlocal_/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_KBOARD ("input-decode-map", Vinput_decode/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("function-key-map", Vfunction_key_m/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("key-translation-map", Vkey_transla/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("deferred-action-list", Vdeferred_a/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("deferred-action-function", Vdeferr/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("delayed-warnings-list", Vdelayed_w/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("timer-list", Vtimer_list,
 +             /
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("timer-idle-list", Vtimer_idle_list/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("input-method-function", Vinput_met/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("input-method-previous-message",
 +       /
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("show-help-function", Vshow_help_fu/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("disable-point-adjustment", Vdisabl/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("global-disable-point-adjustment",
 +/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("minibuffer-message-timeout", Vmini/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("throw-on-input", Vthrow_on_input,
 +/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("command-error-function", Vcommand_/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("enable-disabled-menus-and-buttons"/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("select-active-regions",
 +             Vs/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("saved-region-selection",
 +             V/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("selection-inhibit-update-commands"/
 +\1    c-src/emacs/src/keyboard.c      /^  DEFVAR_LISP ("debug-on-event",
 +               Vd/
 +\:    tex-src/texinfo.tex     /^\\def\\:{\\spacefactor=1000 }$/
 +\@    tex-src/texinfo.tex     /^\\def\\@{{\\tt \\char '100}}$/
 +\@    tex-src/texinfo.tex     /^\\def\\@{@}%$/
 +\CHAPFopen    tex-src/texinfo.tex     /^\\def\\CHAPFopen{$/
 +\CHAPFplain   tex-src/texinfo.tex     /^\\def\\CHAPFplain{$/
 +\CHAPPAGodd   tex-src/texinfo.tex     /^\\def\\CHAPPAGodd{$/
 +\CHAPPAGoff   tex-src/texinfo.tex     /^\\def\\CHAPPAGoff{$/
 +\CHAPPAGon    tex-src/texinfo.tex     /^\\def\\CHAPPAGon{$/
 +\ENVcheck     tex-src/texinfo.tex     /^\\def\\ENVcheck{%$/
 +\Ealphaenumerate      tex-src/texinfo.tex     /^\\def\\Ealphaenumerate{\\Eenumerate}$/
 +\Ecapsenumerate       tex-src/texinfo.tex     /^\\def\\Ecapsenumerate{\\Eenumerate}$/
 +\Ecartouche   tex-src/texinfo.tex     /^\\def\\Ecartouche{%$/
 +\Edescription tex-src/texinfo.tex     /^\\def\\Edescription{\\Etable}% Neccessary kludge.$/
 +\Edisplay     tex-src/texinfo.tex     /^\\def\\Edisplay{\\endgroup\\afterenvbreak}%$/
 +\Eexample     tex-src/texinfo.tex     /^\\def\\Eexample{\\Elisp}$/
 +\Eflushleft   tex-src/texinfo.tex     /^\\def\\Eflushleft{\\endgroup\\afterenvbreak}%$/
 +\Eflushright  tex-src/texinfo.tex     /^\\def\\Eflushright{\\endgroup\\afterenvbreak}%$/
 +\Eformat      tex-src/texinfo.tex     /^\\def\\Eformat{\\endgroup\\afterenvbreak}$/
 +\Eftable      tex-src/texinfo.tex     /^\\def\\Eftable{\\endgraf\\endgroup\\afterenvbreak}%$/
 +\Egroup       tex-src/texinfo.tex     /^  \\def\\Egroup{\\egroup\\endgroup}%$/
 +\Eifclear     tex-src/texinfo.tex     /^\\def\\Eifclear{}$/
 +\Eifset       tex-src/texinfo.tex     /^\\def\\Eifset{}$/
 +\Eiftex       tex-src/texinfo.tex     /^\\def\\Eiftex{}$/
 +\Elisp        tex-src/texinfo.tex     /^\\def\\Elisp{\\endgroup\\afterenvbreak}%$/
 +\Equotation   tex-src/texinfo.tex     /^\\def\\Equotation{\\par\\endgroup\\afterenvbreak}%$/
 +\Esmallexample        tex-src/texinfo.tex     /^\\def\\Esmallexample{\\Elisp}$/
 +\Esmallexample        tex-src/texinfo.tex     /^\\global\\def\\Esmallexample{\\Esmalllisp}$/
 +\Esmalllisp   tex-src/texinfo.tex     /^\\def\\Esmalllisp{\\endgroup\\afterenvbreak}%$/
 +\Etable       tex-src/texinfo.tex     /^\\def\\Etable{\\endgraf\\endgroup\\afterenvbreak}%$/
 +\Etitlepage   tex-src/texinfo.tex     /^\\def\\Etitlepage{%$/
 +\Evtable      tex-src/texinfo.tex     /^\\def\\Evtable{\\endgraf\\endgroup\\afterenvbreak}%$/
 +\HEADINGSafter        tex-src/texinfo.tex     /^\\def\\HEADINGSafter{\\let\\HEADINGShook=\\HEADINGSdoub/
 +\HEADINGSdouble       tex-src/texinfo.tex     /^\\def\\HEADINGSdouble{$/
 +\HEADINGSdoublex      tex-src/texinfo.tex     /^\\def\\HEADINGSdoublex{%$/
 +\HEADINGSoff  tex-src/texinfo.tex     /^\\def\\HEADINGSoff{$/
 +\HEADINGSon   tex-src/texinfo.tex     /^\\def\\HEADINGSon{\\HEADINGSdouble}$/
 +\HEADINGSon   tex-src/texinfo.tex     /^\\global\\def\\HEADINGSon{\\HEADINGSsingle}}$/
 +\HEADINGSon   tex-src/texinfo.tex     /^\\global\\def\\HEADINGSon{\\HEADINGSdouble}}$/
 +\HEADINGSsingle       tex-src/texinfo.tex     /^\\def\\HEADINGSsingle{$/
 +\HEADINGSsingleafter  tex-src/texinfo.tex     /^\\def\\HEADINGSsingleafter{\\let\\HEADINGShook=\\HEADIN/
 +\HEADINGSsinglex      tex-src/texinfo.tex     /^\\def\\HEADINGSsinglex{%$/
 +\TeX  tex-src/texinfo.tex     /^\\def\\TeX{\\realbackslash TeX}%$/
 +\TeX  tex-src/texinfo.tex     /^\\def\\TeX{\\realbackslash TeX}$/
 +\Yappendixletterandtype       tex-src/texinfo.tex     /^\\def\\Yappendixletterandtype{%$/
 +\Ynothing     tex-src/texinfo.tex     /^\\def\\Ynothing{}$/
 +\Ypagenumber  tex-src/texinfo.tex     /^\\def\\Ypagenumber{\\folio}$/
 +\Ysectionnumberandtype        tex-src/texinfo.tex     /^\\def\\Ysectionnumberandtype{%$/
 +\Ytitle       tex-src/texinfo.tex     /^\\def\\Ytitle{\\thischapter}$/
 +\_    tex-src/texinfo.tex     /^\\def\\_{{\\realbackslash _}}%$/
 +\_    tex-src/texinfo.tex     /^\\def\\_{\\lvvmode \\kern.06em \\vbox{\\hrule width.3em /
 +\`    tex-src/texinfo.tex     /^\\def\\`{{`}}$/
 +\aboveenvbreak        tex-src/texinfo.tex     /^\\def\\aboveenvbreak{{\\advance\\aboveenvskipamount by/
 +\activedoublequote    tex-src/texinfo.tex     /^\\def\\activedoublequote{{\\tt \\char '042}}$/
 +\activeparens tex-src/texinfo.tex     /^\\def\\activeparens{%$/
 +\afourpaper   tex-src/texinfo.tex     /^\\def\\afourpaper{$/
 +\afterenvbreak        tex-src/texinfo.tex     /^\\def\\afterenvbreak{\\endgraf \\ifdim\\lastskip<\\above/
 +\alphaenumerate       tex-src/texinfo.tex     /^\\def\\alphaenumerate{\\enumerate{a}}$/
 +\appendix     tex-src/texinfo.tex     /^\\outer\\def\\appendix{\\parsearg\\appendixzzz}$/
 +\appendixletter       tex-src/texinfo.tex     /^\\def\\appendixletter{\\char\\the\\appendixno}$/
 +\appendixnoderef      tex-src/texinfo.tex     /^\\def\\appendixnoderef{\\ifx\\lastnode\\relax\\else$/
 +\appendixsec  tex-src/texinfo.tex     /^\\outer\\def\\appendixsec{\\parsearg\\appendixsectionzz/
 +\appendixsection      tex-src/texinfo.tex     /^\\outer\\def\\appendixsection{\\parsearg\\appendixsecti/
 +\appendixsectionzzz   tex-src/texinfo.tex     /^\\def\\appendixsectionzzz #1{\\seccheck{appendixsecti/
 +\appendixsetref       tex-src/texinfo.tex     /^\\def\\appendixsetref#1{%$/
 +\appendixsubsec       tex-src/texinfo.tex     /^\\outer\\def\\appendixsubsec{\\parsearg\\appendixsubsec/
 +\appendixsubseczzz    tex-src/texinfo.tex     /^\\def\\appendixsubseczzz #1{\\seccheck{appendixsubsec/
 +\appendixsubsubsec    tex-src/texinfo.tex     /^\\outer\\def\\appendixsubsubsec{\\parsearg\\appendixsub/
 +\appendixsubsubseczzz tex-src/texinfo.tex     /^\\def\\appendixsubsubseczzz #1{\\seccheck{appendixsub/
 +\appendixzzz  tex-src/texinfo.tex     /^\\def\\appendixzzz #1{\\seccheck{appendix}%$/
 +\asis tex-src/texinfo.tex     /^\\def\\asis#1{#1}$/
 +\author       tex-src/texinfo.tex     /^   \\def\\author{\\parsearg\\authorzzz}%$/
 +\authorfont   tex-src/texinfo.tex     /^   \\def\\authorfont{\\authorrm \\normalbaselineskip =/
 +\authorzzz    tex-src/texinfo.tex     /^   \\def\\authorzzz##1{\\ifseenauthor\\else\\vskip 0pt /
 +\b    tex-src/texinfo.tex     /^\\def\\b#1{{\\bf #1}}$/
 +\b    tex-src/texinfo.tex     /^\\def\\b##1{\\realbackslash b {##1}}%$/
 +\b    tex-src/texinfo.tex     /^\\def\\b##1{\\realbackslash b {##1}}$/
 +\balancecolumns       tex-src/texinfo.tex     /^\\def\\balancecolumns{%$/
 +\begin        tex-src/texinfo.tex     /^\\outer\\def\\begin{\\parsearg\\beginxxx}$/
 +\begindoublecolumns   tex-src/texinfo.tex     /^\\def\\begindoublecolumns{\\begingroup$/
 +\beginxxx     tex-src/texinfo.tex     /^\\def\\beginxxx #1{%$/
 +\bf   tex-src/texinfo.tex     /^\\def\\bf{\\realbackslash bf }%$/
 +\bf   tex-src/texinfo.tex     /^\\def\\bf{\\realbackslash bf }$/
 +\bullet       tex-src/texinfo.tex     /^\\def\\bullet{$\\ptexbullet$}$/
 +\bye  tex-src/texinfo.tex     /^\\outer\\def\\bye{\\pagealignmacro\\tracingstats=1\\ptex/
 +\capsenumerate        tex-src/texinfo.tex     /^\\def\\capsenumerate{\\enumerate{A}}$/
 +\cartbot      tex-src/texinfo.tex     /^\\def\\cartbot{\\hbox to \\cartouter{\\hskip\\lskip$/
 +\cartouche    tex-src/texinfo.tex     /^\\long\\def\\cartouche{%$/
 +\carttop      tex-src/texinfo.tex     /^\\def\\carttop{\\hbox to \\cartouter{\\hskip\\lskip$/
 +\cbl  tex-src/texinfo.tex     /^\\def\\cbl{{\\circle\\char'012\\hskip -6pt}}$/
 +\cbr  tex-src/texinfo.tex     /^\\def\\cbr{{\\hskip 6pt\\circle\\char'011}}$/
 +\center       tex-src/texinfo.tex     /^\\def\\center{\\parsearg\\centerzzz}$/
 +\centerzzz    tex-src/texinfo.tex     /^\\def\\centerzzz #1{{\\advance\\hsize by -\\leftskip$/
 +\chapbreak    tex-src/texinfo.tex     /^\\def\\chapbreak{\\dobreak \\chapheadingskip {-4000}}$/
 +\chapentry    tex-src/texinfo.tex     /^\\def\\chapentry#1#2#3{\\dochapentry{#2\\labelspace#1}/
 +\chapentryfonts       tex-src/texinfo.tex     /^\\def\\chapentryfonts{\\secfonts \\rm}$/
 +\chapfonts    tex-src/texinfo.tex     /^\\def\\chapfonts{%$/
 +\chapheading  tex-src/texinfo.tex     /^\\def\\chapheading{\\parsearg\\chapheadingzzz}$/
 +\chapheadingzzz       tex-src/texinfo.tex     /^\\def\\chapheadingzzz #1{\\chapbreak %$/
 +\chapoddpage  tex-src/texinfo.tex     /^\\def\\chapoddpage{\\chappager \\ifodd\\pageno \\else \\h/
 +\chappager    tex-src/texinfo.tex     /^\\def\\chappager{\\par\\vfill\\supereject}$/
 +\chapter      tex-src/texinfo.tex     /^\\outer\\def\\chapter{\\parsearg\\chapterzzz}$/
 +\chapternofonts       tex-src/texinfo.tex     /^\\def\\chapternofonts{%$/
 +\chapterzzz   tex-src/texinfo.tex     /^\\def\\chapterzzz #1{\\seccheck{chapter}%$/
 +\char tex-src/texinfo.tex     /^\\def\\char{\\realbackslash char}%$/
 +\char tex-src/texinfo.tex     /^\\def\\char{\\realbackslash char}$/
 +\chfopen      tex-src/texinfo.tex     /^\\def\\chfopen #1#2{\\chapoddpage {\\chapfonts$/
 +\chfplain     tex-src/texinfo.tex     /^\\def\\chfplain #1#2{%$/
 +\cindex       tex-src/texinfo.tex     /^\\def\\cindex {\\cpindex}$/
 +\cindexsub    tex-src/texinfo.tex     /^\\def\\cindexsub {\\begingroup\\obeylines\\cindexsub}$/
 +\cite tex-src/texinfo.tex     /^\\def\\cite##1{\\realbackslash cite {##1}}%$/
 +\cite tex-src/texinfo.tex     /^\\def\\cite##1{\\realbackslash cite {##1}}$/
 +\clear        tex-src/texinfo.tex     /^\\def\\clear{\\parsearg\\clearxxx}$/
 +\clearxxx     tex-src/texinfo.tex     /^\\def\\clearxxx #1{$/
 +\code tex-src/texinfo.tex     /^\\def\\code##1{\\realbackslash code {##1}}%$/
 +\code tex-src/texinfo.tex     /^\\def\\code##1{\\realbackslash code {##1}}$/
 +\comment      tex-src/texinfo.tex     /^\\def\\comment{\\catcode 64=\\other \\catcode 123=\\othe/
 +\commentxxx   tex-src/texinfo.tex     /^\\def\\commentxxx #1{\\catcode 64=0 \\catcode 123=1 \\c/
 +\contents     tex-src/texinfo.tex     /^\\outer\\def\\contents{%$/
 +\copyright    tex-src/texinfo.tex     /^\\def\\copyright{\\realbackslash copyright }%$/
 +\copyright    tex-src/texinfo.tex     /^\\def\\copyright{\\realbackslash copyright}$/
 +\cropmarks    tex-src/texinfo.tex     /^\\def\\cropmarks{\\let\\onepageout=\\croppageout }$/
 +\croppageout  tex-src/texinfo.tex     /^\\def\\croppageout#1{\\hoffset=0pt % make sure this d/
 +\ctl  tex-src/texinfo.tex     /^\\def\\ctl{{\\circle\\char'013\\hskip -6pt}}% 6pt from /
 +\ctr  tex-src/texinfo.tex     /^\\def\\ctr{{\\hskip 6pt\\circle\\char'010}}$/
 +\ctrl tex-src/texinfo.tex     /^\\def\\ctrl #1{{\\tt \\rawbackslash \\hat}#1}$/
 +\defcodeindex tex-src/texinfo.tex     /^\\def\\defcodeindex{\\parsearg\\newcodeindex}$/
 +\defcv        tex-src/texinfo.tex     /^\\def\\defcv #1 {\\def\\defcvtype{#1}%$/
 +\defcvarheader        tex-src/texinfo.tex     /^\\def\\defcvarheader #1#2#3{%$/
 +\defcvx       tex-src/texinfo.tex     /^\\def\\defcvx #1 {\\errmessage{@defcvx in invalid con/
 +\deffn        tex-src/texinfo.tex     /^\\def\\deffn{\\defmethparsebody\\Edeffn\\deffnx\\deffnhe/
 +\deffnheader  tex-src/texinfo.tex     /^\\def\\deffnheader #1#2#3{\\doind {fn}{\\code{#2}}%$/
 +\deffnx       tex-src/texinfo.tex     /^\\def\\deffnx #1 {\\errmessage{@deffnx in invalid con/
 +\defindex     tex-src/texinfo.tex     /^\\def\\defindex{\\parsearg\\newindex}$/
 +\defivar      tex-src/texinfo.tex     /^\\def\\defivar{\\defvrparsebody\\Edefivar\\defivarx\\def/
 +\defivarheader        tex-src/texinfo.tex     /^\\def\\defivarheader #1#2#3{%$/
 +\defivarx     tex-src/texinfo.tex     /^\\def\\defivarx #1 {\\errmessage{@defivarx in invalid/
 +\defmac       tex-src/texinfo.tex     /^\\def\\defmac{\\defparsebody\\Edefmac\\defmacx\\defmache/
 +\defmacheader tex-src/texinfo.tex     /^\\def\\defmacheader #1#2{\\doind {fn}{\\code{#1}}% Mak/
 +\defmacx      tex-src/texinfo.tex     /^\\def\\defmacx #1 {\\errmessage{@defmacx in invalid c/
 +\defmethod    tex-src/texinfo.tex     /^\\def\\defmethod{\\defmethparsebody\\Edefmethod\\defmet/
 +\defmethodheader      tex-src/texinfo.tex     /^\\def\\defmethodheader #1#2#3{%$/
 +\defmethodx   tex-src/texinfo.tex     /^\\def\\defmethodx #1 {\\errmessage{@defmethodx in inv/
 +\defmethparsebody     tex-src/texinfo.tex     /^\\def\\defmethparsebody #1#2#3#4 {\\begingroup\\inENV /
 +\defname      tex-src/texinfo.tex     /^\\def\\defname #1#2{%$/
 +\defop        tex-src/texinfo.tex     /^\\def\\defop #1 {\\def\\defoptype{#1}%$/
 +\defopheader  tex-src/texinfo.tex     /^\\def\\defopheader #1#2#3{%$/
 +\defopparsebody       tex-src/texinfo.tex     /^\\def\\defopparsebody #1#2#3#4#5 {\\begingroup\\inENV /
 +\defopt       tex-src/texinfo.tex     /^\\def\\defopt{\\defvarparsebody\\Edefopt\\defoptx\\defop/
 +\defoptheader tex-src/texinfo.tex     /^\\def\\defoptheader #1#2{\\doind {vr}{\\code{#1}}% Mak/
 +\defoptx      tex-src/texinfo.tex     /^\\def\\defoptx #1 {\\errmessage{@defoptx in invalid c/
 +\defopvarparsebody    tex-src/texinfo.tex     /^\\def\\defopvarparsebody #1#2#3#4#5 {\\begingroup\\inE/
 +\defopx       tex-src/texinfo.tex     /^\\def\\defopx #1 {\\errmessage{@defopx in invalid con/
 +\defparsebody tex-src/texinfo.tex     /^\\def\\defparsebody #1#2#3{\\begingroup\\inENV% Enviro/
 +\defspec      tex-src/texinfo.tex     /^\\def\\defspec{\\defparsebody\\Edefspec\\defspecx\\defsp/
 +\defspecheader        tex-src/texinfo.tex     /^\\def\\defspecheader #1#2{\\doind {fn}{\\code{#1}}% Ma/
 +\defspecx     tex-src/texinfo.tex     /^\\def\\defspecx #1 {\\errmessage{@defspecx in invalid/
 +\deftp        tex-src/texinfo.tex     /^\\def\\deftp{\\defvrparsebody\\Edeftp\\deftpx\\deftphead/
 +\deftpargs    tex-src/texinfo.tex     /^\\def\\deftpargs #1{\\bf \\defvarargs{#1}}$/
 +\deftpheader  tex-src/texinfo.tex     /^\\def\\deftpheader #1#2#3{\\doind {tp}{\\code{#2}}%$/
 +\deftpx       tex-src/texinfo.tex     /^\\def\\deftpx #1 {\\errmessage{@deftpx in invalid con/
 +\deftypefn    tex-src/texinfo.tex     /^\\def\\deftypefn{\\defmethparsebody\\Edeftypefn\\deftyp/
 +\deftypefnheader      tex-src/texinfo.tex     /^\\def\\deftypefnheader #1#2#3{\\deftypefnheaderx{#1}{/
 +\deftypefnheaderx     tex-src/texinfo.tex     /^\\def\\deftypefnheaderx #1#2#3 #4\\relax{%$/
 +\deftypefnx   tex-src/texinfo.tex     /^\\def\\deftypefnx #1 {\\errmessage{@deftypefnx in inv/
 +\deftypefun   tex-src/texinfo.tex     /^\\def\\deftypefun{\\defparsebody\\Edeftypefun\\deftypef/
 +\deftypefunargs       tex-src/texinfo.tex     /^\\def\\deftypefunargs #1{%$/
 +\deftypefunheader     tex-src/texinfo.tex     /^\\def\\deftypefunheader #1#2{\\deftypefunheaderx{#1}#/
 +\deftypefunheaderx    tex-src/texinfo.tex     /^\\def\\deftypefunheaderx #1#2 #3\\relax{%$/
 +\deftypeunx   tex-src/texinfo.tex     /^\\def\\deftypeunx #1 {\\errmessage{@deftypeunx in inv/
 +\deftypevar   tex-src/texinfo.tex     /^\\def\\deftypevar{\\defvarparsebody\\Edeftypevar\\defty/
 +\deftypevarheader     tex-src/texinfo.tex     /^\\def\\deftypevarheader #1#2{%$/
 +\deftypevarx  tex-src/texinfo.tex     /^\\def\\deftypevarx #1 {\\errmessage{@deftypevarx in i/
 +\deftypevr    tex-src/texinfo.tex     /^\\def\\deftypevr{\\defvrparsebody\\Edeftypevr\\deftypev/
 +\deftypevrheader      tex-src/texinfo.tex     /^\\def\\deftypevrheader #1#2#3{\\doind {vr}{\\code{#3}}/
 +\deftypevrx   tex-src/texinfo.tex     /^\\def\\deftypevrx #1 {\\errmessage{@deftypevrx in inv/
 +\defun        tex-src/texinfo.tex     /^\\def\\defun{\\defparsebody\\Edefun\\defunx\\defunheader/
 +\defunargs    tex-src/texinfo.tex     /^\\def\\defunargs #1{\\functionparens \\sl$/
 +\defunheader  tex-src/texinfo.tex     /^\\def\\defunheader #1#2{\\doind {fn}{\\code{#1}}% Make/
 +\defunx       tex-src/texinfo.tex     /^\\def\\defunx #1 {\\errmessage{@defunx in invalid con/
 +\defvar       tex-src/texinfo.tex     /^\\def\\defvar{\\defvarparsebody\\Edefvar\\defvarx\\defva/
 +\defvarargs   tex-src/texinfo.tex     /^\\def\\defvarargs #1{\\normalparens #1%$/
 +\defvarheader tex-src/texinfo.tex     /^\\def\\defvarheader #1#2{\\doind {vr}{\\code{#1}}% Mak/
 +\defvarparsebody      tex-src/texinfo.tex     /^\\def\\defvarparsebody #1#2#3{\\begingroup\\inENV% Env/
 +\defvarx      tex-src/texinfo.tex     /^\\def\\defvarx #1 {\\errmessage{@defvarx in invalid c/
 +\defvr        tex-src/texinfo.tex     /^\\def\\defvr{\\defvrparsebody\\Edefvr\\defvrx\\defvrhead/
 +\defvrheader  tex-src/texinfo.tex     /^\\def\\defvrheader #1#2#3{\\doind {vr}{\\code{#2}}%$/
 +\defvrparsebody       tex-src/texinfo.tex     /^\\def\\defvrparsebody #1#2#3#4 {\\begingroup\\inENV %$/
 +\defvrx       tex-src/texinfo.tex     /^\\def\\defvrx #1 {\\errmessage{@defvrx in invalid con/
 +\description  tex-src/texinfo.tex     /^\\def\\description{\\tablez{\\dontindex}{1}{}{}{}{}}$/
 +\df   tex-src/texinfo.tex     /^\\def\\df{\\let\\tentt=\\deftt \\let\\tenbf = \\defbf \\bf}/
 +\dfn  tex-src/texinfo.tex     /^\\def\\dfn##1{\\realbackslash dfn {##1}}$/
 +\direntry     tex-src/texinfo.tex     /^\\def\\direntry{\\begingroup\\direntryxxx}$/
 +\direntryxxx  tex-src/texinfo.tex     /^\\long\\def\\direntryxxx #1\\end direntry{\\endgroup\\ig/
 +\display      tex-src/texinfo.tex     /^\\def\\display{\\begingroup\\inENV %This group ends at/
 +\dmn  tex-src/texinfo.tex     /^\\def\\dmn#1{\\thinspace #1}$/
 +\dobreak      tex-src/texinfo.tex     /^\\def\\dobreak#1#2{\\par\\ifdim\\lastskip<#1\\removelast/
 +\dochapentry  tex-src/texinfo.tex     /^\\def\\dochapentry#1#2{%$/
 +\docodeindex  tex-src/texinfo.tex     /^\\def\\docodeindex#1{\\edef\\indexname{#1}\\parsearg\\si/
 +\doind        tex-src/texinfo.tex     /^\\def\\doind #1#2{%$/
 +\doindex      tex-src/texinfo.tex     /^\\def\\doindex#1{\\edef\\indexname{#1}\\parsearg\\single/
 +\donoderef    tex-src/texinfo.tex     /^\\def\\donoderef{\\ifx\\lastnode\\relax\\else$/
 +\dontindex    tex-src/texinfo.tex     /^\\def\\dontindex #1{}$/
 +\dopageno     tex-src/texinfo.tex     /^\\def\\dopageno#1{{\\rm #1}}$/
 +\doprintindex tex-src/texinfo.tex     /^\\def\\doprintindex#1{%$/
 +\dosecentry   tex-src/texinfo.tex     /^\\def\\dosecentry#1#2{%$/
 +\dosetq       tex-src/texinfo.tex     /^\\def\\dosetq #1#2{{\\let\\folio=0 \\turnoffactive%$/
 +\doshortpageno        tex-src/texinfo.tex     /^\\def\\doshortpageno#1{{\\rm #1}}$/
 +\dosubind     tex-src/texinfo.tex     /^\\def\\dosubind #1#2#3{%$/
 +\dosubsecentry        tex-src/texinfo.tex     /^\\def\\dosubsecentry#1#2{%$/
 +\dosubsubsecentry     tex-src/texinfo.tex     /^\\def\\dosubsubsecentry#1#2{%$/
 +\dots tex-src/texinfo.tex     /^\\def\\dots{$\\ldots$}$/
 +\dots tex-src/texinfo.tex     /^\\def\\dots{\\realbackslash dots }%$/
 +\dots tex-src/texinfo.tex     /^\\def\\dots{\\realbackslash dots}$/
 +\doublecolumnout      tex-src/texinfo.tex     /^\\def\\doublecolumnout{\\splittopskip=\\topskip \\split/
 +\emph tex-src/texinfo.tex     /^\\def\\emph##1{\\realbackslash emph {##1}}$/
 +\end  tex-src/texinfo.tex     /^\\def\\end{\\parsearg\\endxxx}$/
 +\enddoublecolumns     tex-src/texinfo.tex     /^\\def\\enddoublecolumns{\\output={\\balancecolumns}\\ej/
 +\endxxx       tex-src/texinfo.tex     /^\\def\\endxxx #1{%$/
 +\entry        tex-src/texinfo.tex     /^\\def\\entry #1#2{\\begingroup$/
 +\enumerate    tex-src/texinfo.tex     /^\\def\\enumerate{\\parsearg\\enumeratezzz}$/
 +\enumeratey   tex-src/texinfo.tex     /^\\def\\enumeratey #1 #2\\endenumeratey{%$/
 +\enumeratezzz tex-src/texinfo.tex     /^\\def\\enumeratezzz #1{\\enumeratey #1  \\endenumerate/
 +\equiv        tex-src/texinfo.tex     /^\\def\\equiv{\\realbackslash equiv}$/
 +\equiv        tex-src/texinfo.tex     /^\\def\\equiv{\\leavevmode\\lower.1ex\\hbox to 1em{\\hfil/
 +\error        tex-src/texinfo.tex     /^\\def\\error{\\leavevmode\\lower.7ex\\copy\\errorbox}$/
 +\errorE       tex-src/texinfo.tex     /^\\def\\errorE#1{$/
 +\evenfooting  tex-src/texinfo.tex     /^\\def\\evenfooting{\\parsearg\\evenfootingxxx}$/
 +\evenheading  tex-src/texinfo.tex     /^\\def\\evenheading{\\parsearg\\evenheadingxxx}$/
 +\everyfooting tex-src/texinfo.tex     /^\\def\\everyfooting{\\parsearg\\everyfootingxxx}$/
 +\everyheading tex-src/texinfo.tex     /^\\def\\everyheading{\\parsearg\\everyheadingxxx}$/
 +\ewbot        tex-src/texinfo.tex     /^\\def\\ewbot{\\vrule height0pt depth\\cornerthick widt/
 +\ewtop        tex-src/texinfo.tex     /^\\def\\ewtop{\\vrule height\\cornerthick depth0pt widt/
 +\exdent       tex-src/texinfo.tex     /^\\def\\exdent{\\parsearg\\exdentyyy}$/
 +\exdentyyy    tex-src/texinfo.tex     /^\\def\\exdentyyy #1{{\\hfil\\break\\hbox{\\kern -\\exdent/
 +\expansion    tex-src/texinfo.tex     /^\\def\\expansion{\\realbackslash expansion}$/
 +\expansion    tex-src/texinfo.tex     /^\\def\\expansion{\\leavevmode\\raise.1ex\\hbox to 1em{\\/
 +\file tex-src/texinfo.tex     /^\\def\\file##1{\\realbackslash file {##1}}%$/
 +\file tex-src/texinfo.tex     /^\\def\\file##1{\\realbackslash file {##1}}$/
 +\finalout     tex-src/texinfo.tex     /^\\def\\finalout{\\overfullrule=0pt}$/
 +\findex       tex-src/texinfo.tex     /^\\def\\findex {\\fnindex}$/
 +\finishtitlepage      tex-src/texinfo.tex     /^\\def\\finishtitlepage{%$/
 +\flushcr      tex-src/texinfo.tex     /^\\def\\flushcr{\\ifx\\par\\lisppar \\def\\next##1{}\\else /
 +\flushleft    tex-src/texinfo.tex     /^\\def\\flushleft{%$/
 +\flushright   tex-src/texinfo.tex     /^\\def\\flushright{%$/
 +\fnitemindex  tex-src/texinfo.tex     /^\\def\\fnitemindex #1{\\doind {fn}{\\code{#1}}}%$/
 +\format       tex-src/texinfo.tex     /^\\def\\format{\\begingroup\\inENV %This group ends at /
 +\frenchspacing        tex-src/texinfo.tex     /^\\def\\frenchspacing{\\sfcode46=1000 \\sfcode63=1000 \\/
 +\ftable       tex-src/texinfo.tex     /^\\def\\ftable{\\begingroup\\inENV\\obeylines\\obeyspaces/
 +\gloggingall  tex-src/texinfo.tex     /^\\def\\gloggingall{\\begingroup \\globaldefs = 1 \\logg/
 +\group        tex-src/texinfo.tex     /^\\def\\group{\\begingroup$/
 +\gtr  tex-src/texinfo.tex     /^\\def\\gtr{\\realbackslash gtr}%$/
 +\gtr  tex-src/texinfo.tex     /^\\def\\gtr{\\realbackslash gtr}$/
 +\hat  tex-src/texinfo.tex     /^\\def\\hat{\\realbackslash hat}%$/
 +\hat  tex-src/texinfo.tex     /^\\def\\hat{\\realbackslash hat}$/
 +\heading      tex-src/texinfo.tex     /^\\def\\heading{\\parsearg\\secheadingi}$/
 +\headings     tex-src/texinfo.tex     /^\\def\\headings #1 {\\csname HEADINGS#1\\endcsname}$/
 +\i    tex-src/texinfo.tex     /^\\def\\i##1{\\realbackslash i {##1}}%$/
 +\i    tex-src/texinfo.tex     /^\\def\\i##1{\\realbackslash i {##1}}$/
 +\ifclear      tex-src/texinfo.tex     /^\\def\\ifclear{\\begingroup\\ignoresections\\parsearg\\i/
 +\ifclearfail  tex-src/texinfo.tex     /^\\def\\ifclearfail{\\begingroup\\ignoresections\\ifclea/
 +\ifclearfailxxx       tex-src/texinfo.tex     /^\\long\\def\\ifclearfailxxx #1\\end ifclear{\\endgroup\\/
 +\ifclearxxx   tex-src/texinfo.tex     /^\\def\\ifclearxxx #1{\\endgroup$/
 +\ifinfo       tex-src/texinfo.tex     /^\\def\\ifinfo{\\begingroup\\ignoresections\\ifinfoxxx}$/
 +\ifinfoxxx    tex-src/texinfo.tex     /^\\long\\def\\ifinfoxxx #1\\end ifinfo{\\endgroup\\ignore/
 +\ifset        tex-src/texinfo.tex     /^\\def\\ifset{\\begingroup\\ignoresections\\parsearg\\ifs/
 +\ifsetfail    tex-src/texinfo.tex     /^\\def\\ifsetfail{\\begingroup\\ignoresections\\ifsetfai/
 +\ifsetfailxxx tex-src/texinfo.tex     /^\\long\\def\\ifsetfailxxx #1\\end ifset{\\endgroup\\igno/
 +\ifsetxxx     tex-src/texinfo.tex     /^\\def\\ifsetxxx #1{\\endgroup$/
 +\iftex        tex-src/texinfo.tex     /^\\def\\iftex{}$/
 +\ifusingtt    tex-src/texinfo.tex     /^\\def\\ifusingtt#1#2{\\ifdim \\fontdimen3\\the\\font=0pt/
 +\ignore       tex-src/texinfo.tex     /^\\def\\ignore{\\begingroup\\ignoresections$/
 +\ignoresections       tex-src/texinfo.tex     /^\\def\\ignoresections{%$/
 +\ignorexxx    tex-src/texinfo.tex     /^\\long\\def\\ignorexxx #1\\end ignore{\\endgroup\\ignore/
 +\ii   tex-src/texinfo.tex     /^\\def\\ii#1{{\\it #1}}                % italic font$/
 +\inENV        tex-src/texinfo.tex     /^\\newif\\ifENV \\ENVfalse \\def\\inENV{\\ifENV\\relax\\els/
 +\include      tex-src/texinfo.tex     /^\\def\\include{\\parsearg\\includezzz}$/
 +\includezzz   tex-src/texinfo.tex     /^\\def\\includezzz #1{{\\def\\thisfile{#1}\\input #1$/
 +\indexbackslash       tex-src/texinfo.tex     /^  \\def\\indexbackslash{\\rawbackslashxx}$/
 +\indexdotfill tex-src/texinfo.tex     /^\\def\\indexdotfill{\\cleaders$/
 +\indexdummies tex-src/texinfo.tex     /^\\def\\indexdummies{%$/
 +\indexdummydots       tex-src/texinfo.tex     /^\\def\\indexdummydots{...}$/
 +\indexdummyfont       tex-src/texinfo.tex     /^\\def\\indexdummyfont#1{#1}$/
 +\indexdummytex        tex-src/texinfo.tex     /^\\def\\indexdummytex{TeX}$/
 +\indexfonts   tex-src/texinfo.tex     /^\\def\\indexfonts{%$/
 +\indexnofonts tex-src/texinfo.tex     /^\\def\\indexnofonts{%$/
 +\infoappendix tex-src/texinfo.tex     /^\\def\\infoappendix{\\parsearg\\appendixzzz}$/
 +\infoappendixsec      tex-src/texinfo.tex     /^\\def\\infoappendixsec{\\parsearg\\appendixseczzz}$/
 +\infoappendixsubsec   tex-src/texinfo.tex     /^\\def\\infoappendixsubsec{\\parsearg\\appendixsubseczz/
 +\infoappendixsubsubsec        tex-src/texinfo.tex     /^\\def\\infoappendixsubsubsec{\\parsearg\\appendixsubsu/
 +\infochapter  tex-src/texinfo.tex     /^\\def\\infochapter{\\parsearg\\chapterzzz}$/
 +\inforef      tex-src/texinfo.tex     /^\\def\\inforef #1{\\inforefzzz #1,,,,**}$/
 +\inforefzzz   tex-src/texinfo.tex     /^\\def\\inforefzzz #1,#2,#3,#4**{See Info file \\file{/
 +\infosection  tex-src/texinfo.tex     /^\\def\\infosection{\\parsearg\\sectionzzz}$/
 +\infosubsection       tex-src/texinfo.tex     /^\\def\\infosubsection{\\parsearg\\subsectionzzz}$/
 +\infosubsubsection    tex-src/texinfo.tex     /^\\def\\infosubsubsection{\\parsearg\\subsubsectionzzz}/
 +\infotop      tex-src/texinfo.tex     /^\\def\\infotop{\\parsearg\\unnumberedzzz}$/
 +\infounnumbered       tex-src/texinfo.tex     /^\\def\\infounnumbered{\\parsearg\\unnumberedzzz}$/
 +\infounnumberedsec    tex-src/texinfo.tex     /^\\def\\infounnumberedsec{\\parsearg\\unnumberedseczzz}/
 +\infounnumberedsubsec tex-src/texinfo.tex     /^\\def\\infounnumberedsubsec{\\parsearg\\unnumberedsubs/
 +\infounnumberedsubsubsec      tex-src/texinfo.tex     /^\\def\\infounnumberedsubsubsec{\\parsearg\\unnumbereds/
 +\initial      tex-src/texinfo.tex     /^\\def\\initial #1{%$/
 +\internalBitem        tex-src/texinfo.tex     /^\\def\\internalBitem{\\smallbreak \\parsearg\\itemzzz}$/
 +\internalBitemx       tex-src/texinfo.tex     /^\\def\\internalBitemx{\\par \\parsearg\\itemzzz}$/
 +\internalBkitem       tex-src/texinfo.tex     /^\\def\\internalBkitem{\\smallbreak \\parsearg\\kitemzzz/
 +\internalBkitemx      tex-src/texinfo.tex     /^\\def\\internalBkitemx{\\par \\parsearg\\kitemzzz}$/
 +\internalBxitem       tex-src/texinfo.tex     /^\\def\\internalBxitem "#1"{\\def\\xitemsubtopix{#1} \\s/
 +\internalBxitemx      tex-src/texinfo.tex     /^\\def\\internalBxitemx "#1"{\\def\\xitemsubtopix{#1} \\/
 +\internalsetq tex-src/texinfo.tex     /^\\def\\internalsetq #1#2{'xrdef {#1}{\\csname #2\\endc/
 +\item tex-src/texinfo.tex     /^\\def\\item{\\errmessage{@item while not in a table}}/
 +\itemcontents tex-src/texinfo.tex     /^\\def\\itemcontents{#1}%$/
 +\itemfont     tex-src/texinfo.tex     /^\\def\\itemfont{#2}%$/
 +\itemize      tex-src/texinfo.tex     /^\\def\\itemize{\\parsearg\\itemizezzz}$/
 +\itemizeitem  tex-src/texinfo.tex     /^\\def\\itemizeitem{%$/
 +\itemizey     tex-src/texinfo.tex     /^\\def\\itemizey #1#2{%$/
 +\itemizezzz   tex-src/texinfo.tex     /^\\def\\itemizezzz #1{%$/
 +\itemx        tex-src/texinfo.tex     /^\\def\\itemx{\\errmessage{@itemx while not in a table/
 +\itemzzz      tex-src/texinfo.tex     /^\\def\\itemzzz #1{\\begingroup %$/
 +\kbd  tex-src/texinfo.tex     /^\\def\\kbd#1{\\def\\look{#1}\\expandafter\\kbdfoo\\look??/
 +\kbd  tex-src/texinfo.tex     /^\\def\\kbd##1{\\realbackslash kbd {##1}}%$/
 +\kbd  tex-src/texinfo.tex     /^\\def\\kbd##1{\\realbackslash kbd {##1}}$/
 +\kbdfoo       tex-src/texinfo.tex     /^\\def\\kbdfoo#1#2#3\\par{\\def\\one{#1}\\def\\three{#3}\\d/
 +\key  tex-src/texinfo.tex     /^\\def\\key #1{{\\tt \\exhyphenpenalty=10000\\uppercase{/
 +\key  tex-src/texinfo.tex     /^\\def\\key##1{\\realbackslash key {##1}}%$/
 +\key  tex-src/texinfo.tex     /^\\def\\key##1{\\realbackslash key {##1}}$/
 +\kindex       tex-src/texinfo.tex     /^\\def\\kindex {\\kyindex}$/
 +\kitem        tex-src/texinfo.tex     /^\\def\\kitem{\\errmessage{@kitem while not in a table/
 +\kitemx       tex-src/texinfo.tex     /^\\def\\kitemx{\\errmessage{@kitemx while not in a tab/
 +\kitemzzz     tex-src/texinfo.tex     /^\\def\\kitemzzz #1{\\dosubind {kw}{\\code{#1}}{for {\\b/
 +\l    tex-src/texinfo.tex     /^\\def\\l#1{{\\li #1}\\null}           % $/
 +\labelspace   tex-src/texinfo.tex     /^\\def\\labelspace{\\hskip1em \\relax}$/
 +\lbrb tex-src/texinfo.tex     /^\\def\\lbrb{{\\bf\\char`\\[}} \\def\\rbrb{{\\bf\\char`\\]}}$/
 +\less tex-src/texinfo.tex     /^\\def\\less{\\realbackslash less}%$/
 +\less tex-src/texinfo.tex     /^\\def\\less{\\realbackslash less}$/
 +\linenumber   tex-src/texinfo.tex     /^  \\def\\linenumber{\\the\\inputlineno:\\space}$/
 +\lisp tex-src/texinfo.tex     /^\\def\\lisp{\\aboveenvbreak$/
 +\loggingall   tex-src/texinfo.tex     /^\\def\\loggingall{\\tracingcommands2 \\tracingstats2 $/
 +\losespace    tex-src/texinfo.tex     /^\\def\\losespace #1{#1}$/
 +\lowercaseenumerate   tex-src/texinfo.tex     /^\\def\\lowercaseenumerate{%$/
 +\lvvmode      tex-src/texinfo.tex     /^\\def\\lvvmode{\\vbox to 0pt{}}$/
 +\majorheading tex-src/texinfo.tex     /^\\def\\majorheading{\\parsearg\\majorheadingzzz}$/
 +\majorheadingzzz      tex-src/texinfo.tex     /^\\def\\majorheadingzzz #1{%$/
 +\math tex-src/texinfo.tex     /^\\def\\math#1{\\implicitmath #1\\implicitmath}$/
 +\menu tex-src/texinfo.tex     /^\\long\\def\\menu #1\\end menu{}$/
 +\minus        tex-src/texinfo.tex     /^\\def\\minus{$-$}$/
 +\mylbrace     tex-src/texinfo.tex     /^\\def\\mylbrace {{\\tt \\char '173}}$/
 +\myrbrace     tex-src/texinfo.tex     /^\\def\\myrbrace {{\\tt \\char '175}}$/
 +\need tex-src/texinfo.tex     /^\\def\\need{\\parsearg\\needx}$/
 +\needx        tex-src/texinfo.tex     /^\\def\\needx#1{%$/
 +\newcodeindex tex-src/texinfo.tex     /^\\def\\newcodeindex #1{$/
 +\newindex     tex-src/texinfo.tex     /^\\def\\newindex #1{$/
 +\next tex-src/texinfo.tex     /^\\def\\next##1{}\\next}$/
 +\next tex-src/texinfo.tex     /^\\def\\next##1{}\\next}$/
 +\next tex-src/texinfo.tex     /^\\def\\next##1{}\\next}$/
 +\next tex-src/texinfo.tex     /^\\def\\next##1{}\\next}$/
 +\next tex-src/texinfo.tex     /^\\def\\next##1{}\\next}$/
 +\next tex-src/texinfo.tex     /^\\def\\next##1{}\\next}$/
 +\nm   tex-src/testenv.tex     /^\\newcommand{\\nm}[2]{\\nomenclature{#1}{#2}}$/
 +\node tex-src/texinfo.tex     /^\\def\\node{\\ENVcheck\\parsearg\\nodezzz}$/
 +\nodexxx[     tex-src/texinfo.tex     /^\\def\\nodexxx[#1,#2]{\\gdef\\lastnode{#1}}$/
 +\nodezzz      tex-src/texinfo.tex     /^\\def\\nodezzz#1{\\nodexxx [#1,]}$/
 +\nofillexdent tex-src/texinfo.tex     /^\\def\\nofillexdent{\\parsearg\\nofillexdentyyy}$/
 +\nofillexdentyyy      tex-src/texinfo.tex     /^\\def\\nofillexdentyyy #1{{\\advance \\leftskip by -\\e/
 +\normalbackslash      tex-src/texinfo.tex     /^\\def\\normalbackslash{{\\tt\\rawbackslashxx}}$/
 +\normalcaret  tex-src/texinfo.tex     /^\\def\\normalcaret{^}$/
 +\normaldoublequote    tex-src/texinfo.tex     /^\\def\\normaldoublequote{"}$/
 +\normalgreater        tex-src/texinfo.tex     /^\\def\\normalgreater{>}$/
 +\normalless   tex-src/texinfo.tex     /^\\def\\normalless{<}$/
 +\normalplus   tex-src/texinfo.tex     /^\\def\\normalplus{+}$/
 +\normaltilde  tex-src/texinfo.tex     /^\\def\\normaltilde{~}$/
 +\normalunderscore     tex-src/texinfo.tex     /^\\def\\normalunderscore{_}$/
 +\normalverticalbar    tex-src/texinfo.tex     /^\\def\\normalverticalbar{|}$/
 +\nsbot        tex-src/texinfo.tex     /^\\def\\nsbot{\\vbox$/
 +\nstop        tex-src/texinfo.tex     /^\\def\\nstop{\\vbox$/
 +\numberedsec  tex-src/texinfo.tex     /^\\outer\\def\\numberedsec{\\parsearg\\seczzz}$/
 +\numberedsubsec       tex-src/texinfo.tex     /^\\outer\\def\\numberedsubsec{\\parsearg\\numberedsubsec/
 +\numberedsubseczzz    tex-src/texinfo.tex     /^\\def\\numberedsubseczzz #1{\\seccheck{subsection}%$/
 +\numberedsubsubsec    tex-src/texinfo.tex     /^\\outer\\def\\numberedsubsubsec{\\parsearg\\numberedsub/
 +\numberedsubsubseczzz tex-src/texinfo.tex     /^\\def\\numberedsubsubseczzz #1{\\seccheck{subsubsecti/
 +\numericenumerate     tex-src/texinfo.tex     /^\\def\\numericenumerate{%$/
 +\oddfooting   tex-src/texinfo.tex     /^\\def\\oddfooting{\\parsearg\\oddfootingxxx}$/
 +\oddheading   tex-src/texinfo.tex     /^\\def\\oddheading{\\parsearg\\oddheadingxxx}$/
 +\onepageout   tex-src/texinfo.tex     /^\\def\\onepageout#1{\\hoffset=\\normaloffset$/
 +\opencontents tex-src/texinfo.tex     /^\\def\\opencontents{\\openout \\contentsfile = \\jobnam/
 +\openindices  tex-src/texinfo.tex     /^\\def\\openindices{%$/
 +\opnr tex-src/texinfo.tex     /^\\def\\opnr{{\\sf\\char`\\(}} \\def\\clnr{{\\sf\\char`\\)}} /
 +\page tex-src/texinfo.tex     /^\\def\\page{\\par\\vfill\\supereject}$/
 +\page tex-src/texinfo.tex     /^   \\def\\page{%$/
 +\pagebody     tex-src/texinfo.tex     /^\\def\\pagebody#1{\\vbox to\\pageheight{\\boxmaxdepth=\\/
 +\pagesofar    tex-src/texinfo.tex     /^\\def\\pagesofar{\\unvbox\\partialpage %$/
 +\parsearg     tex-src/texinfo.tex     /^\\def\\parsearg #1{\\let\\next=#1\\begingroup\\obeylines/
 +\parseargline tex-src/texinfo.tex     /^\\def\\parseargline{\\begingroup \\obeylines \\parsearg/
 +\parseargx    tex-src/texinfo.tex     /^\\def\\parseargx{%$/
 +\pindex       tex-src/texinfo.tex     /^\\def\\pindex {\\pgindex}$/
 +\plainsecheading      tex-src/texinfo.tex     /^\\def\\plainsecheading #1{\\secheadingi {#1}}$/
 +\point        tex-src/texinfo.tex     /^\\def\\point{$\\star$}$/
 +\primary      tex-src/texinfo.tex     /^\\def\\primary #1{\\line{#1\\hfil}}$/
 +\print        tex-src/texinfo.tex     /^\\def\\print{\\realbackslash print}$/
 +\print        tex-src/texinfo.tex     /^\\def\\print{\\leavevmode\\lower.1ex\\hbox to 1em{\\hfil/
 +\printedmanual        tex-src/texinfo.tex     /^\\def\\printedmanual{\\ignorespaces #5}%$/
 +\printedmanual        tex-src/texinfo.tex     /^section ``\\printednodename'' in \\cite{\\printedmanu/
 +\printednodename      tex-src/texinfo.tex     /^\\def\\printednodename{\\ignorespaces #3}%$/
 +\printednodename      tex-src/texinfo.tex     /^\\def\\printednodename{\\ignorespaces #1}%$/
 +\printindex   tex-src/texinfo.tex     /^\\def\\printindex{\\parsearg\\doprintindex}$/
 +\pxref        tex-src/texinfo.tex     /^\\def\\pxref#1{see \\xrefX[#1,,,,,,,]}$/
 +\quotation    tex-src/texinfo.tex     /^\\def\\quotation{%$/
 +\r    tex-src/texinfo.tex     /^\\def\\r#1{{\\rm #1}}         % roman font$/
 +\r    tex-src/texinfo.tex     /^\\def\\r##1{\\realbackslash r {##1}}%$/
 +\r    tex-src/texinfo.tex     /^\\def\\r##1{\\realbackslash r {##1}}$/
 +\rawbackslashxx       tex-src/texinfo.tex     /^\\def\\rawbackslashxx{\\indexbackslash}% \\indexbacksl/
 +\rawbackslashxx       tex-src/texinfo.tex     /^\\def\\rawbackslashxx{\\indexbackslash}%$/
 +\readauxfile  tex-src/texinfo.tex     /^\\def\\readauxfile{%$/
 +\ref  tex-src/texinfo.tex     /^\\def\\ref#1{\\xrefX[#1,,,,,,,]}$/
 +\refx tex-src/texinfo.tex     /^\\def\\refx#1#2{%$/
 +\resetmathfonts       tex-src/texinfo.tex     /^\\def\\resetmathfonts{%$/
 +\result       tex-src/texinfo.tex     /^\\def\\result{\\realbackslash result}$/
 +\result       tex-src/texinfo.tex     /^\\def\\result{\\leavevmode\\raise.15ex\\hbox to 1em{\\hf/
 +\rm   tex-src/texinfo.tex     /^\\def\\rm{\\realbackslash rm }%$/
 +\samp tex-src/texinfo.tex     /^\\def\\samp #1{`\\tclose{#1}'\\null}$/
 +\samp tex-src/texinfo.tex     /^\\def\\samp##1{\\realbackslash samp {##1}}%$/
 +\samp tex-src/texinfo.tex     /^\\def\\samp##1{\\realbackslash samp {##1}}$/
 +\sc   tex-src/texinfo.tex     /^\\def\\sc#1{{\\smallcaps#1}}  % smallcaps font$/
 +\seccheck     tex-src/texinfo.tex     /^\\def\\seccheck#1{\\if \\pageno<0 %$/
 +\secentry     tex-src/texinfo.tex     /^      \\def\\secentry ##1##2##3##4{}$/
 +\secentry     tex-src/texinfo.tex     /^\\def\\secentry#1#2#3#4{\\dosecentry{#2.#3\\labelspace/
 +\secentryfonts        tex-src/texinfo.tex     /^\\def\\secentryfonts{\\textfonts}$/
 +\secfonts     tex-src/texinfo.tex     /^\\def\\secfonts{%$/
 +\secheading   tex-src/texinfo.tex     /^\\def\\secheading #1#2#3{\\secheadingi {#2.#3\\enspace/
 +\secheadingbreak      tex-src/texinfo.tex     /^\\def\\secheadingbreak{\\dobreak \\secheadingskip {-10/
 +\secheadingi  tex-src/texinfo.tex     /^\\def\\secheadingi #1{{\\advance \\secheadingskip by \\/
 +\secondary    tex-src/texinfo.tex     /^\\def\\secondary #1#2{$/
 +\seczzz       tex-src/texinfo.tex     /^\\def\\seczzz #1{\\seccheck{section}%$/
 +\set  tex-src/texinfo.tex     /^\\def\\set{\\parsearg\\setxxx}$/
 +\setchapternewpage    tex-src/texinfo.tex     /^\\def\\setchapternewpage #1 {\\csname CHAPPAG#1\\endcs/
 +\setchapterstyle      tex-src/texinfo.tex     /^\\def\\setchapterstyle #1 {\\csname CHAPF#1\\endcsname/
 +\setdeffont   tex-src/texinfo.tex     /^\\def\\setdeffont #1 {\\csname DEF#1\\endcsname}$/
 +\setfilename  tex-src/texinfo.tex     /^\\def\\setfilename{%$/
 +\setref       tex-src/texinfo.tex     /^\\def\\setref#1{%$/
 +\settitle     tex-src/texinfo.tex     /^\\def\\settitle{\\parsearg\\settitlezzz}$/
 +\settitlezzz  tex-src/texinfo.tex     /^\\def\\settitlezzz #1{\\gdef\\thistitle{#1}}$/
 +\setxxx       tex-src/texinfo.tex     /^\\def\\setxxx #1{$/
 +\sf   tex-src/texinfo.tex     /^\\def\\sf{\\fam=\\sffam \\tensf}$/
 +\sf   tex-src/texinfo.tex     /^\\def\\sf{\\realbackslash sf}%$/
 +\shortchapentry       tex-src/texinfo.tex     /^\\def\\shortchapentry#1#2#3{%$/
 +\shortunnumberedentry tex-src/texinfo.tex     /^\\def\\shortunnumberedentry#1#2{%$/
 +\singlecodeindexer    tex-src/texinfo.tex     /^\\def\\singlecodeindexer #1{\\doind{\\indexname}{\\code/
 +\singleindexer        tex-src/texinfo.tex     /^\\def\\singleindexer #1{\\doind{\\indexname}{#1}}$/
 +\singlespace  tex-src/texinfo.tex     /^\\def\\singlespace{%$/
 +\sl   tex-src/texinfo.tex     /^\\def\\sl{\\realbackslash sl }%$/
 +\smallbook    tex-src/texinfo.tex     /^\\def\\smallbook{$/
 +\smalllispx   tex-src/texinfo.tex     /^\\def\\smalllispx{\\aboveenvbreak\\begingroup\\inENV$/
 +\smartitalic  tex-src/texinfo.tex     /^\\def\\smartitalic#1{{\\sl #1}\\futurelet\\next\\smartit/
 +\smartitalicx tex-src/texinfo.tex     /^\\def\\smartitalicx{\\ifx\\next,\\else\\ifx\\next-\\else\\i/
 +\sp   tex-src/texinfo.tex     /^\\def\\sp{\\parsearg\\spxxx}$/
 +\splitoff     tex-src/texinfo.tex     /^\\def\\splitoff#1#2\\endmark{\\def\\first{#1}\\def\\rest{/
 +\spxxx        tex-src/texinfo.tex     /^\\def\\spxxx #1{\\par \\vskip #1\\baselineskip}$/
 +\startcontents        tex-src/texinfo.tex     /^\\def\\startcontents#1{%$/
 +\startenumeration     tex-src/texinfo.tex     /^\\def\\startenumeration#1{%$/
 +\subheading   tex-src/texinfo.tex     /^\\def\\subheading{\\parsearg\\subsecheadingi}$/
 +\subsecentry  tex-src/texinfo.tex     /^      \\def\\subsecentry ##1##2##3##4##5{}$/
 +\subsecentry  tex-src/texinfo.tex     /^\\def\\subsecentry#1#2#3#4#5{\\dosubsecentry{#2.#3.#4/
 +\subsecfonts  tex-src/texinfo.tex     /^\\def\\subsecfonts{%$/
 +\subsecheading        tex-src/texinfo.tex     /^\\def\\subsecheading #1#2#3#4{\\subsecheadingi {#2.#3/
 +\subsecheadingbreak   tex-src/texinfo.tex     /^\\def\\subsecheadingbreak{\\dobreak \\subsecheadingski/
 +\subsecheadingi       tex-src/texinfo.tex     /^\\def\\subsecheadingi #1{{\\advance \\subsecheadingski/
 +\subsubheading        tex-src/texinfo.tex     /^\\def\\subsubheading{\\parsearg\\subsubsecheadingi}$/
 +\subsubsecentry       tex-src/texinfo.tex     /^      \\def\\subsubsecentry ##1##2##3##4##5##6{}$/
 +\subsubsecentry       tex-src/texinfo.tex     /^\\def\\subsubsecentry#1#2#3#4#5#6{%$/
 +\subsubsecfonts       tex-src/texinfo.tex     /^\\def\\subsubsecfonts{\\subsecfonts} % Maybe this sho/
 +\subsubsecheading     tex-src/texinfo.tex     /^\\def\\subsubsecheading #1#2#3#4#5{\\subsubsecheading/
 +\subsubsecheadingi    tex-src/texinfo.tex     /^\\def\\subsubsecheadingi #1{{\\advance \\subsecheading/
 +\subtitle     tex-src/texinfo.tex     /^   \\def\\subtitle{\\parsearg\\subtitlezzz}%$/
 +\subtitlefont tex-src/texinfo.tex     /^   \\def\\subtitlefont{\\subtitlerm \\normalbaselinesk/
 +\subtitlezzz  tex-src/texinfo.tex     /^   \\def\\subtitlezzz##1{{\\subtitlefont \\rightline{#/
 +\summarycontents      tex-src/texinfo.tex     /^\\outer\\def\\summarycontents{%$/
 +\supereject   tex-src/texinfo.tex     /^\\def\\supereject{\\par\\penalty -20000\\footnoteno =0 /
 +\syncodeindex tex-src/texinfo.tex     /^\\def\\syncodeindex #1 #2 {%$/
 +\synindex     tex-src/texinfo.tex     /^\\def\\synindex #1 #2 {%$/
 +\t    tex-src/texinfo.tex     /^\\def\\t#1{{\\tt \\exhyphenpenalty=10000\\rawbackslash /
 +\t    tex-src/texinfo.tex     /^\\def\\t##1{\\realbackslash r {##1}}%$/
 +\table        tex-src/texinfo.tex     /^\\def\\table{\\begingroup\\inENV\\obeylines\\obeyspaces\\/
 +\tablez       tex-src/texinfo.tex     /^\\def\\tablez #1#2#3#4#5#6{%$/
 +\tclose       tex-src/texinfo.tex     /^\\def\\tclose#1{{\\rm \\tcloserm=\\fontdimen2\\font \\tt /
 +\tclose       tex-src/texinfo.tex     /^\\def\\tclose##1{\\realbackslash tclose {##1}}%$/
 +\tclose       tex-src/texinfo.tex     /^\\def\\tclose##1{\\realbackslash tclose {##1}}$/
 +\tex  tex-src/texinfo.tex     /^\\def\\tex{\\begingroup$/
 +\texinfoversion       tex-src/texinfo.tex     /^\\def\\texinfoversion{2.73}$/
 +\textfonts    tex-src/texinfo.tex     /^\\def\\textfonts{%$/
 +\thearg       tex-src/texinfo.tex     /^  \\def\\thearg{#1}%$/
 +\thearg       tex-src/texinfo.tex     /^  \\ifx\\thearg\\empty \\def\\thearg{1}\\fi$/
 +\thischapter  tex-src/texinfo.tex     /^\\def\\thischapter{} \\def\\thissection{}$/
 +\thischapter  tex-src/texinfo.tex     /^   \\unnumbchapmacro{#1}\\def\\thischapter{}%$/
 +\thischaptername      tex-src/texinfo.tex     /^\\def\\thischaptername{No Chapter Title}$/
 +\thisfile     tex-src/texinfo.tex     /^\\def\\thisfile{}$/
 +\thistitle    tex-src/texinfo.tex     /^\\def\\thistitle{No Title}$/
 +\tie  tex-src/texinfo.tex     /^\\def\\tie{\\penalty 10000\\ }     % Save plain tex de/
 +\tindex       tex-src/texinfo.tex     /^\\def\\tindex {\\tpindex}$/
 +\title        tex-src/texinfo.tex     /^   \\def\\title{\\parsearg\\titlezzz}%$/
 +\titlefont    tex-src/texinfo.tex     /^\\def\\titlefont#1{{\\titlerm #1}}$/
 +\titlepage    tex-src/texinfo.tex     /^\\def\\titlepage{\\begingroup \\parindent=0pt \\textfon/
 +\titlezzz     tex-src/texinfo.tex     /^   \\def\\titlezzz##1{\\leftline{\\titlefont{##1}}$/
 +\today        tex-src/texinfo.tex     /^\\def\\today{\\number\\day\\space$/
 +\top  tex-src/texinfo.tex     /^\\outer\\def\\top{\\parsearg\\unnumberedzzz}$/
 +\tt   tex-src/texinfo.tex     /^\\def\\tt{\\realbackslash tt}%$/
 +\tt   tex-src/texinfo.tex     /^\\def\\tt{\\realbackslash tt}$/
 +\turnoffactive        tex-src/texinfo.tex     /^\\def\\turnoffactive{\\let"=\\normaldoublequote$/
 +\unnchfopen   tex-src/texinfo.tex     /^\\def\\unnchfopen #1{%$/
 +\unnchfplain  tex-src/texinfo.tex     /^\\def\\unnchfplain #1{%$/
 +\unnumbchapentry      tex-src/texinfo.tex     /^\\def\\unnumbchapentry#1#2{\\dochapentry{#1}{#2}}$/
 +\unnumbered   tex-src/texinfo.tex     /^\\outer\\def\\unnumbered{\\parsearg\\unnumberedzzz}$/
 +\unnumberedsec        tex-src/texinfo.tex     /^\\outer\\def\\unnumberedsec{\\parsearg\\unnumberedseczz/
 +\unnumberedseczzz     tex-src/texinfo.tex     /^\\def\\unnumberedseczzz #1{\\seccheck{unnumberedsec}%/
 +\unnumberedsubsec     tex-src/texinfo.tex     /^\\outer\\def\\unnumberedsubsec{\\parsearg\\unnumberedsu/
 +\unnumberedsubseczzz  tex-src/texinfo.tex     /^\\def\\unnumberedsubseczzz #1{\\seccheck{unnumberedsu/
 +\unnumberedsubsubsec  tex-src/texinfo.tex     /^\\outer\\def\\unnumberedsubsubsec{\\parsearg\\unnumbere/
 +\unnumberedsubsubseczzz       tex-src/texinfo.tex     /^\\def\\unnumberedsubsubseczzz #1{\\seccheck{unnumbere/
 +\unnumberedzzz        tex-src/texinfo.tex     /^\\def\\unnumberedzzz #1{\\seccheck{unnumbered}%$/
 +\unnumbnoderef        tex-src/texinfo.tex     /^\\def\\unnumbnoderef{\\ifx\\lastnode\\relax\\else$/
 +\unnumbsecentry       tex-src/texinfo.tex     /^      \\def\\unnumbsecentry ##1##2{}$/
 +\unnumbsecentry       tex-src/texinfo.tex     /^\\def\\unnumbsecentry#1#2{\\dosecentry{#1}{#2}}$/
 +\unnumbsetref tex-src/texinfo.tex     /^\\def\\unnumbsetref#1{%$/
 +\unnumbsubsecentry    tex-src/texinfo.tex     /^      \\def\\unnumbsubsecentry ##1##2{}$/
 +\unnumbsubsecentry    tex-src/texinfo.tex     /^\\def\\unnumbsubsecentry#1#2{\\dosubsecentry{#1}{#2}}/
 +\unnumbsubsubsecentry tex-src/texinfo.tex     /^      \\def\\unnumbsubsubsecentry ##1##2{}$/
 +\unnumbsubsubsecentry tex-src/texinfo.tex     /^\\def\\unnumbsubsubsecentry#1#2{\\dosubsubsecentry{#1/
 +\uppercaseenumerate   tex-src/texinfo.tex     /^\\def\\uppercaseenumerate{%$/
 +\var  tex-src/texinfo.tex     /^\\def\\var##1{\\realbackslash var {##1}}%$/
 +\var  tex-src/texinfo.tex     /^\\def\\var##1{\\realbackslash var {##1}}$/
 +\vindex       tex-src/texinfo.tex     /^\\def\\vindex {\\vrindex}$/
 +\vritemindex  tex-src/texinfo.tex     /^\\def\\vritemindex #1{\\doind {vr}{\\code{#1}}}%$/
 +\vtable       tex-src/texinfo.tex     /^\\def\\vtable{\\begingroup\\inENV\\obeylines\\obeyspaces/
 +\w    tex-src/texinfo.tex     /^\\def\\w#1{\\leavevmode\\hbox{#1}}$/
 +\w    tex-src/texinfo.tex     /^\\def\\w{\\realbackslash w }%$/
 +\w    tex-src/texinfo.tex     /^\\def\\w{\\realbackslash w}$/
 +\xitem        tex-src/texinfo.tex     /^\\def\\xitem{\\errmessage{@xitem while not in a table/
 +\xitemx       tex-src/texinfo.tex     /^\\def\\xitemx{\\errmessage{@xitemx while not in a tab/
 +\xitemzzz     tex-src/texinfo.tex     /^\\def\\xitemzzz #1{\\dosubind {kw}{\\code{#1}}{for {\\b/
 +\xkey tex-src/texinfo.tex     /^\\def\\xkey{\\key}$/
 +\xrdef        tex-src/texinfo.tex     /^\\def\\xrdef #1#2{$/
 +\xref tex-src/texinfo.tex     /^\\def\\xref#1{See \\xrefX[#1,,,,,,,]}$/
 +\xrefX[       tex-src/texinfo.tex     /^\\def\\xrefX[#1,#2,#3,#4,#5,#6]{\\begingroup%$/
 +^     tex-src/texinfo.tex     /^\\def^{{\\tt \\hat}}$/
 +_     tex-src/texinfo.tex     /^\\def_{\\ifusingtt\\normalunderscore\\_}$/
 +_GETOPT_H     c-src/getopt.h  19
 +_GNU_SOURCE   c-src/etags.c   94
 +_REGEX_H      c-src/emacs/src/regex.h 21
 +_RE_SYNTAX_POSIX_COMMON       c-src/emacs/src/regex.h 221
 +_Restrict_    c-src/emacs/src/regex.h 540
 +_Restrict_    c-src/emacs/src/regex.h 542
 +_Restrict_    c-src/emacs/src/regex.h 544
 +_Restrict_arr_        c-src/emacs/src/regex.h 555
 +_Restrict_arr_        c-src/emacs/src/regex.h 557
 +_UCHAR_T      c-src/emacs/src/lisp.h  2423
 +__COLORS      cp-src/screen.hpp       9
 +__default_morecore    c-src/emacs/src/gmalloc.c       /^__default_morecore (ptrdiff_t increment)$/
 +__init__      pyt-src/server.py       /^    def __init__(self):$/
 +__init__      pyt-src/server.py       /^    def __init__(self):$/
 +__init__      pyt-src/server.py       /^    def __init__(self):$/
 +__init__      pyt-src/server.py       /^    def __init__(self, Master, text, textvar, widt/
 +__init__      pyt-src/server.py       /^    def __init__(self, newlegend, list, editor, ma/
 +__init__      pyt-src/server.py       /^    def __init__(self, host, sitelist, master=None/
 +__init__      pyt-src/server.py       /^    def __init__(self, user, userlist, master=None/
 +__init__      pyt-src/server.py       /^    def __init__(self, master=None):$/
 +__ip  c.c     159
 +__libc_atexit c-src/exit.c    30
 +__libc_atexit c-src/exit.strange_suffix       30
 +__malloc_extra_blocks c-src/emacs/src/gmalloc.c       381
 +__malloc_initialize   c-src/emacs/src/gmalloc.c       /^__malloc_initialize (void)$/
 +__malloc_initialized  c-src/emacs/src/gmalloc.c       379
 +__repr__      pyt-src/server.py       /^    def __repr__(self):$/
 +__repr__      pyt-src/server.py       /^    def __repr__(self):$/
 +__repr__      pyt-src/server.py       /^    def __repr__(self):$/
 +__sbrk        c-src/emacs/src/gmalloc.c       1513
 +__str__       pyt-src/server.py       /^    def __str__(self):$/
 +__str__       pyt-src/server.py       /^    def __str__(self):$/
 +__str__       pyt-src/server.py       /^    def __str__(self):$/
 +__up  c.c     160
 +_aligned_blocks       c-src/emacs/src/gmalloc.c       1004
 +_aligned_blocks_mutex c-src/emacs/src/gmalloc.c       518
 +_bar? ruby-src/test1.ru       /^    def self._bar?(abc)$/
 +_bytes_free   c-src/emacs/src/gmalloc.c       376
 +_bytes_used   c-src/emacs/src/gmalloc.c       374
 +_chunks_free  c-src/emacs/src/gmalloc.c       375
 +_chunks_used  c-src/emacs/src/gmalloc.c       373
 +_fraghead     c-src/emacs/src/gmalloc.c       370
 +_free c-src/emacs/src/gmalloc.c       /^_free (void *ptr)$/
 +_free_internal        c-src/emacs/src/gmalloc.c       /^_free_internal (void *ptr)$/
 +_free_internal_nolock c-src/emacs/src/gmalloc.c       /^_free_internal_nolock (void *ptr)$/
 +_heapbase     c-src/emacs/src/gmalloc.c       355
 +_heapindex    c-src/emacs/src/gmalloc.c       364
 +_heapinfo     c-src/emacs/src/gmalloc.c       358
 +_heaplimit    c-src/emacs/src/gmalloc.c       367
 +_malloc       c-src/emacs/src/gmalloc.c       /^_malloc (size_t size)$/
 +_malloc_internal      c-src/emacs/src/gmalloc.c       /^_malloc_internal (size_t size)$/
 +_malloc_internal_nolock       c-src/emacs/src/gmalloc.c       /^_malloc_internal_nolock (size_t size)$/
 +_malloc_mutex c-src/emacs/src/gmalloc.c       517
 +_malloc_thread_enabled_p      c-src/emacs/src/gmalloc.c       519
 +_realloc      c-src/emacs/src/gmalloc.c       /^_realloc (void *ptr, size_t size)$/
 +_realloc_internal     c-src/emacs/src/gmalloc.c       /^_realloc_internal (void *ptr, size_t size)$/
 +_realloc_internal_nolock      c-src/emacs/src/gmalloc.c       /^_realloc_internal_nolock (void *ptr, size_t size)$/
 +`     ruby-src/test.rb        /^        def `(command)$/
 +a     c.c     152
 +a     c.c     180
 +a     c.c     /^a()$/
 +a     c.c     /^a ()$/
 +a     c-src/h.h       40
 +a     c-src/h.h       103
 +a     cp-src/c.C      132
 +a     ruby-src/test1.ru       /^ def a()$/
 +a-forth-constant!     forth-src/test-forth.fth        /^99 constant a-forth-constant!$/
 +a-forth-value?        forth-src/test-forth.fth        /^55 value a-forth-value?$/
 +a-forth-word  forth-src/test-forth.fth        /^: a-forth-word ( a b c -- a*b+c )  + * ;$/
 +a-forth-word  forth-src/test-forth.fth        /^: a-forth-word ( a b c -- )$/
 +a0    c-src/emacs/src/lisp.h  /^      Lisp_Object (*a0) (void);$/
 +a1    c-src/emacs/src/lisp.h  /^      Lisp_Object (*a1) (Lisp_Object);$/
 +a2    c-src/emacs/src/lisp.h  /^      Lisp_Object (*a2) (Lisp_Object, Lisp_Object)/
 +a3    c-src/emacs/src/lisp.h  /^      Lisp_Object (*a3) (Lisp_Object, Lisp_Object,/
 +a4    c-src/emacs/src/lisp.h  /^      Lisp_Object (*a4) (Lisp_Object, Lisp_Object,/
 +a5    c-src/emacs/src/lisp.h  /^      Lisp_Object (*a5) (Lisp_Object, Lisp_Object,/
 +a6    c-src/emacs/src/lisp.h  /^      Lisp_Object (*a6) (Lisp_Object, Lisp_Object,/
 +a7    c-src/emacs/src/lisp.h  /^      Lisp_Object (*a7) (Lisp_Object, Lisp_Object,/
 +a8    c-src/emacs/src/lisp.h  /^      Lisp_Object (*a8) (Lisp_Object, Lisp_Object,/
 +aMANY c-src/emacs/src/lisp.h  /^      Lisp_Object (*aMANY) (ptrdiff_t, Lisp_Object/
 +aUNEVALLED    c-src/emacs/src/lisp.h  /^      Lisp_Object (*aUNEVALLED) (Lisp_Object args)/
 +aa    c.c     269
 +aa    c.c     279
 +aaa   c.c     249
 +aaa   c.c     269
 +aaaaaa        c-src/h.h       111
 +abbrev-expansion      c-src/abbrev.c  /^DEFUN ("abbrev-expansion", Fabbrev_expansion, Sabb/
 +abbrev-symbol c-src/abbrev.c  /^DEFUN ("abbrev-symbol", Fabbrev_symbol, Sabbrev_sy/
 +abbrev_all_caps       c-src/abbrev.c  58
 +abbrevs_changed       c-src/abbrev.c  56
 +abc   c-src/h.h       33
 +abc   c-src/h.h       37
 +abort-recursive-edit  c-src/emacs/src/keyboard.c      /^DEFUN ("abort-recursive-edit", Fabort_recursive_ed/
 +abs/f ada-src/etags-test-for.ada      /^   function "abs"   (Right : Complex) return Real'/
 +absolute_dirname      c-src/etags.c   /^absolute_dirname (char *file, char *dir)$/
 +absolute_filename     c-src/etags.c   /^absolute_filename (char *file, char *dir)$/
 +abt   cp-src/c.C      55
 +accent_key_syms       c-src/emacs/src/keyboard.c      4625
 +access_keymap_keyremap        c-src/emacs/src/keyboard.c      /^access_keymap_keyremap (Lisp_Object map, Lisp_Obje/
 +act   prol-src/natded.prolog  /^act(OutForm,OutSyn,Ws):-$/
 +action        prol-src/natded.prolog  /^action(KeyVals):-$/
 +active_maps   c-src/emacs/src/keyboard.c      /^active_maps (Lisp_Object first_event)$/
 +actout        prol-src/natded.prolog  /^actout('Text',Trees):-$/
 +addArchs      objc-src/PackInsp.m     /^-(void)addArchs:(const char *)string$/
 +addPOReader   php-src/lce_functions.php       /^      function addPOReader($d_name, &$por)$/
 +add_active    prol-src/natded.prolog  /^add_active([],Cat,Goal):-$/
 +add_command_key       c-src/emacs/src/keyboard.c      /^add_command_key (Lisp_Object key)$/
 +add_edge      prol-src/natded.prolog  /^add_edge(Left,Right,Cat):-$/
 +add_node      c-src/etags.c   /^add_node (node *np, node **cur_node_p)$/
 +add_regex     c-src/etags.c   /^add_regex (char *regexp_pattern, language *lang)$/
 +add_user_signal       c-src/emacs/src/keyboard.c      /^add_user_signal (int sig, const char *name)$/
 +addnoise      html-src/algrthms.html  /^Adding Noise to the$/
 +address       cccp.y  114
 +address       y-src/cccp.y    113
 +adjust_point_for_property     c-src/emacs/src/keyboard.c      /^adjust_point_for_property (ptrdiff_t last_pt, bool/
 +agent cp-src/clheir.hpp       75
 +algorithms    html-src/algrthms.html  /^Description$/
 +alias c-src/emacs/src/lisp.h  688
 +align c-src/emacs/src/gmalloc.c       /^align (size_t size)$/
 +alignas       c-src/emacs/src/lisp.h  /^# define alignas(alignment) \/* empty *\/$/
 +aligned       c-src/emacs/src/gmalloc.c       199
 +aligned_alloc c-src/emacs/src/gmalloc.c       71
 +aligned_alloc c-src/emacs/src/gmalloc.c       /^aligned_alloc (size_t alignment, size_t size)$/
 +aligned_alloc c-src/emacs/src/gmalloc.c       1718
 +alignlist     c-src/emacs/src/gmalloc.c       196
 +alive cp-src/conway.hpp       7
 +all_kboards   c-src/emacs/src/keyboard.c      86
 +allocate_kboard       c-src/emacs/src/keyboard.c      /^allocate_kboard (Lisp_Object type)$/
 +allocated     c-src/emacs/src/regex.h 344
 +an_extern_linkage     c-src/h.h       44
 +an_extern_linkage     c-src/h.h       56
 +an_extern_linkage_ptr c-src/h.h       43
 +analyze_regex c-src/etags.c   /^analyze_regex (char *regex_arg)$/
 +andkeyvalseq  prol-src/natded.prolog  /^andkeyvalseq(KeyVals) --> ['&'], keyvalseq(KeyVals/
 +animals       c-src/h.h       81
 +animals       cp-src/c.C      126
 +animals       cp-src/c.C      130
 +any_kboard_state      c-src/emacs/src/keyboard.c      /^any_kboard_state ()$/
 +appDidInit    objcpp-src/SimpleCalc.M /^- appDidInit:sender$/
 +append        prol-src/natded.prolog  /^append([],Xs,Xs).$/
 +appendToDisplay       objcpp-src/SimpleCalc.M /^- appendToDisplay:(const char *)theDigit$/
 +append_list   prol-src/natded.prolog  /^append_list([],[]).$/
 +append_string pas-src/common.pas      /^procedure append_string;(*($/
 +append_tool_bar_item  c-src/emacs/src/keyboard.c      /^append_tool_bar_item (void)$/
 +appendix      perl-src/htlmify-cystic 24
 +appendix_name perl-src/htlmify-cystic 13
 +appendix_toc  perl-src/htlmify-cystic 16
 +apply_modifiers       c-src/emacs/src/keyboard.c      /^apply_modifiers (int modifiers, Lisp_Object base)$/
 +apply_modifiers_uncached      c-src/emacs/src/keyboard.c      /^apply_modifiers_uncached (int modifiers, char *bas/
 +aref_addr     c-src/emacs/src/lisp.h  /^aref_addr (Lisp_Object array, ptrdiff_t idx)$/
 +arg   c-src/h.h       13
 +arg_type      c-src/etags.c   250
 +arglist       cccp.y  41
 +arglist       y-src/cccp.y    41
 +argno cccp.y  45
 +argno y-src/cccp.y    45
 +args  c-src/h.h       30
 +argsindent    tex-src/texinfo.tex     /^\\newskip\\defargsindent \\defargsindent=50pt$/
 +argsindent    tex-src/texinfo.tex     /^\\dimen1=\\hsize \\advance \\dimen1 by -\\defargsindent/
 +argsindent    tex-src/texinfo.tex     /^\\parshape 2 0in \\dimen0 \\defargsindent \\dimen1    /
 +argument      c-src/etags.c   253
 +argvals       prol-src/natded.prolog  /^argvals([]) --> [].$/
 +array c.c     190
 +ascii c-src/emacs/src/lisp.h  1598
 +asort cp-src/functions.cpp    /^void asort(int *a, int num){$/
 +assemby-code-word     forth-src/test-forth.fth        /^code assemby-code-word ( dunno what it does )$/
 +assert        c-src/etags.c   135
 +assert        c-src/etags.c   /^# define assert(x) ((void) 0)$/
 +assign_neighbor       cp-src/clheir.hpp       /^    void assign_neighbor(int direction, location */
 +at_end        c-src/etags.c   249
 +at_filename   c-src/etags.c   247
 +at_language   c-src/etags.c   245
 +at_least_one_member   prol-src/natded.prolog  /^at_least_one_member(X,[X|_]):-!.$/
 +at_regexp     c-src/etags.c   246
 +at_stdin      c-src/etags.c   248
 +atom  prol-src/natded.prolog  /^atom(X) --> [X], {atomic(X)}.$/
 +atomval       prol-src/natded.prolog  /^atomval(X) --> atom(X).$/
 +aultparindent tex-src/texinfo.tex     /^\\newdimen\\defaultparindent \\defaultparindent = 15p/
 +aultparindent tex-src/texinfo.tex     /^\\parindent = \\defaultparindent$/
 +aultparindent\hang\textindent tex-src/texinfo.tex     /^\\footstrut\\parindent=\\defaultparindent\\hang\\textin/
 +auto_help     c-src/etags.c   699
 +b     c.c     180
 +b     c.c     259
 +b     c.c     260
 +b     c.c     262
 +b     c.c     /^b ()$/
 +b     c-src/h.h       41
 +b     c-src/h.h       103
 +b     c-src/h.h       104
 +b     cp-src/c.C      132
 +b     ruby-src/test1.ru       /^ def b()$/
 +backslash=0   tex-src/texinfo.tex     /^\\let\\indexbackslash=0  %overridden during \\printin/
 +bar   c-src/c.c       /^void bar() {while(0) {}}$/
 +bar   c.c     143
 +bar   c-src/h.h       19
 +bar   cp-src/x.cc     /^XX::bar()$/
 +bar1  ruby-src/test1.ru       /^    attr_reader(:foo1, :bar1, # comment$/
 +bar=  ruby-src/test1.ru       /^    attr_writer :bar,$/
 +bas_syn       prol-src/natded.prolog  /^bas_syn(n(_)).$/
 +base  c-src/emacs/src/lisp.h  2188
 +base  cp-src/c.C      /^double base (void) const { return rng_base;  }$/
 +base  cp-src/Range.h  /^  double base (void) const { return rng_base;  }$/
 +baz=  ruby-src/test1.ru       /^                :baz,$/
 +bb    c.c     275
 +bbb   c.c     251
 +bbbbbb        c-src/h.h       113
 +been_warned   c-src/etags.c   222
 +before_command_echo_length    c-src/emacs/src/keyboard.c      130
 +before_command_key_count      c-src/emacs/src/keyboard.c      129
 +begtoken      c-src/etags.c   /^#define       begtoken(c)     (_btk[CHAR (c)]) \/* c can star/
 +behaviour_info        erl-src/gs_dialog.erl   /^behaviour_info(callbacks) ->$/
 +bf=cmbx10     tex-src/texinfo.tex     /^\\font\\defbf=cmbx10 scaled \\magstep1 %was 1314$/
 +bind  pyt-src/server.py       /^    def bind(self, key, action):$/
 +bind_polling_period   c-src/emacs/src/keyboard.c      /^bind_polling_period (int n)$/
 +bits_word     c-src/emacs/src/lisp.h  123
 +bits_word     c-src/emacs/src/lisp.h  127
 +bla   c.c     /^int bla ()$/
 +blah  tex-src/testenv.tex     /^\\section{blah}$/
 +bletch        el-src/TAGTEST.EL       /^(foo::defmumble bletch beuarghh)$/
 +blv   c-src/emacs/src/lisp.h  689
 +blv_found     c-src/emacs/src/lisp.h  /^blv_found (struct Lisp_Buffer_Local_Value *blv)$/
 +bodyindent    tex-src/texinfo.tex     /^\\newskip\\defbodyindent \\defbodyindent=.4in$/
 +bodyindent    tex-src/texinfo.tex     /^\\advance\\dimen2 by -\\defbodyindent$/
 +bodyindent    tex-src/texinfo.tex     /^\\advance\\dimen3 by -\\defbodyindent$/
 +bodyindent    tex-src/texinfo.tex     /^\\advance\\leftskip by -\\defbodyindent$/
 +bodyindent    tex-src/texinfo.tex     /^\\exdentamount=\\defbodyindent$/
 +bodyindent    tex-src/texinfo.tex     /^\\advance\\leftskip by \\defbodyindent \\advance \\righ/
 +bodyindent    tex-src/texinfo.tex     /^\\exdentamount=\\defbodyindent$/
 +bodyindent    tex-src/texinfo.tex     /^\\advance\\leftskip by \\defbodyindent \\advance \\righ/
 +bodyindent    tex-src/texinfo.tex     /^\\exdentamount=\\defbodyindent$/
 +bodyindent    tex-src/texinfo.tex     /^\\advance\\leftskip by \\defbodyindent \\advance \\righ/
 +bodyindent    tex-src/texinfo.tex     /^\\exdentamount=\\defbodyindent$/
 +bodyindent    tex-src/texinfo.tex     /^\\advance\\leftskip by \\defbodyindent \\advance \\righ/
 +bodyindent    tex-src/texinfo.tex     /^\\exdentamount=\\defbodyindent$/
 +bodyindent    tex-src/texinfo.tex     /^\\advance\\leftskip by \\defbodyindent \\advance \\righ/
 +bodyindent    tex-src/texinfo.tex     /^\\exdentamount=\\defbodyindent$/
 +bodyindent    tex-src/texinfo.tex     /^\\advance\\leftskip by \\defbodyindent \\advance \\righ/
 +bodyindent    tex-src/texinfo.tex     /^\\exdentamount=\\defbodyindent$/
 +bool  c.c     222
 +bool_header_size      c-src/emacs/src/lisp.h  1472
 +bool_vector_bitref    c-src/emacs/src/lisp.h  /^bool_vector_bitref (Lisp_Object a, EMACS_INT i)$/
 +bool_vector_bytes     c-src/emacs/src/lisp.h  /^bool_vector_bytes (EMACS_INT size)$/
 +bool_vector_data      c-src/emacs/src/lisp.h  /^bool_vector_data (Lisp_Object a)$/
 +bool_vector_ref       c-src/emacs/src/lisp.h  /^bool_vector_ref (Lisp_Object a, EMACS_INT i)$/
 +bool_vector_set       c-src/emacs/src/lisp.h  /^bool_vector_set (Lisp_Object a, EMACS_INT i, bool /
 +bool_vector_size      c-src/emacs/src/lisp.h  /^bool_vector_size (Lisp_Object a)$/
 +bool_vector_uchar_data        c-src/emacs/src/lisp.h  /^bool_vector_uchar_data (Lisp_Object a)$/
 +bool_vector_words     c-src/emacs/src/lisp.h  /^bool_vector_words (EMACS_INT size)$/
 +boolvar       c-src/emacs/src/lisp.h  2287
 +bracelev      c-src/etags.c   2520
 +bsp_DevId     c-src/h.h       25
 +btowc c-src/emacs/src/regex.h /^# define btowc(c) c$/
 +buffer        c-src/etags.c   238
 +buffer        c-src/emacs/src/regex.h 341
 +buffer        c-src/h.h       119
 +build prol-src/natded.prolog  /^build([],Left,Left).$/
 +build_pure_c_string   c-src/emacs/src/lisp.h  /^build_pure_c_string (const char *str)$/
 +build_string  c-src/emacs/src/lisp.h  /^build_string (const char *str)$/
 +buildact      prol-src/natded.prolog  /^buildact([SynIn],Right,RightPlus1):-$/
 +builtin_lisp_symbol   c-src/emacs/src/lisp.h  /^builtin_lisp_symbol (int index)$/
 +burst c-src/h.h       28
 +busy  c-src/emacs/src/gmalloc.c       158
 +button_down_location  c-src/emacs/src/keyboard.c      5210
 +button_down_time      c-src/emacs/src/keyboard.c      5218
 +byte_stack    c-src/emacs/src/lisp.h  3049
 +bytecode_dest c-src/emacs/src/lisp.h  3037
 +bytecode_top  c-src/emacs/src/lisp.h  3036
 +bytes_free    c-src/emacs/src/gmalloc.c       314
 +bytes_total   c-src/emacs/src/gmalloc.c       310
 +bytes_used    c-src/emacs/src/gmalloc.c       312
 +c     c.c     180
 +c     c-src/h.h       /^#define c() d$/
 +c     c-src/h.h       106
 +c_ext c-src/etags.c   2271
 +caccacacca    c.c     /^caccacacca (a,b,c,d,e,f,g)$/
 +cacheLRUEntry_s       c.c     172
 +cacheLRUEntry_t       c.c     177
 +calloc        c-src/emacs/src/gmalloc.c       66
 +calloc        c-src/emacs/src/gmalloc.c       70
 +calloc        c-src/emacs/src/gmalloc.c       /^calloc (size_t nmemb, size_t size)$/
 +calloc        c-src/emacs/src/gmalloc.c       1717
 +can_be_null   c-src/emacs/src/regex.h 370
 +cancel_echoing        c-src/emacs/src/keyboard.c      /^cancel_echoing (void)$/
 +canonicalize_filename c-src/etags.c   /^canonicalize_filename (register char *fn)$/
 +case_Lisp_Int c-src/emacs/src/lisp.h  438
 +cat   c-src/h.h       81
 +cat   cp-src/c.C      126
 +cat   cp-src/c.C      130
 +cat   prol-src/natded.prolog  /^cat(A, Alpha@Beta, Ass3, Qs3, tree(fe,A:Alpha@Beta/
 +cat_atoms     prol-src/natded.prolog  /^cat_atoms(A1,A2,A3):-$/
 +cccccccccc    c-src/h.h       115
 +cdr   c-src/emacs/src/lisp.h  1159
 +cell  y-src/parse.y   278
 +cgrep html-src/software.html  /^cgrep$/
 +chain c-src/emacs/src/lisp.h  1162
 +chain c-src/emacs/src/lisp.h  2396
 +char_bits     c-src/emacs/src/lisp.h  2443
 +char_table_specials   c-src/emacs/src/lisp.h  1692
 +charset_unibyte       c-src/emacs/src/regex.h 410
 +chartonmstr   pas-src/common.pas      /^function chartonmstr; (*($/
 +checkQuotation        php-src/lce_functions.php       /^      function checkQuotation($str)$/
 +check_cons_list       c-src/emacs/src/lisp.h  /^#  define check_cons_list() lisp_h_check_cons_list/
 +checker       make-src/Makefile       /^checker:$/
 +checkhdr      c-src/emacs/src/gmalloc.c       /^checkhdr (const struct hdr *hdr)$/
 +checkiso      html-src/software.html  /^checkiso$/
 +childDidExit  objc-src/Subprocess.m   /^- childDidExit$/
 +chunks_free   c-src/emacs/src/gmalloc.c       313
 +chunks_used   c-src/emacs/src/gmalloc.c       311
 +cjava c-src/etags.c   2936
 +class_method  ruby-src/test.rb        /^        def ClassExample.class_method$/
 +classifyLine  php-src/lce_functions.php       /^      function classifyLine($line)$/
 +clean make-src/Makefile       /^clean:$/
 +clear cp-src/conway.hpp       /^    void clear(void) { alive = 0; }$/
 +clear-abbrev-table    c-src/abbrev.c  /^DEFUN ("clear-abbrev-table", Fclear_abbrev_table, /
 +clear-this-command-keys       c-src/emacs/src/keyboard.c      /^DEFUN ("clear-this-command-keys", Fclear_this_comm/
 +clearAllKey   objcpp-src/SimpleCalc.M /^- clearAllKey:sender$/
 +clearKey      objcpp-src/SimpleCalc.M /^- clearKey:sender$/
 +clear_event   c-src/emacs/src/keyboard.c      /^clear_event (struct input_event *event)$/
 +clear_input_pending   c-src/emacs/src/keyboard.c      /^clear_input_pending (void)$/
 +clear_neighbors       cp-src/clheir.cpp       /^void discrete_location::clear_neighbors(void)$/
 +clear_screen  cp-src/screen.cpp       /^void clear_screen(void)$/
 +clear_waiting_for_input       c-src/emacs/src/keyboard.c      /^clear_waiting_for_input (void)$/
 +cmd_error     c-src/emacs/src/keyboard.c      /^cmd_error (Lisp_Object data)$/
 +cmd_error_internal    c-src/emacs/src/keyboard.c      /^cmd_error_internal (Lisp_Object data, const char */
 +cmpfn c-src/emacs/src/lisp.h  /^  bool (*cmpfn) (struct hash_table_test *t, Lisp_O/
 +cmt   prol-src/natded.prolog  /^cmt:-$/
 +cname c-src/etags.c   2519
 +cno   c-src/etags.c   224
 +colori        cp-src/c.C      40
 +commaargvals  prol-src/natded.prolog  /^commaargvals(Args) -->$/
 +command       c-src/etags.c   187
 +command-error-default-function        c-src/emacs/src/keyboard.c      /^DEFUN ("command-error-default-function", Fcommand_/
 +command_loop  c-src/emacs/src/keyboard.c      /^command_loop (void)$/
 +command_loop_1        c-src/emacs/src/keyboard.c      /^command_loop_1 (void)$/
 +command_loop_2        c-src/emacs/src/keyboard.c      /^command_loop_2 (Lisp_Object ignore)$/
 +command_loop_level    c-src/emacs/src/keyboard.c      195
 +comment       php-src/lce_functions.php       /^      function comment($line, $class)$/
 +compile_empty prol-src/natded.prolog  /^compile_empty:-$/
 +compile_lex   prol-src/natded.prolog  /^compile_lex(File):-$/
 +complete      prol-src/natded.prolog  /^complete(Cat):-$/
 +complete-tag  el-src/emacs/lisp/progmodes/etags.el    /^(defun complete-tag ()$/
 +compressor    c-src/etags.c   188
 +compressors   c-src/etags.c   457
 +compute_next_state    cp-src/conway.hpp       /^    void compute_next_state(void)$/
 +compute_next_state    cp-src/clheir.hpp       /^    virtual void compute_next_state(void) { }$/
 +conalgorithm  html-src/algrthms.html  /^Convolutionally$/
 +concat        c-src/etags.c   /^concat (const char *s1, const char *s2, const char/
 +concatenatenamestrings        pas-src/common.pas      /^function concatenatenamestrings; (*($/
 +consider_token        c-src/etags.c   /^consider_token (char *str, int len, int c, int *c_/
 +constant      c-src/h.h       29
 +constant      cccp.y  113
 +constant      y-src/cccp.y    112
 +constant_args c-src/h.h       27
 +constype      c-src/emacs/src/lisp.h  3739
 +consult_lex   prol-src/natded.prolog  /^consult_lex:-$/
 +contents      c-src/emacs/src/lisp.h  1372
 +contents      c-src/emacs/src/lisp.h  1600
 +contents      c-src/emacs/src/lisp.h  1624
 +count c-src/emacs/src/lisp.h  1863
 +count_layers  lua-src/allegro.lua     /^local function count_layers (layer)$/
 +count_words   c-src/tab.c     /^static int            count_words(char *str, char delim)$/
 +counter       cp-src/c.C      33
 +counter       cp-src/c.C      36
 +cow   cp-src/c.C      127
 +cow   cp-src/c.C      131
 +cplpl c-src/etags.c   2935
 +createPOEntries       php-src/lce_functions.php       /^      function createPOEntries()$/
 +createWidgets pyt-src/server.py       /^    def createWidgets(self, host):$/
 +createWidgets pyt-src/server.py       /^    def createWidgets(self):$/
 +cscInitTime   cp-src/c.C      7
 +cscSegmentationTime   cp-src/c.C      8
 +cstack        c-src/etags.c   2523
 +ctags make-src/Makefile       /^ctags: etags.c ${OBJS}$/
 +curlb c-src/etags.c   2929
 +curlinepos    c-src/etags.c   2931
 +current-idle-time     c-src/emacs/src/keyboard.c      /^DEFUN ("current-idle-time", Fcurrent_idle_time, Sc/
 +current-input-mode    c-src/emacs/src/keyboard.c      /^DEFUN ("current-input-mode", Fcurrent_input_mode, /
 +current_kboard        c-src/emacs/src/keyboard.c      85
 +current_lb_is_new     c-src/etags.c   2926
 +cursor_position       cp-src/screen.cpp       /^void cursor_position(void)$/
 +cursor_x      cp-src/screen.cpp       15
 +cursor_y      cp-src/screen.cpp       15
 +d     c.c     180
 +d     c-src/emacs/src/lisp.h  4673
 +d     c-src/emacs/src/lisp.h  4679
 +data  c-src/emacs/src/lisp.h  1395
 +data  c-src/emacs/src/lisp.h  2129
 +data  c-src/emacs/src/lisp.h  2395
 +ddefineseen   c-src/etags.c   2462
 +debian-bug    html-src/software.html  /^debian-bug.el$/
 +decimalKey    objcpp-src/SimpleCalc.M /^- decimalKey:sender$/
 +decode_timer  c-src/emacs/src/keyboard.c      /^decode_timer (Lisp_Object timer, struct timespec */
 +def   c-src/h.h       35
 +def   c-src/h.h       38
 +defalt        c-src/emacs/src/lisp.h  1585
 +default-tags-table-function   el-src/emacs/lisp/progmodes/etags.el    /^(defvar default-tags-table-function nil$/
 +default_C_entries     c-src/etags.c   /^default_C_entries (FILE *inf)$/
 +default_C_help        c-src/etags.c   515
 +default_C_help        c-src/etags.c   523
 +default_C_suffixes    c-src/etags.c   512
 +defcell       c-src/emacs/src/lisp.h  2351
 +define-abbrev c-src/abbrev.c  /^DEFUN ("define-abbrev", Fdefine_abbrev, Sdefine_ab/
 +define-abbrev-table   c-src/abbrev.c  /^DEFUN ("define-abbrev-table", Fdefine_abbrev_table/
 +define-global-abbrev  c-src/abbrev.c  /^DEFUN ("define-global-abbrev", Fdefine_global_abbr/
 +define-mode-abbrev    c-src/abbrev.c  /^DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev, /
 +defined_GC_CHECK_STRING_BYTES c-src/emacs/src/lisp.h  4663
 +defined_GC_CHECK_STRING_BYTES c-src/emacs/src/lisp.h  4665
 +definedef     c-src/etags.c   2464
 +defun_func1   c.c     /^defun_func1()$/
 +delegate      objc-src/Subprocess.m   /^- delegate$/
 +deleteItem    pyt-src/server.py       /^    def deleteItem(self):$/
 +delete_kboard c-src/emacs/src/keyboard.c      /^delete_kboard (KBOARD *kb)$/
 +deliver_input_available_signal        c-src/emacs/src/keyboard.c      /^deliver_input_available_signal (int sig)$/
 +deliver_interrupt_signal      c-src/emacs/src/keyboard.c      /^deliver_interrupt_signal (int sig)$/
 +deliver_user_signal   c-src/emacs/src/keyboard.c      /^deliver_user_signal (int sig)$/
 +depth c-src/emacs/src/lisp.h  1618
 +derived_analyses      prol-src/natded.prolog  /^derived_analyses([],[]).$/
 +describe_abbrev       c-src/abbrev.c  /^describe_abbrev (sym, stream)$/
 +detect_input_pending  c-src/emacs/src/keyboard.c      /^detect_input_pending (void)$/
 +detect_input_pending_ignore_squeezables       c-src/emacs/src/keyboard.c      /^detect_input_pending_ignore_squeezables (void)$/
 +detect_input_pending_run_timers       c-src/emacs/src/keyboard.c      /^detect_input_pending_run_timers (bool do_display)$/
 +dialog_loop   erl-src/gs_dialog.erl   /^dialog_loop(Module, Window, Frame, Extra, Args) ->/
 +dignorerest   c-src/etags.c   2463
 +discard-input c-src/emacs/src/keyboard.c      /^DEFUN ("discard-input", Fdiscard_input, Sdiscard_i/
 +discard_mouse_events  c-src/emacs/src/keyboard.c      /^discard_mouse_events (void)$/
 +discrete_location     cp-src/clheir.hpp       56
 +discrete_location     cp-src/clheir.hpp       /^    discrete_location(int xi, int yi, int zi):$/
 +display       cp-src/conway.cpp       /^void display(void)$/
 +disposetextstring     pas-src/common.pas      /^procedure disposetextstring;(*($/
 +dnone c-src/etags.c   2460
 +doc   c-src/emacs/src/lisp.h  1689
 +dog   c-src/h.h       81
 +dog   cp-src/c.C      126
 +dog   cp-src/c.C      130
 +dotfill       tex-src/texinfo.tex     /^  \\null\\nobreak\\indexdotfill % Have leaders before/
 +dotfill       tex-src/texinfo.tex     /^\\noindent\\hskip\\secondaryindent\\hbox{#1}\\indexdotf/
 +double_click_count    c-src/emacs/src/keyboard.c      5222
 +drag_n_drop_syms      c-src/emacs/src/keyboard.c      4629
 +dribble       c-src/emacs/src/keyboard.c      236
 +dsharpseen    c-src/etags.c   2461
 +dummies       tex-src/texinfo.tex     /^{\\indexdummies % Must do this here, since \\bf, etc/
 +dummies       tex-src/texinfo.tex     /^{\\indexdummies % Must do this here, since \\bf, etc/
 +dummy1        cp-src/burton.cpp       /^::dummy::dummy test::dummy1(void)$/
 +dummy2        cp-src/burton.cpp       /^::dummy::dummy test::dummy2(::CORBA::Long dummy)$/
 +dummy3        cp-src/burton.cpp       /^::dummy::dummy test::dummy3(char* name, ::CORBA::L/
 +dummydots     tex-src/texinfo.tex     /^\\let\\dots=\\indexdummydots$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\w=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\t=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\r=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\i=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\b=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\emph=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\strong=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\sc=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\tclose=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\code=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\file=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\samp=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\kbd=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\key=\\indexdummyfont$/
 +dummyfont     tex-src/texinfo.tex     /^\\let\\var=\\indexdummyfont$/
 +dummytex      tex-src/texinfo.tex     /^\\let\\TeX=\\indexdummytex$/
 +dump  pyt-src/server.py       /^    def dump(self, folded):$/
 +eabs  c-src/emacs/src/lisp.h  /^#define eabs(x)         ((x) < 0 ? -(x) : (x))$/
 +eassert       c-src/emacs/src/lisp.h  /^# define eassert(cond) ((void) (false && (cond))) /
 +eassert       c-src/emacs/src/lisp.h  /^# define eassert(cond)                                                \\$/
 +eassume       c-src/emacs/src/lisp.h  /^# define eassume(cond) assume (cond)$/
 +eassume       c-src/emacs/src/lisp.h  /^# define eassume(cond)                                                \\$/
 +eax   c-src/sysdep.h  31
 +eax   c-src/sysdep.h  33
 +eax   c-src/sysdep.h  33
 +echo_add_key  c-src/emacs/src/keyboard.c      /^echo_add_key (Lisp_Object c)$/
 +echo_char     c-src/emacs/src/keyboard.c      /^echo_char (Lisp_Object c)$/
 +echo_dash     c-src/emacs/src/keyboard.c      /^echo_dash (void)$/
 +echo_kboard   c-src/emacs/src/keyboard.c      166
 +echo_keystrokes_p     c-src/emacs/src/keyboard.c      /^echo_keystrokes_p (void)$/
 +echo_length   c-src/emacs/src/keyboard.c      /^echo_length (void)$/
 +echo_message_buffer   c-src/emacs/src/keyboard.c      171
 +echo_now      c-src/emacs/src/keyboard.c      /^echo_now (void)$/
 +echo_truncate c-src/emacs/src/keyboard.c      /^echo_truncate (ptrdiff_t nchars)$/
 +echoing       c-src/emacs/src/keyboard.c      154
 +editItem      pyt-src/server.py       /^    def editItem(self):$/
 +editsite      pyt-src/server.py       /^    def editsite(self, site):$/
 +edituser      pyt-src/server.py       /^    def edituser(self, user):$/
 +egetenv       c-src/emacs/src/lisp.h  /^egetenv (const char *var)$/
 +emacs_abort   c-src/emacs/src/lisp.h  /^extern _Noreturn void emacs_abort (void) NO_INLINE/
 +end   c-src/emacs/src/regex.h 432
 +end   c-src/emacs/src/keyboard.c      8753
 +endtoken      c-src/etags.c   /^#define       endtoken(c)     (_etk[CHAR (c)]) \/* c ends tok/
 +enter_critical_section        c-src/h.h       116
 +entry perl-src/htlmify-cystic 218
 +entry perl-src/htlmify-cystic 234
 +entry perl-src/htlmify-cystic 245
 +entry perl-src/htlmify-cystic 252
 +entry perl-src/htlmify-cystic 268
 +entry perl-src/htlmify-cystic 276
 +entry perl-src/htlmify-cystic 281
 +entry perl-src/htlmify-cystic 296
 +equalsKey     objcpp-src/SimpleCalc.M /^- equalsKey:sender$/
 +erlang_atom   c-src/etags.c   /^erlang_atom (char *s)$/
 +erlang_attribute      c-src/etags.c   /^erlang_attribute (char *s)$/
 +erlang_func   c-src/etags.c   /^erlang_func (char *s, char *last)$/
 +error c-src/etags.c   /^static void error (const char *, ...) ATTRIBUTE_FO/
 +error c-src/etags.c   /^error (const char *format, ...)$/
 +error c-src/emacs/src/lisp.h  /^extern _Noreturn void error (const char *, ...) AT/
 +error cccp.y  /^error (msg)$/
 +error y-src/cccp.y    /^error (msg)$/
 +error_signaled        c-src/etags.c   264
 +etags el-src/emacs/lisp/progmodes/etags.el    /^(defgroup etags nil "Tags tables."$/
 +etags html-src/software.html  /^Etags$/
 +etags make-src/Makefile       /^etags: etags.c ${OBJS}$/
 +etags--xref-find-definitions  el-src/emacs/lisp/progmodes/etags.el    /^(defun etags--xref-find-definitions (pattern &opti/
 +etags--xref-limit     el-src/emacs/lisp/progmodes/etags.el    /^(defconst etags--xref-limit 1000)$/
 +etags-file-of-tag     el-src/emacs/lisp/progmodes/etags.el    /^(defun etags-file-of-tag (&optional relative) ; Do/
 +etags-goto-tag-location       el-src/emacs/lisp/progmodes/etags.el    /^(defun etags-goto-tag-location (tag-info)$/
 +etags-list-tags       el-src/emacs/lisp/progmodes/etags.el    /^(defun etags-list-tags (file) ; Doc string?$/
 +etags-recognize-tags-table    el-src/emacs/lisp/progmodes/etags.el    /^(defun etags-recognize-tags-table ()$/
 +etags-snarf-tag       el-src/emacs/lisp/progmodes/etags.el    /^(defun etags-snarf-tag (&optional use-explicit) ; /
 +etags-tags-apropos    el-src/emacs/lisp/progmodes/etags.el    /^(defun etags-tags-apropos (string) ; Doc string?$/
 +etags-tags-apropos-additional el-src/emacs/lisp/progmodes/etags.el    /^(defun etags-tags-apropos-additional (regexp)$/
 +etags-tags-completion-table   el-src/emacs/lisp/progmodes/etags.el    /^(defun etags-tags-completion-table () ; Doc string/
 +etags-tags-included-tables    el-src/emacs/lisp/progmodes/etags.el    /^(defun etags-tags-included-tables () ; Doc string?/
 +etags-tags-table-files        el-src/emacs/lisp/progmodes/etags.el    /^(defun etags-tags-table-files () ; Doc string?$/
 +etags-verify-tags-table       el-src/emacs/lisp/progmodes/etags.el    /^(defun etags-verify-tags-table ()$/
 +etags-xref-find       el-src/emacs/lisp/progmodes/etags.el    /^(defun etags-xref-find (action id)$/
 +etags-xref-find-definitions-tag-order el-src/emacs/lisp/progmodes/etags.el    /^(defvar etags-xref-find-definitions-tag-order '(ta/
 +etags.1.man   make-src/Makefile       /^etags.1.man: etags.1$/
 +etags_getcwd  c-src/etags.c   /^etags_getcwd (void)$/
 +eval_dyn      c-src/emacs/src/keyboard.c      /^eval_dyn (Lisp_Object form)$/
 +event-convert-list    c-src/emacs/src/keyboard.c      /^DEFUN ("event-convert-list", Fevent_convert_list, /
 +event-symbol-parse-modifiers  c-src/emacs/src/keyboard.c      /^DEFUN ("internal-event-symbol-parse-modifiers", Fe/
 +event_head    c-src/emacs/src/keyboard.c      11021
 +event_to_kboard       c-src/emacs/src/keyboard.c      /^event_to_kboard (struct input_event *event)$/
 +exact c-src/emacs/src/gmalloc.c       200
 +execute       cp-src/c.C      /^        void execute(CPluginCSCState& p, int w, in/
 +exit  c-src/exit.c    /^DEFUN(exit, (status), int status)$/
 +exit  c-src/exit.strange_suffix       /^DEFUN(exit, (status), int status)$/
 +exit-recursive-edit   c-src/emacs/src/keyboard.c      /^DEFUN ("exit-recursive-edit", Fexit_recursive_edit/
 +exit_critical_to_previous     c-src/h.h       117
 +exp   y-src/parse.y   94
 +exp   y-src/atest.y   2
 +exp   y-src/cccp.y    156
 +exp   y-src/cccp.y    185
 +exp1  y-src/cccp.y    148
 +exp_list      y-src/parse.y   262
 +expand-abbrev c-src/abbrev.c  /^DEFUN ("expand-abbrev", Fexpand_abbrev, Sexpand_ab/
 +expandmng     prol-src/natded.prolog  /^expandmng(var(V),var(V)).$/
 +expandmng_tree        prol-src/natded.prolog  /^expandmng_tree(tree(Rule,Syn:Sem,Trees),$/
 +expandmng_trees       prol-src/natded.prolog  /^expandmng_trees([],[]).$/
 +expandsyn     prol-src/natded.prolog  /^expandsyn(Syn,Syn):-$/
 +explicitly-quoted-pending-delete-mode el-src/TAGTEST.EL       /^(defalias (quote explicitly-quoted-pending-delete-/
 +expression_value      cccp.y  68
 +expression_value      y-src/cccp.y    68
 +extras        c-src/emacs/src/lisp.h  1603
 +extvar        c-src/h.h       109
 +f     c-src/c.c       /^T f(){if(x){}$/
 +f     c.c     145
 +f     c.c     156
 +f     c.c     168
 +f     c.c     /^int f$/
 +f     c-src/h.h       89
 +f     cp-src/c.C      /^A<int>* f() {}$/
 +f     cp-src/c.C      /^int f(A<int> x) {}$/
 +f     cp-src/c.C      /^int A<int>::f(A<int>* x) {}$/
 +f     cp-src/c.C      /^A<float,B<int> > A<B<float>,int>::f(A<int>* x) {}$/
 +f     cp-src/c.C      /^class B<int> { void f() {} };$/
 +f     cp-src/c.C      /^     void f() {}$/
 +f     cp-src/c.C      /^  int f(){return 0;};         \/\/ first comment$/
 +f     cp-src/c.C      /^     void f() {}$/
 +f     cp-src/fail.C   /^              int f() { return 5; }$/
 +f     cp-src/fail.C   /^int A::B::f() { return 2; }$/
 +f1    c.c     /^     f1 () { \/* Do something. *\/; }$/
++f1    perl-src/kai-test.pl    /^sub f1 {$/
 +f2    c.c     /^void f2 () { \/* Do something. *\/; }$/
++f2    perl-src/kai-test.pl    /^sub main::f2 {$/
++f3    perl-src/kai-test.pl    /^sub f3 {$/
++f4    perl-src/kai-test.pl    /^sub Bar::f4 {$/
++f5    perl-src/kai-test.pl    /^sub f5 {$/
++f6    perl-src/kai-test.pl    /^sub f6 {$/
++f7    perl-src/kai-test.pl    /^sub f7 {$/
 +fast_string_match_ignore_case c-src/emacs/src/lisp.h  /^fast_string_match_ignore_case (Lisp_Object regexp,/
 +fastctags     make-src/Makefile       /^fastctags:$/
 +fastetags     make-src/Makefile       /^fastetags:$/
 +fastmap       c-src/emacs/src/regex.h 355
 +fastmap_accurate      c-src/emacs/src/regex.h 383
 +fatal c-src/etags.c   /^fatal (const char *s1, const char *s2)$/
 +fatala        c.c     /^void fatala () __attribute__ ((noreturn));$/
 +fdHandler     objc-src/Subprocess.m   /^- fdHandler:(int)theFd$/
 +fdHandler     objc-src/Subprocess.m   /^fdHandler (int theFd, id self)$/
 +fdefunkey     c-src/etags.c   2409
 +fdefunname    c-src/etags.c   2410
 +fdesc c-src/etags.c   201
 +fdesc c-src/etags.c   212
 +fdp   c-src/etags.c   217
 +ff    cp-src/c.C      /^  int ff(){return 1;};$/
 +field_of_play cp-src/conway.cpp       18
 +fignore       c-src/etags.c   2416
 +file-of-tag   el-src/emacs/lisp/progmodes/etags.el    /^(defun file-of-tag (&optional relative)$/
 +file-of-tag-function  el-src/emacs/lisp/progmodes/etags.el    /^(defvar file-of-tag-function nil$/
 +fileJoin      php-src/lce_functions.php       /^  function fileJoin()$/
++file_end      perl-src/htlmify-cystic /^sub file_end ()$/
 +file_index    perl-src/htlmify-cystic 33
 +file_tocs     perl-src/htlmify-cystic 30
 +filename_is_absolute  c-src/etags.c   /^filename_is_absolute (char *fn)$/
 +filenames     c-src/etags.c   196
 +find-tag      el-src/emacs/lisp/progmodes/etags.el    /^(defun find-tag (tagname &optional next-p regexp-p/
 +find-tag-default-function     el-src/emacs/lisp/progmodes/etags.el    /^(defcustom find-tag-default-function nil$/
 +find-tag-history      el-src/emacs/lisp/progmodes/etags.el    /^(defvar find-tag-history nil) ; Doc string?$/
 +find-tag-hook el-src/emacs/lisp/progmodes/etags.el    /^(defcustom find-tag-hook nil$/
 +find-tag-in-order     el-src/emacs/lisp/progmodes/etags.el    /^(defun find-tag-in-order (pattern$/
 +find-tag-interactive  el-src/emacs/lisp/progmodes/etags.el    /^(defun find-tag-interactive (prompt &optional no-d/
 +find-tag-marker-ring  el-src/emacs/lisp/progmodes/etags.el    /^(defvaralias 'find-tag-marker-ring 'xref--marker-r/
 +find-tag-marker-ring-length   el-src/emacs/lisp/progmodes/etags.el    /^(define-obsolete-variable-alias 'find-tag-marker-r/
 +find-tag-next-line-after-failure-p    el-src/emacs/lisp/progmodes/etags.el    /^(defvar find-tag-next-line-after-failure-p nil$/
 +find-tag-noselect     el-src/emacs/lisp/progmodes/etags.el    /^(defun find-tag-noselect (tagname &optional next-p/
 +find-tag-other-frame  el-src/emacs/lisp/progmodes/etags.el    /^(defun find-tag-other-frame (tagname &optional nex/
 +find-tag-other-window el-src/emacs/lisp/progmodes/etags.el    /^(defun find-tag-other-window (tagname &optional ne/
 +find-tag-regexp       el-src/emacs/lisp/progmodes/etags.el    /^(defun find-tag-regexp (regexp &optional next-p ot/
 +find-tag-regexp-next-line-after-failure-p     el-src/emacs/lisp/progmodes/etags.el    /^(defvar find-tag-regexp-next-line-after-failure-p /
 +find-tag-regexp-search-function       el-src/emacs/lisp/progmodes/etags.el    /^(defvar find-tag-regexp-search-function nil$/
 +find-tag-regexp-tag-order     el-src/emacs/lisp/progmodes/etags.el    /^(defvar find-tag-regexp-tag-order nil$/
 +find-tag-search-function      el-src/emacs/lisp/progmodes/etags.el    /^(defvar find-tag-search-function nil$/
 +find-tag-tag  el-src/emacs/lisp/progmodes/etags.el    /^(defun find-tag-tag (string)$/
 +find-tag-tag-order    el-src/emacs/lisp/progmodes/etags.el    /^(defvar find-tag-tag-order nil$/
 +find_entries  c-src/etags.c   /^find_entries (FILE *inf)$/
 +find_user_signal_name c-src/emacs/src/keyboard.c      /^find_user_signal_name (int sig)$/
 +findcats      prol-src/natded.prolog  /^findcats([],Left,Left).$/
++finish_appendices     perl-src/htlmify-cystic /^sub finish_appendices ()$/
++finish_sections       perl-src/htlmify-cystic /^sub finish_sections ()$/
++finish_subsections    perl-src/htlmify-cystic /^sub finish_subsections ()$/
++finish_subsubsections perl-src/htlmify-cystic /^sub finish_subsubsections ()$/
 +finlist       c-src/etags.c   2414
 +first c-src/emacs/src/gmalloc.c       151
 +fitchtreelist prol-src/natded.prolog  /^fitchtreelist([]).$/
 +fixup_locale  c-src/emacs/src/lisp.h  /^INLINE void fixup_locale (void) {}$/
 +flag  c-src/getopt.h  83
 +flag2str      pyt-src/server.py       /^def flag2str(value, string):$/
 +flistseen     c-src/etags.c   2415
 +fn    c-src/exit.c    /^    void EXFUN((*fn[1]), (NOARGS));$/
 +fn    c-src/exit.strange_suffix       /^    void EXFUN((*fn[1]), (NOARGS));$/
 +fnin  y-src/parse.y   67
 +fnin  parse.y 67
 +focus_set     pyt-src/server.py       /^    def focus_set(self):$/
 +follow_key    c-src/emacs/src/keyboard.c      /^follow_key (Lisp_Object keymap, Lisp_Object key)$/
 +fonts tex-src/texinfo.tex     /^\\obeyspaces \\obeylines \\ninett \\indexfonts \\rawbac/
 +fonts\rm      tex-src/texinfo.tex     /^  \\indexfonts\\rm \\tolerance=9500 \\advance\\baseline/
 +foo   c.c     150
 +foo   c.c     166
 +foo   c.c     167
 +foo   c.c     178
 +foo   c.c     189
 +foo   c-src/h.h       18
 +foo   cp-src/c.C      68
 +foo   cp-src/c.C      79
 +foo   cp-src/c.C      /^    foo() {$/
 +foo   cp-src/x.cc     /^XX::foo()$/
 +foo   f-src/entry.for /^       character*(*) function foo()$/
 +foo   f-src/entry.strange_suffix      /^       character*(*) function foo()$/
 +foo   f-src/entry.strange     /^       character*(*) function foo()$/
 +foo   php-src/ptest.php       /^foo()$/
 +foo   ruby-src/test1.ru       /^    attr_reader :foo$/
 +foo!  ruby-src/test1.ru       /^    def foo!$/
 +foo1  ruby-src/test1.ru       /^    attr_reader(:foo1, :bar1, # comment$/
 +foo2  ruby-src/test1.ru       /^    alias_method ( :foo2, #cmmt$/
 +foobar        c-src/c.c       /^int foobar() {;}$/
 +foobar        c.c     /^extern void foobar (void) __attribute__ ((section /
 +foobar2       c-src/h.h       20
 +foobar2_      c-src/h.h       16
 +foperator     c-src/etags.c   2411
 +force_auto_save_soon  c-src/emacs/src/keyboard.c      /^force_auto_save_soon (void)$/
 +force_explicit_name   c-src/etags.c   265
 +force_quit_count      c-src/emacs/src/keyboard.c      10387
 +formatSize    objc-src/PackInsp.m     /^-(const char *)formatSize:(const char *)size inBuf/
 +found c-src/emacs/src/lisp.h  2344
 +fracas        html-src/software.html  /^Fracas$/
 +frag  c-src/emacs/src/gmalloc.c       152
 +frame_local   c-src/emacs/src/lisp.h  2341
 +free  c-src/emacs/src/gmalloc.c       67
 +free  c-src/emacs/src/gmalloc.c       72
 +free  c-src/emacs/src/gmalloc.c       166
 +free  c-src/emacs/src/gmalloc.c       /^free (void *ptr)$/
 +free  c-src/emacs/src/gmalloc.c       1719
 +free_fdesc    c-src/etags.c   /^free_fdesc (register fdesc *fdp)$/
 +free_for      prol-src/natded.prolog  /^free_for(var(_),_,_).$/
 +free_regexps  c-src/etags.c   /^free_regexps (void)$/
 +free_tree     c-src/etags.c   /^free_tree (register node *np)$/
 +free_var      prol-src/natded.prolog  /^free_var(var(V),var(V)).$/
 +freehook      c-src/emacs/src/gmalloc.c       /^freehook (void *ptr)$/
 +fresh_vars    prol-src/natded.prolog  /^fresh_vars(var(V),var(V)).$/
 +fstartlist    c-src/etags.c   2413
 +func1 c.c     /^int func1$/
 +func2 c.c     /^int func2 (a,b$/
 +func_key_syms c-src/emacs/src/keyboard.c      4626
 +funcboo       c.c     /^bool funcboo ()$/
 +funcpointer   c-src/emacs/src/lisp.h  2126
 +funcptr       c-src/h.h       /^    fu   int (*funcptr) (void *ptr);$/
 +function      c-src/etags.c   194
 +function      c-src/emacs/src/lisp.h  694
 +function      c-src/emacs/src/lisp.h  1685
 +function      c-src/emacs/src/lisp.h  2197
 +functionp     c-src/emacs/src/lisp.h  /^functionp (Lisp_Object object)$/
 +fvdef c-src/etags.c   2418
 +fvextern      c-src/etags.c   2420
 +fvnameseen    c-src/etags.c   2412
 +fvnone        c-src/etags.c   2408
 +fwd   c-src/emacs/src/lisp.h  690
 +fwd   c-src/emacs/src/lisp.h  2346
 +g     cp-src/c.C      /^  int g(){return 2;};$/
 +galileo       html-src/software.html  /^GaliLEO$/
 +gather        pyt-src/server.py       /^    def gather(self):$/
 +gather        pyt-src/server.py       /^    def gather(self):$/
 +gc_aset       c-src/emacs/src/lisp.h  /^gc_aset (Lisp_Object array, ptrdiff_t idx, Lisp_Ob/
 +gcmarkbit     c-src/emacs/src/lisp.h  656
 +gcpro c-src/emacs/src/lisp.h  3042
 +gcpro c-src/emacs/src/lisp.h  3132
 +gen_help_event        c-src/emacs/src/keyboard.c      /^gen_help_event (Lisp_Object help, Lisp_Object fram/
 +genalgorithm  html-src/algrthms.html  /^Generating the Data<\/font><\/i><\/b>$/
 +generic_object        cp-src/clheir.cpp       /^generic_object::generic_object(void)$/
 +generic_object        cp-src/clheir.hpp       13
 +getArchs      objc-src/PackInsp.m     /^-(void)getArchs$/
 +getDomainNames        php-src/lce_functions.php       /^      function getDomainNames()$/
 +getFoo        lua-src/test.lua        /^function Cube.data.getFoo ()$/
 +getPOReader   php-src/lce_functions.php       /^      function &getPOReader($domain)$/
 +getPath       objc-src/PackInsp.m     /^-(const char *)getPath:(char *)buf forType:(const /
 +getPos        lua-src/test.lua        /^function Rectangle.getPos ()$/
 +getPos        lua-src/test.lua        /^function Circle.getPos ()$/
 +getTextDomains        php-src/lce_functions.php       /^  function getTextDomains($lines)$/
 +get_compressor_from_suffix    c-src/etags.c   /^get_compressor_from_suffix (char *file, char **ext/
 +get_contiguous_space  c-src/emacs/src/gmalloc.c       /^get_contiguous_space (ptrdiff_t size, void *positi/
 +get_current_dir_name  c-src/emacs/src/gmalloc.c       33
 +get_input_pending     c-src/emacs/src/keyboard.c      /^get_input_pending (int flags)$/
 +get_language_from_filename    c-src/etags.c   /^get_language_from_filename (char *file, int case_s/
 +get_language_from_interpreter c-src/etags.c   /^get_language_from_interpreter (char *interpreter)$/
 +get_language_from_langname    c-src/etags.c   /^get_language_from_langname (const char *name)$/
 +get_layer_by_name     lua-src/allegro.lua     /^local function get_layer_by_name (sprite, layer, n/
 +get_tag       c-src/etags.c   /^get_tag (register char *bp, char **namepp)$/
 +get_word      c-src/tab.c     /^static char           *get_word(char **str, char delim)$/
 +getcjmp       c-src/emacs/src/keyboard.c      147
++getopt        perl-src/yagrip.pl      /^sub getopt {$/
 +getopt.o      make-src/Makefile       /^getopt.o: emacs\/lib-src\/getopt.c$/
 +getopt1.o     make-src/Makefile       /^getopt1.o: emacs\/lib-src\/getopt1.c$/
 +getptys       objc-src/Subprocess.m   /^getptys (int *master, int *slave)$/
 +gettext       php-src/lce_functions.php       /^      function gettext($msgid)$/
 +ggg   c-src/h.h       10
 +ghi1  c-src/h.h       36
 +ghi2  c-src/h.h       39
 +giallo        cp-src/c.C      40
 +glider        cp-src/conway.cpp       /^void glider(int x, int y)$/
 +gnu   html-src/software.html  /^Free software that I wrote for the GNU project or /
 +gobble_input  c-src/emacs/src/keyboard.c      /^gobble_input (void)$/
 +goto-tag-location-function    el-src/emacs/lisp/progmodes/etags.el    /^(defvar goto-tag-location-function nil$/
 +goto_xy       cp-src/screen.cpp       /^void goto_xy(unsigned char x, unsigned char y)$/
 +handleList    pyt-src/server.py       /^    def handleList(self, event):$/
 +handleNew     pyt-src/server.py       /^    def handleNew(self, event):$/
 +handle_async_input    c-src/emacs/src/keyboard.c      /^handle_async_input (void)$/
 +handle_input_available_signal c-src/emacs/src/keyboard.c      /^handle_input_available_signal (int sig)$/
 +handle_interrupt      c-src/emacs/src/keyboard.c      /^handle_interrupt (bool in_signal_handler)$/
 +handle_interrupt_signal       c-src/emacs/src/keyboard.c      /^handle_interrupt_signal (int sig)$/
 +handle_user_signal    c-src/emacs/src/keyboard.c      /^handle_user_signal (int sig)$/
 +handler       c-src/emacs/src/lisp.h  3023
 +handlertype   c-src/emacs/src/lisp.h  3021
 +has_arg       c-src/getopt.h  82
 +hash  c-src/etags.c   /^hash (const char *str, int len)$/
 +hash  c-src/emacs/src/lisp.h  1843
 +hash_table_test       c-src/emacs/src/lisp.h  1805
 +hashfn        c-src/emacs/src/lisp.h  /^  EMACS_UINT (*hashfn) (struct hash_table_test *t,/
 +hdr   c-src/emacs/src/gmalloc.c       1860
 +head_table    c-src/emacs/src/keyboard.c      11027
 +header        c-src/emacs/src/lisp.h  1371
 +header        c-src/emacs/src/lisp.h  1388
 +header        c-src/emacs/src/lisp.h  1581
 +header        c-src/emacs/src/lisp.h  1610
 +header        c-src/emacs/src/lisp.h  1672
 +header        c-src/emacs/src/lisp.h  1826
 +header_size   c-src/emacs/src/lisp.h  1471
 +heapsize      c-src/emacs/src/gmalloc.c       361
 +help  c-src/etags.c   193
 +helpPanel     objcpp-src/SimpleCalc.M /^- helpPanel:sender$/
 +help_char_p   c-src/emacs/src/keyboard.c      /^help_char_p (Lisp_Object c)$/
 +help_form_saved_window_configs        c-src/emacs/src/keyboard.c      2156
 +helpwin       pyt-src/server.py       /^def helpwin(helpdict):$/
 +hide_cursor   cp-src/screen.cpp       /^void hide_cursor(void)$/
 +htmltreelist  prol-src/natded.prolog  /^htmltreelist([]).$/
 +hybrid_aligned_alloc  c-src/emacs/src/gmalloc.c       /^hybrid_aligned_alloc (size_t alignment, size_t siz/
 +hybrid_calloc c-src/emacs/src/gmalloc.c       /^hybrid_calloc (size_t nmemb, size_t size)$/
 +hybrid_free   c-src/emacs/src/gmalloc.c       /^hybrid_free (void *ptr)$/
 +hybrid_get_current_dir_name   c-src/emacs/src/gmalloc.c       /^hybrid_get_current_dir_name (void)$/
 +hybrid_malloc c-src/emacs/src/gmalloc.c       /^hybrid_malloc (size_t size)$/
 +hybrid_realloc        c-src/emacs/src/gmalloc.c       /^hybrid_realloc (void *ptr, size_t size)$/
 +hypothetical_mem      prol-src/natded.prolog  /^hypothetical_mem(fi(N),Ass,_):-$/
 +i     c-src/c.c       2
 +i     c.c     169
 +i     c-src/emacs/src/lisp.h  567
 +i     c-src/emacs/src/lisp.h  4673
 +i     c-src/emacs/src/lisp.h  4679
 +i     cp-src/c.C      132
 +ialpage       tex-src/texinfo.tex     /^\\newbox\\partialpage$/
 +ialpage       tex-src/texinfo.tex     /^  \\dimen@=\\pageheight \\advance\\dimen@ by-\\ht\\parti/
 +ialpage       tex-src/texinfo.tex     /^  \\availdimen@=\\pageheight \\advance\\availdimen@ by/
 +ialpage       tex-src/texinfo.tex     /^     \\dimen@=\\pageheight \\advance\\dimen@ by-\\ht\\pa/
 +ialpage=      tex-src/texinfo.tex     /^  \\output={\\global\\setbox\\partialpage=$/
 +idx   c-src/emacs/src/lisp.h  3150
 +ignore_case   c-src/etags.c   266
 +ignore_mouse_drag_p   c-src/emacs/src/keyboard.c      1256
 +ill=\relax    tex-src/texinfo.tex     /^\\let\\refill=\\relax$/
 +immediate_quit        c-src/emacs/src/keyboard.c      174
 +impatto       html-src/softwarelibero.html    /^Impatto pratico del software libero$/
 +in_word_set   c-src/etags.c   /^in_word_set (register const char *str, register un/
 +inattribute   c-src/etags.c   2400
 +inc   cp-src/Range.h  /^  double inc (void) const { return rng_inc;   }$/
 +index c-src/emacs/src/lisp.h  1856
 +infabsdir     c-src/etags.c   206
 +infabsname    c-src/etags.c   205
 +infiles       make-src/Makefile       /^infiles = $(filter-out ${NONSRCS},${SRCS}) srclist/
 +infname       c-src/etags.c   204
 +info  c-src/emacs/src/gmalloc.c       157
 +infoPanel     objcpp-src/SimpleCalc.M /^- infoPanel:sender$/
 +init  c-src/etags.c   /^init (void)$/
 +init  objc-src/Subprocess.m   /^- init:(const char *)subprocessString$/
 +init  objc-src/Subprocess.m   /^    andStdErr:(BOOL)wantsStdErr$/
 +init  objcpp-src/SimpleCalc.M /^- init$/
 +init_control  c.c     239
 +init_kboard   c-src/emacs/src/keyboard.c      /^init_kboard (KBOARD *kb, Lisp_Object type)$/
 +init_keyboard c-src/emacs/src/keyboard.c      /^init_keyboard (void)$/
 +init_registry cp-src/clheir.cpp       /^void init_registry(void)$/
 +init_tool_bar_items   c-src/emacs/src/keyboard.c      /^init_tool_bar_items (Lisp_Object reuse)$/
 +inita c.c     /^static void inita () {}$/
 +initb c.c     /^static void initb () {}$/
 +initial_kboard        c-src/emacs/src/keyboard.c      84
 +initialize-new-tags-table     el-src/emacs/lisp/progmodes/etags.el    /^(defun initialize-new-tags-table ()$/
 +initialize_random_junk        cccp.y  /^initialize_random_junk ()$/
 +initialize_random_junk        y-src/cccp.y    /^initialize_random_junk ()$/
 +input-pending-p       c-src/emacs/src/keyboard.c      /^DEFUN ("input-pending-p", Finput_pending_p, Sinput/
 +input_available_clear_time    c-src/emacs/src/keyboard.c      324
 +input_pending c-src/emacs/src/keyboard.c      239
 +input_polling_used    c-src/emacs/src/keyboard.c      /^input_polling_used (void)$/
 +input_was_pending     c-src/emacs/src/keyboard.c      287
 +insert-abbrev-table-description       c-src/abbrev.c  /^DEFUN ("insert-abbrev-table-description", Finsert_/
 +insertname    pas-src/common.pas      /^function insertname;(*($/
 +instance_method       ruby-src/test.rb        /^        def instance_method$/
 +instance_method_equals=       ruby-src/test.rb        /^        def instance_method_equals=$/
 +instance_method_exclamation!  ruby-src/test.rb        /^        def instance_method_exclamation!$/
 +instance_method_question?     ruby-src/test.rb        /^        def instance_method_question?$/
 +instr y-src/parse.y   80
 +instr parse.y 80
 +instruct      c-src/etags.c   2527
 +intNumber     go-src/test1.go 13
 +integer       c-src/emacs/src/lisp.h  2127
 +integer       cccp.y  113
 +integer       y-src/cccp.y    112
 +integer_overflow      cccp.y  /^integer_overflow ()$/
 +integer_overflow      y-src/cccp.y    /^integer_overflow ()$/
 +integertonmstr        pas-src/common.pas      /^function integertonmstr; (* (TheInteger : integer)/
 +intensity1    f-src/entry.for /^     & intensity1(efv,fv,svin,svquad,sfpv,maxp,val/
 +intensity1    f-src/entry.strange_suffix      /^     & intensity1(efv,fv,svin,svquad,sfpv,maxp,val/
 +intensity1    f-src/entry.strange     /^     & intensity1(efv,fv,svin,svquad,sfpv,maxp,val/
 +interface_locate      c-src/c.c       /^interface_locate(void)$/
 +intern        c-src/emacs/src/lisp.h  /^intern (const char *str)$/
 +intern_c_string       c-src/emacs/src/lisp.h  /^intern_c_string (const char *str)$/
 +internal_last_event_frame     c-src/emacs/src/keyboard.c      228
 +interpreters  c-src/etags.c   197
 +interrupt_input       c-src/emacs/src/keyboard.c      328
 +interrupt_input_blocked       c-src/emacs/src/keyboard.c      76
 +interrupt_input_blocked       c-src/emacs/src/lisp.h  3048
 +interrupts_deferred   c-src/emacs/src/keyboard.c      331
 +intoken       c-src/etags.c   /^#define       intoken(c)      (_itk[CHAR (c)]) \/* c can be in/
 +intspec       c-src/emacs/src/lisp.h  1688
 +intvar        c-src/emacs/src/lisp.h  2277
 +invalidate_nodes      c-src/etags.c   /^invalidate_nodes (fdesc *badfdp, node **npp)$/
 +ipc3dCSC19    cp-src/c.C      6
 +ipc3dChannelType      cp-src/c.C      1
 +ipc3dIslandHierarchy  cp-src/c.C      1
 +ipc3dLinkControl      cp-src/c.C      1
 +irregular_location    cp-src/clheir.hpp       47
 +irregular_location    cp-src/clheir.hpp       /^    irregular_location(double xi, double yi, doubl/
 +isComment     php-src/lce_functions.php       /^      function isComment($class)$/
 +isHoliday     cp-src/functions.cpp    /^bool isHoliday ( Date d ){$/
 +isLeap        cp-src/functions.cpp    /^bool isLeap ( int year ){$/
 +is_curly_brace_form   c-src/h.h       54
 +is_explicit   c-src/h.h       49
 +is_func       c-src/etags.c   221
 +is_hor_space  cccp.y  953
 +is_hor_space  y-src/cccp.y    953
 +is_idchar     cccp.y  948
 +is_idchar     y-src/cccp.y    948
 +is_idstart    cccp.y  950
 +is_idstart    y-src/cccp.y    950
 +is_muldiv_operation   cp-src/c.C      /^is_muldiv_operation(pc)$/
 +is_ordset     prol-src/ordsets.prolog /^is_ordset(X) :- var(X), !, fail.$/
 +iso_lispy_function_keys       c-src/emacs/src/keyboard.c      5151
 +isoperator    prol-src/natded.prolog  /^isoperator(Char):-$/
 +isoptab       prol-src/natded.prolog  /^isoptab('%').$/
 +iswhite       c-src/etags.c   /^#define       iswhite(c)      (_wht[CHAR (c)]) \/* c is white /
 +item_properties       c-src/emacs/src/keyboard.c      7568
 +jmp   c-src/emacs/src/lisp.h  3044
 +just_read_file        c-src/etags.c   /^just_read_file (FILE *inf)$/
 +kbd_buffer    c-src/emacs/src/keyboard.c      291
 +kbd_buffer_events_waiting     c-src/emacs/src/keyboard.c      /^kbd_buffer_events_waiting (void)$/
 +kbd_buffer_get_event  c-src/emacs/src/keyboard.c      /^kbd_buffer_get_event (KBOARD **kbp,$/
 +kbd_buffer_nr_stored  c-src/emacs/src/keyboard.c      /^kbd_buffer_nr_stored (void)$/
 +kbd_buffer_store_event        c-src/emacs/src/keyboard.c      /^kbd_buffer_store_event (register struct input_even/
 +kbd_buffer_store_event_hold   c-src/emacs/src/keyboard.c      /^kbd_buffer_store_event_hold (register struct input/
 +kbd_buffer_store_help_event   c-src/emacs/src/keyboard.c      /^kbd_buffer_store_help_event (Lisp_Object frame, Li/
 +kbd_buffer_unget_event        c-src/emacs/src/keyboard.c      /^kbd_buffer_unget_event (register struct input_even/
 +kbd_fetch_ptr c-src/emacs/src/keyboard.c      297
 +kbd_store_ptr c-src/emacs/src/keyboard.c      302
 +kboard        c-src/emacs/src/keyboard.c      860
 +kboard_stack  c-src/emacs/src/keyboard.c      858
 +kboard_stack  c-src/emacs/src/keyboard.c      864
 +key_and_value c-src/emacs/src/lisp.h  1868
 +keyremap      c-src/emacs/src/keyboard.c      8742
 +keyremap      c-src/emacs/src/keyboard.c      8754
 +keyremap_step c-src/emacs/src/keyboard.c      /^keyremap_step (Lisp_Object *keybuf, int bufsize, v/
 +keys_of_keyboard      c-src/emacs/src/keyboard.c      /^keys_of_keyboard (void)$/
 +keyval        prol-src/natded.prolog  /^keyval(key(Key,Val)) --> [Key,'='], valseq(Val).$/
 +keyvalcgi     prol-src/natded.prolog  /^keyvalcgi(Key,Val):-$/
 +keyvalscgi    prol-src/natded.prolog  /^keyvalscgi(KeyVals),$/
 +keyvalseq     prol-src/natded.prolog  /^keyvalseq([KeyVal|KeyVals]) --> $/
 +keyword_parsing       cccp.y  73
 +keyword_parsing       y-src/cccp.y    73
 +keywords      cccp.y  115
 +keywords      y-src/cccp.y    114
 +keywords      y-src/cccp.y    306
 +kind  c-src/emacs/src/keyboard.c      11024
 +kind  c-src/h.h       46
 +kset_echo_string      c-src/emacs/src/keyboard.c      /^kset_echo_string (struct kboard *kb, Lisp_Object v/
 +kset_kbd_queue        c-src/emacs/src/keyboard.c      /^kset_kbd_queue (struct kboard *kb, Lisp_Object val/
 +kset_keyboard_translate_table c-src/emacs/src/keyboard.c      /^kset_keyboard_translate_table (struct kboard *kb, /
 +kset_last_prefix_arg  c-src/emacs/src/keyboard.c      /^kset_last_prefix_arg (struct kboard *kb, Lisp_Obje/
 +kset_last_repeatable_command  c-src/emacs/src/keyboard.c      /^kset_last_repeatable_command (struct kboard *kb, L/
 +kset_local_function_key_map   c-src/emacs/src/keyboard.c      /^kset_local_function_key_map (struct kboard *kb, Li/
 +kset_overriding_terminal_local_map    c-src/emacs/src/keyboard.c      /^kset_overriding_terminal_local_map (struct kboard /
 +kset_real_last_command        c-src/emacs/src/keyboard.c      /^kset_real_last_command (struct kboard *kb, Lisp_Ob/
 +kset_system_key_syms  c-src/emacs/src/keyboard.c      /^kset_system_key_syms (struct kboard *kb, Lisp_Obje/
 +lang  c-src/etags.c   208
 +lang  c-src/etags.c   251
 +lang  c-src/etags.c   259
 +lang_names    c-src/etags.c   718
 +language      c-src/etags.c   199
 +last-tag      el-src/emacs/lisp/progmodes/etags.el    /^(defvar last-tag nil$/
 +last_abbrev_point     c-src/abbrev.c  79
 +last_auto_save        c-src/emacs/src/keyboard.c      214
 +last_heapinfo c-src/emacs/src/gmalloc.c       402
 +last_mouse_button     c-src/emacs/src/keyboard.c      5215
 +last_mouse_x  c-src/emacs/src/keyboard.c      5216
 +last_mouse_y  c-src/emacs/src/keyboard.c      5217
 +last_non_minibuf_size c-src/emacs/src/keyboard.c      207
 +last_point_position   c-src/emacs/src/keyboard.c      217
 +last_state_size       c-src/emacs/src/gmalloc.c       401
 +last_undo_boundary    c-src/emacs/src/keyboard.c      1287
 +lasta c.c     272
 +lastargmargin tex-src/texinfo.tex     /^\\newskip\\deflastargmargin \\deflastargmargin=18pt$/
 +lastargmargin tex-src/texinfo.tex     /^\\setbox0=\\hbox{\\hskip \\deflastargmargin{\\rm #2}\\hs/
 +lastb c.c     278
 +lb    c-src/etags.c   2923
 +lbs   c-src/etags.c   2924
 +lce   php-src/lce_functions.php       /^      function lce()$/
 +lce   php-src/lce_functions.php       /^      function lce()$/
 +lce_bindtextdomain    php-src/lce_functions.php       /^      function lce_bindtextdomain($d_name, $d_path/
 +lce_bindtextdomain    php-src/lce_functions.php       /^      function lce_bindtextdomain($domain, $path)$/
 +lce_dgettext  php-src/lce_functions.php       /^      function lce_dgettext($domain, $msgid)$/
 +lce_dgettext  php-src/lce_functions.php       /^      function lce_dgettext($domain, $msgid)$/
 +lce_geteditcode       php-src/lce_functions.php       /^  function lce_geteditcode($type, $name, $text, $r/
 +lce_gettext   php-src/lce_functions.php       /^      function lce_gettext($msgid)$/
 +lce_gettext   php-src/lce_functions.php       /^      function lce_gettext($msgid)$/
 +lce_textdomain        php-src/lce_functions.php       /^      function lce_textdomain($domain)$/
 +lce_textdomain        php-src/lce_functions.php       /^      function lce_textdomain($domain)$/
 +leasqr        html-src/software.html  /^Leasqr$/
 +left  c-src/etags.c   216
 +left_shift    cccp.y  /^left_shift (a, b)$/
 +left_shift    y-src/cccp.y    /^left_shift (a, b)$/
 +len   c-src/etags.c   237
 +length        c-src/etags.c   2495
 +length        cccp.y  44
 +length        cccp.y  114
 +length        y-src/cccp.y    44
 +length        y-src/cccp.y    113
 +letter        tex-src/texinfo.tex     /^\\chapmacro {#1}{Appendix \\appendixletter}%$/
 +letter        tex-src/texinfo.tex     /^  {#1}{Appendix \\appendixletter}{\\noexpand\\folio}}/
 +letter        tex-src/texinfo.tex     /^\\gdef\\thissection{#1}\\secheading {#1}{\\appendixlet/
 +letter        tex-src/texinfo.tex     /^{#1}{\\appendixletter}{\\the\\secno}{\\noexpand\\folio}/
 +letter        tex-src/texinfo.tex     /^\\subsecheading {#1}{\\appendixletter}{\\the\\secno}{\\/
 +letter        tex-src/texinfo.tex     /^{#1}{\\appendixletter}{\\the\\secno}{\\the\\subsecno}{\\/
 +letter        tex-src/texinfo.tex     /^  {\\appendixletter}{\\the\\secno}{\\the\\subsecno}{\\th/
 +letter        tex-src/texinfo.tex     /^  {\\appendixletter}$/
 +letter:       tex-src/texinfo.tex     /^\\xdef\\thischapter{Appendix \\appendixletter: \\noexp/
 +level c-src/emacs/src/lisp.h  3153
 +lex   prol-src/natded.prolog  /^lex(W,SynOut,Sem):-$/
 +lexptr        cccp.y  332
 +lexptr        y-src/cccp.y    332
 +licenze       html-src/softwarelibero.html    /^Licenze d'uso di un programma$/
 +limit cp-src/Range.h  /^  double limit (void) const { return rng_limit; }$/
 +line  c-src/etags.c   2493
 +line  perl-src/htlmify-cystic 37
 +line  y-src/parse.y   86
 +lineCount     php-src/lce_functions.php       /^      function lineCount($entry)$/
 +linebuffer    c-src/etags.c   239
 +linebuffer_init       c-src/etags.c   /^linebuffer_init (linebuffer *lbp)$/
 +linebuffer_setlen     c-src/etags.c   /^linebuffer_setlen (linebuffer *lbp, int toksize)$/
 +lineno        c-src/etags.c   2506
 +lineno        c-src/emacs/src/lisp.h  3147
 +linepos       c-src/etags.c   2507
 +linepos       c-src/etags.c   2922
 +links html-src/software.html  /^Links to interesting software$/
 +lisp_eval_depth       c-src/emacs/src/lisp.h  3045
 +lisp_h_CHECK_LIST_CONS        c-src/emacs/src/lisp.h  /^#define lisp_h_CHECK_LIST_CONS(x, y) CHECK_TYPE (C/
 +lisp_h_CHECK_NUMBER   c-src/emacs/src/lisp.h  /^#define lisp_h_CHECK_NUMBER(x) CHECK_TYPE (INTEGER/
 +lisp_h_CHECK_SYMBOL   c-src/emacs/src/lisp.h  /^#define lisp_h_CHECK_SYMBOL(x) CHECK_TYPE (SYMBOLP/
 +lisp_h_CHECK_TYPE     c-src/emacs/src/lisp.h  /^#define lisp_h_CHECK_TYPE(ok, predicate, x) \\$/
 +lisp_h_CONSP  c-src/emacs/src/lisp.h  /^#define lisp_h_CONSP(x) (XTYPE (x) == Lisp_Cons)$/
 +lisp_h_EQ     c-src/emacs/src/lisp.h  /^#define lisp_h_EQ(x, y) (XLI (x) == XLI (y))$/
 +lisp_h_FLOATP c-src/emacs/src/lisp.h  /^#define lisp_h_FLOATP(x) (XTYPE (x) == Lisp_Float)/
 +lisp_h_INTEGERP       c-src/emacs/src/lisp.h  /^#define lisp_h_INTEGERP(x) ((XTYPE (x) & (Lisp_Int/
 +lisp_h_MARKERP        c-src/emacs/src/lisp.h  /^#define lisp_h_MARKERP(x) (MISCP (x) && XMISCTYPE /
 +lisp_h_MISCP  c-src/emacs/src/lisp.h  /^#define lisp_h_MISCP(x) (XTYPE (x) == Lisp_Misc)$/
 +lisp_h_NILP   c-src/emacs/src/lisp.h  /^#define lisp_h_NILP(x) EQ (x, Qnil)$/
 +lisp_h_SET_SYMBOL_VAL c-src/emacs/src/lisp.h  /^#define lisp_h_SET_SYMBOL_VAL(sym, v) \\$/
 +lisp_h_SYMBOLP        c-src/emacs/src/lisp.h  /^#define lisp_h_SYMBOLP(x) (XTYPE (x) == Lisp_Symbo/
 +lisp_h_SYMBOL_CONSTANT_P      c-src/emacs/src/lisp.h  /^#define lisp_h_SYMBOL_CONSTANT_P(sym) (XSYMBOL (sy/
 +lisp_h_SYMBOL_VAL     c-src/emacs/src/lisp.h  /^#define lisp_h_SYMBOL_VAL(sym) \\$/
 +lisp_h_VECTORLIKEP    c-src/emacs/src/lisp.h  /^#define lisp_h_VECTORLIKEP(x) (XTYPE (x) == Lisp_V/
 +lisp_h_XCAR   c-src/emacs/src/lisp.h  /^#define lisp_h_XCAR(c) XCONS (c)->car$/
 +lisp_h_XCDR   c-src/emacs/src/lisp.h  /^#define lisp_h_XCDR(c) XCONS (c)->u.cdr$/
 +lisp_h_XCONS  c-src/emacs/src/lisp.h  /^#define lisp_h_XCONS(a) \\$/
 +lisp_h_XFASTINT       c-src/emacs/src/lisp.h  /^# define lisp_h_XFASTINT(a) XINT (a)$/
 +lisp_h_XHASH  c-src/emacs/src/lisp.h  /^#define lisp_h_XHASH(a) XUINT (a)$/
 +lisp_h_XIL    c-src/emacs/src/lisp.h  /^# define lisp_h_XIL(i) ((Lisp_Object) { i })$/
 +lisp_h_XIL    c-src/emacs/src/lisp.h  /^# define lisp_h_XIL(i) (i)$/
 +lisp_h_XINT   c-src/emacs/src/lisp.h  /^# define lisp_h_XINT(a) (XLI (a) >> INTTYPEBITS)$/
 +lisp_h_XLI    c-src/emacs/src/lisp.h  /^# define lisp_h_XLI(o) ((o).i)$/
 +lisp_h_XLI    c-src/emacs/src/lisp.h  /^# define lisp_h_XLI(o) (o)$/
 +lisp_h_XPNTR  c-src/emacs/src/lisp.h  /^#define lisp_h_XPNTR(a) \\$/
 +lisp_h_XSYMBOL        c-src/emacs/src/lisp.h  /^# define lisp_h_XSYMBOL(a) \\$/
 +lisp_h_XTYPE  c-src/emacs/src/lisp.h  /^# define lisp_h_XTYPE(a) ((enum Lisp_Type) (XLI (a/
 +lisp_h_XUNTAG c-src/emacs/src/lisp.h  /^# define lisp_h_XUNTAG(a, type) ((void *) (intptr_/
 +lisp_h_check_cons_list        c-src/emacs/src/lisp.h  /^# define lisp_h_check_cons_list() ((void) 0)$/
 +lisp_h_make_number    c-src/emacs/src/lisp.h  /^# define lisp_h_make_number(n) \\$/
 +lispy_accent_codes    c-src/emacs/src/keyboard.c      4634
 +lispy_accent_keys     c-src/emacs/src/keyboard.c      4741
 +lispy_drag_n_drop_names       c-src/emacs/src/keyboard.c      5181
 +lispy_function_keys   c-src/emacs/src/keyboard.c      4768
 +lispy_function_keys   c-src/emacs/src/keyboard.c      5065
 +lispy_kana_keys       c-src/emacs/src/keyboard.c      5026
 +lispy_modifier_list   c-src/emacs/src/keyboard.c      /^lispy_modifier_list (int modifiers)$/
 +lispy_multimedia_keys c-src/emacs/src/keyboard.c      4962
 +lispy_wheel_names     c-src/emacs/src/keyboard.c      5174
 +list  c-src/emacs/src/gmalloc.c       186
 +list-tags     el-src/emacs/lisp/progmodes/etags.el    /^(defun list-tags (file &optional _next-match)$/
 +list-tags-function    el-src/emacs/lisp/progmodes/etags.el    /^(defvar list-tags-function nil$/
 +list2i        c-src/emacs/src/lisp.h  /^list2i (EMACS_INT x, EMACS_INT y)$/
 +list3i        c-src/emacs/src/lisp.h  /^list3i (EMACS_INT x, EMACS_INT y, EMACS_INT w)$/
 +list4i        c-src/emacs/src/lisp.h  /^list4i (EMACS_INT x, EMACS_INT y, EMACS_INT w, EMA/
 +list_to_ord_set       prol-src/ordsets.prolog /^list_to_ord_set(List, Set) :-$/
 +lno   c-src/etags.c   223
 +load  objc-src/PackInsp.m     /^-load$/
 +loadContentsOf        objc-src/PackInsp.m     /^-loadContentsOf:(const char *)type inTable:(HashTa/
 +loadImage     objc-src/PackInsp.m     /^-loadImage$/
 +loadKeyValuesFrom     objc-src/PackInsp.m     /^-loadKeyValuesFrom:(const char *)type inTable:(Has/
 +loadPORManager        php-src/lce_functions.php       /^  function &loadPORManager()$/
 +local_if_set  c-src/emacs/src/lisp.h  2338
 +location      cp-src/clheir.hpp       33
 +location      cp-src/clheir.hpp       /^    location() { }$/
 +lookup        cccp.y  /^lookup (name, len, hash)$/
 +lookup        y-src/cccp.y    /^lookup (name, len, hash)$/
 +lowcase       c-src/etags.c   /^#define lowcase(c)    tolower (CHAR (c))$/
 +lucid_event_type_list_p       c-src/emacs/src/keyboard.c      /^lucid_event_type_list_p (Lisp_Object object)$/
 +mabort        c-src/emacs/src/gmalloc.c       /^mabort (enum mcheck_status status)$/
 +mach_host_self        c-src/machsyscalls.h    /^SYSCALL (mach_host_self, -29,$/
 +mach_msg_trap c-src/machsyscalls.h    /^SYSCALL (mach_msg_trap, -25,$/
 +mach_reply_port       c-src/machsyscalls.h    /^SYSCALL (mach_reply_port, -26,$/
 +mach_task_self        c-src/machsyscalls.h    /^SYSCALL (mach_task_self, -28,$/
 +mach_thread_self      c-src/machsyscalls.h    /^SYSCALL (mach_thread_self, -27,$/
 +magic c-src/emacs/src/gmalloc.c       1863
 +maintaining.info      make-src/Makefile       /^maintaining.info: maintaining.texi$/
 +make-abbrev-table     c-src/abbrev.c  /^DEFUN ("make-abbrev-table", Fmake_abbrev_table, Sm/
 +make_C_tag    c-src/etags.c   /^make_C_tag (bool isfun)$/
 +make_coor     prol-src/natded.prolog  /^make_coor(s(_),Alpha,Sem1,Sem2,Alpha@Sem1@Sem2).$/
 +make_ctrl_char        c-src/emacs/src/keyboard.c      /^make_ctrl_char (int c)$/
 +make_fixnum_or_float  c-src/emacs/src/lisp.h  /^#define make_fixnum_or_float(val) \\$/
 +make_formatted_string c-src/emacs/src/lisp.h  /^extern Lisp_Object make_formatted_string (char *, /
 +make_lisp_ptr c-src/emacs/src/lisp.h  /^make_lisp_ptr (void *ptr, enum Lisp_Type type)$/
 +make_lisp_symbol      c-src/emacs/src/lisp.h  /^make_lisp_symbol (struct Lisp_Symbol *sym)$/
 +make_lispy_event      c-src/emacs/src/keyboard.c      /^make_lispy_event (struct input_event *event)$/
 +make_lispy_focus_in   c-src/emacs/src/keyboard.c      /^make_lispy_focus_in (Lisp_Object frame)$/
 +make_lispy_focus_out  c-src/emacs/src/keyboard.c      /^make_lispy_focus_out (Lisp_Object frame)$/
 +make_lispy_movement   c-src/emacs/src/keyboard.c      /^make_lispy_movement (struct frame *frame, Lisp_Obj/
 +make_lispy_position   c-src/emacs/src/keyboard.c      /^make_lispy_position (struct frame *f, Lisp_Object /
 +make_lispy_switch_frame       c-src/emacs/src/keyboard.c      /^make_lispy_switch_frame (Lisp_Object frame)$/
 +make_number   c-src/emacs/src/lisp.h  /^#  define make_number(n) lisp_h_make_number (n)$/
 +make_pointer_integer  c-src/emacs/src/lisp.h  /^make_pointer_integer (void *p)$/
 +make_scroll_bar_position      c-src/emacs/src/keyboard.c      /^make_scroll_bar_position (struct input_event *ev, /
 +make_tag      c-src/etags.c   /^make_tag (const char *name,   \/* tag name, or NULL /
 +make_uninit_sub_char_table    c-src/emacs/src/lisp.h  /^make_uninit_sub_char_table (int depth, int min_cha/
 +make_uninit_vector    c-src/emacs/src/lisp.h  /^make_uninit_vector (ptrdiff_t size)$/
 +malloc        c-src/emacs/src/gmalloc.c       64
 +malloc        c-src/emacs/src/gmalloc.c       68
 +malloc        c-src/emacs/src/gmalloc.c       /^extern void *malloc (size_t size) ATTRIBUTE_MALLOC/
 +malloc        c-src/emacs/src/gmalloc.c       /^malloc (size_t size)$/
 +malloc        c-src/emacs/src/gmalloc.c       1715
 +malloc_atfork_handler_child   c-src/emacs/src/gmalloc.c       /^malloc_atfork_handler_child (void)$/
 +malloc_atfork_handler_parent  c-src/emacs/src/gmalloc.c       /^malloc_atfork_handler_parent (void)$/
 +malloc_atfork_handler_prepare c-src/emacs/src/gmalloc.c       /^malloc_atfork_handler_prepare (void)$/
 +malloc_enable_thread  c-src/emacs/src/gmalloc.c       /^malloc_enable_thread (void)$/
 +malloc_info   c-src/emacs/src/gmalloc.c       167
 +malloc_initialize_1   c-src/emacs/src/gmalloc.c       /^malloc_initialize_1 (void)$/
 +mallochook    c-src/emacs/src/gmalloc.c       /^mallochook (size_t size)$/
 +man manpage   make-src/Makefile       /^man manpage: etags.1.man$/
 +mao   c-src/h.h       101
 +map   c-src/emacs/src/keyboard.c      8748
 +map_word      prol-src/natded.prolog  /^map_word([[_]|Ws],Exp):-$/
 +mapping       html-src/algrthms.html  /^Mapping the Channel Symbols$/
 +mapsyn        prol-src/natded.prolog  /^mapsyn(A\/B,AM\/BM):-$/
 +mark_kboards  c-src/emacs/src/keyboard.c      /^mark_kboards (void)$/
 +max   c.c     /^max (int a, int b)$/
 +max   c.c     /^__attribute__ ((always_inline)) max (int a, int b)/
 +max   c-src/emacs/src/lisp.h  58
 +max   c-src/emacs/src/lisp.h  /^#define max(a, b) ((a) > (b) ? (a) : (b))$/
 +max   cp-src/conway.cpp       /^#define max(x,y)  ((x > y) ? x : y)$/
 +max_args      c-src/emacs/src/lisp.h  1686
 +max_num_directions    cp-src/clheir.hpp       31
 +max_num_generic_objects       cp-src/clheir.cpp       9
 +maxargs       c-src/emacs/src/lisp.h  2831
 +maybe_gc      c-src/emacs/src/lisp.h  /^maybe_gc (void)$/
 +mcCSC cp-src/c.C      6
 +mcheck        c-src/emacs/src/gmalloc.c       /^mcheck (void (*func) (enum mcheck_status))$/
 +mcheck_status c-src/emacs/src/gmalloc.c       283
 +mcheck_used   c-src/emacs/src/gmalloc.c       2012
 +me22b lua-src/test.lua        /^   local function test.me22b (one)$/
 +me_22a        lua-src/test.lua        /^   function test.me_22a(one, two)$/
 +memalign      c-src/emacs/src/gmalloc.c       /^memalign (size_t alignment, size_t size)$/
 +member        prol-src/natded.prolog  /^member(X,[X|_]).$/
 +memclear      c-src/emacs/src/lisp.h  /^memclear (void *p, ptrdiff_t nbytes)$/
 +menu_bar_item c-src/emacs/src/keyboard.c      /^menu_bar_item (Lisp_Object key, Lisp_Object item, /
 +menu_bar_items        c-src/emacs/src/keyboard.c      /^menu_bar_items (Lisp_Object old)$/
 +menu_bar_items_index  c-src/emacs/src/keyboard.c      7369
 +menu_bar_items_vector c-src/emacs/src/keyboard.c      7368
 +menu_bar_one_keymap_changed_items     c-src/emacs/src/keyboard.c      7363
 +menu_item_eval_property       c-src/emacs/src/keyboard.c      /^menu_item_eval_property (Lisp_Object sexpr)$/
 +menu_item_eval_property_1     c-src/emacs/src/keyboard.c      /^menu_item_eval_property_1 (Lisp_Object arg)$/
 +menu_separator_name_p c-src/emacs/src/keyboard.c      /^menu_separator_name_p (const char *label)$/
 +metasource    c-src/etags.c   198
 +min   c-src/emacs/src/gmalloc.c       /^#define min(a, b) ((a) < (b) ? (a) : (b))$/
 +min   c-src/emacs/src/lisp.h  57
 +min   c-src/emacs/src/lisp.h  /^#define min(a, b) ((a) < (b) ? (a) : (b))$/
 +min   cp-src/conway.cpp       /^#define min(x,y)  ((x > y) ? y : x)$/
 +min_args      c-src/emacs/src/lisp.h  1686
 +min_char      c-src/emacs/src/lisp.h  1621
 +minus cp-src/functions.cpp    /^void Date::minus ( int days , int month , int year/
 +miti  html-src/softwarelibero.html    /^Sfatiamo alcuni miti$/
 +modifier_names        c-src/emacs/src/keyboard.c      6319
 +modifier_symbols      c-src/emacs/src/keyboard.c      6327
 +modify_event_symbol   c-src/emacs/src/keyboard.c      /^modify_event_symbol (ptrdiff_t symbol_num, int mod/
 +module_class_method   ruby-src/test.rb        /^    def ModuleExample.module_class_method$/
 +module_instance_method        ruby-src/test.rb        /^    def module_instance_method$/
 +more= ruby-src/test1.ru       /^                :more$/
 +more_aligned_int      c.c     165
 +morecore_nolock       c-src/emacs/src/gmalloc.c       /^morecore_nolock (size_t size)$/
 +morecore_recursing    c-src/emacs/src/gmalloc.c       604
 +mouse_syms    c-src/emacs/src/keyboard.c      4627
 +move  cp-src/clheir.cpp       /^void agent::move(int direction)$/
 +mprobe        c-src/emacs/src/gmalloc.c       /^mprobe (void *ptr)$/
 +msgid php-src/lce_functions.php       /^      function msgid($line, $class)$/
 +msgstr        php-src/lce_functions.php       /^      function msgstr($line, $class)$/
 +mstats        c-src/emacs/src/gmalloc.c       308
 +mt    prol-src/natded.prolog  /^mt:-$/
 +mtg   html-src/software.html  /^MTG$/
 +multi_line    c-src/etags.c   267
 +multibyte     c-src/emacs/src/regex.h 403
 +my_printf     c.c     /^my_printf (void *my_object, const char *my_format,/
 +my_struct     c.c     226
 +my_struct     c-src/h.h       91
 +my_typedef    c.c     228
 +my_typedef    c-src/h.h       93
 +n     c-src/exit.c    28
 +n     c-src/exit.strange_suffix       28
 +name  c-src/getopt.h  76
 +name  c-src/getopt.h  78
 +name  c-src/etags.c   192
 +name  c-src/etags.c   218
 +name  c-src/etags.c   261
 +name  c-src/etags.c   2271
 +name  c-src/emacs/src/keyboard.c      7241
 +name  c-src/emacs/src/lisp.h  1808
 +name  c-src/emacs/src/lisp.h  3144
 +name  perl-src/htlmify-cystic 357
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {#2}{#1}\\defunargs{#3}\\endgrou/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {#1}{Function}%$/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {\\code{#1} #2}{Function}%$/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {\\code{#2} #3}{#1}%$/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {#1}{Macro}%$/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {#1}{Special Form}%$/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {#2}{\\defoptype{} on #1}%$/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {#2}{Method on #1}%$/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {#2}{\\defcvtype{} of #1}%$/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {#2}{Instance Variable of #1}%/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {#2}{#1}\\defvarargs{#3}\\endgro/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {#1}{Variable}%$/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {#1}{User Option}%$/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {\\code{#1} #2}{Variable}%$/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {\\code{#2} #3}{#1}$/
 +name  tex-src/texinfo.tex     /^\\begingroup\\defname {#2}{#1}\\deftpargs{#3}\\endgrou/
 +name  cccp.y  43
 +name  cccp.y  114
 +name  cccp.y  114
 +name  y-src/cccp.y    43
 +name  y-src/cccp.y    113
 +name  y-src/cccp.y    113
 +named c-src/etags.c   2505
 +namestringequal       pas-src/common.pas      /^function namestringequal;(*(var Name1,Name2 : Name/
 +neighbors     cp-src/clheir.hpp       59
 +nelem cp-src/Range.h  /^  int nelem (void) const { return rng_nelem; }$/
 +nestlev       c-src/etags.c   2525
 +new   objc-src/PackInsp.m     /^+new$/
 +new   perl-src/htlmify-cystic 163
 +new_tag       perl-src/htlmify-cystic 18
 +newlb c-src/etags.c   2930
 +newlinepos    c-src/etags.c   2932
 +newtextstring pas-src/common.pas      /^function newtextstring; (*: TextString;*)$/
 +next  c.c     174
 +next  c-src/etags.c   203
 +next  c-src/emacs/src/gmalloc.c       164
 +next  c-src/emacs/src/gmalloc.c       188
 +next  c-src/emacs/src/gmalloc.c       198
 +next  c-src/emacs/src/keyboard.c      861
 +next  c-src/emacs/src/keyboard.c      7246
 +next  c-src/emacs/src/lisp.h  700
 +next  c-src/emacs/src/lisp.h  1848
 +next  c-src/emacs/src/lisp.h  2192
 +next  c-src/emacs/src/lisp.h  3028
 +next  c-src/emacs/src/lisp.h  3134
 +next  cccp.y  42
 +next  y-src/cccp.y    42
 +next-file     el-src/emacs/lisp/progmodes/etags.el    /^(defun next-file (&optional initialize novisit)$/
 +next-file-list        el-src/emacs/lisp/progmodes/etags.el    /^(defvar next-file-list nil$/
 +next_alive    cp-src/conway.hpp       7
 +next_almost_prime     c-src/emacs/src/lisp.h  /^extern EMACS_INT next_almost_prime (EMACS_INT) ATT/
 +next_free     c-src/emacs/src/lisp.h  1851
 +next_weak     c-src/emacs/src/lisp.h  1875
 +nextfree      c-src/emacs/src/lisp.h  3029
 +nfree c-src/emacs/src/gmalloc.c       150
 +nl    c-src/etags.c   2521
 +no    tex-src/texinfo.tex     /^\\newcount \\appendixno  \\appendixno = `\\@$/
 +no    tex-src/texinfo.tex     /^\\global\\advance \\appendixno by 1 \\message{Appendix/
 +no    tex-src/texinfo.tex     /^\\ifnum\\secno=0 Appendix\\xreftie'char\\the\\appendixn/
 +no.\the\secno tex-src/texinfo.tex     /^\\else \\ifnum \\subsecno=0 Section\\xreftie'char\\the\\/
 +no.\the\secno.\the\subsecno   tex-src/texinfo.tex     /^Section\\xreftie'char\\the\\appendixno.\\the\\secno.\\th/
 +no.\the\secno.\the\subsecno.\the\subsubsecno  tex-src/texinfo.tex     /^Section\\xreftie'char\\the\\appendixno.\\the\\secno.\\th/
 +no_argument   c-src/getopt.h  89
 +no_lang_help  c-src/etags.c   707
 +no_sub        c-src/emacs/src/regex.h 387
 +nocase_tail   c-src/etags.c   /^nocase_tail (const char *cp)$/
 +node  c-src/etags.c   225
 +node_st       c-src/etags.c   214
 +noderef       tex-src/texinfo.tex     /^\\appendixnoderef %$/
 +noderef       tex-src/texinfo.tex     /^\\appendixnoderef %$/
 +noderef       tex-src/texinfo.tex     /^\\appendixnoderef %$/
 +noderef       tex-src/texinfo.tex     /^\\appendixnoderef %$/
 +nofonts       tex-src/texinfo.tex     /^{\\indexnofonts$/
 +nofonts       tex-src/texinfo.tex     /^{\\indexnofonts$/
 +nofonts%      tex-src/texinfo.tex     /^{\\chapternofonts%$/
 +nofonts%      tex-src/texinfo.tex     /^{\\chapternofonts%$/
 +nofonts%      tex-src/texinfo.tex     /^{\\chapternofonts%$/
 +nofonts%      tex-src/texinfo.tex     /^{\\chapternofonts%$/
 +nofonts%      tex-src/texinfo.tex     /^{\\chapternofonts%$/
 +nofonts%      tex-src/texinfo.tex     /^{\\chapternofonts%$/
 +nofonts%      tex-src/texinfo.tex     /^{\\chapternofonts%$/
 +nofonts%      tex-src/texinfo.tex     /^{\\chapternofonts%$/
 +nofonts%      tex-src/texinfo.tex     /^{\\chapternofonts%$/
 +nofonts%      tex-src/texinfo.tex     /^{\\chapternofonts%$/
 +nofonts%      tex-src/texinfo.tex     /^{\\chapternofonts%$/
 +nofonts%      tex-src/texinfo.tex     /^{\\chapternofonts%$/
 +none_help     c-src/etags.c   703
 +normalize     prol-src/natded.prolog  /^normalize(M,MNorm):-$/
 +normalize_fresh       prol-src/natded.prolog  /^normalize_fresh(M,N):-$/
 +normalize_tree        prol-src/natded.prolog  /^normalize_tree(tree(Rule,Syn:Sem,Trees),$/
 +normalize_trees       prol-src/natded.prolog  /^normalize_trees([],[]).$/
 +nosave        pyt-src/server.py       /^    def nosave(self):$/
 +nosave        pyt-src/server.py       /^    def nosave(self):$/
 +nosave        pyt-src/server.py       /^    def nosave(self):$/
 +not_bol       c-src/emacs/src/regex.h 391
 +not_eol       c-src/emacs/src/regex.h 394
 +not_single_kboard_state       c-src/emacs/src/keyboard.c      /^not_single_kboard_state (KBOARD *kboard)$/
 +notag2        c-src/torture.c 26
 +notag2        c-src/dostorture.c      26
 +notag4        c-src/torture.c 45
 +notag4        c-src/dostorture.c      45
 +notinname     c-src/etags.c   /^#define notinname(c)  (_nin[CHAR (c)]) \/* c is not /
 +npending      c-src/emacs/src/keyboard.c      7244
 +ntool_bar_items       c-src/emacs/src/keyboard.c      7974
 +numOfChannels cp-src/c.C      1
 +num_columns   cp-src/conway.cpp       16
 +num_input_events      c-src/emacs/src/keyboard.c      210
 +num_regs      c-src/emacs/src/regex.h 430
 +num_rows      cp-src/conway.cpp       15
 +numberKeys    objcpp-src/SimpleCalc.M /^- numberKeys:sender$/
 +number_len    c-src/etags.c   /^static int number_len (long) ATTRIBUTE_CONST;$/
 +numbervars    prol-src/natded.prolog  /^numbervars(X):-$/
 +nvars c-src/emacs/src/lisp.h  3140
 +objdef        c-src/etags.c   2484
 +object        c-src/emacs/src/lisp.h  2128
 +object_registry       cp-src/clheir.cpp       10
 +objtag        c-src/etags.c   2453
 +objvar        c-src/emacs/src/lisp.h  2297
 +obstack_chunk_alloc   y-src/parse.y   46
 +obstack_chunk_alloc   parse.y 46
 +obstack_chunk_free    y-src/parse.y   47
 +obstack_chunk_free    parse.y 47
 +ocatseen      c-src/etags.c   2477
 +octave_MDiagArray2_h  cp-src/MDiagArray2.h    29
 +octave_Range_h        cp-src/Range.h  24
 +oediff        make-src/Makefile       /^oediff: OTAGS ETAGS ${infiles}$/
 +offset        c-src/etags.c   2494
 +offset        c-src/emacs/src/lisp.h  2305
 +offset        c-src/emacs/src/lisp.h  2365
 +oignore       c-src/etags.c   2483
 +oimplementation       c-src/etags.c   2474
 +oinbody       c-src/etags.c   2478
 +ok    objc-src/PackInsp.m     /^-ok:sender$/
 +ok_to_echo_at_next_pause      c-src/emacs/src/keyboard.c      159
 +omethodcolon  c-src/etags.c   2481
 +omethodparm   c-src/etags.c   2482
 +omethodsign   c-src/etags.c   2479
 +omethodtag    c-src/etags.c   2480
 +onone c-src/etags.c   2472
 +oparenseen    c-src/etags.c   2476
 +open  objc-src/PackInsp.m     /^-open:sender$/
 +open-dribble-file     c-src/emacs/src/keyboard.c      /^DEFUN ("open-dribble-file", Fopen_dribble_file, So/
 +openInWorkspace       objc-src/PackInsp.m     /^static void openInWorkspace(const char *filename)$/
 +operationKeys objcpp-src/SimpleCalc.M /^- operationKeys:sender$/
 +operator      cccp.y  438
 +operator      y-src/cccp.y    438
 +operator ++   cp-src/functions.cpp    /^Date & Date::operator ++ ( void ){$/
 +operator +=   cp-src/functions.cpp    /^Date & Date::operator += ( int days ){$/
 +operator -    cp-src/c.C      /^void operator -(int, int) {}$/
 +operator -    cp-src/functions.cpp    /^int Date::operator - ( Date d ){$/
 +operator --   cp-src/functions.cpp    /^Date & Date::operator -- ( void ){$/
 +operator -=   cp-src/functions.cpp    /^Date & Date::operator -= ( int days ){$/
 +operator <    cp-src/functions.cpp    /^int Date::operator < ( Date d ) {$/
 +operator <<   cp-src/functions.cpp    /^ostream& operator <<  ( ostream &c, Date d ) {$/
 +operator =    cp-src/functions.cpp    /^Date & Date::operator = ( Date d ){$/
 +operator =    cp-src/MDiagArray2.h    /^  MDiagArray2<T>& operator = (const MDiagArray2<T>/
 +operator ==   cp-src/functions.cpp    /^int Date::operator == ( Date d ) {$/
 +operator >    cp-src/functions.cpp    /^int Date::operator > ( Date d ) {$/
 +operator >>   cp-src/functions.cpp    /^istream& operator >> ( istream &i, Date & dd ){$/
 +operator MArray2<T>   cp-src/MDiagArray2.h    /^  operator MArray2<T> () const$/
 +operator int  cp-src/c.C      /^void operator int(int, int) {}$/
 +operator int  cp-src/fail.C   /^                         operator int() const {return x;}$/
 +operator+     cp-src/c.C      /^const A& A::operator+(const A&) { }$/
 +operator+     cp-src/c.C      /^void operator+(int, int) {}$/
 +operator+     cp-src/c.C      /^  A operator+(A& a) {};$/
 +opparsebody\Edefop\defopx\defopheader\defoptype       tex-src/texinfo.tex     /^\\defopparsebody\\Edefop\\defopx\\defopheader\\defoptyp/
 +oprotocol     c-src/etags.c   2473
 +option        c-src/getopt.h  73
 +optional_argument     c-src/getopt.h  91
 +opvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype  tex-src/texinfo.tex     /^\\defopvarparsebody\\Edefcv\\defcvx\\defcvarheader\\def/
 +ord_add_element       prol-src/ordsets.prolog /^ord_add_element([], Element, [Element]).$/
 +ord_del_element       prol-src/ordsets.prolog /^ord_del_element([], _, []).$/
 +ord_disjoint  prol-src/ordsets.prolog /^ord_disjoint(Set1, Set2) :-$/
 +ord_intersect prol-src/ordsets.prolog /^ord_intersect([Head1|Tail1], [Head2|Tail2]) :-$/
 +ord_intersection      prol-src/ordsets.prolog /^ord_intersection([], _, []).$/
 +ord_intersection      prol-src/ordsets.prolog /^ord_intersection([], Set2, [], Set2).$/
 +ord_intersection      prol-src/ordsets.prolog /^ord_intersection(Sets, Intersection) :- $/
 +ord_intersection2     prol-src/ordsets.prolog /^ord_intersection2(1, [Set|Sets], Set0, Sets0) :- !/
 +ord_intersection3     prol-src/ordsets.prolog /^ord_intersection3(<, _, Set1, Head2, Tail2, Inters/
 +ord_intersection4     prol-src/ordsets.prolog /^ord_intersection4(<, _, Set1, Head2, Tail2, Inters/
 +ord_member    prol-src/ordsets.prolog /^ord_member(X, [E|Es]) :-$/
 +ord_seteq     prol-src/ordsets.prolog /^ord_seteq(Set1, Set2) :-$/
 +ord_setproduct        prol-src/ordsets.prolog /^ord_setproduct([], _, []).$/
 +ord_subset    prol-src/ordsets.prolog /^ord_subset([], _).$/
 +ord_subtract  prol-src/ordsets.prolog /^ord_subtract(Set1, Set2, Union) :-$/
 +ord_symdiff   prol-src/ordsets.prolog /^ord_symdiff([], Set2, Set2).$/
 +ord_union     prol-src/ordsets.prolog /^ord_union(Set1, Set2, Union) :-$/
 +ord_union     prol-src/ordsets.prolog /^ord_union([], Union) :- !, Union = [].$/
 +ord_union4    prol-src/ordsets.prolog /^ord_union4(<, Head, Set1, Head2, Tail2, [Head|Unio/
 +ord_union_all prol-src/ordsets.prolog /^ord_union_all(1, [Set|Sets], Set, Sets) :- !.$/
 +oss   html-src/softwarelibero.html    /^Il movimento open source$/
 +otagseen      c-src/etags.c   2475
 +outputTime    cp-src/c.C      9
 +output_file   perl-src/htlmify-cystic 35
 +output_files  perl-src/htlmify-cystic 32
 +outputtable   html-src/algrthms.html  /^Output$/
 +outsyn        prol-src/natded.prolog  /^outsyn(['Any'],_).$/
 +p     c-src/emacs/src/lisp.h  4673
 +p     c-src/emacs/src/lisp.h  4679
 +p/f   ada-src/etags-test-for.ada      /^   function p pragma Import (C,$/
 +p/f   ada-src/etags-test-for.ada      /^function p ("p");$/
 +pD    c-src/emacs/src/lisp.h  165
 +pD    c-src/emacs/src/lisp.h  167
 +pD    c-src/emacs/src/lisp.h  169
 +pD    c-src/emacs/src/lisp.h  171
 +pI    c-src/emacs/src/lisp.h  94
 +pI    c-src/emacs/src/lisp.h  99
 +pI    c-src/emacs/src/lisp.h  106
 +pMd   c-src/emacs/src/lisp.h  150
 +pMd   c-src/emacs/src/lisp.h  155
 +pMu   c-src/emacs/src/lisp.h  151
 +pMu   c-src/emacs/src/lisp.h  156
 +p_next        c-src/etags.c   258
 +pagesize      c-src/emacs/src/gmalloc.c       1703
 +parent        c-src/emacs/src/keyboard.c      8745
 +parent        c-src/emacs/src/lisp.h  1590
 +parse prol-src/natded.prolog  /^parse(Ws,Cat):-$/
 +parseFromVars php-src/lce_functions.php       /^      function parseFromVars($prefix)$/
 +parse_c_expression    cccp.y  /^parse_c_expression (string)$/
 +parse_c_expression    y-src/cccp.y    /^parse_c_expression (string)$/
 +parse_cgi     prol-src/natded.prolog  /^parse_cgi(TokenList,KeyVals):-$/
 +parse_error   y-src/parse.y   81
 +parse_error   parse.y 81
 +parse_escape  cccp.y  /^parse_escape (string_ptr)$/
 +parse_escape  y-src/cccp.y    /^parse_escape (string_ptr)$/
 +parse_hash    y-src/parse.y   63
 +parse_hash    parse.y 63
 +parse_menu_item       c-src/emacs/src/keyboard.c      /^parse_menu_item (Lisp_Object item, int inmenubar)$/
 +parse_modifiers       c-src/emacs/src/keyboard.c      /^parse_modifiers (Lisp_Object symbol)$/
 +parse_modifiers_uncached      c-src/emacs/src/keyboard.c      /^parse_modifiers_uncached (Lisp_Object symbol, ptrd/
 +parse_number  cccp.y  /^parse_number (olen)$/
 +parse_number  y-src/cccp.y    /^parse_number (olen)$/
 +parse_return  y-src/parse.y   73
 +parse_return  parse.y 73
 +parse_return_error    cccp.y  70
 +parse_return_error    y-src/cccp.y    70
 +parse_solitary_modifier       c-src/emacs/src/keyboard.c      /^parse_solitary_modifier (Lisp_Object symbol)$/
 +parse_tool_bar_item   c-src/emacs/src/keyboard.c      /^parse_tool_bar_item (Lisp_Object key, Lisp_Object /
 +pat   c-src/etags.c   262
 +pattern       c-src/etags.c   260
 +pdlcount      c-src/emacs/src/lisp.h  3046
 +pending-delete-mode   el-src/TAGTEST.EL       /^(defalias 'pending-delete-mode 'delete-selection-m/
 +pending_funcalls      c-src/emacs/src/keyboard.c      4377
 +pending_signals       c-src/emacs/src/keyboard.c      80
 +pfatal        c-src/etags.c   /^pfatal (const char *s1)$/
 +pfdset        c-src/h.h       57
 +pfnote        c-src/etags.c   /^pfnote (char *name, bool is_func, char *linestart,/
 +plain_C_entries       c-src/etags.c   /^plain_C_entries (FILE *inf)$/
 +plain_C_suffixes      c-src/etags.c   643
 +plainc        c-src/etags.c   2934
 +plist c-src/emacs/src/lisp.h  697
 +plus  cp-src/functions.cpp    /^void Date::plus ( int days , int month , int year /
 +plus  go-src/test1.go 5
 +plusvalseq    prol-src/natded.prolog  /^plusvalseq([]) --> [].$/
 +pointer       c-src/emacs/src/lisp.h  2125
 +poll_for_input        c-src/emacs/src/keyboard.c      /^poll_for_input (struct atimer *timer)$/
 +poll_for_input_1      c-src/emacs/src/keyboard.c      /^poll_for_input_1 (void)$/
 +poll_suppress_count   c-src/emacs/src/keyboard.c      1908
 +poll_suppress_count   c-src/emacs/src/lisp.h  3047
 +poll_timer    c-src/emacs/src/keyboard.c      1915
 +pop-tag-mark  el-src/emacs/lisp/progmodes/etags.el    /^(defalias 'pop-tag-mark 'xref-pop-marker-stack)$/
 +pop_kboard    c-src/emacs/src/keyboard.c      /^pop_kboard (void)$/
 +popclass_above        c-src/etags.c   /^popclass_above (int bracelev)$/
 +position_to_Time      c-src/emacs/src/keyboard.c      /^position_to_Time (ptrdiff_t pos)$/
 +posix_memalign        c-src/emacs/src/gmalloc.c       /^posix_memalign (void **memptr, size_t alignment, s/
 +posn-at-point c-src/emacs/src/keyboard.c      /^DEFUN ("posn-at-point", Fposn_at_point, Sposn_at_p/
 +posn-at-x-y   c-src/emacs/src/keyboard.c      /^DEFUN ("posn-at-x-y", Fposn_at_x_y, Sposn_at_x_y, /
 +possible_sum_sign     cccp.y  /^#define possible_sum_sign(a, b, sum) ((((a) ^ (b))/
 +possible_sum_sign     y-src/cccp.y    /^#define possible_sum_sign(a, b, sum) ((((a) ^ (b))/
 +post  pyt-src/server.py       /^    def post(self):$/
 +post  pyt-src/server.py       /^    def post(self):$/
 +pot_etags_version     c-src/etags.c   81
 +pp1   c-src/torture.c /^int pp1($/
 +pp1   c-src/dostorture.c      /^int pp1($/
 +pp2   c-src/torture.c /^pp2$/
 +pp2   c-src/dostorture.c      /^pp2$/
 +pp3   c-src/torture.c /^pp3(int bar)$/
 +pp3   c-src/dostorture.c      /^pp3(int bar)$/
 +pp_bas_cat    prol-src/natded.prolog  /^pp_bas_cat(Cat):-$/
 +pp_cat        prol-src/natded.prolog  /^pp_cat(Syn:Sem):-$/
 +pp_exp        prol-src/natded.prolog  /^pp_exp('NIL'):-$/
 +pp_exps       prol-src/natded.prolog  /^pp_exps([]).$/
 +pp_html_fitch_tree    prol-src/natded.prolog  /^pp_html_fitch_tree(tree(der,Root,[ders(Words)]),M,/
 +pp_html_table_fitch_tree      prol-src/natded.prolog  /^pp_html_table_fitch_tree(T):-$/
 +pp_html_table_tree    prol-src/natded.prolog  /^pp_html_table_tree(T):-$/
 +pp_html_tree  prol-src/natded.prolog  /^pp_html_tree(ass(Syn,V,'$VAR'(N))):-$/
 +pp_html_trees prol-src/natded.prolog  /^pp_html_trees([T|Ts],N,M):-$/
 +pp_lam        prol-src/natded.prolog  /^pp_lam(Var^Alpha):-$/
 +pp_lam_bracket        prol-src/natded.prolog  /^pp_lam_bracket(A^B):-$/
 +pp_lam_paren  prol-src/natded.prolog  /^pp_lam_paren(Var^Alpha):-$/
 +pp_paren      prol-src/natded.prolog  /^pp_paren(C):-$/
 +pp_rule       prol-src/natded.prolog  /^pp_rule(fe):-write('\/E').$/
 +pp_syn        prol-src/natded.prolog  /^pp_syn(A\/B):-$/
 +pp_syn_back   prol-src/natded.prolog  /^pp_syn_back(A\/B):-$/
 +pp_syn_paren  prol-src/natded.prolog  /^pp_syn_paren(A\/B):-$/
 +pp_tree       prol-src/natded.prolog  /^pp_tree(T):-$/
 +pp_trees      prol-src/natded.prolog  /^pp_trees([T|Ts],Column):-$/
 +pp_word       prol-src/natded.prolog  /^pp_word(W):-$/
 +pp_word_list  prol-src/natded.prolog  /^pp_word_list([]).$/
 +pp_word_list_rest     prol-src/natded.prolog  /^pp_word_list_rest([]).$/
 +predicate     c-src/emacs/src/lisp.h  2307
 +prev  c.c     175
 +prev  c-src/emacs/src/gmalloc.c       165
 +prev  c-src/emacs/src/gmalloc.c       189
 +prev  c-src/emacs/src/lisp.h  2191
 +printClassification   php-src/lce_functions.php       /^      function printClassification()$/
 +print_help    c-src/etags.c   /^print_help (argument *argbuffer)$/
 +print_language_names  c-src/etags.c   /^print_language_names (void)$/
 +print_version c-src/etags.c   /^print_version (void)$/
 +printmax_t    c-src/emacs/src/lisp.h  148
 +printmax_t    c-src/emacs/src/lisp.h  153
 +proc  c-src/h.h       87
 +process_file  c-src/etags.c   /^process_file (FILE *fh, char *fn, language *lang)$/
 +process_file_name     c-src/etags.c   /^process_file_name (char *file, language *lang)$/
 +process_pending_signals       c-src/emacs/src/keyboard.c      /^process_pending_signals (void)$/
 +process_special_events        c-src/emacs/src/keyboard.c      /^process_special_events (void)$/
 +process_tool_bar_item c-src/emacs/src/keyboard.c      /^process_tool_bar_item (Lisp_Object key, Lisp_Objec/
 +prof  make-src/Makefile       /^prof: ETAGS$/
 +prolog_atom   c-src/etags.c   /^prolog_atom (char *s, size_t pos)$/
 +prolog_pr     c-src/etags.c   /^prolog_pr (char *s, char *last)$/
 +prolog_skip_comment   c-src/etags.c   /^prolog_skip_comment (linebuffer *plb, FILE *inf)$/
 +prop  c-src/etags.c   209
 +protect_malloc_state  c-src/emacs/src/gmalloc.c       /^protect_malloc_state (int protect_p)$/
 +pthread_mutexattr_setprio_ceiling/f   ada-src/2ataspri.adb    /^   function pthread_mutexattr_setprio_ceiling$/
 +pthread_mutexattr_setprotocol/f       ada-src/2ataspri.adb    /^   function pthread_mutexattr_setprotocol$/
 +purpose       c-src/emacs/src/lisp.h  1594
 +push_kboard   c-src/emacs/src/keyboard.c      /^push_kboard (struct kboard *k)$/
 +pushclass_above       c-src/etags.c   /^pushclass_above (int bracelev, char *str, int len)/
 +put_entries   c-src/etags.c   /^put_entries (register node *np)$/
 +pvec_type     c-src/emacs/src/lisp.h  780
 +quantizing    html-src/algrthms.html  /^Quantizing the Received$/
 +questo        ../c/c.web      34
 +quiettest     make-src/Makefile       /^quiettest:$/
 +quit_char     c-src/emacs/src/keyboard.c      192
 +quit_throw_to_read_char       c-src/emacs/src/keyboard.c      /^quit_throw_to_read_char (bool from_signal)$/
 +qux   ruby-src/test1.ru       /^    alias_method :qux, :tee, attr_accessor(:bogus)/
 +qux1  ruby-src/test1.ru       /^                :qux1)$/
 +qux=  ruby-src/test1.ru       /^      def qux=(tee)$/
 +r0    c-src/sysdep.h  54
 +r1    c-src/sysdep.h  55
 +r_alloc       c-src/emacs/src/lisp.h  /^extern void *r_alloc (void **, size_t) ATTRIBUTE_A/
 +range_exp     y-src/parse.y   268
 +range_exp_list        y-src/parse.y   272
 +raw_keybuf    c-src/emacs/src/keyboard.c      116
 +raw_keybuf_count      c-src/emacs/src/keyboard.c      117
 +rbtp  c.c     240
 +re_iswctype   c-src/emacs/src/regex.h 602
 +re_nsub       c-src/emacs/src/regex.h 364
 +re_pattern_buffer     c-src/emacs/src/regex.h 335
 +re_pattern_buffer     c-src/h.h       119
 +re_registers  c-src/emacs/src/regex.h 428
 +re_wchar_t    c-src/emacs/src/regex.h 600
 +re_wchar_t    c-src/emacs/src/regex.h 623
 +re_wctype     c-src/emacs/src/regex.h 601
 +re_wctype_t   c-src/emacs/src/regex.h 599
 +re_wctype_t   c-src/emacs/src/regex.h 618
 +re_wctype_to_bit      c-src/emacs/src/regex.h /^# define re_wctype_to_bit(cc) 0$/
 +read  cp-src/conway.hpp       /^    char read() { return alive; }$/
 +read  php-src/lce_functions.php       /^      function read()$/
 +read-key-sequence     c-src/emacs/src/keyboard.c      /^DEFUN ("read-key-sequence", Fread_key_sequence, Sr/
 +read-key-sequence-vector      c-src/emacs/src/keyboard.c      /^DEFUN ("read-key-sequence-vector", Fread_key_seque/
 +read1 ruby-src/test1.ru       /^    attr_reader :read1 , :read2; attr_writer :writ/
 +read2 ruby-src/test1.ru       /^    attr_reader :read1 , :read2; attr_writer :writ/
 +read_char     c-src/emacs/src/keyboard.c      /^read_char (int commandflag, Lisp_Object map,$/
 +read_char_help_form_unwind    c-src/emacs/src/keyboard.c      /^read_char_help_form_unwind (void)$/
 +read_char_minibuf_menu_prompt c-src/emacs/src/keyboard.c      /^read_char_minibuf_menu_prompt (int commandflag,$/
 +read_char_x_menu_prompt       c-src/emacs/src/keyboard.c      /^read_char_x_menu_prompt (Lisp_Object map,$/
 +read_decoded_event_from_main_queue    c-src/emacs/src/keyboard.c      /^read_decoded_event_from_main_queue (struct timespe/
 +read_event_from_main_queue    c-src/emacs/src/keyboard.c      /^read_event_from_main_queue (struct timespec *end_t/
 +read_key_sequence     c-src/emacs/src/keyboard.c      /^read_key_sequence (Lisp_Object *keybuf, int bufsiz/
 +read_key_sequence_cmd c-src/emacs/src/keyboard.c      232
 +read_key_sequence_remapped    c-src/emacs/src/keyboard.c      233
 +read_key_sequence_vs  c-src/emacs/src/keyboard.c      /^read_key_sequence_vs (Lisp_Object prompt, Lisp_Obj/
 +read_menu_command     c-src/emacs/src/keyboard.c      /^read_menu_command (void)$/
++read_toc      perl-src/htlmify-cystic /^sub read_toc ()$/
 +readable_events       c-src/emacs/src/keyboard.c      /^readable_events (int flags)$/
 +readline      c-src/etags.c   /^readline (linebuffer *lbp, FILE *stream)$/
 +readline_internal     c-src/etags.c   /^readline_internal (linebuffer *lbp, register FILE /
 +realloc       c-src/emacs/src/gmalloc.c       65
 +realloc       c-src/emacs/src/gmalloc.c       69
 +realloc       c-src/emacs/src/gmalloc.c       /^realloc (void *ptr, size_t size)$/
 +realloc       c-src/emacs/src/gmalloc.c       1716
 +reallochook   c-src/emacs/src/gmalloc.c       /^reallochook (void *ptr, size_t size)$/
 +recent-keys   c-src/emacs/src/keyboard.c      /^DEFUN ("recent-keys", Frecent_keys, Srecent_keys, /
 +recent_keys   c-src/emacs/src/keyboard.c      100
 +recent_keys_index     c-src/emacs/src/keyboard.c      94
 +record_asynch_buffer_change   c-src/emacs/src/keyboard.c      /^record_asynch_buffer_change (void)$/
 +record_auto_save      c-src/emacs/src/keyboard.c      /^record_auto_save (void)$/
 +record_char   c-src/emacs/src/keyboard.c      /^record_char (Lisp_Object c)$/
 +record_menu_key       c-src/emacs/src/keyboard.c      /^record_menu_key (Lisp_Object c)$/
 +record_single_kboard_state    c-src/emacs/src/keyboard.c      /^record_single_kboard_state ()$/
 +record_xmalloc        c-src/emacs/src/lisp.h  /^extern void *record_xmalloc (size_t) ATTRIBUTE_ALL/
 +recover_top_level_message     c-src/emacs/src/keyboard.c      138
 +recursion-depth       c-src/emacs/src/keyboard.c      /^DEFUN ("recursion-depth", Frecursion_depth, Srecur/
 +recursive-edit        c-src/emacs/src/keyboard.c      /^DEFUN ("recursive-edit", Frecursive_edit, Srecursi/
 +recursive_edit_1      c-src/emacs/src/keyboard.c      /^recursive_edit_1 (void)$/
 +recursive_edit_unwind c-src/emacs/src/keyboard.c      /^recursive_edit_unwind (Lisp_Object buffer)$/
 +reduce        prol-src/natded.prolog  /^reduce((X^M)@N,L):-     % beta reduction$/
 +reduce_subterm        prol-src/natded.prolog  /^reduce_subterm(M,M2):-$/
 +refreshPort   pyt-src/server.py       /^    def refreshPort(self):$/
 +reg_errcode_t c.c     279
 +reg_errcode_t c-src/emacs/src/regex.h 323
 +reg_syntax_t  c-src/emacs/src/regex.h 43
 +regex c-src/etags.c   219
 +regex.o       make-src/Makefile       /^regex.o: emacs\/src\/regex.c$/
 +regex_t       c-src/emacs/src/regex.h 416
 +regex_tag_multiline   c-src/etags.c   /^regex_tag_multiline (void)$/
 +regexfile     make-src/Makefile       /^regexfile: Makefile$/
 +regexp        c-src/etags.c   256
 +regexp        c-src/etags.c   268
 +registerAction        objcpp-src/SimpleCalc.M /^- registerAction:(SEL)action$/
 +register_heapinfo     c-src/emacs/src/gmalloc.c       /^register_heapinfo (void)$/
 +regmatch_t    c-src/emacs/src/regex.h 451
 +regoff_t      c-src/emacs/src/regex.h 423
 +regs  c-src/etags.c   263
 +regs  cp-src/screen.cpp       16
 +regs_allocated        c-src/emacs/src/regex.h 379
 +regset        c-src/h.h       31
 +regular_top_level_message     c-src/emacs/src/keyboard.c      143
 +rehash_size   c-src/emacs/src/lisp.h  1835
 +rehash_threshold      c-src/emacs/src/lisp.h  1839
 +relative_filename     c-src/etags.c   /^relative_filename (char *file, char *dir)$/
 +release distrib       make-src/Makefile       /^release distrib: web$/
 +removeexp     prol-src/natded.prolog  /^removeexp(E,E,'NIL'):-!.$/
 +reorder_modifiers     c-src/emacs/src/keyboard.c      /^reorder_modifiers (Lisp_Object symbol)$/
 +request       c.c     /^request request (a, b)$/
 +requeued_events_pending_p     c-src/emacs/src/keyboard.c      /^requeued_events_pending_p (void)$/
 +required_argument     c-src/getopt.h  90
 +reset-this-command-lengths    c-src/emacs/src/keyboard.c      /^DEFUN ("reset-this-command-lengths", Freset_this_c/
 +restore_getcjmp       c-src/emacs/src/keyboard.c      /^restore_getcjmp (sys_jmp_buf temp)$/
 +restore_kboard_configuration  c-src/emacs/src/keyboard.c      /^restore_kboard_configuration (int was_locked)$/
 +return_to_command_loop        c-src/emacs/src/keyboard.c      135
 +reverse       prol-src/natded.prolog  /^reverse([],Ws,Ws).$/
 +revert        objc-src/PackInsp.m     /^-revert:sender$/
 +right c-src/etags.c   216
 +right_shift   cccp.y  /^right_shift (a, b)$/
 +right_shift   y-src/cccp.y    /^right_shift (a, b)$/
 +ring1 c.c     241
 +ring2 c.c     242
 +rm_eo c-src/emacs/src/regex.h 450
 +rm_so c-src/emacs/src/regex.h 449
 +rng_base      cp-src/Range.h  79
 +rng_inc       cp-src/Range.h  81
 +rng_limit     cp-src/Range.h  80
 +rng_nelem     cp-src/Range.h  83
 +rosso cp-src/c.C      40
 +rsyncfromfly  make-src/Makefile       /^rsyncfromfly:$/
 +rsynctofly    make-src/Makefile       /^rsynctofly:$/
 +rtint c-src/h.h       60
 +rtint c-src/h.h       68
 +rtstr c-src/h.h       61
 +rtstr c-src/h.h       69
 +rtunion_def   c-src/h.h       58
 +rtunion_def   c-src/h.h       64
 +rtx   c-src/h.h       62
 +rtxnp c-src/h.h       71
 +rtxp  c-src/h.h       70
 +s     c-src/emacs/src/lisp.h  4672
 +s     c-src/emacs/src/lisp.h  4678
 +s1    cp-src/c.C      32
 +s2    cp-src/c.C      35
 +safe_run_hook_funcall c-src/emacs/src/keyboard.c      /^safe_run_hook_funcall (ptrdiff_t nargs, Lisp_Objec/
 +safe_run_hooks        c-src/emacs/src/keyboard.c      /^safe_run_hooks (Lisp_Object hook)$/
 +safe_run_hooks_1      c-src/emacs/src/keyboard.c      /^safe_run_hooks_1 (ptrdiff_t nargs, Lisp_Object *ar/
 +safe_run_hooks_error  c-src/emacs/src/keyboard.c      /^safe_run_hooks_error (Lisp_Object error, ptrdiff_t/
 +save  pyt-src/server.py       /^    def save(self):$/
 +save  pyt-src/server.py       /^    def save(self):$/
 +save  pyt-src/server.py       /^    def save(self):$/
 +save_getcjmp  c-src/emacs/src/keyboard.c      /^save_getcjmp (sys_jmp_buf temp)$/
 +save_type     c-src/emacs/src/lisp.h  /^save_type (struct Lisp_Save_Value *v, int n)$/
 +savenstr      c-src/etags.c   /^savenstr (const char *cp, int len)$/
 +savestr       c-src/etags.c   /^savestr (const char *cp)$/
 +say   go-src/test.go  /^func say(msg string) {$/
 +scan_separators       c-src/etags.c   /^scan_separators (char *name)$/
 +scolonseen    c-src/etags.c   2447
 +scratch       c-src/sysdep.h  56
 +scroll_bar_parts      c-src/emacs/src/keyboard.c      5189
 +sec=\relax    tex-src/texinfo.tex     /^\\let\\appendixsec=\\relax$/
 +section       perl-src/htlmify-cystic 25
 +section=\relax        tex-src/texinfo.tex     /^\\let\\appendixsection=\\relax$/
++section_href  perl-src/htlmify-cystic /^sub section_href ($)$/
 +section_name  perl-src/htlmify-cystic 12
++section_name  perl-src/htlmify-cystic /^sub section_name ($)$/
 +section_toc   perl-src/htlmify-cystic 15
++section_url   perl-src/htlmify-cystic /^sub section_url ()$/
++section_url_base      perl-src/htlmify-cystic /^sub section_url_base ()$/
++section_url_name      perl-src/htlmify-cystic /^sub section_url_name ()$/
 +select        prol-src/natded.prolog  /^select(X,[X|Xs],Xs).$/
 +select-tags-table     el-src/emacs/lisp/progmodes/etags.el    /^(defun select-tags-table ()$/
 +select-tags-table-mode        el-src/emacs/lisp/progmodes/etags.el    /^(define-derived-mode select-tags-table-mode specia/
 +select-tags-table-mode-map    el-src/emacs/lisp/progmodes/etags.el    /^(defvar select-tags-table-mode-map ; Doc string?$/
 +select-tags-table-quit        el-src/emacs/lisp/progmodes/etags.el    /^(defun select-tags-table-quit ()$/
 +select-tags-table-select      el-src/emacs/lisp/progmodes/etags.el    /^(defun select-tags-table-select (button)$/
 +select_last   prol-src/natded.prolog  /^select_last([X],X,[]).$/
 +send  objc-src/Subprocess.m   /^- send:(const char *)string withNewline:(BOOL)want/
 +send  objc-src/Subprocess.m   /^- send:(const char *)string$/
 +separator_names       c-src/emacs/src/keyboard.c      7372
 +serializeToVars       php-src/lce_functions.php       /^      function serializeToVars($prefix)$/
 +serializeToVars       php-src/lce_functions.php       /^      function serializeToVars($prefix)$/
 +set   cp-src/conway.hpp       /^    void set(void) { alive = 1; }$/
 +set-input-interrupt-mode      c-src/emacs/src/keyboard.c      /^DEFUN ("set-input-interrupt-mode", Fset_input_inte/
 +set-input-meta-mode   c-src/emacs/src/keyboard.c      /^DEFUN ("set-input-meta-mode", Fset_input_meta_mode/
 +set-input-mode        c-src/emacs/src/keyboard.c      /^DEFUN ("set-input-mode", Fset_input_mode, Sset_inp/
 +set-output-flow-control       c-src/emacs/src/keyboard.c      /^DEFUN ("set-output-flow-control", Fset_output_flow/
 +set-quit-char c-src/emacs/src/keyboard.c      /^DEFUN ("set-quit-char", Fset_quit_char, Sset_quit_/
 +setDate       cp-src/functions.cpp    /^void Date::setDate ( int d , int m , int y ){$/
 +setDelegate   objc-src/Subprocess.m   /^- setDelegate:anObject$/
 +setRevertButtonTitle  objc-src/PackInsp.m     /^-setRevertButtonTitle$/
 +set_base      cp-src/Range.h  /^  void set_base (double b) { rng_base = b;  }$/
 +set_char_table_contents       c-src/emacs/src/lisp.h  /^set_char_table_contents (Lisp_Object table, ptrdif/
 +set_char_table_defalt c-src/emacs/src/lisp.h  /^set_char_table_defalt (Lisp_Object table, Lisp_Obj/
 +set_char_table_extras c-src/emacs/src/lisp.h  /^set_char_table_extras (Lisp_Object table, ptrdiff_/
 +set_char_table_purpose        c-src/emacs/src/lisp.h  /^set_char_table_purpose (Lisp_Object table, Lisp_Ob/
 +set_hash_key_slot     c-src/emacs/src/lisp.h  /^set_hash_key_slot (struct Lisp_Hash_Table *h, ptrd/
 +set_hash_value_slot   c-src/emacs/src/lisp.h  /^set_hash_value_slot (struct Lisp_Hash_Table *h, pt/
 +set_inc       cp-src/Range.h  /^  void set_inc (double i) { rng_inc = i;   }$/
 +set_limit     cp-src/Range.h  /^  void set_limit (double l) { rng_limit = l; }$/
 +set_overlay_plist     c-src/emacs/src/lisp.h  /^set_overlay_plist (Lisp_Object overlay, Lisp_Objec/
 +set_poll_suppress_count       c-src/emacs/src/keyboard.c      /^set_poll_suppress_count (int count)$/
 +set_prop      c-src/emacs/src/keyboard.c      /^set_prop (ptrdiff_t idx, Lisp_Object val)$/
 +set_save_integer      c-src/emacs/src/lisp.h  /^set_save_integer (Lisp_Object obj, int n, ptrdiff_/
 +set_save_pointer      c-src/emacs/src/lisp.h  /^set_save_pointer (Lisp_Object obj, int n, void *va/
 +set_string_intervals  c-src/emacs/src/lisp.h  /^set_string_intervals (Lisp_Object s, INTERVAL i)$/
 +set_sub_char_table_contents   c-src/emacs/src/lisp.h  /^set_sub_char_table_contents (Lisp_Object table, pt/
 +set_symbol_function   c-src/emacs/src/lisp.h  /^set_symbol_function (Lisp_Object sym, Lisp_Object /
 +set_symbol_next       c-src/emacs/src/lisp.h  /^set_symbol_next (Lisp_Object sym, struct Lisp_Symb/
 +set_symbol_plist      c-src/emacs/src/lisp.h  /^set_symbol_plist (Lisp_Object sym, Lisp_Object pli/
 +set_waiting_for_input c-src/emacs/src/keyboard.c      /^set_waiting_for_input (struct timespec *time_to_cl/
 +setref        tex-src/texinfo.tex     /^\\expandafter\\expandafter\\expandafter\\appendixsetre/
 +setup cp-src/c.C      5
 +shift cp-src/functions.cpp    /^void Date::shift ( void ){\/\/Shift this date to pre/
 +shouldLoad    objc-src/PackInsp.m     /^-(BOOL)shouldLoad$/
 +should_see_this_array_type    cp-src/c.C      156
 +should_see_this_function_pointer      cp-src/c.C      153
 +should_see_this_one_enclosed_in_extern_C      cp-src/c.C      149
 +show  erl-src/gs_dialog.erl   /^show(Module, Title, Message, Args) ->$/
 +showError     objc-src/Subprocess.m   /^showError (const char *errorString, id theDelegate/
 +showInfo      objc-src/PackInsp.m     /^-showInfo:sender$/
 +show_help_echo        c-src/emacs/src/keyboard.c      /^show_help_echo (Lisp_Object help, Lisp_Object wind/
 +sig   c-src/emacs/src/keyboard.c      7238
 +signal_handler        c-src/h.h       82
 +signal_handler1       c-src/h.h       83
 +signal_handler_t      c-src/h.h       94
 +simulation    html-src/software.html  /^Software that I wrote for supporting my research a/
 +single_kboard c-src/emacs/src/keyboard.c      89
 +single_kboard_state   c-src/emacs/src/keyboard.c      /^single_kboard_state ()$/
 +site  cp-src/conway.hpp       5
 +site  cp-src/conway.hpp       /^    site(int xi, int yi): x(xi), y(yi), alive(0) {/
 +size  c-src/etags.c   236
 +size  c-src/etags.c   2522
 +size  c-src/emacs/src/gmalloc.c       156
 +size  c-src/emacs/src/gmalloc.c       163
 +size  c-src/emacs/src/gmalloc.c       1862
 +size  c-src/emacs/src/lisp.h  1364
 +size  c-src/emacs/src/lisp.h  1390
 +skeyseen      c-src/etags.c   2445
 +skip_name     c-src/etags.c   /^skip_name (char *cp)$/
 +skip_non_spaces       c-src/etags.c   /^skip_non_spaces (char *cp)$/
 +skip_spaces   c-src/etags.c   /^skip_spaces (char *cp)$/
 +snarf-tag-function    el-src/emacs/lisp/progmodes/etags.el    /^(defvar snarf-tag-function nil$/
 +snone c-src/etags.c   2443
 +some_mouse_moved      c-src/emacs/src/keyboard.c      /^some_mouse_moved (void)$/
 +space tex-src/texinfo.tex     /^    {#2\\labelspace #1}\\dotfill\\doshortpageno{#3}}%/
 +space tex-src/texinfo.tex     /^  \\dosubsubsecentry{#2.#3.#4.#5\\labelspace#1}{#6}}/
 +specbind_tag  c-src/emacs/src/lisp.h  2943
 +specbinding   c-src/emacs/src/lisp.h  2955
 +specialsymbol prol-src/natded.prolog  /^specialsymbol(C1,C2,S):-$/
 +splitexp      prol-src/natded.prolog  /^splitexp(E,E,('NIL','NIL')):-!.$/
 +srclist       make-src/Makefile       /^srclist: Makefile$/
 +ss3   c.c     255
 +sss1  c.c     252
 +sss2  c.c     253
 +sstab prol-src/natded.prolog  /^sstab(2,'C',',').$/
 +st_C_attribute        c-src/etags.c   2209
 +st_C_class    c-src/etags.c   2212
 +st_C_define   c-src/etags.c   2213
 +st_C_enum     c-src/etags.c   2213
 +st_C_extern   c-src/etags.c   2213
 +st_C_gnumacro c-src/etags.c   2208
 +st_C_ignore   c-src/etags.c   2209
 +st_C_javastruct       c-src/etags.c   2210
 +st_C_objend   c-src/etags.c   2207
 +st_C_objimpl  c-src/etags.c   2207
 +st_C_objprot  c-src/etags.c   2207
 +st_C_operator c-src/etags.c   2211
 +st_C_struct   c-src/etags.c   2213
 +st_C_template c-src/etags.c   2212
 +st_C_typedef  c-src/etags.c   2213
 +st_none       c-src/etags.c   2206
 +stack c.c     155
 +stagseen      c-src/etags.c   2446
 +standalone    make-src/Makefile       /^standalone:$/
 +start c-src/emacs/src/regex.h 431
 +start c-src/emacs/src/keyboard.c      8753
 +start php-src/lce_functions.php       /^      function start($line, $class)$/
 +start y-src/cccp.y    143
 +start_polling c-src/emacs/src/keyboard.c      /^start_polling (void)$/
 +start_up      prol-src/natded.prolog  /^start_up:-$/
 +state_protected_p     c-src/emacs/src/gmalloc.c       400
 +statetable    html-src/algrthms.html  /^Next$/
 +staticetags   make-src/Makefile       /^staticetags:$/
 +step  cp-src/conway.hpp       /^    void step(void) { alive = next_alive; }$/
 +step  cp-src/clheir.hpp       /^    virtual void step(void) { }$/
 +step_everybody        cp-src/clheir.cpp       /^void step_everybody(void)$/
 +stop_polling  c-src/emacs/src/keyboard.c      /^stop_polling (void)$/
 +store_user_signal_events      c-src/emacs/src/keyboard.c      /^store_user_signal_events (void)$/
 +str   go-src/test1.go 9
 +strcaseeq     c-src/etags.c   /^#define strcaseeq(s,t)        (assert ((s)!=NULL && (t)!=/
 +streq c-src/etags.c   /^#define streq(s,t)    (assert ((s)!=NULL || (t)!=NULL/
 +string_intervals      c-src/emacs/src/lisp.h  /^string_intervals (Lisp_Object s)$/
 +stripLine     php-src/lce_functions.php       /^      function stripLine($line, $class)$/
 +stripname     pas-src/common.pas      /^function stripname; (* ($/
 +strncaseeq    c-src/etags.c   /^#define strncaseeq(s,t,n) (assert ((s)!=NULL && (t/
 +strneq        c-src/etags.c   /^#define strneq(s,t,n) (assert ((s)!=NULL || (t)!=N/
 +structdef     c-src/etags.c   2448
 +stuff_buffered_input  c-src/emacs/src/keyboard.c      /^stuff_buffered_input (Lisp_Object stuffstring)$/
 +subprocess    objc-src/PackInsp.m     /^-subprocess:(Subprocess *)sender output:(char *)bu/
 +subprocessDone        objc-src/PackInsp.m     /^-subprocessDone:(Subprocess *)sender$/
 +subsec=\relax tex-src/texinfo.tex     /^\\let\\appendixsubsec=\\relax$/
 +subsection    perl-src/htlmify-cystic 26
 +subsection=\relax     tex-src/texinfo.tex     /^\\let\\appendixsubsection=\\relax$/
 +subsection_marker     perl-src/htlmify-cystic 161
 +subst prol-src/natded.prolog  /^subst(var(Y),var(X),M,N):-$/
 +substitute    c-src/etags.c   /^substitute (char *in, char *out, struct re_registe/
 +subsubsec=\relax      tex-src/texinfo.tex     /^\\let\\appendixsubsubsec=\\relax$/
 +subsubsection perl-src/htlmify-cystic 27
 +subsubsection=\relax  tex-src/texinfo.tex     /^\\let\\appendixsubsubsection=\\relax$/
 +subtle        ruby-src/test1.ru       /^                 :tee ; attr_reader :subtle$/
 +subtree       prol-src/natded.prolog  /^subtree(T,T).$/
 +suffix        c-src/etags.c   186
 +suffixes      c-src/etags.c   195
 +suggest_asking_for_help       c-src/etags.c   /^suggest_asking_for_help (void)$/
 +suspend-emacs c-src/emacs/src/keyboard.c      /^DEFUN ("suspend-emacs", Fsuspend_emacs, Ssuspend_e/
 +sval  cccp.y  117
 +sval  y-src/cccp.y    116
 +swallow_events        c-src/emacs/src/keyboard.c      /^swallow_events (bool do_display)$/
 +switch_line_buffers   c-src/etags.c   /^#define switch_line_buffers() (curndx = 1 - curndx/
 +sxhash_combine        c-src/emacs/src/lisp.h  /^sxhash_combine (EMACS_UINT x, EMACS_UINT y)$/
 +sym_type      c-src/etags.c   2204
 +symbol_interned       c-src/emacs/src/lisp.h  639
 +symbol_name   c-src/emacs/src/lisp.h  1687
 +symbol_redirect       c-src/emacs/src/lisp.h  646
 +syms_of_abbrev        c-src/abbrev.c  /^syms_of_abbrev ()$/
 +syms_of_keyboard      c-src/emacs/src/keyboard.c      /^syms_of_keyboard (void)$/
 +synchronize_system_messages_locale    c-src/emacs/src/lisp.h  /^INLINE void synchronize_system_messages_locale (vo/
 +synchronize_system_time_locale        c-src/emacs/src/lisp.h  /^INLINE void synchronize_system_time_locale (void) /
 +syntax        c-src/emacs/src/regex.h 350
 +sys_jmp_buf   c-src/emacs/src/lisp.h  2906
 +sys_jmp_buf   c-src/emacs/src/lisp.h  2910
 +sys_jmp_buf   c-src/emacs/src/lisp.h  2916
 +sys_longjmp   c-src/emacs/src/lisp.h  /^# define sys_longjmp(j, v) _longjmp (j, v)$/
 +sys_longjmp   c-src/emacs/src/lisp.h  /^# define sys_longjmp(j, v) siglongjmp (j, v)$/
 +sys_longjmp   c-src/emacs/src/lisp.h  /^# define sys_longjmp(j, v) longjmp (j, v)$/
 +sys_setjmp    c-src/emacs/src/lisp.h  /^# define sys_setjmp(j) _setjmp (j)$/
 +sys_setjmp    c-src/emacs/src/lisp.h  /^# define sys_setjmp(j) sigsetjmp (j, 0)$/
 +sys_setjmp    c-src/emacs/src/lisp.h  /^# define sys_setjmp(j) setjmp (j)$/
 +syscall_error c-src/sysdep.h  34
 +t     cp-src/c.C      52
 +t1    cp-src/c.C      34
 +t2    cp-src/c.C      38
 +tab_count_words       c-src/tab.c     /^int                   tab_count_words(char **tab)$/
 +tab_delete_first      c-src/tab.c     /^int                   tab_delete_first(char **tab)$/
 +tab_fill      c-src/tab.c     /^char                  **tab_fill(char *str, char delim)$/
 +tab_free      c-src/tab.c     /^void                  tab_free(char **tab)$/
 +tag-any-match-p       el-src/emacs/lisp/progmodes/etags.el    /^(defun tag-any-match-p (_tag)$/
 +tag-exact-file-name-match-p   el-src/emacs/lisp/progmodes/etags.el    /^(defun tag-exact-file-name-match-p (tag)$/
 +tag-exact-match-p     el-src/emacs/lisp/progmodes/etags.el    /^(defun tag-exact-match-p (tag)$/
 +tag-file-name-match-p el-src/emacs/lisp/progmodes/etags.el    /^(defun tag-file-name-match-p (tag)$/
 +tag-find-file-of-tag  el-src/emacs/lisp/progmodes/etags.el    /^(defun tag-find-file-of-tag (file) ; Doc string?$/
 +tag-find-file-of-tag-noselect el-src/emacs/lisp/progmodes/etags.el    /^(defun tag-find-file-of-tag-noselect (file)$/
 +tag-implicit-name-match-p     el-src/emacs/lisp/progmodes/etags.el    /^(defun tag-implicit-name-match-p (tag)$/
 +tag-lines-already-matched     el-src/emacs/lisp/progmodes/etags.el    /^(defvar tag-lines-already-matched nil$/
 +tag-partial-file-name-match-p el-src/emacs/lisp/progmodes/etags.el    /^(defun tag-partial-file-name-match-p (_tag)$/
 +tag-re-match-p        el-src/emacs/lisp/progmodes/etags.el    /^(defun tag-re-match-p (re)$/
 +tag-symbol-match-p    el-src/emacs/lisp/progmodes/etags.el    /^(defun tag-symbol-match-p (tag)$/
 +tag-word-match-p      el-src/emacs/lisp/progmodes/etags.el    /^(defun tag-word-match-p (tag)$/
 +tag1  c-src/torture.c /^(*tag1 (sig, handler)) ()$/
 +tag1  c-src/dostorture.c      /^(*tag1 (sig, handler)) ()$/
 +tag1  c-src/h.h       110
 +tag2  c-src/torture.c /^(*tag2 (sig, handler)) ()$/
 +tag2  c-src/dostorture.c      /^(*tag2 (sig, handler)) ()$/
 +tag3  c-src/torture.c /^(*tag3 (int sig, void (*handler) (int))) (int)$/
 +tag3  c-src/dostorture.c      /^(*tag3 (int sig, void (*handler) (int))) (int)$/
 +tag4  c-src/torture.c /^(*tag4 (int sig, void (*handler) (int))) (int)$/
 +tag4  c-src/dostorture.c      /^(*tag4 (int sig, void (*handler) (int))) (int)$/
 +tag5  c-src/torture.c /^tag5 (handler, arg)$/
 +tag5  c-src/dostorture.c      /^tag5 (handler, arg)$/
 +tag6  c-src/torture.c /^tag6 (void (*handler) (void *), void *arg)$/
 +tag6  c-src/dostorture.c      /^tag6 (void (*handler) (void *), void *arg)$/
 +tag_or_ch     c-src/emacs/src/lisp.h  3026
 +taggedfname   c-src/etags.c   207
 +tags  make-src/Makefile       /^tags: TAGS$/
 +tags-add-tables       el-src/emacs/lisp/progmodes/etags.el    /^(defcustom tags-add-tables 'ask-user$/
 +tags-apropos  el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-apropos (regexp)$/
 +tags-apropos-additional-actions       el-src/emacs/lisp/progmodes/etags.el    /^(defcustom tags-apropos-additional-actions nil$/
 +tags-apropos-function el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-apropos-function nil$/
 +tags-apropos-verbose  el-src/emacs/lisp/progmodes/etags.el    /^(defcustom tags-apropos-verbose nil$/
 +tags-case-fold-search el-src/emacs/lisp/progmodes/etags.el    /^(defcustom tags-case-fold-search 'default$/
 +tags-complete-tags-table-file el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-complete-tags-table-file (string predi/
 +tags-completion-at-point-function     el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-completion-at-point-function ()$/
 +tags-completion-table el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-completion-table nil$/
 +tags-completion-table el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-completion-table ()$/
 +tags-completion-table-function        el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-completion-table-function nil$/
 +tags-compression-info-list    el-src/emacs/lisp/progmodes/etags.el    /^(defcustom tags-compression-info-list$/
 +tags-expand-table-name        el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-expand-table-name (file)$/
 +tags-file-name        el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-file-name nil$/
 +tags-included-tables  el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-included-tables nil$/
 +tags-included-tables  el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-included-tables ()$/
 +tags-included-tables-function el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-included-tables-function nil$/
 +tags-lazy-completion-table    el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-lazy-completion-table ()$/
 +tags-location-ring    el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-location-ring (make-ring xref-marker-/
 +tags-loop-continue    el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-loop-continue (&optional first-time)$/
 +tags-loop-eval        el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-loop-eval (form)$/
 +tags-loop-operate     el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-loop-operate nil$/
 +tags-loop-revert-buffers      el-src/emacs/lisp/progmodes/etags.el    /^(defcustom tags-loop-revert-buffers nil$/
 +tags-loop-scan        el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-loop-scan$/
 +tags-next-table       el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-next-table ()$/
 +tags-query-replace    el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-query-replace (from to &optional delim/
 +tags-recognize-empty-tags-table       el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-recognize-empty-tags-table ()$/
 +tags-reset-tags-tables        el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-reset-tags-tables ()$/
 +tags-revert-without-query     el-src/emacs/lisp/progmodes/etags.el    /^(defcustom tags-revert-without-query nil$/
 +tags-search   el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-search (regexp &optional file-list-for/
 +tags-select-tags-table        el-src/emacs/lisp/progmodes/etags.el    /^(define-button-type 'tags-select-tags-table$/
 +tags-table-check-computed-list        el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-table-check-computed-list ()$/
 +tags-table-computed-list      el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-table-computed-list nil$/
 +tags-table-computed-list-for  el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-table-computed-list-for nil$/
 +tags-table-extend-computed-list       el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-table-extend-computed-list ()$/
 +tags-table-files      el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-table-files nil$/
 +tags-table-files      el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-table-files ()$/
 +tags-table-files-function     el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-table-files-function nil$/
 +tags-table-format-functions   el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-table-format-functions '(etags-recogn/
 +tags-table-including  el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-table-including (this-file core-only)$/
 +tags-table-list       el-src/emacs/lisp/progmodes/etags.el    /^(defcustom tags-table-list nil$/
 +tags-table-list-member        el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-table-list-member (file list)$/
 +tags-table-list-pointer       el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-table-list-pointer nil$/
 +tags-table-list-started-at    el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-table-list-started-at nil$/
 +tags-table-mode       el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-table-mode ()$/
 +tags-table-set-list   el-src/emacs/lisp/progmodes/etags.el    /^(defvar tags-table-set-list nil$/
 +tags-tag-face el-src/emacs/lisp/progmodes/etags.el    /^(defcustom tags-tag-face 'default$/
 +tags-verify-table     el-src/emacs/lisp/progmodes/etags.el    /^(defun tags-verify-table (file)$/
 +tags-with-face        el-src/emacs/lisp/progmodes/etags.el    /^(defmacro tags-with-face (face &rest body)$/
 +target_multibyte      c-src/emacs/src/regex.h 407
 +tcpdump       html-src/software.html  /^tcpdump$/
 +teats cp-src/c.C      127
 +tee   ruby-src/test1.ru       /^    attr_accessor :tee$/
 +tee=  ruby-src/test1.ru       /^    attr_accessor :tee$/
 +temporarily_switch_to_single_kboard   c-src/emacs/src/keyboard.c      /^temporarily_switch_to_single_kboard (struct frame /
 +tend  c-src/etags.c   2432
 +terminate     objc-src/Subprocess.m   /^- terminate:sender$/
 +terminateInput        objc-src/Subprocess.m   /^- terminateInput$/
 +test  c-src/emacs/src/lisp.h  1871
 +test  cp-src/c.C      86
 +test  erl-src/gs_dialog.erl   /^test() ->$/
 +test  go-src/test1.go /^func test(p plus) {$/
 +test  make-src/Makefile       /^test:$/
 +test  php-src/ptest.php       /^test $/
 +test.me22b    lua-src/test.lua        /^   local function test.me22b (one)$/
 +test.me_22a   lua-src/test.lua        /^   function test.me_22a(one, two)$/
 +test_undefined        c-src/emacs/src/keyboard.c      /^test_undefined (Lisp_Object binding)$/
 +texttreelist  prol-src/natded.prolog  /^texttreelist([]).$/
 +this  c-src/a/b/b.c   1
 +this-command-keys     c-src/emacs/src/keyboard.c      /^DEFUN ("this-command-keys", Fthis_command_keys, St/
 +this-command-keys-vector      c-src/emacs/src/keyboard.c      /^DEFUN ("this-command-keys-vector", Fthis_command_k/
 +this-single-command-keys      c-src/emacs/src/keyboard.c      /^DEFUN ("this-single-command-keys", Fthis_single_co/
 +this-single-command-raw-keys  c-src/emacs/src/keyboard.c      /^DEFUN ("this-single-command-raw-keys", Fthis_singl/
 +this_command_key_count        c-src/emacs/src/keyboard.c      108
 +this_command_key_count_reset  c-src/emacs/src/keyboard.c      112
 +this_command_keys     c-src/emacs/src/keyboard.c      107
 +this_file_toc perl-src/htlmify-cystic 29
 +this_single_command_key_start c-src/emacs/src/keyboard.c      125
 +tignore       c-src/etags.c   2433
 +timer_check   c-src/emacs/src/keyboard.c      /^timer_check (void)$/
 +timer_check_2 c-src/emacs/src/keyboard.c      /^timer_check_2 (Lisp_Object timers, Lisp_Object idl/
 +timer_idleness_start_time     c-src/emacs/src/keyboard.c      335
 +timer_last_idleness_start_time        c-src/emacs/src/keyboard.c      340
 +timer_resume_idle     c-src/emacs/src/keyboard.c      /^timer_resume_idle (void)$/
 +timer_start_idle      c-src/emacs/src/keyboard.c      /^timer_start_idle (void)$/
 +timer_stop_idle       c-src/emacs/src/keyboard.c      /^timer_stop_idle (void)$/
 +timers_run    c-src/emacs/src/keyboard.c      320
 +tinbody       c-src/etags.c   2431
 +tkeyseen      c-src/etags.c   2429
 +tnone c-src/etags.c   2428
++toc_line      perl-src/htlmify-cystic /^sub toc_line ($)$/
 +toggleDescription     objc-src/PackInsp.m     /^-toggleDescription$/
 +tok   c-src/etags.c   2491
 +token c-src/etags.c   2508
 +token cccp.y  437
 +token cccp.y  439
 +token y-src/cccp.y    437
 +token y-src/cccp.y    439
 +tokenize      prol-src/natded.prolog  /^tokenize([C1,C2,C3|Cs],Xs-Ys,TsResult):-     % spe/
 +tokenizeatom  prol-src/natded.prolog  /^tokenizeatom(Atom,Ws):-$/
 +tokentab2     cccp.y  442
 +tokentab2     y-src/cccp.y    442
 +tool_bar_item_properties      c-src/emacs/src/keyboard.c      7970
 +tool_bar_items        c-src/emacs/src/keyboard.c      /^tool_bar_items (Lisp_Object reuse, int *nitems)$/
 +tool_bar_items_vector c-src/emacs/src/keyboard.c      7965
 +toolkit_menubar_in_use        c-src/emacs/src/keyboard.c      /^toolkit_menubar_in_use (struct frame *f)$/
 +top-level     c-src/emacs/src/keyboard.c      /^DEFUN ("top-level", Ftop_level, Stop_level, 0, 0, /
 +top_level_1   c-src/emacs/src/keyboard.c      /^top_level_1 (Lisp_Object ignore)$/
 +top_level_2   c-src/emacs/src/keyboard.c      /^top_level_2 (void)$/
 +total_keys    c-src/emacs/src/keyboard.c      97
 +total_size_of_entries c-src/etags.c   /^total_size_of_entries (register node *np)$/
 +total_surrounding     cp-src/conway.cpp       /^int site::total_surrounding(void)$/
 +totally_unblock_input c-src/emacs/src/keyboard.c      /^totally_unblock_input (void)$/
 +tpcmd c-src/h.h       8
 +tpcmd c-src/h.h       15
 +track-mouse   c-src/emacs/src/keyboard.c      /^DEFUN ("internal--track-mouse", Ftrack_mouse, Stra/
 +tracking_off  c-src/emacs/src/keyboard.c      /^tracking_off (Lisp_Object old_value)$/
 +traffic_light cp-src/conway.cpp       /^void traffic_light(int x, int y)$/
 +translate     c-src/emacs/src/regex.h 361
 +treats        cp-src/c.C      131
 +tt    prol-src/natded.prolog  /^tt:-$/
 +tt=cmtt10     tex-src/texinfo.tex     /^\\font\\deftt=cmtt10 scaled \\magstep1$/
 +tty_read_avail_input  c-src/emacs/src/keyboard.c      /^tty_read_avail_input (struct terminal *terminal,$/
 +ttypeseen     c-src/etags.c   2430
 +typdef        c-src/etags.c   2434
 +type  c-src/etags.c   2271
 +type  c-src/emacs/src/gmalloc.c       145
 +type  c-src/emacs/src/lisp.h  2276
 +type  c-src/emacs/src/lisp.h  2286
 +type  c-src/emacs/src/lisp.h  2296
 +type  c-src/emacs/src/lisp.h  2304
 +type  c-src/emacs/src/lisp.h  2364
 +type  c-src/emacs/src/lisp.h  3025
 +typefunargs   tex-src/texinfo.tex     /^\\deftypefunargs {#3}\\endgroup %$/
 +typefunargs   tex-src/texinfo.tex     /^\\deftypefunargs {#4}\\endgroup %$/
 +typemargin    tex-src/texinfo.tex     /^\\newskip\\deftypemargin \\deftypemargin=12pt$/
 +typemargin    tex-src/texinfo.tex     /^\\rlap{\\rightline{{\\rm #2}\\hskip \\deftypemargin}}}%/
 +u     c-src/emacs/src/lisp.h  2397
 +u_any c-src/emacs/src/lisp.h  2214
 +u_boolfwd     c-src/emacs/src/lisp.h  2371
 +u_buffer_objfwd       c-src/emacs/src/lisp.h  2373
 +u_finalizer   c-src/emacs/src/lisp.h  2219
 +u_free        c-src/emacs/src/lisp.h  2215
 +u_intfwd      c-src/emacs/src/lisp.h  2370
 +u_kboard_objfwd       c-src/emacs/src/lisp.h  2374
 +u_marker      c-src/emacs/src/lisp.h  2216
 +u_objfwd      c-src/emacs/src/lisp.h  2372
 +u_overlay     c-src/emacs/src/lisp.h  2217
 +u_save_value  c-src/emacs/src/lisp.h  2218
 +unargs        tex-src/texinfo.tex     /^\\defunargs {#2}\\endgroup %$/
 +unargs        tex-src/texinfo.tex     /^\\defunargs {#2}\\endgroup %$/
 +unargs        tex-src/texinfo.tex     /^\\defunargs {#2}\\endgroup %$/
 +unargs        tex-src/texinfo.tex     /^\\defunargs {#3}\\endgroup %$/
 +unargs        tex-src/texinfo.tex     /^\\defunargs {#3}\\endgroup %$/
 +unblock_input c-src/emacs/src/keyboard.c      /^unblock_input (void)$/
 +unblock_input_to      c-src/emacs/src/keyboard.c      /^unblock_input_to (int level)$/
 +unchar        c-src/h.h       99
 +unexpand-abbrev       c-src/abbrev.c  /^DEFUN ("unexpand-abbrev", Funexpand_abbrev, Sunexp/
 +unread_switch_frame   c-src/emacs/src/keyboard.c      204
 +unsignedp     cccp.y  113
 +unsignedp     y-src/cccp.y    112
 +uprintmax_t   c-src/emacs/src/lisp.h  149
 +uprintmax_t   c-src/emacs/src/lisp.h  154
++usage perl-src/yagrip.pl      /^sub usage {$/
 +usecharno     c-src/etags.c   210
 +used  c-src/emacs/src/regex.h 347
 +used_syntax   c-src/emacs/src/regex.h 398
 +user_cmp_function     c-src/emacs/src/lisp.h  1814
 +user_error    c-src/emacs/src/keyboard.c      /^user_error (const char *msg)$/
 +user_hash_function    c-src/emacs/src/lisp.h  1811
 +user_signal_info      c-src/emacs/src/keyboard.c      7235
 +user_signals  c-src/emacs/src/keyboard.c      7250
 +usfreelock_ptr/t      ada-src/etags-test-for.ada      /^   type usfreelock_ptr is access$/
 +val   c-src/getopt.h  84
 +val   c-src/emacs/src/lisp.h  691
 +val   c-src/emacs/src/lisp.h  3027
 +val   prol-src/natded.prolog  /^val(X) --> ['['], valseq(X), [']'].$/
 +valcell       c-src/emacs/src/lisp.h  2357
 +valid c-src/etags.c   220
 +valid c-src/etags.c   2502
 +validate      php-src/lce_functions.php       /^      function validate($value)$/
 +validate      php-src/lce_functions.php       /^      function validate($value)$/
 +valloc        c-src/emacs/src/gmalloc.c       /^valloc (size_t size)$/
 +valseq        prol-src/natded.prolog  /^valseq([Val|Vals]) --> val(Val), plusvalseq(Vals)./
 +value c-src/emacs/src/lisp.h  687
 +value cccp.y  113
 +value y-src/cccp.y    112
 +var   c-src/emacs/src/keyboard.c      11023
 +var   c-src/emacs/src/lisp.h  3137
 +varargs       tex-src/texinfo.tex     /^\\defvarargs {#3}\\endgroup %$/
 +varargs       tex-src/texinfo.tex     /^\\defvarargs {#3}\\endgroup %$/
 +varargs       tex-src/texinfo.tex     /^\\defvarargs {#2}\\endgroup %$/
 +varargs       tex-src/texinfo.tex     /^\\defvarargs {#2}\\endgroup %$/
 +vcopy c-src/emacs/src/lisp.h  /^vcopy (Lisp_Object v, ptrdiff_t offset, Lisp_Objec/
 +vectorlike_header     c-src/emacs/src/lisp.h  1343
 +verde cp-src/c.C      40
 +verify-tags-table-function    el-src/emacs/lisp/progmodes/etags.el    /^(defvar verify-tags-table-function nil$/
 +verify_ascii  c-src/emacs/src/lisp.h  /^# define verify_ascii(str) (str)$/
 +vignore       c-src/etags.c   2417
 +visit-tags-table      el-src/emacs/lisp/progmodes/etags.el    /^(defun visit-tags-table (file &optional local)$/
 +visit-tags-table-buffer       el-src/emacs/lisp/progmodes/etags.el    /^(defun visit-tags-table-buffer (&optional cont)$/
 +void  c-src/emacs/src/lisp.h  /^INLINE void (check_cons_list) (void) { lisp_h_chec/
 +voidfuncptr   c-src/emacs/src/lisp.h  2108
 +voidval       cccp.y  116
 +voidval       y-src/cccp.y    115
 +wait_status_ptr_t     c.c     161
 +waiting_for_input     c-src/emacs/src/keyboard.c      150
 +warning       cccp.y  /^warning (msg)$/
 +warning       y-src/cccp.y    /^warning (msg)$/
 +weak  c-src/emacs/src/lisp.h  1830
 +weak_alias    c-src/emacs/src/gmalloc.c       /^weak_alias (free, cfree)$/
 +web ftp publish       make-src/Makefile       /^web ftp publish:$/
 +what  c-src/etags.c   252
 +wheel_syms    c-src/emacs/src/keyboard.c      4628
 +where c-src/emacs/src/lisp.h  2348
 +where cp-src/clheir.hpp       77
 +where_in_registry     cp-src/clheir.hpp       15
 +windowWillClose       objcpp-src/SimpleCalc.M /^- windowWillClose:sender$/
 +wipe_kboard   c-src/emacs/src/keyboard.c      /^wipe_kboard (KBOARD *kb)$/
 +womboid       c-src/h.h       63
 +womboid       c-src/h.h       75
 +word_size     c-src/emacs/src/lisp.h  1473
 +write php-src/lce_functions.php       /^      function write()$/
 +write php-src/lce_functions.php       /^      function write($save="yes")$/
 +write1=       ruby-src/test1.ru       /^    attr_reader :read1 , :read2; attr_writer :writ/
 +write2=       ruby-src/test1.ru       /^    attr_reader :read1 , :read2; attr_writer :writ/
 +write_abbrev  c-src/abbrev.c  /^write_abbrev (sym, stream)$/
 +write_classname       c-src/etags.c   /^write_classname (linebuffer *cn, const char *quali/
 +write_lex     prol-src/natded.prolog  /^write_lex(File):-$/
 +write_lex_cat prol-src/natded.prolog  /^write_lex_cat(File):-$/
 +write_xyc     cp-src/screen.cpp       /^void write_xyc(int x, int y, char c)$/
 +writebreak    prol-src/natded.prolog  /^writebreak([]).$/
 +writebreaklex prol-src/natded.prolog  /^writebreaklex([]).$/
 +writecat      prol-src/natded.prolog  /^writecat(np(ind(sng),nm(_)),np,[],[]):-!.$/
 +writelist     prol-src/natded.prolog  /^writelist([der(Ws)|Ws2]):-$/
 +writelistsubs prol-src/natded.prolog  /^writelistsubs([],X):-$/
 +writenamestring       pas-src/common.pas      /^procedure writenamestring;(*($/
 +writesubs     prol-src/natded.prolog  /^writesubs([]).$/
 +writesups     prol-src/natded.prolog  /^writesups([]).$/
 +written       c-src/etags.c   211
 +x     c.c     153
 +x     c.c     179
 +x     c.c     188
 +x     c.c     189
 +x     cp-src/c.C      53
 +x     cp-src/c.C      80
 +x     cp-src/conway.hpp       7
 +x     cp-src/clheir.hpp       49
 +x     cp-src/clheir.hpp       58
 +x     cp-src/fail.C   10
 +x     cp-src/fail.C   44
 +x     tex-src/texinfo.tex     /^\\refx{#1-snt}{} [\\printednodename], page\\tie\\refx{/
 +x-get-selection-internal      c.c     /^DEFUN ("x-get-selection-internal", Fx_get_selectio/
 +x-get-selection-internal      c.c     /^       Fx_get_selection_internal, Sx_get_selection/
 +xcar_addr     c-src/emacs/src/lisp.h  /^xcar_addr (Lisp_Object c)$/
 +xcdr_addr     c-src/emacs/src/lisp.h  /^xcdr_addr (Lisp_Object c)$/
 +xdiff make-src/Makefile       /^xdiff: ETAGS EXTAGS ${infiles}$/
 +xmalloc       c-src/etags.c   /^xmalloc (size_t size)$/
 +xnew  c-src/etags.c   /^#define xnew(n, Type)      ((Type *) xmalloc ((n) /
 +xrealloc      c-src/etags.c   /^xrealloc (void *ptr, size_t size)$/
 +xref-etags-location   el-src/emacs/lisp/progmodes/etags.el    /^(defclass xref-etags-location (xref-location)$/
 +xref-location-line    el-src/emacs/lisp/progmodes/etags.el    /^(cl-defmethod xref-location-line ((l xref-etags-lo/
 +xref-location-marker  el-src/emacs/lisp/progmodes/etags.el    /^(cl-defmethod xref-location-marker ((l xref-etags-/
 +xref-make-etags-location      el-src/emacs/lisp/progmodes/etags.el    /^(defun xref-make-etags-location (tag-info file)$/
 +xrnew c-src/etags.c   /^#define xrnew(op, n, Type) ((op) = (Type *) xreall/
 +xx    make-src/Makefile       /^xx="this line is here because of a fontlock bug$/
 +xyz   ruby-src/test1.ru       /^    alias_method :xyz,$/
 +y     cp-src/conway.hpp       7
 +y     cp-src/clheir.hpp       49
 +y     cp-src/clheir.hpp       58
 +y-get-selection-internal      c.c     /^      Fy_get_selection_internal, Sy_get_selection_/
 +yyalloc       /usr/share/bison/bison.simple   83
 +yyalloc       /usr/share/bison/bison.simple   84
 +yycheck       parse.y 330
 +yycheck       cccp.y  301
 +yyclearin     /usr/share/bison/bison.simple   149
 +yyclearin     /usr/share/bison/bison.simple   150
 +yydebug       /usr/share/bison/bison.simple   237
 +yydebug       /usr/share/bison/bison.simple   238
 +yydefact      parse.y 219
 +yydefact      cccp.y  239
 +yydefgoto     parse.y 237
 +yydefgoto     cccp.y  251
 +yyerrhandle   /usr/share/bison/bison.simple   848
 +yyerrhandle   /usr/share/bison/bison.simple   848
 +yyerrlab1     /usr/share/bison/bison.simple   823
 +yyerrlab1     /usr/share/bison/bison.simple   823
 +yyerrok       /usr/share/bison/bison.simple   148
 +yyerrok       /usr/share/bison/bison.simple   149
 +yyerror       cccp.y  /^yyerror (s)$/
 +yyerror       y-src/cccp.y    /^yyerror (s)$/
 +yyerrstatus   /usr/share/bison/bison.simple   846
 +yyerrstatus   /usr/share/bison/bison.simple   846
 +yylex cccp.y  /^yylex ()$/
 +yylex y-src/cccp.y    /^yylex ()$/
 +yyls  /usr/share/bison/bison.simple   88
 +yyls  /usr/share/bison/bison.simple   89
 +yylsp /usr/share/bison/bison.simple   748
 +yylsp /usr/share/bison/bison.simple   921
 +yylsp /usr/share/bison/bison.simple   748
 +yylsp /usr/share/bison/bison.simple   921
 +yymemcpy      /usr/share/bison/bison.simple   264
 +yymemcpy      /usr/share/bison/bison.simple   /^yymemcpy (char *yyto, const char *yyfrom, YYSIZE_T/
 +yymemcpy      /usr/share/bison/bison.simple   265
 +yymemcpy      /usr/share/bison/bison.simple   /^yymemcpy (char *yyto, const char *yyfrom, YYSIZE_T/
 +yyn   /usr/share/bison/bison.simple   755
 +yyn   /usr/share/bison/bison.simple   861
 +yyn   /usr/share/bison/bison.simple   895
 +yyn   /usr/share/bison/bison.simple   903
 +yyn   /usr/share/bison/bison.simple   755
 +yyn   /usr/share/bison/bison.simple   861
 +yyn   /usr/share/bison/bison.simple   895
 +yyn   /usr/share/bison/bison.simple   903
 +yynewstate    /usr/share/bison/bison.simple   763
 +yynewstate    /usr/share/bison/bison.simple   925
 +yynewstate    /usr/share/bison/bison.simple   763
 +yynewstate    /usr/share/bison/bison.simple   925
 +yypact        parse.y 242
 +yypact        cccp.y  256
 +yyparse       /usr/share/bison/bison.simple   /^yyparse (YYPARSE_PARAM_ARG)$/
 +yyparse       /usr/share/bison/bison.simple   /^yyparse (YYPARSE_PARAM_ARG)$/
 +yypgoto       parse.y 260
 +yypgoto       cccp.y  268
 +yyprhs        parse.y 134
 +yyprhs        cccp.y  167
 +yyr1  parse.y 197
 +yyr1  cccp.y  219
 +yyr2  parse.y 207
 +yyr2  cccp.y  228
 +yyresult      /usr/share/bison/bison.simple   932
 +yyresult      /usr/share/bison/bison.simple   939
 +yyresult      /usr/share/bison/bison.simple   947
 +yyresult      /usr/share/bison/bison.simple   932
 +yyresult      /usr/share/bison/bison.simple   939
 +yyresult      /usr/share/bison/bison.simple   947
 +yyreturn      /usr/share/bison/bison.simple   933
 +yyreturn      /usr/share/bison/bison.simple   940
 +yyreturn      /usr/share/bison/bison.simple   933
 +yyreturn      /usr/share/bison/bison.simple   940
 +yyrhs parse.y 142
 +yyrhs cccp.y  174
 +yyrline       parse.y 171
 +yyrline       cccp.y  195
 +yyss  /usr/share/bison/bison.simple   85
 +yyss  /usr/share/bison/bison.simple   86
 +yystate       /usr/share/bison/bison.simple   757
 +yystate       /usr/share/bison/bison.simple   761
 +yystate       /usr/share/bison/bison.simple   875
 +yystate       /usr/share/bison/bison.simple   924
 +yystate       /usr/share/bison/bison.simple   757
 +yystate       /usr/share/bison/bison.simple   761
 +yystate       /usr/share/bison/bison.simple   875
 +yystate       /usr/share/bison/bison.simple   924
 +yystpcpy      /usr/share/bison/bison.simple   316
 +yystpcpy      /usr/share/bison/bison.simple   /^yystpcpy (char *yydest, const char *yysrc)$/
 +yystpcpy      /usr/share/bison/bison.simple   317
 +yystpcpy      /usr/share/bison/bison.simple   /^yystpcpy (char *yydest, const char *yysrc)$/
 +yystrlen      /usr/share/bison/bison.simple   293
 +yystrlen      /usr/share/bison/bison.simple   /^yystrlen (const char *yystr)$/
 +yystrlen      /usr/share/bison/bison.simple   294
 +yystrlen      /usr/share/bison/bison.simple   /^yystrlen (const char *yystr)$/
 +yystype       cccp.y  118
 +yytable       parse.y 269
 +yytable       cccp.y  277
 +yytname       parse.y 185
 +yytname       cccp.y  208
 +yytranslate   parse.y 101
 +yytranslate   cccp.y  135
 +yyvs  /usr/share/bison/bison.simple   86
 +yyvs  /usr/share/bison/bison.simple   87
 +yyvsp /usr/share/bison/bison.simple   746
 +yyvsp /usr/share/bison/bison.simple   919
 +yyvsp /usr/share/bison/bison.simple   746
 +yyvsp /usr/share/bison/bison.simple   919
 +z     c.c     144
 +z     c.c     164
 +z     cp-src/clheir.hpp       49
 +z     cp-src/clheir.hpp       58
 +|     tex-src/texinfo.tex     /^\\def|{{\\tt \\char '174}}$/
 +~     tex-src/texinfo.tex     /^\\def~{{\\tt \\char '176}}$/
 +~A    cp-src/c.C      /^A::~A() {}$/
 +~B    cp-src/c.C      /^    ~B() {};$/
 +~MDiagArray2  cp-src/MDiagArray2.h    /^  ~MDiagArray2 (void) { }$/
 +~generic_object       cp-src/clheir.cpp       /^generic_object::~generic_object(void)$/
index d2550863428add2c1f15f16df08dbe940f5f8e69,0000000000000000000000000000000000000000..58661bbf600b839531b9cb73cbaa734098ad596e
mode 100644,000000..100644
--- /dev/null
@@@ -1,4311 -1,0 +1,4311 @@@
- perl-src/htlmify-cystic,1443
 +\f
 +ada-src/etags-test-for.ada,1969
 +   type LL_Task_Procedure_Access \7fLL_Task_Procedure_Access/t\ 11,0
 +   function Body_Required\7fBody_Required/f\ 13,78
 +   type Type_Specific_Data \7fType_Specific_Data/t\ 111,280
 +   function "abs"\7fabs/f\ 119,504
 +   type Barrier_Function_Pointer \7fBarrier_Function_Pointer/t\ 121,577
 +   function "="\7f=/f\ 127,722
 +   type usfreelock_ptr \7fusfreelock_ptr/t\ 130,803
 +   function p \7fp/f\ 133,891
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 137,1054
 +function p \7fp/f\ 139,1094
 +package Pkg1 \7fPkg1/s\ 144,1203
 +  type Private_T \7fPrivate_T/t\ 146,1220
 +  package Inner1 \7fInner1/s\ 148,1250
 +    procedure Private_T;\7fPrivate_T/p\ 149,1270
 +  package Inner2 \7fInner2/s\ 152,1310
 +    task Private_T;\7fPrivate_T/k\ 153,1330
 +  type Public_T \7fPublic_T/t\ 156,1365
 +  procedure Pkg1_Proc1;\7fPkg1_Proc1/p\ 162,1450
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 164,1475
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 166,1514
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 168,1553
 +  package Pkg1_Pkg1 \7fPkg1_Pkg1/s\ 171,1622
 +    procedure Pkg1_Pkg1_Proc1;\7fPkg1_Pkg1_Proc1/p\ 172,1645
 +  task type Task_Type \7fTask_Type/k\ 175,1694
 +  type Private_T \7fPrivate_T/t\ 182,1786
 +package body Pkg1 \7fPkg1/b\ 189,1882
 +  procedure Pkg1_Proc1 \7fPkg1_Proc1/p\ 191,1904
 +  package body Inner1 \7fInner1/b\ 196,1956
 +    procedure Private_T \7fPrivate_T/p\ 197,1981
 +  package body Inner2 \7fInner2/b\ 1103,2054
 +    task body Private_T \7fPrivate_T/b\ 1104,2079
 +  task body Task_Type \7fTask_Type/b\ 1112,2181
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 1126,2367
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 1132,2445
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 1134,2496
 +  package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1140,2596
 +package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1146,2663
 +  procedure Pkg1_Pkg1_Proc1 \7fPkg1_Pkg1_Proc1/p\ 1147,2689
 +function  Pkg1_Func1 \7fPkg1_Func1/f\ 1155,2778
 +package Truc \7fTruc/s\ 1162,2887
 +package Truc.Bidule \7fTruc.Bidule/s\ 1166,2929
 +  protected Bidule \7fBidule/t\ 1168,2953
 +  protected type Machin_T \7fMachin_T/t\ 1172,3007
 +package body Truc.Bidule \7fTruc.Bidule/b\ 1178,3087
 +  protected body Bidule \7fBidule/b\ 1179,3115
 +  protected Machin_T \7fMachin_T/t\ 1186,3207
 +\f
 +ada-src/2ataspri.adb,2190
 +package body System.Task_Primitives \7fSystem.Task_Primitives/b\ 164,2603
 +   package RTE \7fRTE/s\ 169,2712
 +   package TSL \7fTSL/s\ 170,2759
 +   function To_void_ptr \7fTo_void_ptr/f\ 186,3287
 +   function To_TCB_Ptr \7fTo_TCB_Ptr/f\ 189,3366
 +   function pthread_mutexattr_setprotocol\7fpthread_mutexattr_setprotocol/f\ 192,3444
 +   function pthread_mutexattr_setprio_ceiling\7fpthread_mutexattr_setprio_ceiling/f\ 199,3728
 +   procedure Abort_Wrapper\7fAbort_Wrapper/p\ 1115,4302
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 1122,4526
 +   procedure Initialize_LL_Tasks \7fInitialize_LL_Tasks/p\ 1131,4830
 +   function Self \7fSelf/f\ 1160,5586
 +   procedure Initialize_Lock\7fInitialize_Lock/p\ 1174,5958
 +   procedure Finalize_Lock \7fFinalize_Lock/p\ 1210,6927
 +   procedure Write_Lock \7fWrite_Lock/p\ 1226,7338
 +   procedure Read_Lock \7fRead_Lock/p\ 1239,7700
 +   procedure Unlock \7fUnlock/p\ 1246,7850
 +   procedure Initialize_Cond \7fInitialize_Cond/p\ 1258,8160
 +   procedure Finalize_Cond \7fFinalize_Cond/p\ 1286,8979
 +   procedure Cond_Wait \7fCond_Wait/p\ 1300,9303
 +   procedure Cond_Timed_Wait\7fCond_Timed_Wait/p\ 1312,9661
 +   procedure Cond_Signal \7fCond_Signal/p\ 1343,10510
 +   procedure Set_Priority\7fSet_Priority/p\ 1355,10836
 +   procedure Set_Own_Priority \7fSet_Own_Priority/p\ 1372,11243
 +   function Get_Priority \7fGet_Priority/f\ 1385,11598
 +   function Get_Own_Priority \7fGet_Own_Priority/f\ 1398,12023
 +   procedure Create_LL_Task\7fCreate_LL_Task/p\ 1412,12438
 +      function To_Start_Addr \7fTo_Start_Addr/f\ 1426,12873
 +   procedure Exit_LL_Task \7fExit_LL_Task/p\ 1491,14995
 +   procedure Abort_Task \7fAbort_Task/p\ 1500,15158
 +   procedure Test_Abort \7fTest_Abort/p\ 1518,15716
 +   procedure Install_Abort_Handler \7fInstall_Abort_Handler/p\ 1527,15878
 +   procedure Abort_Wrapper\7fAbort_Wrapper/p\ 1557,16939
 +      function Address_To_Call_State \7fAddress_To_Call_State/f\ 1562,17062
 +   procedure Install_Error_Handler \7fInstall_Error_Handler/p\ 1573,17351
 +   procedure LL_Assert \7fLL_Assert/p\ 1599,18146
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 1608,18299
 +   procedure Initialize_TAS_Cell \7fInitialize_TAS_Cell/p\ 1630,19010
 +   procedure Finalize_TAS_Cell \7fFinalize_TAS_Cell/p\ 1635,19129
 +   procedure Clear \7fClear/p\ 1640,19236
 +   procedure Test_And_Set \7fTest_And_Set/p\ 1645,19330
 +   function  Is_Set \7fIs_Set/f\ 1659,19676
 +\f
 +ada-src/2ataspri.ads,2313
 +package System.Task_Primitives \7fSystem.Task_Primitives/s\ 158,3169
 +   type LL_Task_Procedure_Access \7fLL_Task_Procedure_Access/t\ 162,3253
 +   type Pre_Call_State \7fPre_Call_State/t\ 164,3331
 +   type Task_Storage_Size \7fTask_Storage_Size/t\ 166,3378
 +   type Machine_Exceptions \7fMachine_Exceptions/t\ 168,3433
 +   type Error_Information \7fError_Information/t\ 170,3499
 +   type Lock \7fLock/t\ 172,3569
 +   type Condition_Variable \7fCondition_Variable/t\ 173,3594
 +   type Task_Control_Block \7fTask_Control_Block/t\ 181,3955
 +   type TCB_Ptr \7fTCB_Ptr/t\ 189,4241
 +   function Address_To_TCB_Ptr \7fAddress_To_TCB_Ptr/f\ 193,4333
 +   procedure Initialize_LL_Tasks \7fInitialize_LL_Tasks/p\ 196,4425
 +   function Self \7fSelf/f\ 1100,4602
 +   procedure Initialize_Lock \7fInitialize_Lock/p\ 1103,4707
 +   procedure Finalize_Lock \7fFinalize_Lock/p\ 1107,4879
 +   procedure Write_Lock \7fWrite_Lock/p\ 1111,5034
 +   procedure Read_Lock \7fRead_Lock/p\ 1118,5428
 +   procedure Unlock \7fUnlock/p\ 1128,5995
 +   procedure Initialize_Cond \7fInitialize_Cond/p\ 1135,6300
 +   procedure Finalize_Cond \7fFinalize_Cond/p\ 1138,6413
 +   procedure Cond_Wait \7fCond_Wait/p\ 1142,6591
 +   procedure Cond_Timed_Wait\7fCond_Timed_Wait/p\ 1155,7396
 +   procedure Cond_Signal \7fCond_Signal/p\ 1164,7812
 +   procedure Set_Priority \7fSet_Priority/p\ 1169,8040
 +   procedure Set_Own_Priority \7fSet_Own_Priority/p\ 1173,8200
 +   function Get_Priority \7fGet_Priority/f\ 1177,8348
 +   function Get_Own_Priority \7fGet_Own_Priority/f\ 1181,8504
 +   procedure Create_LL_Task\7fCreate_LL_Task/p\ 1185,8647
 +   procedure Exit_LL_Task;\7fExit_LL_Task/p\ 1198,9282
 +   procedure Abort_Task \7fAbort_Task/p\ 1203,9516
 +   procedure Test_Abort;\7fTest_Abort/p\ 1210,9878
 +   type Abort_Handler_Pointer \7fAbort_Handler_Pointer/t\ 1217,10233
 +   procedure Install_Abort_Handler \7fInstall_Abort_Handler/p\ 1219,10312
 +   procedure Install_Error_Handler \7fInstall_Error_Handler/p\ 1226,10741
 +   procedure LL_Assert \7fLL_Assert/p\ 1231,10983
 +   type Proc \7fProc/t\ 1238,11240
 +   type TAS_Cell \7fTAS_Cell/t\ 1242,11328
 +   procedure Initialize_TAS_Cell \7fInitialize_TAS_Cell/p\ 1249,11670
 +   procedure Finalize_TAS_Cell \7fFinalize_TAS_Cell/p\ 1255,11941
 +   procedure Clear \7fClear/p\ 1260,12157
 +   procedure Test_And_Set \7fTest_And_Set/p\ 1267,12462
 +   function  Is_Set \7fIs_Set/f\ 1275,12877
 +   type Lock \7fLock/t\ 1283,13155
 +   type Condition_Variable \7fCondition_Variable/t\ 1288,13267
 +   type TAS_Cell \7fTAS_Cell/t\ 1293,13389
 +\f
 +ada-src/waroquiers.ada,1503
 +package Pkg1 \7fPkg1/s\ 13,89
 +  type Private_T \7fPrivate_T/t\ 15,106
 +  package Inner1 \7fInner1/s\ 17,136
 +    procedure Private_T;\7fPrivate_T/p\ 18,156
 +  package Inner2 \7fInner2/s\ 111,196
 +    task Private_T;\7fPrivate_T/k\ 112,216
 +  type Public_T \7fPublic_T/t\ 115,251
 +  procedure Pkg1_Proc1;\7fPkg1_Proc1/p\ 121,336
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 123,361
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 125,400
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 127,439
 +  package Pkg1_Pkg1 \7fPkg1_Pkg1/s\ 130,508
 +    procedure Pkg1_Pkg1_Proc1;\7fPkg1_Pkg1_Proc1/p\ 131,531
 +  task type Task_Type \7fTask_Type/k\ 134,580
 +  type Private_T \7fPrivate_T/t\ 140,671
 +package body Pkg1 \7fPkg1/b\ 146,766
 +  procedure Pkg1_Proc1 \7fPkg1_Proc1/p\ 148,788
 +  package body Inner1 \7fInner1/b\ 153,840
 +    procedure Private_T \7fPrivate_T/p\ 154,865
 +  package body Inner2 \7fInner2/b\ 160,938
 +    task body Private_T \7fPrivate_T/b\ 161,963
 +  task body Task_Type \7fTask_Type/b\ 168,1064
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 182,1250
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 188,1328
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 190,1379
 +  package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 196,1479
 +package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1100,1544
 +  procedure Pkg1_Pkg1_Proc1 \7fPkg1_Pkg1_Proc1/p\ 1101,1570
 +function  Pkg1_Func1 \7fPkg1_Func1/f\ 1107,1657
 +package Truc \7fTruc/s\ 1112,1764
 +package Truc.Bidule \7fTruc.Bidule/s\ 1116,1816
 +  protected Bidule \7fBidule/t\ 1125,1964
 +  protected type Machin_T \7fMachin_T/t\ 1131,2046
 +package body Truc.Bidule \7fTruc.Bidule/b\ 1138,2153
 +  protected body Bidule \7fBidule/b\ 1139,2181
 +  protected body Machin_T \7fMachin_T/b\ 1146,2281
 +\f
 +c-src/abbrev.c,1432
 +Lisp_Object Vabbrev_table_name_list;\7f43,1424
 +Lisp_Object Vglobal_abbrev_table;\7f48,1569
 +Lisp_Object Vfundamental_mode_abbrev_table;\7f52,1680
 +int abbrevs_changed;\7f56,1781
 +int abbrev_all_caps;\7f58,1803
 +Lisp_Object Vabbrev_start_location;\7f63,1952
 +Lisp_Object Vabbrev_start_location_buffer;\7f66,2041
 +Lisp_Object Vlast_abbrev;\7f70,2150
 +Lisp_Object Vlast_abbrev_text;\7f75,2319
 +int last_abbrev_point;\7f79,2409
 +Lisp_Object Vpre_abbrev_expand_hook,\7f83,2482
 +Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;\7f83,2482
 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,\7fmake-abbrev-table\ 185,2546
 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,\7fclear-abbrev-table\ 192,2738
 +DEFUN ("define-abbrev", Fdefine_abbrev,\7fdefine-abbrev\ 1107,3119
 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,\7fdefine-global-abbrev\ 1149,4438
 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,\7fdefine-mode-abbrev\ 1160,4809
 +DEFUN ("abbrev-symbol", Fabbrev_symbol,\7fabbrev-symbol\ 1174,5277
 +DEFUN ("abbrev-expansion", Fabbrev_expansion,\7fabbrev-expansion\ 1202,6241
 +DEFUN ("expand-abbrev", Fexpand_abbrev,\7fexpand-abbrev\ 1218,6756
 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,\7funexpand-abbrev\ 1389,11677
 +write_abbrev \7f426,12884
 +describe_abbrev \7f445,13319
 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,\7finsert-abbrev-table-description\ 1466,13834
 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,\7fdefine-abbrev-table\ 1506,14990
 +syms_of_abbrev \7f540,16067
 +\f
 +c-src/torture.c,197
 +(*tag1 \7ftag1\ 118,452
 +#define notag2 \7f26,553
 +(*tag2 \7ftag2\ 129,630
 +(*tag3 \7ftag3\ 139,772
 +#define notag4 \7f45,861
 +(*tag4 \7ftag4\ 148,955
 +tag5 \7f57,1081
 +tag6 \7f66,1208
 +int pp1(\7f74,1317
 +pp2\7f87,1419
 +pp3(\7f100,1518
 +\f
 +c-src/getopt.h,147
 +#define _GETOPT_H \7f19,794
 +struct option\7f73,2790
 +#define       no_argument     \7f89,3117
 +#define required_argument     \7f90,3140
 +#define optional_argument     \7f91,3168
 +\f
 +c-src/etags.c,10045
 +char pot_etags_version[\7fpot_etags_version\ 181,3470
 +#  undef DEBUG\7f84,3552
 +#  define DEBUG \7f85,3567
 +#  define DEBUG \7f87,3594
 +#  define NDEBUG      \7f88,3617
 +# define _GNU_SOURCE \7f94,3705
 +# undef MSDOS\7f100,3876
 +# undef  WINDOWSNT\7f101,3890
 +# define WINDOWSNT\7f102,3909
 +# undef MSDOS\7f106,3968
 +# define MSDOS \7f107,3982
 +# define MSDOS \7f110,4032
 +# define MAXPATHLEN \7f115,4111
 +# undef HAVE_NTGUI\7f116,4141
 +# undef  DOS_NT\7f117,4160
 +# define DOS_NT\7f118,4176
 +# undef  assert       \7f135,4482
 +# define assert(\7f136,4541
 +# undef  CTAGS\7f146,4857
 +# define CTAGS \7f147,4872
 +# define CTAGS \7f149,4898
 +#define streq(\7f152,4927
 +#define strcaseeq(\7f153,4996
 +#define strneq(\7f154,5075
 +#define strncaseeq(\7f155,5151
 +#define CHARS \7f157,5238
 +#define CHAR(\7f158,5278
 +#define       iswhite(\7f159,5329
 +#define notinname(\7f160,5394
 +#define       begtoken(\7f161,5469
 +#define       intoken(\7f162,5542
 +#define       endtoken(\7f163,5614
 +#define ISALNUM(\7f165,5684
 +#define ISALPHA(\7f166,5722
 +#define ISDIGIT(\7f167,5760
 +#define ISLOWER(\7f168,5798
 +#define lowcase(\7f170,5837
 +#define xnew(\7f179,6015
 +#define xrnew(\7f180,6083
 +typedef void Lang_function \7f182,6164
 +} compressor;\7f188,6365
 +} language;\7f199,6835
 +typedef struct fdesc\7f201,6848
 +} fdesc;\7f212,7366
 +typedef struct node_st\7f214,7376
 +} node;\7f225,7894
 +} linebuffer;\7f239,8248
 +    at_language,\7f245,8344
 +    at_regexp,\7f246,8393
 +    at_filename,\7f247,8437
 +    at_stdin,\7f248,8473
 +    at_end    \7f249,8516
 +} argument;\7f253,8698
 +typedef struct regexp\7f256,8758
 +} regexp;\7f268,9325
 +static void error \7f311,10780
 +# undef STDIN\7f408,15073
 +#define STDIN \7f411,15095
 +static compressor compressors[\7fcompressors\ 1457,17664
 +static const char *Ada_suffixes \7fAda_suffixes\ 1473,17907
 +static const char Ada_help \7f475,17977
 +static const char *Asm_suffixes \7fAsm_suffixes\ 1493,18580
 +static const char Asm_help \7f504,18976
 +static const char *default_C_suffixes \7fdefault_C_suffixes\ 1512,19312
 +static const char default_C_help \7f515,19413
 +static const char default_C_help \7f523,19850
 +static const char *Cplusplus_suffixes \7fCplusplus_suffixes\ 1535,20460
 +static const char Cplusplus_help \7f540,20658
 +static const char *Cjava_suffixes \7fCjava_suffixes\ 1549,21113
 +static char Cjava_help \7f551,21172
 +static const char *Cobol_suffixes \7fCobol_suffixes\ 1556,21337
 +static char Cobol_help \7f558,21402
 +static const char *Cstar_suffixes \7fCstar_suffixes\ 1562,21543
 +static const char *Erlang_suffixes \7fErlang_suffixes\ 1565,21607
 +static const char Erlang_help \7f567,21673
 +const char *Forth_suffixes \7fForth_suffixes\ 1571,21799
 +static const char Forth_help \7f573,21857
 +static const char *Fortran_suffixes \7fFortran_suffixes\ 1577,22008
 +static const char Fortran_help \7f579,22085
 +static const char *HTML_suffixes \7fHTML_suffixes\ 1582,22190
 +static const char HTML_help \7f584,22264
 +static const char *Lisp_suffixes \7fLisp_suffixes\ 1589,22452
 +static const char Lisp_help \7f591,22556
 +static const char *Lua_suffixes \7fLua_suffixes\ 1598,22871
 +static const char Lua_help \7f600,22934
 +static const char *Makefile_filenames \7fMakefile_filenames\ 1603,23010
 +static const char Makefile_help \7f605,23133
 +static const char *Objc_suffixes \7fObjc_suffixes\ 1609,23277
 +static const char Objc_help \7f613,23399
 +static const char *Pascal_suffixes \7fPascal_suffixes\ 1619,23714
 +static const char Pascal_help \7f621,23778
 +static const char *Perl_suffixes \7fPerl_suffixes\ 1626,23966
 +static const char *Perl_interpreters \7fPerl_interpreters\ 1628,24028
 +static const char Perl_help \7f630,24100
 +static const char *PHP_suffixes \7fPHP_suffixes\ 1637,24451
 +static const char PHP_help \7f639,24523
 +static const char *plain_C_suffixes \7fplain_C_suffixes\ 1643,24678
 +static const char *PS_suffixes \7fPS_suffixes\ 1647,24762
 +static const char PS_help \7f649,24848
 +static const char *Prolog_suffixes \7fProlog_suffixes\ 1652,24931
 +static const char Prolog_help \7f654,24993
 +static const char *Python_suffixes \7fPython_suffixes\ 1658,25107
 +static const char Python_help \7f660,25165
 +static const char *Scheme_suffixes \7fScheme_suffixes\ 1665,25347
 +static const char Scheme_help \7f667,25460
 +static const char *TeX_suffixes \7fTeX_suffixes\ 1672,25683
 +static const char TeX_help \7f674,25781
 +static const char *Texinfo_suffixes \7fTexinfo_suffixes\ 1686,26316
 +static const char Texinfo_help \7f688,26395
 +static const char *Yacc_suffixes \7fYacc_suffixes\ 1691,26492
 +static const char Yacc_help \7f693,26606
 +static const char auto_help \7f699,26856
 +static const char none_help \7f703,27020
 +static const char no_lang_help \7f707,27143
 +static language lang_names \7f718,27355
 +print_language_names \7f753,29532
 +# define EMACS_NAME \7f786,30755
 +# define VERSION \7f789,30811
 +print_version \7f792,30869
 +# define PRINT_UNDOCUMENTED_OPTIONS_HELP \7f804,31173
 +print_help \7f808,31250
 +main \7f981,37438
 +get_compressor_from_suffix \7f1319,46217
 +get_language_from_langname \7f1355,47158
 +get_language_from_interpreter \7f1377,47545
 +get_language_from_filename \7f1399,47976
 +process_file_name \7f1433,48834
 +process_file \7f1555,51665
 +init \7f1632,54150
 +find_entries \7f1656,54901
 +make_tag \7f1814,59707
 +pfnote \7f1856,60942
 +free_tree \7f1917,62744
 +free_fdesc \7f1935,63029
 +add_node \7f1955,63472
 +invalidate_nodes \7f2035,65537
 +static int number_len \7f2068,66193
 +total_size_of_entries \7f2087,66694
 +put_entries \7f2107,67154
 +#define C_EXT \7f2193,68995
 +#define C_PLAIN \7f2194,69037
 +#define C_PLPL        \7f2195,69070
 +#define C_STAR        \7f2196,69104
 +#define C_JAVA        \7f2197,69137
 +#define C_AUTO \7f2198,69172
 +#define YACC  \7f2199,69242
 +enum sym_type\7f2204,69312
 +  st_none,\7f2206,69328
 +  st_C_objprot,\7f2207,69339
 +  st_C_objprot, st_C_objimpl,\7f2207,69339
 +  st_C_objprot, st_C_objimpl, st_C_objend,\7f2207,69339
 +  st_C_gnumacro,\7f2208,69382
 +  st_C_ignore,\7f2209,69399
 +  st_C_ignore, st_C_attribute,\7f2209,69399
 +  st_C_javastruct,\7f2210,69430
 +  st_C_operator,\7f2211,69449
 +  st_C_class,\7f2212,69466
 +  st_C_class, st_C_template,\7f2212,69466
 +  st_C_struct,\7f2213,69495
 +  st_C_struct, st_C_extern,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum, st_C_define,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum, st_C_define, st_C_typedef\7f2213,69495
 +struct C_stab_entry \7f2271,71278
 +hash \7f2275,71409
 +in_word_set \7f2321,72937
 +      TOTAL_KEYWORDS \7f2325,73018
 +      MIN_WORD_LENGTH \7f2326,73045
 +      MAX_WORD_LENGTH \7f2327,73072
 +      MIN_HASH_VALUE \7f2328,73100
 +      MAX_HASH_VALUE \7f2329,73126
 +C_symtype \7f2387,74985
 +static bool inattribute;\7f2400,75234
 +  fvnone,\7f2408,75435
 +  fdefunkey,\7f2409,75466
 +  fdefunname,\7f2410,75512
 +  foperator,\7f2411,75556
 +  fvnameseen,\7f2412,75613
 +  fstartlist,\7f2413,75666
 +  finlist,\7f2414,75722
 +  flistseen,\7f2415,75765
 +  fignore,\7f2416,75813
 +  vignore     \7f2417,75856
 +} fvdef;\7f2418,75901
 +static bool fvextern;\7f2420,75911
 +  tnone,\7f2428,76089
 +  tkeyseen,\7f2429,76119
 +  ttypeseen,\7f2430,76160
 +  tinbody,\7f2431,76199
 +  tend,\7f2432,76238
 +  tignore     \7f2433,76279
 +} typdef;\7f2434,76320
 +  snone,\7f2443,76499
 +  skeyseen,\7f2445,76575
 +  stagseen,\7f2446,76620
 +  scolonseen  \7f2447,76661
 +} structdef;\7f2448,76715
 +static const char *objtag \7fobjtag\ 12453,76809
 +  dnone,\7f2460,76942
 +  dsharpseen,\7f2461,76972
 +  ddefineseen,\7f2462,77025
 +  dignorerest \7f2463,77070
 +} definedef;\7f2464,77112
 +  onone,\7f2472,77267
 +  oprotocol,\7f2473,77297
 +  oimplementation,\7f2474,77347
 +  otagseen,\7f2475,77395
 +  oparenseen,\7f2476,77431
 +  ocatseen,\7f2477,77486
 +  oinbody,\7f2478,77525
 +  omethodsign,\7f2479,77568
 +  omethodtag,\7f2480,77626
 +  omethodcolon,\7f2481,77666
 +  omethodparm,\7f2482,77709
 +  oignore     \7f2483,77755
 +} objdef;\7f2484,77787
 +static struct tok\7f2491,77944
 +} token;\7f2508,78626
 +} cstack;\7f2523,79136
 +#define nestlev       \7f2525,79264
 +#define instruct      \7f2527,79369
 +pushclass_above \7f2531,79489
 +popclass_above \7f2550,79948
 +write_classname \7f2564,80162
 +consider_token \7f2613,81341
 +} lbs[\7flbs\ 12924,88532
 +#define current_lb_is_new \7f2926,88543
 +#define switch_line_buffers(\7f2927,88588
 +#define curlb \7f2929,88641
 +#define newlb \7f2930,88672
 +#define curlinepos \7f2931,88703
 +#define newlinepos \7f2932,88744
 +#define plainc \7f2934,88786
 +#define cplpl \7f2935,88830
 +#define cjava \7f2936,88861
 +#define CNL_SAVE_DEFINEDEF(\7f2938,88905
 +#define CNL(\7f2947,89117
 +make_C_tag \7f2960,89375
 +C_entries \7f2986,90194
 +default_C_entries \7f3833,110156
 +plain_C_entries \7f3840,110276
 +Cplusplus_entries \7f3847,110364
 +Cjava_entries \7f3854,110460
 +Cstar_entries \7f3861,110550
 +Yacc_entries \7f3868,110642
 +#define LOOP_ON_INPUT_LINES(\7f3875,110720
 +#define LOOKING_AT(\7f3884,111056
 +#define LOOKING_AT_NOCASE(\7f3891,111461
 +just_read_file \7f3901,111861
 +F_takeprec \7f3914,112039
 +F_getit \7f3937,112366
 +Fortran_functions \7f3961,112840
 +Ada_getit \7f4052,114669
 +Ada_funcs \7f4115,116044
 +Asm_labels \7f4228,118582
 +Perl_functions \7f4261,119549
 +Python_functions \7f4357,122057
 +PHP_functions \7f4387,122684
 +Cobol_paragraphs \7f4466,124471
 +Makefile_targets \7f4494,125029
 +Pascal_functions \7f4529,125950
 +L_getit \7f4709,130318
 +Lisp_functions \7f4725,130664
 +Lua_functions \7f4785,131850
 +PS_functions \7f4811,132385
 +Forth_words \7f4841,133053
 +Scheme_functions \7f4877,134092
 +static linebuffer *TEX_toktab \7fTEX_toktab\ 14908,134781
 +static const char *TEX_defenv \7fTEX_defenv\ 14912,134974
 +static char TEX_esc \7f4920,135261
 +static char TEX_opgrp \7f4921,135289
 +static char TEX_clgrp \7f4922,135318
 +TeX_commands \7f4928,135395
 +#define TEX_LESC \7f4986,136652
 +#define TEX_SESC \7f4987,136674
 +TEX_mode \7f4992,136804
 +TEX_decode_env \7f5026,137509
 +Texinfo_nodes \7f5071,138554
 +HTML_labels \7f5094,139013
 +Prolog_functions \7f5219,142347
 +prolog_skip_comment \7f5255,143128
 +prolog_pr \7f5281,143736
 +prolog_atom \7f5319,144628
 +Erlang_functions \7f5379,145666
 +erlang_func \7f5438,146965
 +erlang_attribute \7f5476,147642
 +erlang_atom \7f5496,148061
 +scan_separators \7f5534,149080
 +analyze_regex \7f5586,150460
 +add_regex \7f5654,152050
 +substitute \7f5767,154797
 +free_regexps \7f5814,155837
 +regex_tag_multiline \7f5836,156291
 +nocase_tail \7f5913,158263
 +get_tag \7f5928,158519
 +readline_internal \7f5959,159455
 +readline \7f6037,161296
 +savestr \7f6230,167243
 +savenstr \7f6240,167473
 +skip_spaces \7f6249,167679
 +skip_non_spaces \7f6258,167833
 +skip_name \7f6267,167983
 +fatal \7f6277,168156
 +pfatal \7f6284,168253
 +suggest_asking_for_help \7f6291,168332
 +error \7f6300,168554
 +concat \7f6313,168846
 +etags_getcwd \7f6329,169259
 +relative_filename \7f6350,169725
 +absolute_filename \7f6389,170751
 +absolute_dirname \7f6453,172416
 +filename_is_absolute \7f6472,172845
 +canonicalize_filename \7f6484,173096
 +# define ISUPPER(\7f6491,173235
 +linebuffer_init \7f6514,173656
 +linebuffer_setlen \7f6524,173887
 +xmalloc \7f6536,174148
 +xrealloc \7f6545,174314
 +\f
 +c-src/exit.c,47
 +  } __libc_atexit;\7f30,1017
 +DEFUN(exit,\7f38,1258
 +\f
 +c-src/exit.strange_suffix,47
 +  } __libc_atexit;\7f30,1017
 +DEFUN(exit,\7f38,1258
 +\f
 +c-src/sysdep.h,491
 +#define       ENTRY(\7f21,870
 +#define       PSEUDO(\7f26,977
 +    movl $SYS_##syscall_nam\7f$SYS_##syscall_na\ 131,1137
 +    movl $SYS_##syscall_name, %eax;\7feax\ 131,1137
 +    int $0x80;\7f32,1185
 +    test %eax,\7feax\ 133,1215
 +    test %eax, %eax;\7feax\ 133,1215
 +    jl syscall_error;\7f34,1250
 +#define       XCHG_0  \7f47,1567
 +#define       XCHG_1  \7f48,1611
 +#define       XCHG_2  \7f49,1653
 +#define       XCHG_3  \7f50,1696
 +#define       XCHG_4  \7f51,1739
 +#define       XCHG_5  \7f52,1782
 +#define       r0      \7f54,1826
 +#define       r1      \7f55,1880
 +#define scratch \7f56,1937
 +#define MOVE(\7f57,2006
 +\f
 +c-src/tab.c,196
 +static int            count_words(\7f15,263
 +static char           *get_word(\7fget_word\ 135,553
 +void                  tab_free(\7f59,966
 +char                  **tab_fill(\7ftab_fill\ 170,1129
 +int                   tab_delete_first(\7f91,1638
 +int                   tab_count_words(\7f103,1820
 +\f
 +c-src/dostorture.c,198
 +(*tag1 \7ftag1\ 118,468
 +#define notag2 \7f26,577
 +(*tag2 \7ftag2\ 129,657
 +(*tag3 \7ftag3\ 139,809
 +#define notag4 \7f45,904
 +(*tag4 \7ftag4\ 148,1001
 +tag5 \7f57,1136
 +tag6 \7f66,1272
 +int pp1(\7f74,1389
 +pp2\7f87,1504
 +pp3(\7f100,1616
 +\f
 +c-src/emacs/src/gmalloc.c,3539
 +#define USE_PTHREAD\7f25,1002
 +#undef get_current_dir_name\7f33,1126
 +#undef malloc\7f64,2110
 +#undef realloc\7f65,2124
 +#undef calloc\7f66,2139
 +#undef free\7f67,2153
 +#define malloc \7f68,2165
 +#define realloc \7f69,2188
 +#define calloc \7f70,2213
 +#define aligned_alloc \7f71,2236
 +#define free \7f72,2273
 +#define DUMPED \7f80,2472
 +#define ALLOCATED_BEFORE_DUMPING(\7f81,2507
 +extern void *malloc \7fmalloc\ 194,2718
 +#define INT_BIT       \7f124,3934
 +#define BLOCKLOG      \7f125,3977
 +#define BLOCKSIZE     \7f126,4018
 +#define BLOCKIFY(\7f127,4052
 +#define HEAP  \7f131,4215
 +#define FINAL_FREE_BLOCKS     \7f135,4391
 +  } malloc_info;\7f167,5388
 +#define BLOCK(\7f176,5620
 +#define ADDRESS(\7f177,5682
 +struct list\7f186,5939
 +struct alignlist\7f196,6153
 +#define LOCK(\7f223,7064
 +#define UNLOCK(\7f228,7195
 +#define LOCK_ALIGNED_BLOCKS(\7f233,7329
 +#define UNLOCK_ALIGNED_BLOCKS(\7f238,7484
 +#define LOCK(\7f244,7649
 +#define UNLOCK(\7f245,7664
 +#define LOCK_ALIGNED_BLOCKS(\7f246,7681
 +#define UNLOCK_ALIGNED_BLOCKS(\7f247,7711
 +enum mcheck_status\7f283,9092
 +    MCHECK_DISABLED \7f285,9115
 +    MCHECK_OK,\7f286,9187
 +    MCHECK_FREE,\7f287,9226
 +    MCHECK_HEAD,\7f288,9270
 +    MCHECK_TAIL       \7f289,9334
 +struct mstats\7f308,10153
 +char *_heapbase;\7f_heapbase\ 1355,11829
 +malloc_info *_heapinfo;\7f_heapinfo\ 1358,11927
 +static size_t heapsize;\7f361,11983
 +size_t _heapindex;\7f364,12047
 +size_t _heaplimit;\7f367,12109
 +struct list _fraghead[\7f_fraghead\ 1370,12171
 +size_t _chunks_used;\7f373,12229
 +size_t _bytes_used;\7f374,12250
 +size_t _chunks_free;\7f375,12270
 +size_t _bytes_free;\7f376,12291
 +int __malloc_initialized;\7f379,12340
 +size_t __malloc_extra_blocks;\7f381,12367
 +static int state_protected_p;\7f400,12912
 +static size_t last_state_size;\7f401,12942
 +static malloc_info *last_heapinfo;\7flast_heapinfo\ 1402,12973
 +protect_malloc_state \7f405,13014
 +#define PROTECT_MALLOC_STATE(\7f426,13627
 +#define PROTECT_MALLOC_STATE(\7f429,13697
 +align \7f435,13794
 +get_contiguous_space \7f466,14616
 +register_heapinfo \7f497,15325
 +pthread_mutex_t _malloc_mutex \7f517,15879
 +pthread_mutex_t _aligned_blocks_mutex \7f518,15938
 +int _malloc_thread_enabled_p;\7f519,16005
 +malloc_atfork_handler_prepare \7f522,16048
 +malloc_atfork_handler_parent \7f529,16139
 +malloc_atfork_handler_child \7f536,16233
 +malloc_enable_thread \7f544,16375
 +malloc_initialize_1 \7f563,16961
 +__malloc_initialize \7f594,17793
 +static int morecore_recursing;\7f604,17926
 +morecore_nolock \7f609,18066
 +_malloc_internal_nolock \7f722,21584
 +_malloc_internal \7f920,28102
 +malloc \7f932,28247
 +_malloc \7f961,29140
 +_free \7f967,29196
 +_realloc \7f973,29240
 +struct alignlist *_aligned_blocks \7f_aligned_blocks\ 11004,30345
 +_free_internal_nolock \7f1009,30474
 +_free_internal \7f1255,38476
 +free \7f1265,38603
 +weak_alias \7f1277,38799
 +#define min(\7f1306,39813
 +_realloc_internal_nolock \7f1319,40309
 +_realloc_internal \7f1435,43563
 +realloc \7f1447,43726
 +calloc \7f1478,44894
 +#define       __sbrk  \7f1513,46042
 +__default_morecore \7f1525,46511
 +aligned_alloc \7f1557,47522
 +memalign \7f1647,49704
 +posix_memalign \7f1656,49909
 +static size_t pagesize;\7f1703,51317
 +valloc \7f1706,51349
 +#undef malloc\7f1715,51490
 +#undef realloc\7f1716,51504
 +#undef calloc\7f1717,51519
 +#undef aligned_alloc\7f1718,51533
 +#undef free\7f1719,51554
 +hybrid_malloc \7f1736,52083
 +hybrid_calloc \7f1744,52188
 +hybrid_free \7f1752,52319
 +hybrid_aligned_alloc \7f1765,52626
 +hybrid_realloc \7f1780,52984
 +hybrid_get_current_dir_name \7f1811,53797
 +#define MAGICWORD     \7f1854,55206
 +#define MAGICFREE     \7f1855,55261
 +#define MAGICBYTE     \7f1856,55316
 +#define MALLOCFLOOD   \7f1857,55348
 +#define FREEFLOOD     \7f1858,55382
 +struct hdr\7f1860,55415
 +checkhdr \7f1867,55581
 +freehook \7f1891,56022
 +mallochook \7f1927,56804
 +reallochook \7f1944,57143
 +mabort \7f1978,57901
 +static int mcheck_used \7f2012,58586
 +mcheck \7f2015,58619
 +mprobe \7f2035,59138
 +\f
 +c-src/emacs/src/regex.h,3761
 +#define _REGEX_H \7f21,836
 +typedef unsigned long reg_syntax_t;\7f43,1577
 +#define RE_BACKSLASH_ESCAPE_IN_LISTS \7f47,1749
 +#define RE_BK_PLUS_QM \7f52,1969
 +#define RE_CHAR_CLASSES \7f58,2298
 +#define RE_CONTEXT_INDEP_ANCHORS \7f72,3032
 +#define RE_CONTEXT_INDEP_OPS \7f80,3458
 +#define RE_CONTEXT_INVALID_OPS \7f84,3658
 +#define RE_DOT_NEWLINE \7f88,3801
 +#define RE_DOT_NOT_NULL \7f92,3937
 +#define RE_HAT_LISTS_NOT_NEWLINE \7f96,4082
 +#define RE_INTERVALS \7f101,4292
 +#define RE_LIMITED_OPS \7f105,4441
 +#define RE_NEWLINE_ALT \7f109,4583
 +#define RE_NO_BK_BRACES \7f114,4773
 +#define RE_NO_BK_PARENS \7f118,4964
 +#define RE_NO_BK_REFS \7f122,5120
 +#define RE_NO_BK_VBAR \7f126,5316
 +#define RE_NO_EMPTY_RANGES \7f132,5610
 +#define RE_UNMATCHED_RIGHT_PAREN_ORD \7f136,5766
 +#define RE_NO_POSIX_BACKTRACKING \7f140,5937
 +#define RE_NO_GNU_OPS \7f144,6133
 +#define RE_FRUGAL \7f147,6253
 +#define RE_SHY_GROUPS \7f150,6360
 +#define RE_NO_NEWLINE_ANCHOR \7f153,6468
 +#define RE_DEBUG \7f161,6884
 +#define RE_SYNTAX_EMACS       \7f183,7684
 +#define RE_SYNTAX_AWK \7f186,7780
 +#define RE_SYNTAX_GNU_AWK     \7f193,8084
 +#define RE_SYNTAX_POSIX_AWK \7f197,8255
 +#define RE_SYNTAX_GREP        \7f201,8393
 +#define RE_SYNTAX_EGREP       \7f206,8549
 +#define RE_SYNTAX_POSIX_EGREP \7f212,8765
 +#define RE_SYNTAX_ED \7f216,8910
 +#define RE_SYNTAX_SED \7f218,8954
 +#define _RE_SYNTAX_POSIX_COMMON       \7f221,9072
 +#define RE_SYNTAX_POSIX_BASIC \7f225,9215
 +#define RE_SYNTAX_POSIX_MINIMAL_BASIC \7f231,9508
 +#define RE_SYNTAX_POSIX_EXTENDED      \7f234,9598
 +#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED      \7f242,9967
 +# undef RE_DUP_MAX\7f253,10454
 +#define RE_DUP_MAX \7f256,10540
 +#define REG_EXTENDED \7f263,10762
 +#define REG_ICASE \7f267,10886
 +#define REG_NEWLINE \7f272,11070
 +#define REG_NOSUB \7f276,11248
 +#define REG_NOTBOL \7f286,11614
 +#define REG_NOTEOL \7f289,11688
 +  REG_ENOSYS \7f297,11859
 +  REG_NOERROR \7f300,11941
 +  REG_NOMATCH,\7f301,11976
 +  REG_BADPAT,\7f305,12123
 +  REG_ECOLLATE,\7f306,12162
 +  REG_ECTYPE,\7f307,12203
 +  REG_EESCAPE,\7f308,12255
 +  REG_ESUBREG,\7f309,12298
 +  REG_EBRACK,\7f310,12345
 +  REG_EPAREN,\7f311,12391
 +  REG_EBRACE,\7f312,12436
 +  REG_BADBR,\7f313,12472
 +  REG_ERANGE,\7f314,12519
 +  REG_ESPACE,\7f315,12560
 +  REG_BADRPT,\7f316,12601
 +  REG_EEND,\7f319,12693
 +  REG_ESIZE,\7f320,12728
 +  REG_ERPAREN,\7f321,12790
 +  REG_ERANGEX \7f322,12859
 +} reg_errcode_t;\7f323,12911
 +# define RE_TRANSLATE_TYPE \7f332,13273
 +struct re_pattern_buffer\7f335,13315
 +#define REGS_UNALLOCATED \7f376,14889
 +#define REGS_REALLOCATE \7f377,14916
 +#define REGS_FIXED \7f378,14942
 +typedef struct re_pattern_buffer regex_t;\7f416,16098
 +typedef ssize_t regoff_t;\7f423,16492
 +struct re_registers\7f428,16652
 +# define RE_NREGS \7f440,16942
 +} regmatch_t;\7f451,17317
 +#  define _Restrict_ \7f540,20886
 +#  define _Restrict_ \7f542,20979
 +#  define _Restrict_\7f544,21018
 +#  define _Restrict_arr_ \7f555,21418
 +#  define _Restrict_arr_\7f557,21461
 +#  define CHAR_CLASS_MAX_LENGTH \7f593,22470
 +#  define CHAR_CLASS_MAX_LENGTH \7f597,22648
 +typedef wctype_t re_wctype_t;\7f599,22692
 +typedef wchar_t re_wchar_t;\7f600,22722
 +# define re_wctype \7f601,22750
 +# define re_iswctype \7f602,22776
 +# define re_wctype_to_bit(\7f603,22806
 +# define CHAR_CLASS_MAX_LENGTH \7f605,22844
 +# define btowc(\7f606,22906
 +typedef enum { RECC_ERROR \7f609,22953
 +             RECC_ALNUM,\7f610,22984
 +             RECC_ALNUM, RECC_ALPHA,\7f610,22984
 +             RECC_ALNUM, RECC_ALPHA, RECC_WORD,\7f610,22984
 +             RECC_GRAPH,\7f611,23027
 +             RECC_GRAPH, RECC_PRINT,\7f611,23027
 +             RECC_LOWER,\7f612,23059
 +             RECC_LOWER, RECC_UPPER,\7f612,23059
 +             RECC_PUNCT,\7f613,23091
 +             RECC_PUNCT, RECC_CNTRL,\7f613,23091
 +             RECC_DIGIT,\7f614,23123
 +             RECC_DIGIT, RECC_XDIGIT,\7f614,23123
 +             RECC_BLANK,\7f615,23156
 +             RECC_BLANK, RECC_SPACE,\7f615,23156
 +             RECC_MULTIBYTE,\7f616,23188
 +             RECC_MULTIBYTE, RECC_NONASCII,\7f616,23188
 +             RECC_ASCII,\7f617,23227
 +             RECC_ASCII, RECC_UNIBYTE\7f617,23227
 +} re_wctype_t;\7f618,23260
 +typedef int re_wchar_t;\7f623,23387
 +\f
 +c-src/emacs/src/keyboard.c,13565
 +volatile int interrupt_input_blocked;\7f76,1808
 +volatile bool pending_signals;\7f80,1944
 +#define KBD_BUFFER_SIZE \7f82,1976
 +KBOARD *initial_kboard;\7finitial_kboard\ 184,2006
 +KBOARD *current_kboard;\7fcurrent_kboard\ 185,2030
 +static KBOARD *all_kboards;\7fall_kboards\ 186,2054
 +static bool single_kboard;\7f89,2154
 +#define NUM_RECENT_KEYS \7f91,2182
 +static int recent_keys_index;\7f94,2269
 +static int total_keys;\7f97,2357
 +static Lisp_Object recent_keys;\7f100,2443
 +Lisp_Object this_command_keys;\7f107,2777
 +ptrdiff_t this_command_key_count;\7f108,2808
 +static bool this_command_key_count_reset;\7f112,2922
 +static Lisp_Object raw_keybuf;\7f116,3074
 +static int raw_keybuf_count;\7f117,3105
 +#define GROW_RAW_KEYBUF       \7f119,3135
 +static ptrdiff_t this_single_command_key_start;\7f125,3350
 +static ptrdiff_t before_command_key_count;\7f129,3498
 +static ptrdiff_t before_command_echo_length;\7f130,3541
 +sigjmp_buf return_to_command_loop;\7f135,3677
 +static Lisp_Object recover_top_level_message;\7f138,3791
 +static Lisp_Object regular_top_level_message;\7f143,3930
 +static sys_jmp_buf getcjmp;\7f147,4031
 +bool waiting_for_input;\7f150,4095
 +static bool echoing;\7f154,4186
 +static struct kboard *ok_to_echo_at_next_pause;\7fok_to_echo_at_next_pause\ 1159,4328
 +struct kboard *echo_kboard;\7fecho_kboard\ 1166,4632
 +Lisp_Object echo_message_buffer;\7f171,4744
 +bool immediate_quit;\7f174,4837
 +int quit_char;\7f192,5623
 +EMACS_INT command_loop_level;\7f195,5680
 +Lisp_Object unread_switch_frame;\7f204,6108
 +static ptrdiff_t last_non_minibuf_size;\7f207,6216
 +uintmax_t num_input_events;\7f210,6334
 +static EMACS_INT last_auto_save;\7f214,6428
 +static ptrdiff_t last_point_position;\7f217,6523
 +Lisp_Object internal_last_event_frame;\7f228,7028
 +static Lisp_Object read_key_sequence_cmd;\7f232,7168
 +static Lisp_Object read_key_sequence_remapped;\7f233,7210
 +static FILE *dribble;\7fdribble\ 1236,7310
 +bool input_pending;\7f239,7368
 +static bool input_was_pending;\7f287,10022
 +static struct input_event kbd_buffer[\7fkbd_buffer\ 1291,10107
 +static struct input_event *kbd_fetch_ptr;\7fkbd_fetch_ptr\ 1297,10386
 +static struct input_event * volatile kbd_store_ptr;\7f302,10601
 +unsigned timers_run;\7f320,11296
 +struct timespec *input_available_clear_time;\7finput_available_clear_time\ 1324,11408
 +bool interrupt_input;\7f328,11573
 +bool interrupts_deferred;\7f331,11671
 +static struct timespec timer_idleness_start_time;\7f335,11746
 +static struct timespec timer_last_idleness_start_time;\7f340,11916
 +#define READABLE_EVENTS_DO_TIMERS_NOW \7f346,12046
 +#define READABLE_EVENTS_FILTER_EVENTS \7f347,12094
 +#define READABLE_EVENTS_IGNORE_SQUEEZABLES    \7f348,12142
 +kset_echo_string \7f392,14088
 +kset_kbd_queue \7f397,14184
 +kset_keyboard_translate_table \7f402,14276
 +kset_last_prefix_arg \7f407,14399
 +kset_last_repeatable_command \7f412,14504
 +kset_local_function_key_map \7f417,14625
 +kset_overriding_terminal_local_map \7f422,14744
 +kset_real_last_command \7f427,14877
 +kset_system_key_syms \7f432,14986
 +echo_add_key \7f443,15249
 +echo_char \7f527,17527
 +echo_dash \7f541,17813
 +echo_now \7f586,19140
 +cancel_echoing \7f635,20614
 +echo_length \7f648,20922
 +echo_truncate \7f660,21253
 +add_command_key \7f672,21582
 +recursive_edit_1 \7f697,22406
 +record_auto_save \7f742,23848
 +force_auto_save_soon \7f751,24016
 +DEFUN ("recursive-edit", Frecursive_edit,\7frecursive-edit\ 1759,24137
 +recursive_edit_unwind \7f804,25747
 +any_kboard_state \7f817,26013
 +single_kboard_state \7f838,26665
 +not_single_kboard_state \7f848,26803
 +struct kboard_stack\7f858,27065
 +static struct kboard_stack *kboard_stack;\7fkboard_stack\ 1864,27138
 +push_kboard \7f867,27186
 +pop_kboard \7f879,27375
 +temporarily_switch_to_single_kboard \7f914,28263
 +record_single_kboard_state \7f943,29437
 +restore_kboard_configuration \7f952,29621
 +cmd_error \7f970,30077
 +cmd_error_internal \7f1024,31510
 +DEFUN ("command-error-default-function", Fcommand_error_default_function,\7fcommand-error-default-function\ 11043,32030
 +command_loop \7f1094,33916
 +command_loop_2 \7f1134,35135
 +top_level_2 \7f1146,35339
 +top_level_1 \7f1152,35417
 +DEFUN ("top-level", Ftop_level,\7ftop-level\ 11164,35787
 +user_error \7f1183,36288
 +DEFUN ("exit-recursive-edit", Fexit_recursive_edit,\7fexit-recursive-edit\ 11189,36429
 +DEFUN ("abort-recursive-edit", Fabort_recursive_edit,\7fabort-recursive-edit\ 11201,36819
 +tracking_off \7f1216,37281
 +DEFUN ("internal--track-mouse", Ftrack_mouse,\7ftrack-mouse\ 11234,37816
 +bool ignore_mouse_drag_p;\7f1256,38392
 +some_mouse_moved \7f1259,38441
 +Lisp_Object last_undo_boundary;\7f1287,39032
 +command_loop_1 \7f1294,39273
 +read_menu_command \7f1649,50889
 +adjust_point_for_property \7f1678,51617
 +safe_run_hooks_1 \7f1831,57339
 +safe_run_hooks_error \7f1841,57569
 +safe_run_hook_funcall \7f1878,58576
 +safe_run_hooks \7f1893,59058
 +int poll_suppress_count;\7f1908,59397
 +static struct atimer *poll_timer;\7fpoll_timer\ 11915,59487
 +poll_for_input_1 \7f1919,59589
 +poll_for_input \7f1930,59789
 +start_polling \7f1942,60053
 +input_polling_used \7f1979,61091
 +stop_polling \7f1994,61390
 +set_poll_suppress_count \7f2009,61759
 +bind_polling_period \7f2029,62141
 +make_ctrl_char \7f2048,62492
 +show_help_echo \7f2113,64455
 +static Lisp_Object help_form_saved_window_configs;\7f2156,65638
 +read_char_help_form_unwind \7f2158,65701
 +#define STOP_POLLING  \7f2166,65959
 +#define RESUME_POLLING        \7f2170,66084
 +read_event_from_main_queue \7f2175,66229
 +read_decoded_event_from_main_queue \7f2249,68417
 +#define MAX_ENCODED_BYTES \7f2254,68664
 +echo_keystrokes_p \7f2342,71556
 +read_char \7f2376,72848
 +record_menu_key \7f3225,98949
 +help_char_p \7f3258,99674
 +record_char \7f3273,99953
 +save_getcjmp \7f3412,104235
 +restore_getcjmp \7f3418,104326
 +readable_events \7f3430,104697
 +int stop_character EXTERNALLY_VISIBLE;\7f3497,106437
 +event_to_kboard \7f3500,106493
 +kbd_buffer_nr_stored \7f3522,107142
 +kbd_buffer_store_event \7f3534,107483
 +kbd_buffer_store_event_hold \7f3550,108025
 +kbd_buffer_unget_event \7f3684,111617
 +#define INPUT_EVENT_POS_MAX \7f3698,112018
 +#define INPUT_EVENT_POS_MIN \7f3701,112147
 +position_to_Time \7f3706,112287
 +Time_to_position \7f3716,112514
 +gen_help_event \7f3738,113171
 +kbd_buffer_store_help_event \7f3756,113611
 +discard_mouse_events \7f3773,113976
 +kbd_buffer_events_waiting \7f3803,114711
 +clear_event \7f3823,115068
 +kbd_buffer_get_event \7f3836,115408
 +process_special_events \7f4258,127881
 +swallow_events \7f4322,129705
 +timer_start_idle \7f4339,130098
 +timer_stop_idle \7f4355,130576
 +timer_resume_idle \7f4363,130720
 +struct input_event last_timer_event EXTERNALLY_VISIBLE;\7f4372,130912
 +Lisp_Object pending_funcalls;\7f4377,131172
 +decode_timer \7f4381,131293
 +timer_check_2 \7f4414,132246
 +timer_check \7f4572,136817
 +DEFUN ("current-idle-time", Fcurrent_idle_time,\7fcurrent-idle-time\ 14607,137662
 +static Lisp_Object accent_key_syms;\7f4625,138239
 +static Lisp_Object func_key_syms;\7f4626,138275
 +static Lisp_Object mouse_syms;\7f4627,138309
 +static Lisp_Object wheel_syms;\7f4628,138340
 +static Lisp_Object drag_n_drop_syms;\7f4629,138371
 +static const int lispy_accent_codes[\7flispy_accent_codes\ 14634,138516
 +static const char *const lispy_accent_keys[\7flispy_accent_keys\ 14741,139878
 +#define FUNCTION_KEY_OFFSET \7f4766,140314
 +const char *const lispy_function_keys[\7flispy_function_keys\ 14768,140347
 +static const char *const lispy_multimedia_keys[\7flispy_multimedia_keys\ 14962,148901
 +static const char *const lispy_kana_keys[\7flispy_kana_keys\ 15026,150135
 +#define FUNCTION_KEY_OFFSET \7f5061,151751
 +static const char *const lispy_function_keys[\7flispy_function_keys\ 15065,151894
 +#define ISO_FUNCTION_KEY_OFFSET \7f5149,154429
 +static const char *const iso_lispy_function_keys[\7fiso_lispy_function_keys\ 15151,154469
 +static Lisp_Object Vlispy_mouse_stem;\7f5172,155328
 +static const char *const lispy_wheel_names[\7flispy_wheel_names\ 15174,155367
 +static const char *const lispy_drag_n_drop_names[\7flispy_drag_n_drop_names\ 15181,155619
 +static short const scroll_bar_parts[\7fscroll_bar_parts\ 15189,155885
 +static Lisp_Object button_down_location;\7f5210,156910
 +static int last_mouse_button;\7f5215,157065
 +static int last_mouse_x;\7f5216,157095
 +static int last_mouse_y;\7f5217,157120
 +static Time button_down_time;\7f5218,157145
 +static int double_click_count;\7f5222,157229
 +make_lispy_position \7f5228,157390
 +toolkit_menubar_in_use \7f5456,163953
 +make_scroll_bar_position \7f5469,164321
 +make_lispy_event \7f5485,164967
 +make_lispy_movement \7f6104,183531
 +make_lispy_switch_frame \7f6131,184262
 +make_lispy_focus_in \7f6137,184369
 +make_lispy_focus_out \7f6145,184495
 +parse_modifiers_uncached \7f6163,184945
 +#define SINGLE_LETTER_MOD(\7f6185,185465
 +#undef SINGLE_LETTER_MOD\7f6212,185906
 +#define MULTI_LETTER_MOD(\7f6214,185932
 +#undef MULTI_LETTER_MOD\7f6231,186400
 +apply_modifiers_uncached \7f6273,187574
 +static const char *const modifier_names[\7fmodifier_names\ 16319,189193
 +#define NUM_MOD_NAMES \7f6325,189399
 +static Lisp_Object modifier_symbols;\7f6327,189449
 +lispy_modifier_list \7f6331,189586
 +#define KEY_TO_CHAR(\7f6353,190252
 +parse_modifiers \7f6356,190328
 +DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,\7fevent-symbol-parse-modifiers\ 16399,191517
 +apply_modifiers \7f6422,192391
 +reorder_modifiers \7f6491,194720
 +modify_event_symbol \7f6536,196528
 +DEFUN ("event-convert-list", Fevent_convert_list,\7fevent-convert-list\ 16628,199244
 +parse_solitary_modifier \7f6695,201135
 +#define SINGLE_LETTER_MOD(\7f6701,201258
 +#define MULTI_LETTER_MOD(\7f6705,201343
 +#undef SINGLE_LETTER_MOD\7f6763,202641
 +#undef MULTI_LETTER_MOD\7f6764,202666
 +lucid_event_type_list_p \7f6775,202889
 +get_input_pending \7f6814,203960
 +record_asynch_buffer_change \7f6834,204579
 +gobble_input \7f6872,205702
 +tty_read_avail_input \7f6967,208310
 +handle_async_input \7f7149,214039
 +process_pending_signals \7f7165,214359
 +unblock_input_to \7f7177,214645
 +unblock_input \7f7200,215277
 +totally_unblock_input \7f7209,215445
 +handle_input_available_signal \7f7217,215529
 +deliver_input_available_signal \7f7226,215700
 +struct user_signal_info\7f7235,215865
 +static struct user_signal_info *user_signals \7fuser_signals\ 17250,216090
 +add_user_signal \7f7253,216149
 +handle_user_signal \7f7275,216598
 +deliver_user_signal \7f7316,217558
 +find_user_signal_name \7f7322,217659
 +store_user_signal_events \7f7334,217841
 +static Lisp_Object menu_bar_one_keymap_changed_items;\7f7363,218416
 +static Lisp_Object menu_bar_items_vector;\7f7368,218630
 +static int menu_bar_items_index;\7f7369,218672
 +static const char *separator_names[\7fseparator_names\ 17372,218707
 +menu_separator_name_p \7f7393,219148
 +menu_bar_items \7f7426,219852
 +Lisp_Object item_properties;\7f7568,224603
 +menu_bar_item \7f7571,224645
 +menu_item_eval_property_1 \7f7647,227175
 +eval_dyn \7f7658,227465
 +menu_item_eval_property \7f7666,227675
 +parse_menu_item \7f7686,228341
 +static Lisp_Object tool_bar_items_vector;\7f7965,236336
 +static Lisp_Object tool_bar_item_properties;\7f7970,236510
 +static int ntool_bar_items;\7f7974,236606
 +tool_bar_items \7f7990,237083
 +process_tool_bar_item \7f8075,239892
 +#define PROP(\7f8112,240969
 +set_prop \7f8114,241038
 +parse_tool_bar_item \7f8167,242453
 +#undef PROP\7f8379,248844
 +init_tool_bar_items \7f8387,248969
 +append_tool_bar_item \7f8401,249261
 +read_char_x_menu_prompt \7f8443,250771
 +read_char_minibuf_menu_prompt \7f8503,252445
 +#define PUSH_C_STR(\7f8527,253014
 +follow_key \7f8726,258553
 +active_maps \7f8733,258695
 +typedef struct keyremap\7f8742,259021
 +} keyremap;\7f8754,259464
 +access_keymap_keyremap \7f8764,259808
 +keyremap_step \7f8811,261450
 +test_undefined \7f8867,262934
 +read_key_sequence \7f8916,264861
 +read_key_sequence_vs \7f9826,295821
 +DEFUN ("read-key-sequence", Fread_key_sequence,\7fread-key-sequence\ 19885,297294
 +DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,\7fread-key-sequence-vector\ 19938,299982
 +detect_input_pending \7f9950,300488
 +detect_input_pending_ignore_squeezables \7f9959,300654
 +detect_input_pending_run_timers \7f9967,300870
 +clear_input_pending \7f9985,301362
 +requeued_events_pending_p \7f9997,301732
 +DEFUN ("input-pending-p", Finput_pending_p,\7finput-pending-p\ 110002,301813
 +DEFUN ("recent-keys", Frecent_keys,\7frecent-keys\ 110024,302596
 +DEFUN ("this-command-keys", Fthis_command_keys,\7fthis-command-keys\ 110055,303517
 +DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,\7fthis-command-keys-vector\ 110068,303958
 +DEFUN ("this-single-command-keys", Fthis_single_command_keys,\7fthis-single-command-keys\ 110080,304380
 +DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,\7fthis-single-command-raw-keys\ 110096,304955
 +DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,\7freset-this-command-lengths\ 110109,305495
 +DEFUN ("clear-this-command-keys", Fclear_this_command_keys,\7fclear-this-command-keys\ 110136,306510
 +DEFUN ("recursion-depth", Frecursion_depth,\7frecursion-depth\ 110158,307069
 +DEFUN ("open-dribble-file", Fopen_dribble_file,\7fopen-dribble-file\ 110169,307406
 +DEFUN ("discard-input", Fdiscard_input,\7fdiscard-input\ 110203,308447
 +DEFUN ("suspend-emacs", Fsuspend_emacs,\7fsuspend-emacs\ 110225,308949
 +stuff_buffered_input \7f10285,311045
 +set_waiting_for_input \7f10323,312016
 +clear_waiting_for_input \7f10337,312390
 +handle_interrupt_signal \7f10351,312754
 +deliver_interrupt_signal \7f10378,313642
 +static int volatile force_quit_count;\7f10387,313932
 +handle_interrupt \7f10401,314414
 +quit_throw_to_read_char \7f10541,318711
 +DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,\7fset-input-interrupt-mode\ 110562,319288
 +DEFUN ("set-output-flow-control", Fset_output_flow_control,\7fset-output-flow-control\ 110609,320516
 +DEFUN ("set-input-meta-mode", Fset_input_meta_mode,\7fset-input-meta-mode\ 110643,321432
 +DEFUN ("set-quit-char", Fset_quit_char,\7fset-quit-char\ 110694,322706
 +DEFUN ("set-input-mode", Fset_input_mode,\7fset-input-mode\ 110729,323570
 +DEFUN ("current-input-mode", Fcurrent_input_mode,\7fcurrent-input-mode\ 110750,324459
 +DEFUN ("posn-at-x-y", Fposn_at_x_y,\7fposn-at-x-y\ 110787,325837
 +DEFUN ("posn-at-point", Fposn_at_point,\7fposn-at-point\ 110824,327060
 +init_kboard \7f10861,328214
 +allocate_kboard \7f10893,329284
 +wipe_kboard \7f10909,329637
 +delete_kboard \7f10917,329751
 +init_keyboard \7f10942,330281
 +struct event_head\7f11021,332696
 +static const struct event_head head_table[\7fhead_table\ 111027,332747
 +syms_of_keyboard \7f11045,333577
 +keys_of_keyboard \7f11841,367115
 +mark_kboards \7f11916,370434
 +\f
 +c-src/emacs/src/lisp.h,20567
 +#define EMACS_LISP_H\7f22,800
 +#define DECLARE_GDB_SYM(\7f47,1421
 +# define DEFINE_GDB_SYMBOL_BEGIN(\7f49,1508
 +# define DEFINE_GDB_SYMBOL_END(\7f50,1578
 +# define DEFINE_GDB_SYMBOL_BEGIN(\7f52,1625
 +# define DEFINE_GDB_SYMBOL_END(\7f53,1702
 +#undef min\7f57,1790
 +#undef max\7f58,1801
 +#define max(\7f59,1812
 +#define min(\7f60,1854
 +#define ARRAYELTS(\7f63,1936
 +#define GCTYPEBITS \7f67,2079
 +DEFINE_GDB_SYMBOL_BEGIN \7fGCTYPEBITS\ 166,2037
 +# define NONPOINTER_BITS \7f78,2567
 +# define NONPOINTER_BITS \7f80,2600
 +typedef int EMACS_INT;\7f91,3023
 +typedef unsigned int EMACS_UINT;\7f92,3046
 +#  define EMACS_INT_MAX \7f93,3079
 +#  define pI \7f94,3111
 +typedef long int EMACS_INT;\7f96,3203
 +typedef unsigned long EMACS_UINT;\7f97,3231
 +#  define EMACS_INT_MAX \7f98,3265
 +#  define pI \7f99,3298
 +typedef long long int EMACS_INT;\7f103,3477
 +typedef unsigned long long int EMACS_UINT;\7f104,3510
 +#  define EMACS_INT_MAX \7f105,3553
 +#  define pI \7f106,3587
 +enum {  BOOL_VECTOR_BITS_PER_CHAR \7f114,3804
 +#define BOOL_VECTOR_BITS_PER_CHAR \7f115,3840
 +typedef size_t bits_word;\7f123,4165
 +# define BITS_WORD_MAX \7f124,4191
 +enum { BITS_PER_BITS_WORD \7f125,4223
 +typedef unsigned char bits_word;\7f127,4290
 +# define BITS_WORD_MAX \7f128,4323
 +enum { BITS_PER_BITS_WORD \7f129,4386
 +    BITS_PER_CHAR \7f136,4570
 +    BITS_PER_SHORT \7f137,4605
 +    BITS_PER_LONG \7f138,4657
 +    BITS_PER_EMACS_INT \7f139,4712
 +typedef intmax_t printmax_t;\7f148,5089
 +typedef uintmax_t uprintmax_t;\7f149,5118
 +# define pMd \7f150,5149
 +# define pMu \7f151,5170
 +typedef EMACS_INT printmax_t;\7f153,5197
 +typedef EMACS_UINT uprintmax_t;\7f154,5227
 +# define pMd \7f155,5259
 +# define pMu \7f156,5278
 +# define pD \7f165,5664
 +# define pD \7f167,5709
 +# define pD \7f169,5756
 +# define pD \7f171,5779
 +# define eassert(\7f200,7062
 +# define eassume(\7f201,7140
 +# define eassert(\7f208,7319
 +# define eassume(\7f212,7450
 +enum Lisp_Bits\7f239,8519
 +#define GCALIGNMENT \7f243,8647
 +    VALBITS \7f246,8742
 +    INTTYPEBITS \7f249,8838
 +    FIXNUM_BITS \7f252,8945
 +#define VAL_MAX \7f263,9327
 +#define USE_LSB_TAG \7f271,9777
 +DEFINE_GDB_SYMBOL_BEGIN \7fUSE_LSB_TAG\ 1270,9733
 +# define alignas(\7f281,10077
 +# define GCALIGNED \7f288,10227
 +# define GCALIGNED \7f290,10292
 +# define lisp_h_XLI(\7f327,11642
 +# define lisp_h_XIL(\7f328,11673
 +# define lisp_h_XLI(\7f330,11724
 +# define lisp_h_XIL(\7f331,11751
 +#define lisp_h_CHECK_LIST_CONS(\7f333,11785
 +#define lisp_h_CHECK_NUMBER(\7f334,11856
 +#define lisp_h_CHECK_SYMBOL(\7f335,11927
 +#define lisp_h_CHECK_TYPE(\7f336,11996
 +#define lisp_h_CONSP(\7f338,12107
 +#define lisp_h_EQ(\7f339,12156
 +#define lisp_h_FLOATP(\7f340,12201
 +#define lisp_h_INTEGERP(\7f341,12252
 +#define lisp_h_MARKERP(\7f342,12333
 +#define lisp_h_MISCP(\7f343,12408
 +#define lisp_h_NILP(\7f344,12457
 +#define lisp_h_SET_SYMBOL_VAL(\7f345,12493
 +#define lisp_h_SYMBOL_CONSTANT_P(\7f347,12607
 +#define lisp_h_SYMBOL_VAL(\7f348,12671
 +#define lisp_h_SYMBOLP(\7f350,12772
 +#define lisp_h_VECTORLIKEP(\7f351,12825
 +#define lisp_h_XCAR(\7f352,12886
 +#define lisp_h_XCDR(\7f353,12924
 +#define lisp_h_XCONS(\7f354,12964
 +#define lisp_h_XHASH(\7f356,13059
 +#define lisp_h_XPNTR(\7f357,13093
 +# define lisp_h_check_cons_list(\7f360,13221
 +# define lisp_h_make_number(\7f363,13289
 +# define lisp_h_XFASTINT(\7f365,13392
 +# define lisp_h_XINT(\7f366,13429
 +# define lisp_h_XSYMBOL(\7f367,13478
 +# define lisp_h_XTYPE(\7f371,13631
 +# define lisp_h_XUNTAG(\7f372,13696
 +# define XLI(\7f381,14086
 +# define XIL(\7f382,14117
 +# define CHECK_LIST_CONS(\7f383,14148
 +# define CHECK_NUMBER(\7f384,14209
 +# define CHECK_SYMBOL(\7f385,14258
 +# define CHECK_TYPE(\7f386,14307
 +# define CONSP(\7f387,14382
 +# define EQ(\7f388,14417
 +# define FLOATP(\7f389,14452
 +# define INTEGERP(\7f390,14489
 +# define MARKERP(\7f391,14530
 +# define MISCP(\7f392,14569
 +# define NILP(\7f393,14604
 +# define SET_SYMBOL_VAL(\7f394,14637
 +# define SYMBOL_CONSTANT_P(\7f395,14700
 +# define SYMBOL_VAL(\7f396,14763
 +# define SYMBOLP(\7f397,14812
 +# define VECTORLIKEP(\7f398,14851
 +# define XCAR(\7f399,14898
 +# define XCDR(\7f400,14931
 +# define XCONS(\7f401,14964
 +# define XHASH(\7f402,14999
 +# define XPNTR(\7f403,15034
 +#  define check_cons_list(\7f405,15097
 +#  define make_number(\7f408,15176
 +#  define XFASTINT(\7f409,15224
 +#  define XINT(\7f410,15266
 +#  define XSYMBOL(\7f411,15300
 +#  define XTYPE(\7f412,15340
 +#  define XUNTAG(\7f413,15376
 +#define LISP_MACRO_DEFUN(\7f421,15672
 +#define LISP_MACRO_DEFUN_VOID(\7f425,15845
 +#define INTMASK \7f437,16289
 +#define case_Lisp_Int \7f438,16342
 +#define ENUM_BF(\7f445,16681
 +#define ENUM_BF(\7f447,16722
 +enum Lisp_Type\7f451,16763
 +    Lisp_Symbol \7f454,16851
 +    Lisp_Misc \7f458,16993
 +    Lisp_Int0 \7f461,17067
 +    Lisp_Int1 \7f462,17086
 +    Lisp_String \7f466,17264
 +    Lisp_Vectorlike \7f472,17543
 +    Lisp_Cons \7f475,17632
 +    Lisp_Float \7f477,17670
 +enum Lisp_Misc_Type\7f485,18016
 +    Lisp_Misc_Free \7f487,18040
 +    Lisp_Misc_Marker,\7f488,18069
 +    Lisp_Misc_Overlay,\7f489,18091
 +    Lisp_Misc_Save_Value,\7f490,18114
 +    Lisp_Misc_Finalizer,\7f491,18140
 +    Lisp_Misc_Float,\7f494,18275
 +    Lisp_Misc_Limit\7f496,18359
 +enum Lisp_Fwd_Type\7f502,18543
 +    Lisp_Fwd_Int,\7f504,18566
 +    Lisp_Fwd_Bool,\7f505,18619
 +    Lisp_Fwd_Obj,\7f506,18670
 +    Lisp_Fwd_Buffer_Obj,\7f507,18729
 +    Lisp_Fwd_Kboard_Obj       \7f508,18800
 +typedef struct { EMACS_INT i; } Lisp_Object;\7f567,21781
 +#define LISP_INITIALLY(\7f569,21827
 +#undef CHECK_LISP_OBJECT_TYPE\7f571,21858
 +enum CHECK_LISP_OBJECT_TYPE \7f572,21888
 +enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE \7f572,21888
 +typedef EMACS_INT Lisp_Object;\7f577,22064
 +#define LISP_INITIALLY(\7f578,22095
 +enum CHECK_LISP_OBJECT_TYPE \7f579,22125
 +enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE \7f579,22125
 +#define LISP_INITIALLY_ZERO \7f582,22226
 +enum symbol_interned\7f639,24199
 +  SYMBOL_UNINTERNED \7f641,24222
 +  SYMBOL_INTERNED \7f642,24247
 +  SYMBOL_INTERNED_IN_INITIAL_OBARRAY \7f643,24270
 +enum symbol_redirect\7f646,24315
 +  SYMBOL_PLAINVAL \7f648,24338
 +  SYMBOL_VARALIAS \7f649,24362
 +  SYMBOL_LOCALIZED \7f650,24386
 +  SYMBOL_FORWARDED \7f651,24410
 +struct Lisp_Symbol\7f654,24437
 +  ENUM_BF \7f663,24793
 +#define EXFUN(\7f707,26252
 +#define DEFUN_ARGS_MANY       \7f712,26446
 +#define DEFUN_ARGS_UNEVALLED  \7f713,26498
 +#define DEFUN_ARGS_0  \7f714,26541
 +#define DEFUN_ARGS_1  \7f715,26569
 +#define DEFUN_ARGS_2  \7f716,26604
 +#define DEFUN_ARGS_3  \7f717,26652
 +#define DEFUN_ARGS_4  \7f718,26713
 +#define DEFUN_ARGS_5  \7f719,26787
 +#define DEFUN_ARGS_6  \7f721,26880
 +#define DEFUN_ARGS_7  \7f723,26986
 +#define DEFUN_ARGS_8  \7f725,27105
 +#define TAG_PTR(\7f729,27296
 +#define TAG_SYMOFFSET(\7f734,27543
 +#define XLI_BUILTIN_LISPSYM(\7f741,27842
 +#define DEFINE_LISP_SYMBOL(\7f746,28101
 +# define DEFINE_NON_NIL_Q_SYMBOL_MACROS \7f755,28572
 +LISP_MACRO_DEFUN \7f762,28777
 +# define ARRAY_MARK_FLAG \7f768,29024
 +# define PSEUDOVECTOR_FLAG \7f774,29267
 +enum pvec_type\7f780,29568
 +  PVEC_NORMAL_VECTOR,\7f782,29585
 +  PVEC_FREE,\7f783,29607
 +  PVEC_PROCESS,\7f784,29620
 +  PVEC_FRAME,\7f785,29636
 +  PVEC_WINDOW,\7f786,29650
 +  PVEC_BOOL_VECTOR,\7f787,29665
 +  PVEC_BUFFER,\7f788,29685
 +  PVEC_HASH_TABLE,\7f789,29700
 +  PVEC_TERMINAL,\7f790,29719
 +  PVEC_WINDOW_CONFIGURATION,\7f791,29736
 +  PVEC_SUBR,\7f792,29765
 +  PVEC_OTHER,\7f793,29778
 +  PVEC_COMPILED,\7f795,29856
 +  PVEC_CHAR_TABLE,\7f796,29873
 +  PVEC_SUB_CHAR_TABLE,\7f797,29892
 +  PVEC_FONT \7f798,29915
 +enum More_Lisp_Bits\7f801,29991
 +    PSEUDOVECTOR_SIZE_BITS \7f808,30382
 +    PSEUDOVECTOR_SIZE_MASK \7f809,30415
 +    PSEUDOVECTOR_REST_BITS \7f813,30625
 +    PSEUDOVECTOR_REST_MASK \7f814,30658
 +    PSEUDOVECTOR_AREA_BITS \7f818,30823
 +    PVEC_TYPE_MASK \7f819,30901
 +# define VALMASK \7f829,31302
 +DEFINE_GDB_SYMBOL_BEGIN \7fVALMASK\ 1828,31257
 +#define MOST_POSITIVE_FIXNUM \7f834,31532
 +#define MOST_NEGATIVE_FIXNUM \7f835,31592
 +XINT \7f874,32684
 +XFASTINT \7f889,33035
 +XSYMBOL \7f899,33263
 +XTYPE \7f910,33481
 +XUNTAG \7f918,33661
 +LISP_MACRO_DEFUN \7f927,33857
 +LISP_MACRO_DEFUN \7f940,34242
 +#define FIXNUM_OVERFLOW_P(\7f958,34855
 +LISP_MACRO_DEFUN \7fFIXNUM_OVERFLOW_P\ 1952,34632
 +LISP_MACRO_DEFUN \7f970,35171
 +XSTRING \7f980,35391
 +#define SYMBOL_INDEX(\7f988,35575
 +XFLOAT \7f991,35636
 +XPROCESS \7f1000,35778
 +XWINDOW \7f1007,35895
 +XTERMINAL \7f1014,36012
 +XSUBR \7f1021,36134
 +XBUFFER \7f1028,36245
 +XCHAR_TABLE \7f1035,36369
 +XSUB_CHAR_TABLE \7f1042,36506
 +XBOOL_VECTOR \7f1049,36648
 +make_lisp_ptr \7f1058,36827
 +make_lisp_symbol \7f1066,37013
 +builtin_lisp_symbol \7f1074,37197
 +#define XSETINT(\7f1079,37279
 +#define XSETFASTINT(\7f1080,37325
 +#define XSETCONS(\7f1081,37375
 +#define XSETVECTOR(\7f1082,37435
 +#define XSETSTRING(\7f1083,37503
 +#define XSETSYMBOL(\7f1084,37567
 +#define XSETFLOAT(\7f1085,37621
 +#define XSETMISC(\7f1086,37683
 +#define XSETPVECTYPE(\7f1090,37772
 +#define XSETPVECTYPESIZE(\7f1092,37888
 +#define XSETPSEUDOVECTOR(\7f1099,38185
 +#define XSETTYPED_PSEUDOVECTOR(\7f1105,38369
 +#define XSETWINDOW_CONFIGURATION(\7f1110,38579
 +#define XSETPROCESS(\7f1112,38675
 +#define XSETWINDOW(\7f1113,38741
 +#define XSETTERMINAL(\7f1114,38805
 +#define XSETSUBR(\7f1115,38873
 +#define XSETCOMPILED(\7f1116,38933
 +#define XSETBUFFER(\7f1117,39001
 +#define XSETCHAR_TABLE(\7f1118,39065
 +#define XSETBOOL_VECTOR(\7f1119,39137
 +#define XSETSUB_CHAR_TABLE(\7f1120,39211
 +XINTPTR \7f1128,39581
 +make_pointer_integer \7f1134,39661
 +LISP_MACRO_DEFUN_VOID \7f1143,39826
 +typedef struct interval *INTERVAL;\7fINTERVAL\ 11149,39987
 +xcar_addr \7f1174,40760
 +xcdr_addr \7f1179,40837
 +LISP_MACRO_DEFUN \7f1185,40931
 +XSETCDR \7f1198,41307
 +CAR \7f1205,41457
 +CDR \7f1212,41591
 +CAR_SAFE \7f1221,41791
 +CDR_SAFE \7f1226,41877
 +STRING_MULTIBYTE \7f1243,42250
 +#define STRING_BYTES_BOUND \7f1261,43057
 +#define STRING_SET_UNIBYTE(\7f1265,43201
 +#define STRING_SET_MULTIBYTE(\7f1275,43516
 +SDATA \7f1286,43830
 +SSDATA \7f1291,43908
 +SREF \7f1297,44037
 +SSET \7f1302,44128
 +SCHARS \7f1307,44242
 +STRING_BYTES \7f1316,44415
 +SBYTES \7f1326,44595
 +STRING_SET_CHARS \7f1331,44681
 +struct vectorlike_header\7f1343,45232
 +struct Lisp_Vector\7f1369,46482
 +    ALIGNOF_STRUCT_LISP_VECTOR\7f1378,46681
 +struct Lisp_Bool_Vector\7f1384,46864
 +bool_vector_size \7f1399,47385
 +bool_vector_data \7f1407,47523
 +bool_vector_uchar_data \7f1413,47617
 +bool_vector_words \7f1421,47803
 +bool_vector_bytes \7f1428,47998
 +bool_vector_bitref \7f1437,48238
 +bool_vector_ref \7f1445,48478
 +bool_vector_set \7f1453,48618
 +    header_size \7f1471,49047
 +    bool_header_size \7f1472,49106
 +    word_size \7f1473,49171
 +AREF \7f1479,49284
 +aref_addr \7f1485,49391
 +ASIZE \7f1491,49501
 +ASET \7f1497,49583
 +gc_aset \7f1504,49742
 +enum { NIL_IS_ZERO \7f1515,50269
 +memclear \7f1520,50464
 +#define VECSIZE(\7f1531,50762
 +#define PSEUDOVECSIZE(\7f1538,51047
 +#define UNSIGNED_CMP(\7f1546,51480
 +#define ASCII_CHAR_P(\7f1552,51734
 +enum CHARTAB_SIZE_BITS\7f1565,52489
 +    CHARTAB_SIZE_BITS_0 \7f1567,52516
 +    CHARTAB_SIZE_BITS_1 \7f1568,52545
 +    CHARTAB_SIZE_BITS_2 \7f1569,52574
 +    CHARTAB_SIZE_BITS_3 \7f1570,52603
 +struct Lisp_Char_Table\7f1575,52672
 +struct Lisp_Sub_Char_Table\7f1606,53752
 +CHAR_TABLE_REF_ASCII \7f1628,54566
 +CHAR_TABLE_REF \7f1648,55113
 +CHAR_TABLE_SET \7f1658,55402
 +struct Lisp_Subr\7f1670,55786
 +enum char_table_specials\7f1692,56798
 +    CHAR_TABLE_STANDARD_SLOTS \7f1697,56993
 +    SUB_CHAR_TABLE_OFFSET \7f1701,57214
 +CHAR_TABLE_EXTRA_SLOTS \7f1707,57377
 +LISP_MACRO_DEFUN \7f1723,57921
 +SYMBOL_BLV \7f1732,58181
 +SYMBOL_FWD \7f1738,58316
 +LISP_MACRO_DEFUN_VOID \7f1744,58428
 +SET_SYMBOL_BLV \7f1754,58691
 +SET_SYMBOL_FWD \7f1760,58850
 +SYMBOL_NAME \7f1767,59001
 +SYMBOL_INTERNED_P \7f1775,59130
 +SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P \7f1783,59299
 +#define DEFSYM(\7f1796,59809
 +LISP_MACRO_DEFUN \7fDEFSYM\ 11792,59630
 +struct hash_table_test\7f1805,60062
 +struct Lisp_Hash_Table\7f1823,60555
 +XHASH_TABLE \7f1880,62531
 +#define XSET_HASH_TABLE(\7f1885,62602
 +HASH_TABLE_P \7f1889,62703
 +HASH_KEY \7f1896,62860
 +HASH_VALUE \7f1903,63040
 +HASH_NEXT \7f1911,63254
 +HASH_HASH \7f1918,63431
 +HASH_INDEX \7f1926,63677
 +HASH_TABLE_SIZE \7f1933,63826
 +enum DEFAULT_HASH_SIZE \7f1940,63956
 +enum DEFAULT_HASH_SIZE { DEFAULT_HASH_SIZE \7f1940,63956
 +static double const DEFAULT_REHASH_THRESHOLD \7f1946,64176
 +static double const DEFAULT_REHASH_SIZE \7f1950,64299
 +sxhash_combine \7f1956,64465
 +SXHASH_REDUCE \7f1964,64648
 +struct Lisp_Misc_Any  \7f1971,64806
 +  ENUM_BF \7f1973,64866
 +struct Lisp_Marker\7f1978,64980
 +  ENUM_BF \7f1980,65001
 +struct Lisp_Overlay\7f2021,66841
 +    ENUM_BF \7f2034,67349
 +    SAVE_UNUSED,\7f2047,67644
 +    SAVE_INTEGER,\7f2048,67661
 +    SAVE_FUNCPOINTER,\7f2049,67679
 +    SAVE_POINTER,\7f2050,67701
 +    SAVE_OBJECT\7f2051,67719
 +enum { SAVE_SLOT_BITS \7f2055,67804
 +enum { SAVE_VALUE_SLOTS \7f2058,67901
 +enum { SAVE_TYPE_BITS \7f2062,68009
 +enum Lisp_Save_Type\7f2064,68075
 +    SAVE_TYPE_INT_INT \7f2066,68099
 +    SAVE_TYPE_INT_INT_INT\7f2067,68172
 +    SAVE_TYPE_OBJ_OBJ \7f2069,68262
 +    SAVE_TYPE_OBJ_OBJ_OBJ \7f2070,68333
 +    SAVE_TYPE_OBJ_OBJ_OBJ_OBJ\7f2071,68414
 +    SAVE_TYPE_PTR_INT \7f2073,68509
 +    SAVE_TYPE_PTR_OBJ \7f2074,68582
 +    SAVE_TYPE_PTR_PTR \7f2075,68654
 +    SAVE_TYPE_FUNCPTR_PTR_OBJ\7f2076,68727
 +    SAVE_TYPE_MEMORY \7f2080,68885
 +typedef void (*voidfuncptr)\7fvoidfuncptr\ 12108,69839
 +struct Lisp_Save_Value\7f2110,69876
 +    ENUM_BF \7f2112,69903
 +save_type \7f2134,70755
 +XSAVE_POINTER \7f2143,70985
 +set_save_pointer \7f2149,71147
 +XSAVE_FUNCPOINTER \7f2155,71329
 +XSAVE_INTEGER \7f2164,71549
 +set_save_integer \7f2170,71711
 +XSAVE_OBJECT \7f2179,71932
 +struct Lisp_Finalizer\7f2186,72109
 +struct Lisp_Free\7f2201,72584
 +    ENUM_BF \7f2203,72605
 +union Lisp_Misc\7f2212,72885
 +XMISC \7f2223,73184
 +XMISCANY \7f2229,73273
 +XMISCTYPE \7f2236,73382
 +XMARKER \7f2242,73470
 +XOVERLAY \7f2249,73585
 +XSAVE_VALUE \7f2256,73706
 +XFINALIZER \7f2263,73835
 +struct Lisp_Intfwd\7f2274,74120
 +struct Lisp_Boolfwd\7f2284,74414
 +struct Lisp_Objfwd\7f2294,74705
 +struct Lisp_Buffer_Objfwd\7f2302,74937
 +struct Lisp_Buffer_Local_Value\7f2334,76473
 +struct Lisp_Kboard_Objfwd\7f2362,77732
 +union Lisp_Fwd\7f2368,77841
 +XFWDTYPE \7f2378,78087
 +XBUFFER_OBJFWD \7f2384,78183
 +struct Lisp_Float\7f2391,78319
 +XFLOAT_DATA \7f2401,78437
 +    IEEE_FLOATING_POINT\7f2415,78946
 +#define _UCHAR_T\7f2423,79269
 +typedef unsigned char UCHAR;\7f2424,79286
 +enum Lisp_Compiled\7f2429,79369
 +    COMPILED_ARGLIST \7f2431,79392
 +    COMPILED_BYTECODE \7f2432,79418
 +    COMPILED_CONSTANTS \7f2433,79445
 +    COMPILED_STACK_DEPTH \7f2434,79473
 +    COMPILED_DOC_STRING \7f2435,79503
 +    COMPILED_INTERACTIVE \7f2436,79532
 +enum char_bits\7f2443,79834
 +    CHAR_ALT \7f2445,79853
 +    CHAR_SUPER \7f2446,79879
 +    CHAR_HYPER \7f2447,79907
 +    CHAR_SHIFT \7f2448,79935
 +    CHAR_CTL \7f2449,79963
 +    CHAR_META \7f2450,79989
 +    CHAR_MODIFIER_MASK \7f2452,80017
 +    CHARACTERBITS \7f2457,80212
 +LISP_MACRO_DEFUN \7f2462,80270
 +NATNUMP \7f2470,80412
 +RANGED_INTEGERP \7f2476,80493
 +#define TYPE_RANGED_INTEGERP(\7f2481,80615
 +LISP_MACRO_DEFUN \7f2486,80800
 +VECTORP \7f2500,81273
 +OVERLAYP \7f2505,81376
 +SAVE_VALUEP \7f2510,81475
 +FINALIZERP \7f2516,81581
 +AUTOLOADP \7f2522,81685
 +BUFFER_OBJFWDP \7f2528,81776
 +PSEUDOVECTOR_TYPEP \7f2534,81874
 +PSEUDOVECTORP \7f2542,82127
 +WINDOW_CONFIGURATIONP \7f2558,82479
 +PROCESSP \7f2564,82589
 +WINDOWP \7f2570,82673
 +TERMINALP \7f2576,82755
 +SUBRP \7f2582,82841
 +COMPILEDP \7f2588,82919
 +BUFFERP \7f2594,83005
 +CHAR_TABLE_P \7f2600,83087
 +SUB_CHAR_TABLE_P \7f2606,83178
 +BOOL_VECTOR_P \7f2612,83277
 +FRAMEP \7f2618,83370
 +IMAGEP \7f2625,83487
 +ARRAYP \7f2632,83592
 +CHECK_LIST \7f2638,83711
 +LISP_MACRO_DEFUN_VOID \7f2643,83792
 +CHECK_STRING_CAR \7f2653,84089
 +CHECK_CONS \7f2658,84193
 +CHECK_VECTOR \7f2663,84273
 +CHECK_BOOL_VECTOR \7f2668,84359
 +CHECK_VECTOR_OR_STRING \7f2674,84536
 +CHECK_ARRAY \7f2683,84710
 +CHECK_BUFFER \7f2688,84818
 +CHECK_WINDOW \7f2693,84904
 +CHECK_PROCESS \7f2699,85010
 +CHECK_NATNUM \7f2705,85106
 +#define CHECK_RANGED_INTEGER(\7f2710,85183
 +#define CHECK_TYPE_RANGED_INTEGER(\7f2721,85566
 +#define CHECK_NUMBER_COERCE_MARKER(\7f2729,85836
 +XFLOATINT \7f2738,86089
 +CHECK_NUMBER_OR_FLOAT \7f2744,86160
 +#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(\7f2749,86259
 +CHECK_NUMBER_CAR \7f2760,86669
 +CHECK_NUMBER_CDR \7f2768,86791
 +#define DEFUN(\7f2803,88386
 +#define DEFUN(\7f2812,88854
 +FUNCTIONP \7f2822,89209
 +enum maxargs\7f2831,89404
 +    MANY \7f2833,89421
 +    UNEVALLED \7f2834,89436
 +#define CALLMANY(\7f2838,89539
 +#define CALLN(\7f2844,89892
 +#define DEFVAR_LISP(\7f2869,91097
 +#define DEFVAR_LISP_NOPRO(\7f2874,91269
 +#define DEFVAR_BOOL(\7f2879,91451
 +#define DEFVAR_INT(\7f2884,91624
 +#define DEFVAR_BUFFER_DEFAULTS(\7f2890,91795
 +#define DEFVAR_KBOARD(\7f2896,91999
 +typedef jmp_buf sys_jmp_buf;\7f2906,92323
 +# define sys_setjmp(\7f2907,92352
 +# define sys_longjmp(\7f2908,92387
 +typedef sigjmp_buf sys_jmp_buf;\7f2910,92459
 +# define sys_setjmp(\7f2911,92491
 +# define sys_longjmp(\7f2912,92531
 +typedef jmp_buf sys_jmp_buf;\7f2916,92690
 +# define sys_setjmp(\7f2917,92719
 +# define sys_longjmp(\7f2918,92753
 +enum specbind_tag \7f2943,93805
 +  SPECPDL_UNWIND,\7f2944,93825
 +  SPECPDL_UNWIND_PTR,\7f2945,93894
 +  SPECPDL_UNWIND_INT,\7f2946,93945
 +  SPECPDL_UNWIND_VOID,\7f2947,93993
 +  SPECPDL_BACKTRACE,\7f2948,94047
 +  SPECPDL_LET,\7f2949,94105
 +  SPECPDL_LET_LOCAL,\7f2951,94235
 +  SPECPDL_LET_DEFAULT \7f2952,94292
 +union specbinding\7f2955,94364
 +    ENUM_BF \7f2957,94386
 +      ENUM_BF \7f2959,94443
 +      ENUM_BF \7f2964,94573
 +      ENUM_BF \7f2969,94696
 +      ENUM_BF \7f2974,94814
 +      ENUM_BF \7f2978,94919
 +      ENUM_BF \7f2983,95094
 +enum handlertype \7f3021,96410
 +enum handlertype { CATCHER,\7f3021,96410
 +enum handlertype { CATCHER, CONDITION_CASE \7f3021,96410
 +struct handler\7f3023,96457
 +#define PUSH_HANDLER(\7f3053,97446
 +#define QUIT  \7f3101,99223
 +#define QUITP \7f3112,99473
 +struct gcpro\7f3132,100316
 +#define GC_USE_GCPROS_AS_BEFORE       \7f3171,101297
 +#define GC_MAKE_GCPROS_NOOPS  \7f3172,101332
 +#define GC_MARK_STACK_CHECK_GCPROS    \7f3173,101364
 +#define GC_USE_GCPROS_CHECK_ZOMBIES   \7f3174,101401
 +#define GC_MARK_STACK \7f3177,101462
 +#define BYTE_MARK_STACK \7f3181,101562
 +#define GCPRO1(\7f3190,101833
 +#define GCPRO2(\7f3191,101873
 +#define GCPRO3(\7f3192,101939
 +#define GCPRO4(\7f3194,102034
 +#define GCPRO5(\7f3196,102154
 +#define GCPRO6(\7f3198,102299
 +#define GCPRO7(\7f3201,102474
 +#define UNGCPRO \7f3202,102553
 +#define GCPRO1(\7f3208,102653
 +#define GCPRO2(\7f3212,102775
 +#define GCPRO3(\7f3217,102967
 +#define GCPRO4(\7f3223,103229
 +#define GCPRO5(\7f3230,103560
 +#define GCPRO6(\7f3238,103961
 +#define GCPRO7(\7f3247,104431
 +#define UNGCPRO \7f3257,104971
 +#define GCPRO1(\7f3263,105065
 +#define GCPRO2(\7f3269,105299
 +#define GCPRO3(\7f3278,105717
 +#define GCPRO4(\7f3289,106274
 +#define GCPRO5(\7f3302,106972
 +#define GCPRO6(\7f3317,107812
 +#define GCPRO7(\7f3334,108793
 +#define UNGCPRO       \7f3353,109916
 +#define RETURN_UNGCPRO(\7f3363,110183
 +vcopy \7f3384,110657
 +set_hash_key_slot \7f3393,110932
 +set_hash_value_slot \7f3399,111071
 +set_symbol_function \7f3408,111306
 +set_symbol_plist \7f3414,111421
 +set_symbol_next \7f3420,111524
 +blv_found \7f3428,111697
 +set_overlay_plist \7f3437,111880
 +string_intervals \7f3445,112031
 +set_string_intervals \7f3453,112153
 +set_char_table_defalt \7f3462,112355
 +set_char_table_purpose \7f3467,112467
 +set_char_table_extras \7f3475,112636
 +set_char_table_contents \7f3482,112845
 +set_sub_char_table_contents \7f3489,113040
 +enum Arith_Comparison \7f3497,113303
 +  ARITH_EQUAL,\7f3498,113327
 +  ARITH_NOTEQUAL,\7f3499,113342
 +  ARITH_LESS,\7f3500,113360
 +  ARITH_GRTR,\7f3501,113374
 +  ARITH_LESS_OR_EQUAL,\7f3502,113388
 +  ARITH_GRTR_OR_EQUAL\7f3503,113411
 +#define INTEGER_TO_CONS(\7f3511,113762
 +#define CONS_TO_INTEGER(\7f3529,114625
 +enum { NEXT_ALMOST_PRIME_LIMIT \7f3573,116329
 +extern EMACS_INT next_almost_prime \7f3574,116368
 +enum constype \7f3739,123820
 +enum constype {CONSTYPE_HEAP,\7fCONSTYPE_HEAP\ 13739,123820
 +enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}\7fCONSTYPE_PURE\ 13739,123820
 +list2i \7f3745,124010
 +list3i \7f3751,124119
 +list4i \7f3757,124258
 +extern Lisp_Object make_formatted_string \7f3767,124634
 +build_pure_c_string \7f3792,125662
 +build_string \7f3801,125867
 +make_uninit_vector \7f3820,126438
 +make_uninit_sub_char_table \7f3833,126657
 +#define ALLOCATE_PSEUDOVECTOR(\7f3850,127201
 +#define ALLOCATE_ZEROED_PSEUDOVECTOR(\7f3858,127537
 +INLINE void \7f3890,128943
 +extern void *r_alloc \7fr_alloc\ 13895,129064
 +#define FLOAT_TO_STRING_BUFSIZE \7f3927,130527
 +intern \7f3968,132134
 +intern_c_string \7f3974,132222
 +extern _Noreturn void error \7f4034,135601
 +fast_string_match_ignore_case \7f4136,140089
 +INLINE void fixup_locale \7f4241,143854
 +INLINE void synchronize_system_messages_locale \7f4242,143889
 +INLINE void synchronize_system_time_locale \7f4243,143946
 +#define IS_DAEMON \7f4257,144419
 +#define DAEMON_RUNNING \7f4258,144459
 +#define IS_DAEMON \7f4261,144558
 +#define DAEMON_RUNNING \7f4262,144603
 +# define WAIT_READING_MAX \7f4281,145422
 +# define WAIT_READING_MAX \7f4283,145494
 +extern _Noreturn void emacs_abort \7f4374,148386
 +egetenv \7f4532,152809
 +#define eabs(\7f4545,153305
 +#define make_fixnum_or_float(\7f4550,153438
 +enum MAX_ALLOCA \7f4556,153689
 +enum MAX_ALLOCA { MAX_ALLOCA \7f4556,153689
 +extern void *record_xmalloc \7frecord_xmalloc\ 14558,153734
 +#define USE_SAFE_ALLOCA       \7f4560,153800
 +#define AVAIL_ALLOCA(\7f4564,153933
 +#define SAFE_ALLOCA(\7f4568,154044
 +#define SAFE_NALLOCA(\7f4576,154385
 +#define SAFE_ALLOCA_STRING(\7f4590,154861
 +#define SAFE_FREE(\7f4598,155113
 +#define SAFE_ALLOCA_LISP(\7f4625,155691
 +# define USE_STACK_LISP_OBJECTS \7f4652,156813
 +# undef USE_STACK_LISP_OBJECTS\7f4658,156979
 +# define USE_STACK_LISP_OBJECTS \7f4659,157010
 +enum { defined_GC_CHECK_STRING_BYTES \7f4663,157085
 +enum { defined_GC_CHECK_STRING_BYTES \7f4665,157138
 +union Aligned_Cons\7f4670,157272
 +union Aligned_String\7f4676,157352
 +    USE_STACK_CONS \7f4689,157707
 +    USE_STACK_STRING \7f4691,157813
 +#define STACK_CONS(\7f4699,158150
 +#define AUTO_CONS_EXPR(\7f4701,158247
 +#define AUTO_CONS(\7f4709,158610
 +#define AUTO_LIST1(\7f4710,158681
 +#define AUTO_LIST2(\7f4712,158789
 +#define AUTO_LIST3(\7f4716,158944
 +#define AUTO_LIST4(\7f4720,159119
 +# define verify_ascii(\7f4732,159510
 +#define AUTO_STRING(\7f4740,159818
 +#define FOR_EACH_TAIL(\7f4752,160282
 +#define FOR_EACH_ALIST_VALUE(\7f4766,160773
 +maybe_gc \7f4774,161060
 +functionp \7f4784,161299
 +\f
 +c-src/machsyscalls.c,23
 +#define       SYSCALL(\7f6,113
 +\f
 +c-src/machsyscalls.h,159
 +SYSCALL (mach_msg_trap,\7f1,0
 +SYSCALL (mach_reply_port,\7f13,314
 +SYSCALL (mach_thread_self,\7f18,377
 +SYSCALL (mach_task_self,\7f23,441
 +SYSCALL (mach_host_self,\7f28,503
 +\f
 +c-src/h.h,1850
 +   ELEM_I/\7fELEM_I\ 13,15
 +} Fails_t;\7f5,85
 +typedef void Lang_function \7f6,96
 +typedef struct tpcmd\7f8,147
 +#define ggg \7f10,170
 +tpcmd;\7f15,209
 +typedef struct foobar2_ \7f16,216
 +} foobar2;\7f20,307
 +    DEVICE_SWP,\7f23,333
 +    DEVICE_LAST\7f24,349
 +} bsp_DevId;\7f25,365
 +  struct constant_args \7f27,394
 +} args;\7f30,457
 +typedef int *regset;\7fregset\ 131,465
 +typedef int INT;\7f32,486
 +typedef union abc\7f33,503
 +} ghi1;\7f36,534
 +typedef union abc \7f37,542
 +} ghi2;\7f39,573
 +typedef struct a \7f40,581
 +} b;\7f41,600
 +#define c(\7f42,605
 +typedef struct an_extern_linkage *an_extern_linkage_ptr;\7fan_extern_linkage_ptr\ 143,619
 +typedef struct an_extern_linkage \7f44,676
 +} an_extern_linkage;\7f56,1054
 +typedef struct pollfd   pfdset[\7fpfdset\ 157,1075
 +typedef union rtunion_def\7f58,1119
 +  } womboid \7f63,1206
 +typedef union rtunion_def\7f64,1220
 +womboid\7f75,1330
 +enum {dog,\7fdog\ 181,1416
 +enum {dog, cat}\7fcat\ 181,1416
 +enum {dog, cat} animals;\7f81,1416
 +typedef void (_CALLBACK_ *signal_handler)\7fsignal_handler\ 182,1441
 +typedef void (_CALLBACK_ *signal_handler1)\7fsignal_handler1\ 183,1489
 +/* comment */ #define ANSIC\7f84,1538
 + #define ANSIC\7f85,1566
 +typedef void (proc)\7f87,1588
 +typedef void OperatorFun(\7f88,1612
 +typedef int f(\7f89,1648
 +struct my_struct \7f91,1691
 +typedef struct my_struct my_typedef;\7f93,1713
 +typedef RETSIGTYPE (*signal_handler_t)\7fsignal_handler_t\ 194,1750
 +  Date 04 May 87 235311 PDT \7f96,1802
 +typedef unsigned char unchar;\7f99,1880
 +typedef int X,\7f100,1910
 +typedef int X, Y,\7f100,1910
 +typedef int X, Y, Z;\7f100,1910
 +typedef mio mao;\7f101,1931
 +typedef struct a \7f103,1966
 +typedef struct a { } b;\7f103,1966
 +typedef struct b\7f104,1990
 +} c;\7f106,2009
 +int extvar;\7f109,2053
 +#define tag1\7f110,2065
 +#define aaaaaa \7f111,2078
 +#define bbbbbb\\7fbbbbbb\ 1113,2102
 +#define cccccccccc\7f115,2125
 +#define enter_critical_section        \7f116,2144
 +#define exit_critical_to_previous     \7f117,2199
 +#define UNDEFINED\7f118,2259
 +struct re_pattern_buffer \7f119,2277
 +\f
 +cp-src/c.C,2094
 +template <typename ipc3dIslandHierarchy,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType, unsigned numOfChannels,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType, unsigned numOfChannels, typename ipc3dLinkControl,\7f1,0
 +class CMultiChannelCSC19_3D\7f2,151
 +        void execute(\7f11,493
 +int main \7f25,1026
 +double base \7f26,1088
 +typedef struct s1 \7f32,1251
 +} t1;\7f34,1287
 +struct s2 \7f35,1293
 +typedef struct s2 t2;\7f38,1324
 +class A \7f39,1346
 +  enum { rosso,\7f40,1356
 +  enum { rosso, giallo,\7f40,1356
 +  enum { rosso, giallo, verde \7f40,1356
 +const A& A::operator+(\7foperator+\ 143,1431
 +void operator+(\7f44,1467
 +void operator -(\7foperator -\ 145,1495
 +void operator int(\7foperator int\ 146,1524
 +A<int>* f(\7f48,1556
 +int f(\7f49,1571
 +int A<int>::f(\7ff\ 150,1590
 +A<float,B<int> > A<B<float>,int>::f(\7ff\ 151,1618
 +template <class C, int n> class AT \7f52,1668
 +class AU \7f53,1716
 +class B<\7fB\ 154,1735
 +class B<int> { void f(\7f54,1735
 +const A::B::T& abt \7f55,1766
 +class A \7f56,1792
 +class A { class B \7f56,1792
 +class A \7f57,1827
 +  A operator+(\7f59,1861
 +is_muldiv_operation(\7f61,1888
 +domain foo \7f68,1956
 +     void f(\7f69,1969
 +void A::A(\7fA\ 172,1990
 +struct A \7f73,2005
 +struct B \7f74,2023
 +void B::B(\7fB\ 175,2042
 +void BE_Node::BE_Node(\7fBE_Node\ 176,2057
 +class BE_Node \7f77,2084
 +struct foo \7f79,2103
 +class test \7f86,2157
 +  int f(\7f87,2170
 +  int ff(\7f89,2232
 +  int g(\7f90,2255
 +class AST_Root \7f92,2279
 +AST_ConcreteType::AST_ConcreteType(\7f99,2394
 +AST_Array::AST_Array(\7f107,2533
 +     void f(\7f115,2734
 +struct A \7f117,2754
 +A::~A(\7f~A\ 1120,2778
 +struct B \7f122,2790
 +    ~B(\7f123,2801
 +enum {dog,\7fdog\ 1126,2818
 +enum {dog, cat}\7fcat\ 1126,2818
 +enum {dog, cat} animals;\7f126,2818
 +struct {int teats;} cow;\7f127,2843
 +class Boo \7f129,2869
 +    enum {dog,\7fdog\ 1130,2881
 +    enum {dog, cat}\7fcat\ 1130,2881
 +    foo(\7f133,2955
 +    Boo(\7f137,2996
 +Boo::Boo(\7f141,3071
 +typedef int should_see_this_one_enclosed_in_extern_C;\7f149,3156
 +typedef int (*should_see_this_function_pointer)\7fshould_see_this_function_pointer\ 1153,3229
 +typedef int should_see_this_array_type[\7fshould_see_this_array_type\ 1156,3311
 +\f
 +cp-src/x.cc,63
 +class XX\7f1,0
 +XX::foo(\7ffoo\ 19,60
 +XX::bar(\7fbar\ 115,95
 +main(\7f21,126
 +\f
 +cp-src/burton.cpp,124
 +::dummy::dummy test::dummy1(\7fdummy1\ 11,0
 +::dummy::dummy test::dummy2(\7fdummy2\ 16,64
 +::dummy::dummy test::dummy3(\7fdummy3\ 111,143
 +\f
 +cp-src/functions.cpp,778
 +void Date::setDate \7fsetDate\ 15,148
 +void Date::plus \7fplus\ 132,939
 +void Date::minus \7fminus\ 142,1229
 +void Date::shift \7fshift\ 152,1407
 +Date & Date::operator = \7foperator =\ 162,1628
 +Date & Date::operator += \7foperator +=\ 169,1789
 +Date & Date::operator -= \7foperator -=\ 178,1939
 +Date & Date::operator ++ \7foperator ++\ 187,2080
 +Date & Date::operator -- \7foperator --\ 196,2216
 +int Date::operator - \7foperator -\ 1104,2331
 +int Date::operator < \7foperator <\ 1112,2483
 +int Date::operator > \7foperator >\ 1116,2557
 +int Date::operator == \7foperator ==\ 1120,2631
 +ostream& operator << \7foperator <<\ 1124,2707
 +istream& operator >> \7foperator >>\ 1133,2943
 +bool isLeap \7f159,3543
 +bool isHoliday \7f163,3629
 +void asort(\7f173,3865
 +void ReadVacation \7f186,4064
 +void Debug \7f201,4523
 +int WorkingDays(\7f211,4867
 +Date StartDay(\7f226,5129
 +\f
 +cp-src/MDiagArray2.h,482
 +#define octave_MDiagArray2_h \7f29,870
 +#undef LTGT\7f35,967
 +#define LTGT\7f39,1031
 +#define LTGT \7f42,1051
 +class MDiagArray2 \7f78,2022
 +  MDiagArray2 \7f82,2077
 +  MDiagArray2 \7f86,2154
 +  MDiagArray2 \7f87,2198
 +  MDiagArray2 \7f88,2254
 +  MDiagArray2 \7f89,2329
 +  MDiagArray2 \7f90,2387
 +  MDiagArray2 \7f91,2450
 +  ~MDiagArray2 \7f93,2515
 +  MDiagArray2<T>& operator = \7foperator =\ 195,2542
 +  operator MArray2<T> \7foperator MArray2<T>\ 1101,2667
 +#undef LTGT\7f144,3874
 +#define INSTANTIATE_MDIAGARRAY_FRIENDS(\7f146,3887
 +\f
 +cp-src/Range.h,275
 +#define octave_Range_h \7f24,765
 +Range\7f35,891
 +  Range \7f39,909
 +  Range \7f42,995
 +  Range \7f46,1130
 +  Range \7f50,1248
 +  double base \7f54,1376
 +  double limit \7f55,1425
 +  double inc \7f56,1475
 +  int nelem \7f57,1523
 +  void set_base \7f68,1728
 +  void set_limit \7f69,1774
 +  void set_inc \7f70,1821
 +\f
 +cp-src/screen.cpp,228
 +unsigned char cursor_x,\7f15,548
 +unsigned char cursor_x, cursor_y;\7f15,548
 +static union REGS regs;\7f16,582
 +void goto_xy(\7f18,607
 +void hide_cursor(\7f27,774
 +void cursor_position(\7f32,836
 +void clear_screen(\7f41,997
 +void write_xyc(\7f55,1247
 +\f
 +cp-src/screen.hpp,414
 +#define __COLORS\7f9,401
 +enum COLORS \7f11,419
 +    BLACK,\7f12,433
 +    BLUE,\7f13,471
 +    GREEN,\7f14,481
 +    CYAN,\7f15,492
 +    RED,\7f16,502
 +    MAGENTA,\7f17,511
 +    BROWN,\7f18,524
 +    LIGHTGRAY,\7f19,535
 +    DARKGRAY,\7f20,550
 +    LIGHTBLUE,\7f21,589
 +    LIGHTGREEN,\7f22,604
 +    LIGHTCYAN,\7f23,620
 +    LIGHTRED,\7f24,635
 +    LIGHTMAGENTA,\7f25,649
 +    YELLOW,\7f26,667
 +    WHITE\7f27,679
 +#define SCREEN_FP(\7f31,700
 +#define SCREEN_START \7f33,795
 +\f
 +cp-src/conway.cpp,288
 +#define max(\7f12,357
 +#define min(\7f13,393
 +const int num_rows \7f15,430
 +const int num_columns \7f16,470
 +class site *field_of_play[\7ffield_of_play\ 118,499
 +int site::total_surrounding(\7ftotal_surrounding\ 120,550
 +void display(\7f37,958
 +void glider(\7f50,1239
 +void traffic_light(\7f59,1478
 +void main(\7f67,1633
 +\f
 +cp-src/conway.hpp,164
 +class site:\7fsite\ 15,235
 +    site(\7f10,344
 +    char read(\7f12,410
 +    void set(\7f13,444
 +    void clear(\7f14,478
 +    void compute_next_state(\7f15,514
 +    void step(\7f22,717
 +\f
 +cp-src/clheir.cpp,359
 +const int max_num_generic_objects \7f9,298
 +generic_object * object_registry[\7fobject_registry\ 110,340
 +void init_registry(\7f12,400
 +void step_everybody(\7f19,527
 +void discrete_location::clear_neighbors(\7fclear_neighbors\ 131,852
 +generic_object::generic_object(\7fgeneric_object\ 136,981
 +generic_object::~generic_object(\7f~generic_object\ 148,1255
 +void agent::move(\7fmove\ 153,1353
 +\f
 +cp-src/clheir.hpp,423
 +class generic_object\7f13,520
 +    virtual void compute_next_state(\7f21,843
 +    virtual void step(\7f22,889
 +const int max_num_directions \7f31,1220
 +class location:\7flocation\ 133,1290
 +    location(\7f43,1643
 +class irregular_location:\7firregular_location\ 147,1687
 +    irregular_location(\7f51,1763
 +class discrete_location:\7fdiscrete_location\ 156,1890
 +    discrete_location(\7f62,2045
 +    void assign_neighbor(\7f66,2185
 +class agent:\7fagent\ 175,2509
 +\f
 +cp-src/fail.C,294
 +struct A \7f7,263
 +         struct B \7f8,274
 +                 struct C \7f9,289
 +                         C(\7f11,318
 +                         operator int(\7foperator int\ 112,342
 +                 typedef C T;\7f14,389
 +         typedef B T2;\7f16,414
 +class A \7f23,453
 +      class B \7f24,463
 +              class C \7f25,474
 +              int f(\7f26,488
 +int A::B::f(\7ff\ 131,521
 +main(\7f37,571
 +      class D \7f41,622
 +              D(\7f43,659
 +\f
 +el-src/TAGTEST.EL,148
 +(foo::defmumble bletch \7f1,0
 +(defalias 'pending-delete-mode \7fpending-delete-mode\ 15,102
 +(defalias (quote explicitly-quoted-pending-delete-mode)\7f8,175
 +\f
 +el-src/emacs/lisp/progmodes/etags.el,5069
 +(defvar tags-file-name \7f34,1034
 +(defgroup etags \7f43,1498
 +(defcustom tags-case-fold-search \7f47,1566
 +(defcustom tags-table-list \7f59,2051
 +(defcustom tags-compression-info-list\7f69,2449
 +(defcustom tags-add-tables \7f88,3231
 +(defcustom tags-revert-without-query \7f98,3627
 +(defvar tags-table-computed-list \7f103,3778
 +(defvar tags-table-computed-list-for \7f112,4262
 +(defvar tags-table-list-pointer \7f117,4510
 +(defvar tags-table-list-started-at \7f121,4701
 +(defvar tags-table-set-list \7f124,4821
 +(defcustom find-tag-hook \7f129,5000
 +(defcustom find-tag-default-function \7f137,5263
 +(define-obsolete-variable-alias 'find-tag-marker-ring-length\7ffind-tag-marker-ring-length\ 1145,5602
 +(defcustom tags-tag-face \7f148,5699
 +(defcustom tags-apropos-verbose \7f154,5834
 +(defcustom tags-apropos-additional-actions \7f160,5998
 +(defvaralias 'find-tag-marker-ring \7ffind-tag-marker-ring\ 1183,6917
 +(defvar default-tags-table-function \7f189,7097
 +(defvar tags-location-ring \7f194,7323
 +(defvar tags-table-files \7f201,7599
 +(defvar tags-completion-table \7f206,7766
 +(defvar tags-included-tables \7f209,7858
 +(defvar next-file-list \7f212,7953
 +(defvar tags-table-format-functions \7f217,8059
 +(defvar file-of-tag-function \7f224,8440
 +(defvar tags-table-files-function \7f228,8634
 +(defvar tags-completion-table-function \7f230,8745
 +(defvar snarf-tag-function \7f232,8840
 +(defvar goto-tag-location-function \7f236,9049
 +(defvar find-tag-regexp-search-function \7f239,9222
 +(defvar find-tag-regexp-tag-order \7f241,9343
 +(defvar find-tag-regexp-next-line-after-failure-p \7f243,9452
 +(defvar find-tag-search-function \7f245,9572
 +(defvar find-tag-tag-order \7f247,9679
 +(defvar find-tag-next-line-after-failure-p \7f249,9774
 +(defvar list-tags-function \7f251,9880
 +(defvar tags-apropos-function \7f253,9968
 +(defvar tags-included-tables-function \7f255,10062
 +(defvar verify-tags-table-function \7f257,10181
 +(defun initialize-new-tags-table \7f260,10292
 +(defun tags-table-mode \7f276,10980
 +(defun visit-tags-table \7f285,11245
 +(defun tags-table-check-computed-list \7f321,12783
 +(defun tags-table-extend-computed-list \7f360,14654
 +(defun tags-expand-table-name \7f400,16367
 +(defun tags-table-list-member \7f409,16710
 +(defun tags-verify-table \7f421,17182
 +(defun tags-table-including \7f470,19302
 +(defun tags-next-table \7f522,21346
 +(defun visit-tags-table-buffer \7f543,22203
 +(defun tags-reset-tags-tables \7f712,28513
 +(defun file-of-tag \7f731,29170
 +(defun tags-table-files \7f740,29519
 +(defun tags-included-tables \7f749,29869
 +(defun tags-completion-table \7f755,30115
 +(defun tags-lazy-completion-table \7f783,31309
 +(defun tags-completion-at-point-function \7f799,31944
 +(defun find-tag-tag \7f818,32694
 +(defvar last-tag \7f837,33367
 +(defun find-tag-interactive \7f840,33426
 +(defvar find-tag-history \7f852,33841
 +(defun find-tag-noselect \7f860,34011
 +(defun find-tag \7f932,37125
 +(defun find-tag-other-window \7f959,38341
 +(defun find-tag-other-frame \7f1000,40269
 +(defun find-tag-regexp \7f1025,41443
 +(defalias 'pop-tag-mark \7fpop-tag-mark\ 11049,42605
 +(defvar tag-lines-already-matched \7f1052,42656
 +(defun find-tag-in-order \7f1055,42763
 +(defun tag-find-file-of-tag-noselect \7f1167,47109
 +(defun tag-find-file-of-tag \7f1200,48955
 +(defun etags-recognize-tags-table \7f1208,49181
 +(defun etags-verify-tags-table \7f1241,50812
 +(defun etags-file-of-tag \7f1246,51010
 +(defun etags-tags-completion-table \7f1256,51345
 +(defun etags-snarf-tag \7f1286,52551
 +(defun etags-goto-tag-location \7f1324,54120
 +(defun etags-list-tags \7f1388,56563
 +(defmacro tags-with-face \7f1423,57838
 +(defun etags-tags-apropos-additional \7f1431,58171
 +(defun etags-tags-apropos \7f1465,59408
 +(defun etags-tags-table-files \7f1527,61617
 +(defun etags-tags-included-tables \7f1542,62053
 +(defun tags-recognize-empty-tags-table \7f1559,62593
 +(defun tag-exact-file-name-match-p \7f1587,63739
 +(defun tag-file-name-match-p \7f1596,64132
 +(defun tag-exact-match-p \7f1609,64688
 +(defun tag-implicit-name-match-p \7f1620,65256
 +(defun tag-symbol-match-p \7f1633,65856
 +(defun tag-word-match-p \7f1643,66292
 +(defun tag-partial-file-name-match-p \7f1652,66690
 +(defun tag-any-match-p \7f1662,67134
 +(defun tag-re-match-p \7f1667,67318
 +(defcustom tags-loop-revert-buffers \7f1675,67567
 +(defun next-file \7f1685,67976
 +(defvar tags-loop-operate \7f1760,70890
 +(defvar tags-loop-scan\7f1763,70984
 +(defun tags-loop-eval \7f1771,71313
 +(defun tags-loop-continue \7f1782,71642
 +(defun tags-search \7f1850,73948
 +(defun tags-query-replace \7f1871,74774
 +(defun tags-complete-tags-table-file \7f1896,75998
 +(defun list-tags \7f1906,76377
 +(defun tags-apropos \7f1934,77330
 +(define-button-type 'tags-select-tags-table\7ftags-select-tags-table\ 11957,78156
 +(defun select-tags-table \7f1964,78395
 +(defvar select-tags-table-mode-map \7f2019,80522
 +(define-derived-mode select-tags-table-mode \7f2030,80905
 +(defun select-tags-table-select \7f2034,81089
 +(defun select-tags-table-quit \7f2043,81455
 +(defun complete-tag \7f2049,81610
 +(defconst etags--xref-limit \7f2074,82551
 +(defvar etags-xref-find-definitions-tag-order \7f2076,82586
 +(defun etags-xref-find \7f2082,82876
 +(defun etags--xref-find-definitions \7f2096,83405
 +(defclass xref-etags-location \7f2129,85119
 +(defun xref-make-etags-location \7f2135,85342
 +(cl-defmethod xref-location-marker \7f2139,85497
 +(cl-defmethod xref-location-line \7f2146,85741
 +\f
 +erl-src/gs_dialog.erl,98
 +-define(VERSION\7f2,32
 +behaviour_info(\7f51,2177
 +show(\7f124,5458
 +dialog_loop(\7f219,9529
 +test(\7f252,10806
 +\f
 +f-src/entry.for,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +f-src/entry.strange_suffix,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +f-src/entry.strange,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +forth-src/test-forth.fth,408
 +: a-forth-word \7f20,301
 +99 constant a-forth-constant!\7f22,343
 +55 value a-forth-value?\7f23,373
 +create :a-forth-dictionary-entry\7f24,397
 +defer #a-defer-word\7f27,460
 +: (another-forth-word)\7f(another-forth-word\ 129,481
 +   9   field   >field1\7f36,582
 +   5   field   >field2\7f37,605
 +constant (a-forth-constant\7f(a-forth-constant\ 138,628
 +2000 buffer: #some-storage\7f41,657
 +code assemby-code-word \7f43,685
 +: a-forth-word \7f50,870
 +\f
 +go-src/test.go,48
 +package main\7f1,0
 +func say(\7f5,28
 +func main(\7f9,72
 +\f
 +go-src/test1.go,119
 +package main\7f1,0
 +func (s str) PrintAdd(\7f17,136
 +func (n intNumber) PrintAdd(\7f21,189
 +func test(\7f25,248
 +func main(\7f29,285
 +\f
 +html-src/softwarelibero.html,200
 +Cos'è il software libero?\7f4,38
 +Licenze d'uso di un programma\7flicenze\ 165,2500
 +Sfatiamo alcuni miti\7f138,6118
 +Il movimento open source\7foss\ 1191,8037
 +Impatto pratico del software libero\7fimpatto\ 1231,10066
 +\f
 +html-src/index.shtml,104
 +&nbsp;\7f8,281
 +In evidenza\7f15,447
 +Comunicati e iniziative\7f32,976
 +Ultime notizie dall'associazione\7f63,2030
 +\f
 +html-src/algrthms.html,467
 +Tutorial on Convolutional Coding with Viterbi Decoding--Description of the Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and Quantizing Algorithms\7f7,277
 +Description\7falgorithms\ 110,481
 +Generating the Data\7fgenalgorithm\ 148,1995
 +Convolutionally\7fconalgorithm\ 155,2512
 +Next\7fstatetable\ 1262,11587
 +Output\7foutputtable\ 1350,13915
 +Mapping the Channel Symbols\7fmapping\ 1433,16213
 +Adding Noise to the\7faddnoise\ 1439,16607
 +Quantizing the Received\7fquantizing\ 1469,19100
 +\f
 +html-src/software.html,439
 +Francesco Potortì Software Page\7f9,280
 +Software that I wrote for supporting my research activity\7fsimulation\ 136,1398
 +MTG\7fmtg\ 141,1482
 +Fracas\7ffracas\ 165,2624
 +GaliLEO\7fgalileo\ 1101,4232
 +Leasqr\7fleasqr\ 1114,4677
 +Free software that I wrote for the GNU project or for my personal or work\7fgnu\ 1142,6065
 +Etags\7fetags\ 1148,6180
 +checkiso\7f161,6729
 +cgrep\7f178,7547
 +debian-bug.el\7fdebian-bug\ 1190,7979
 +tcpdump\7f205,8564
 +Links to interesting software\7flinks\ 1216,8891
 +\f
 +lua-src/allegro.lua,400
 +local function get_layer_by_name \7f7,175
 +local function count_layers \7f33,621
 +function GetLayerByName \7f54,980
 +function GetUniqueLayerName \7f65,1204
 +function SelectLayer \7f76,1415
 +function NewLayer \7f86,1773
 +function NewLayerSet \7f144,3226
 +function RemoveLayer \7f170,3750
 +function MoveLayerTop \7f211,4767
 +function MoveLayerBottom \7f223,5079
 +function MoveLayerBefore \7f236,5457
 +function MoveLayerAfter \7f258,6090
 +\f
 +lua-src/test.lua,442
 +function Rectangle.getPos \7f2,15
 +function Rectangle.getPos \7fgetPos\ 12,15
 +function Circle.getPos \7f6,61
 +function Circle.getPos \7fgetPos\ 16,61
 +function Cube.data.getFoo \7f10,102
 +function Cube.data.getFoo \7fgetFoo\ 110,102
 +function Square.something:Bar \7f14,148
 +function Square.something:Bar \7fBar\ 114,148
 +   function test.me_22a(\7f22,241
 +   function test.me_22a(\7fme_22a\ 122,241
 +   local function test.me22b \7f25,297
 +   local function test.me22b \7fme22b\ 125,297
 +\f
 +make-src/Makefile,2175
 +LATEST=\7f1,0
 +RELEASELIST=\7f2,10
 +ADASRC=\7f4,104
 +ASRC=\7f5,171
 +CSRC=\7f6,197
 +CPSRC=\7f10,423
 +ELSRC=\7f13,614
 +ERLSRC=\7f14,661
 +FORTHSRC=\7f15,702
 +FSRC=\7f16,726
 +HTMLSRC=\7f17,776
 +JAVASRC=\7f18,844
 +LUASRC=\7f19,907
 +MAKESRC=\7f20,926
 +OBJCSRC=\7f21,943
 +OBJCPPSRC=\7f22,999
 +PASSRC=\7f23,1035
 +PERLSRC=\7f24,1053
 +PHPSRC=\7f25,1108
 +PSSRC=\7f26,1156
 +PROLSRC=\7f27,1173
 +PYTSRC=\7f28,1210
 +TEXSRC=\7f29,1227
 +YSRC=\7f30,1282
 +SRCS=\7f31,1325
 +NONSRCS=\7f35,1577
 +VHDLFLAGS=\7f37,1624
 +COBOLFLAGS=\7f38,1827
 +POSTSCRIPTFLAGS=\7f39,1889
 +TCLFLAGS=\7f40,1943
 +GETOPTOBJS=\7f42,2002
 +RXINCLUDE=\7f43,2034
 +REGEXOBJS=\7f44,2056
 +CHECKOBJS=\7f46,2075
 +CHECKFLAGS=\7f47,2105
 +OBJS=\7f48,2145
 +CPPFLAGS=\7f49,2190
 +LDFLAGS=\7f50,2259
 +WARNINGS=\7f51,2282
 +CFLAGS=\7f52,2466
 +FASTCFLAGS=\7f55,2530
 +FASTCFLAGSWARN=\7f56,2591
 +FILTER=\7f58,2641
 +REGEX=\7f59,2695
 +xx=\7f60,2741
 +MAKE:\7fMAKE\ 162,2790
 +RUN=\7f63,2825
 +RUN=\7f64,2865
 +OPTIONS=\7f65,2870
 +ARGS=\7f66,2922
 +infiles \7f68,2940
 +quiettest:\7fquiettest\ 170,3002
 +test:\7ftest\ 179,3409
 +${CHECKOBJS}:\7f${CHECKOBJS}\ 188,3805
 +checker:\7fchecker\ 190,3849
 +standalone:\7fstandalone\ 196,4062
 +prof:\7fprof\ 1101,4168
 +fastetags:\7ffastetags\ 1104,4198
 +fastctags:\7ffastctags\ 1108,4322
 +staticetags:\7fstaticetags\ 1112,4446
 +rsynctofly:\7frsynctofly\ 1116,4608
 +rsyncfromfly:\7frsyncfromfly\ 1119,4698
 +web ftp publish:\7fweb ftp publish\ 1122,4794
 +release distrib:\7frelease distrib\ 1129,5115
 +tags:\7ftags\ 1134,5255
 +clean:\7fclean\ 1136,5267
 +srclist:\7fsrclist\ 1139,5302
 +regexfile:\7fregexfile\ 1143,5391
 +/home/www/pub/etags.c.gz:\7f/home/www/pub/etags.c.gz\ 1149,5566
 +/home/www/pub/software/unix/etags.tar.gz:\7f/home/www/pub/software/unix/etags.tar.gz\ 1156,5825
 +regex.o:\7fregex.o\ 1159,6031
 +getopt.o:\7fgetopt.o\ 1162,6086
 +getopt1.o:\7fgetopt1.o\ 1165,6147
 +etags:\7fetags\ 1168,6210
 +ctags:\7fctags\ 1171,6299
 +man manpage:\7fman manpage\ 1174,6396
 +etags.1.man:\7fetags.1.man\ 1176,6422
 +maintaining.info:\7fmaintaining.info\ 1179,6475
 +TAGS:\7fTAGS\ 1182,6557
 +%ediff:\7f%ediff\ 1185,6587
 +oediff:\7foediff\ 1188,6677
 +%cdiff:\7f%cdiff\ 1191,6764
 +xdiff:\7fxdiff\ 1194,6854
 +ETAGS:\7fETAGS\ 1197,6942
 +ETAGS%:\7fETAGS%\ 1200,7012
 +ETAGS13 ETAGS14 ETAGS15:\7fETAGS13 ETAGS14 ETAGS15\ 1203,7084
 +ETAGS12:\7fETAGS12\ 1206,7216
 +OTAGS:\7fOTAGS\ 1209,7304
 +CTAGS:\7fCTAGS\ 1212,7369
 +CTAGS%:\7fCTAGS%\ 1215,7443
 +CTAGS13 CTAGS14 CTAGS15:\7fCTAGS13 CTAGS14 CTAGS15\ 1218,7545
 +EXTAGS:\7fEXTAGS\ 1221,7680
 +.PRECIOUS:\7f.PRECIOUS\ 1224,7838
 +FRC:\7fFRC\ 1226,7894
 +\f
 +objc-src/Subprocess.h,98
 +#define Subprocess \7f41,1217
 +#define BUFFERSIZE \7f43,1267
 +@interface Subprocess:\7fSubprocess\ 145,1292
 +\f
 +objc-src/Subprocess.m,446
 +#define       PTY_TEMPLATE \7f20,494
 +#define       PTY_LENGTH \7f21,528
 +@interface Subprocess(Private)\7f32,737
 +- childDidExit\7f39,851
 +- fdHandler:\7ffdHandler\ 167,1589
 +showError \7f98,2360
 +fdHandler \7f112,2785
 +getptys \7f119,2907
 +- init:\7finit\ 1183,4815
 +    andStdErr:\7finit\ 1197,5147
 +- send:(const char *)string withNewline:\7fsend\ 1300,7436
 +- send:\7fsend\ 1308,7599
 +- terminateInput\7f314,7689
 +- terminate:\7fterminate\ 1321,7810
 +- setDelegate:\7fsetDelegate\ 1332,7961
 +- delegate\7f338,8031
 +\f
 +objc-src/PackInsp.h,109
 +#define NUMSTATS      \7f36,1101
 +#define TYPESTOSTAT   \7f37,1120
 +@interface PackageInspector:\7fPackageInspector\ 139,1172
 +\f
 +objc-src/PackInsp.m,1322
 +static const char RCSid[\7fRCSid\ 130,1032
 +#define VERSION       \7f34,1116
 +#   define DEBUG \7f37,1155
 +#define LISTCONTENTS  \7f39,1181
 +#define OPENBUTTON    \7f47,1352
 +#define LISTCONTENTSBUTTON    \7f48,1449
 +#define LISTDESCRIPTIONBUTTON \7f49,1562
 +#define STATE_UNINSTALLED     \7f52,1687
 +#define STATE_INSTALLED       \7f53,1807
 +#define STATE_COMPRESSD       \7f54,1948
 +#define SIZEFORMAT    \7f57,2152
 +#define KBYTES        \7f58,2362
 +#define MBYTES        \7f59,2473
 +#define LOCALIZE(\7f61,2585
 +#define LOCALIZE_ARCH(\7f62,2668
 ++new\7fnew\ 167,2802
 +-showInfo:\7fshowInfo\ 193,3417
 +-revert:\7frevert\ 1107,3737
 +-ok:\7fok\ 1136,4297
 +-load\7fload\ 1143,4424
 +#define LOOKUP(\7f156,4826
 +#undef LOOKUP\7f176,5694
 +-loadKeyValuesFrom:(const char *)type inTable:\7floadKeyValuesFrom\ 1186,5852
 +-loadContentsOf:(const char *)type inTable:\7floadContentsOf\ 1238,7079
 +-loadImage\7floadImage\ 1257,7552
 +#define STAT_EQ(\7f275,7940
 +-(BOOL)shouldLoad\7f280,8116
 +-toggleDescription\7ftoggleDescription\ 1301,8626
 +-(const char *)getPath:(char *)buf forType:\7fgetPath\ 1317,8899
 +-setRevertButtonTitle\7fsetRevertButtonTitle\ 1333,9320
 +-(const char *)formatSize:(const char *)size inBuf:\7fformatSize\ 1344,9525
 +#define WORKING       \7f368,10045
 +-(void)getArchs\7f370,10100
 +-(void)addArchs:\7faddArchs\ 1385,10520
 +-subprocess:(Subprocess *)sender output:\7fsubprocess\ 1428,11351
 +-subprocessDone:\7fsubprocessDone\ 1436,11484
 +static void openInWorkspace(\7f446,11634
 +-open:\7fopen\ 1464,12063
 +\f
 +objcpp-src/SimpleCalc.H,41
 +@interface SimpleCalc:\7fSimpleCalc\ 114,400
 +\f
 +objcpp-src/SimpleCalc.M,445
 +- init\7f52,1747
 +- appendToDisplay:\7fappendToDisplay\ 160,1933
 +- registerAction:\7fregisterAction\ 170,2210
 +- decimalKey:\7fdecimalKey\ 177,2348
 +- numberKeys:\7fnumberKeys\ 191,2661
 +- equalsKey:\7fequalsKey\ 1112,3192
 +- operationKeys:\7foperationKeys\ 1131,3680
 +- clearKey:\7fclearKey\ 1153,4301
 +- clearAllKey:\7fclearAllKey\ 1160,4410
 +- appDidInit:\7fappDidInit\ 1168,4591
 +- windowWillClose:\7fwindowWillClose\ 1178,4882
 +- infoPanel:\7finfoPanel\ 1186,5132
 +- helpPanel:\7fhelpPanel\ 1198,5482
 +\f
 +pas-src/common.pas,1875
 +procedure InitializeStringPackage;\7f26,527
 +function newtextstring;\7f34,874
 +procedure disposetextstring;\7f52,1404
 +function ConcatT;\7f78,2066
 +function AppendTextString;\7f112,3238
 +function CopyTextString;\7f132,3947
 +procedure CONVERT_CHARSTRING_TO_VALUE;\7f151,4505
 +procedure append_string;\7f172,5166
 +function To_Upper;\7f186,5462
 +function To_Lower;\7f194,5617
 +function EmptyNmStr(\7f209,6213
 +function chartonmstr;\7f219,6436
 +function LowerCaseNmStr;\7f230,6682
 +function concatenatenamestrings;\7f242,7007
 +procedure writenamestring;\7f263,7517
 +function IsControlChar;\7f277,7928
 +function namestringequal;\7f283,8079
 +function NameStringLess;\7f302,8539
 +function IsControlCharName(\7f343,9710
 +function SubString;\7f358,10208
 +function SkipChars;\7f379,10791
 +function RemoveUnderlineControl;\7f397,11311
 +procedure First100Chars;\7f427,12162
 +procedure SkipSpaces;\7f462,13298
 +function SkipBlanks;\7f477,13782
 +function stripname;\7f505,14595
 +function Locate;\7f522,15039
 +function NameHasChar;\7f543,15581
 +function integertonmstr;\7f561,16134
 +function NmStrToInteger;\7f585,16901
 +function AddNullToNmStr;\7f600,17317
 +function ValToNmStr;\7f611,17585
 +function ChangeFileType;\7f625,18037
 +function StripPath;\7f647,18734
 +function ReprOfChar;\7f675,19343
 +procedure ExtractCommentInfo;\7f702,20749
 +procedure INSERT_TREE_NODE;\7f784,24053
 +function GetNameList;\7f920,27926
 +procedure DisposeANameList(\7f925,28010
 +procedure DisposeNameList;\7f938,28340
 +function GetNewNameListNode;\7f943,28409
 +function insertname;\7f972,29051
 +procedure InitNameList;\7f988,29471
 +procedure InitNameStringPool;\7f998,29767
 +procedure NewNameString;\7f1004,29867
 +procedure ReleaseNameString;\7f1022,30232
 +procedure SDTrefStringToRec \7f1045,30741
 +procedure SDTrefSkipSpaces;\7f1059,31092
 +function SDTrefIsEnd \7f1070,31323
 +function SDTrefGetInteger \7f1082,31529
 +procedure SDTrefRecToString \7f1303,37546
 +function NmStrToErrStr;\7f1497,42305
 +function ErrStrToNmStr;\7f1509,42557
 +function GetTextRef;\7f1529,43112
 +\f
 +php-src/lce_functions.php,2152
 +  define("LCE_FUNCTIONS"\7fLCE_FUNCTIONS\ 14,38
 +  define("LCE_UNKNOWN"\7fLCE_UNKNOWN\ 19,145
 +  define("LCE_WS"\7fLCE_WS\ 111,194
 +  define("LCE_COMMENT"\7fLCE_COMMENT\ 113,244
 +  define("LCE_COMMENT_USER"\7fLCE_COMMENT_USER\ 115,303
 +  define("LCE_COMMENT_TOOL"\7fLCE_COMMENT_TOOL\ 117,366
 +  define("LCE_MSGID"\7fLCE_MSGID\ 119,430
 +  define("LCE_MSGSTR"\7fLCE_MSGSTR\ 121,488
 +  define("LCE_TEXT"\7fLCE_TEXT\ 123,541
 +  define("STATE_ABORT"\7fSTATE_ABORT\ 125,567
 +  define("STATE_OK"\7fSTATE_OK\ 126,595
 +  define("STATE_LOOP"\7fSTATE_LOOP\ 127,620
 +  class POEntryAD \7f29,648
 +      function validate(\7f31,683
 +      function checkQuotation(\7f59,1384
 +  class CommentAD \7f70,1639
 +      function CommentAD(\7f73,1693
 +      function validate(\7f83,1944
 +  class POEntry \7f105,2410
 +      function POEntry(\7f119,2711
 +      function lineCount(\7f135,3255
 +      function serializeToVars(\7f141,3365
 +      function write(\7f151,3800
 +  class POReader \7f163,4178
 +      function gettext(\7f177,4457
 +      function parseFromVars(\7f189,4705
 +      function serializeToVars(\7f215,5331
 +      function POReader(\7f229,5613
 +      function read(\7f243,5983
 +      function write(\7f259,6307
 +      function isComment(\7f277,6645
 +      function comment(\7f284,6822
 +      function msgid(\7f304,7247
 +      function msgstr(\7f320,7574
 +      function start(\7f340,8232
 +      function createPOEntries(\7f360,8644
 +      function stripLine(\7f394,9472
 +      function printClassification(\7f421,10056
 +      function classifyLine(\7f432,10301
 +  function getTextDomains(\7f471,11094
 +  class PORManager \7f498,11756
 +      function PORManager(\7f502,11822
 +      function addPOReader(\7f507,11896
 +      function &getPOReader(\7fgetPOReader\ 1512,11992
 +      function getDomainNames(\7f517,12081
 +  function &loadPORManager(\7floadPORManager\ 1523,12174
 +  function fileJoin(\7f536,12436
 +      function lce_bindtextdomain(\7f557,12839
 +      function lce_textdomain(\7f614,14530
 +      function lce_gettext(\7f620,14641
 +      function lce_dgettext(\7f626,14767
 +      function lce(\7f634,14966
 +      function lce_bindtextdomain(\7f651,15488
 +      function lce_textdomain(\7f656,15592
 +      function lce_gettext(\7f661,15674
 +      function lce_dgettext(\7f666,15755
 +      function lce(\7f670,15855
 +  function lce_geteditcode(\7f676,15898
 +\f
 +php-src/ptest.php,46
 +define("TEST"\7fTEST\ 11,0
 +test \7f4,26
 +foo(\7f16,200
 +\f
- sub read_toc \7fmain::read_toc\ 1165,3917
++perl-src/htlmify-cystic,1197
 +my @section_name;\7fsection_name\ 112,236
 +my @appendix_name;\7fappendix_name\ 113,254
 +my @section_toc;\7fsection_toc\ 115,274
 +my @appendix_toc;\7fappendix_toc\ 116,291
 +my $new_tag \7fnew_tag\ 118,310
 +my $appendix;\7fappendix\ 124,409
 +my $section;\7fsection\ 125,423
 +my $subsection;\7fsubsection\ 126,436
 +my $subsubsection;\7fsubsubsection\ 127,452
 +my $this_file_toc \7fthis_file_toc\ 129,472
 +my %file_tocs;\7ffile_tocs\ 130,496
 +my @output_files \7foutput_files\ 132,512
 +my $file_index \7ffile_index\ 133,535
 +my $output_file;\7foutput_file\ 135,556
 +my $line;\7fline\ 137,574
 +my $subsection_marker;\7fsubsection_marker\ 1161,3883
 +my $new;\7fnew\ 1163,3907
- sub finish_subsubsections \7fmain::finish_subsubsections\ 1302,7805
- sub finish_subsections \7fmain::finish_subsections\ 1309,7987
- sub finish_sections \7fmain::finish_sections\ 1320,8310
- sub finish_appendices \7fmain::finish_appendices\ 1331,8599
- sub section_url_base \7fmain::section_url_base\ 1337,8724
- sub section_url_name \7fmain::section_url_name\ 1342,8922
- sub section_url \7fmain::section_url\ 1355,9284
++sub read_toc \7f165,3917
 +        my $entry \7fentry\ 1218,5621
 +        my $entry \7fentry\ 1234,6077
 +            my $entry \7fentry\ 1245,6351
 +        my $entry \7fentry\ 1252,6536
 +        my $entry \7fentry\ 1268,7010
 +            my $entry \7fentry\ 1276,7204
 +        my $entry \7fentry\ 1281,7328
 +      my $entry \7fentry\ 1296,7698
- sub section_href \7fmain::section_href\ 1364,9452
- sub section_name \7fmain::section_name\ 1368,9551
- sub toc_line \7fmain::toc_line\ 1372,9655
- sub file_end \7fmain::file_end\ 1375,9750
++sub finish_subsubsections \7f302,7805
++sub finish_subsections \7f309,7987
++sub finish_sections \7f320,8310
++sub finish_appendices \7f331,8599
++sub section_url_base \7f337,8724
++sub section_url_name \7f342,8922
++sub section_url \7f355,9284
 +  my $name \7fname\ 1357,9336
- perl-src/yagrip.pl,258
- sub getopt \7fmain::getopt\ 17,156
++sub section_href \7f364,9452
++sub section_name \7f368,9551
++sub toc_line \7f372,9655
++sub file_end \7f375,9750
 +\f
- sub usage \7fmain::usage\ 138,856
++perl-src/yagrip.pl,233
++sub getopt \7f7,156
 +      local($_,$flag,$opt,$f,$r,@temp)\7f($_,$flag,$opt,$f,$r,@temp\ 18,169
- perl-src/kai-test.pl,244
- sub f1 \7fmain::f1\ 12,16
- sub main::f2 \7f6,50
++sub usage \7f38,856
 +      local($prog,$_,@list)\7f($prog,$_,@list\ 139,868
 +      local($string,$flag,@string,@temp,@last)\7f($string,$flag,@string,@temp,@last\ 140,897
 +\f
- sub f3 \7fFoo::f3\ 112,104
- sub Bar::f4 \7f16,138
++perl-src/kai-test.pl,203
++sub f1 \7f2,16
++sub main::f2 \7ff2\ 16,50
 +package Foo;\7f10,90
- sub f5 \7fBar::f5\ 122,191
++sub f3 \7f12,104
++sub Bar::f4 \7ff4\ 116,138
 +package Bar;\7f20,177
- sub f6 \7fFoo::Bar::f6\ 128,244
++sub f5 \7f22,191
 +package Foo::Bar;\7f26,225
- sub f7 \7fmain::f7\ 134,293
++sub f6 \7f28,244
 +package main;\7f32,278
++sub f7 \7f34,293
 +\f
 +ps-src/rfc1245.ps,2478
 +/FMversion \7f12,311
 +/FrameDict \7f17,500
 +/FMVERSION \7f47,1307
 +/FMLOCAL \7f56,1494
 +/FMDOCUMENT \7f73,1766
 +/FMBEGINPAGE \7f95,2279
 +/FMENDPAGE \7f109,2516
 +/FMDEFINEFONT \7f115,2582
 +/FMNORMALIZEGRAPHICS \7f126,2725
 +/FMBEGINEPSF \7f142,2955
 +/FMENDEPSF \7f153,3207
 +/setmanualfeed \7f158,3283
 +/max \7f163,3386
 +/min \7f164,3426
 +/inch \7f165,3466
 +/pagedimen \7f166,3485
 +/setpapername \7f172,3629
 +/papersize \7f190,4214
 +/manualpapersize \7f211,4789
 +/desperatepapersize \7f230,5211
 +/savematrix \7f239,5370
 +/restorematrix \7f242,5425
 +/dmatrix \7f245,5475
 +/dpi \7f246,5495
 +/freq \7f248,5583
 +/sangle \7f249,5658
 +/DiacriticEncoding \7f250,5717
 +/.notdef \7f251,5738
 +/.notdef \7f252,5801
 +/.notdef \7f253,5864
 +/.notdef \7f254,5927
 +/.notdef \7f255,5990
 +/numbersign \7f256,6051
 +/parenright \7f257,6115
 +/two \7f258,6184
 +/less \7f259,6251
 +/L \7f260,6320
 +/bracketright \7f261,6389
 +/i \7f262,6459
 +/braceright \7f263,6529
 +/Ntilde \7f264,6598
 +/atilde \7f265,6668
 +/iacute \7f266,6733
 +/ocircumflex \7f267,6797
 +/udieresis \7f268,6858
 +/paragraph \7f269,6919
 +/dieresis \7f270,6983
 +/yen \7f271,7050
 +/ordfeminine \7f272,7109
 +/exclamdown \7f273,7171
 +/guillemotleft \7f274,7230
 +/Otilde \7f275,7296
 +/quoteleft \7f276,7357
 +/fraction \7f277,7420
 +/periodcentered \7f278,7490
 +/Acircumflex \7f279,7549
 +/Icircumflex \7f280,7610
 +/Uacute \7f281,7680
 +/breve \7f282,7746
 +/ReEncode \7f284,7814
 +/graymode \7f300,8020
 +/setpattern \7f310,8184
 +/grayness \7f331,8725
 +/normalize \7f394,9873
 +/dnormalize \7f397,9942
 +/lnormalize \7f400,10014
 +/H \7f403,10104
 +/Z \7f406,10147
 +/X \7f409,10176
 +/V \7f412,10219
 +/N \7f415,10260
 +/M \7f418,10286
 +/E \7f419,10315
 +/D \7f420,10336
 +/O \7f421,10358
 +/L \7f423,10394
 +/Y \7f430,10489
 +/R \7f439,10588
 +/RR \7f450,10696
 +/C \7f467,10959
 +/U \7f473,11004
 +/F \7f477,11039
 +/T \7f481,11084
 +/RF \7f484,11115
 +/TF \7f488,11164
 +/P \7f495,11219
 +/PF \7f499,11270
 +/S \7f506,11344
 +/SF \7f510,11384
 +/B \7f517,11446
 +/BF \7f521,11505
 +/W \7f538,11714
 +/G \7f573,12382
 +/A \7f582,12525
 +/BEGINPRINTCODE \7f606,12918
 +/ENDPRINTCODE \7f615,13131
 +/gn \7f620,13259
 +/cfs \7f631,13384
 +/ic \7f636,13473
 +/ms \7f658,14285
 +/ip \7f668,14395
 +/wh \7f678,14492
 +/bl \7f684,14607
 +/s1 \7f690,14722
 +/fl \7f691,14739
 +/hx \7f698,14887
 +/wbytes \7f709,15055
 +/BEGINBITMAPBWc \7f713,15147
 +/BEGINBITMAPGRAYc \7f716,15198
 +/BEGINBITMAP2BITc \7f719,15251
 +/COMMONBITMAPc \7f722,15304
 +/BEGINBITMAPBW \7f739,15660
 +/BEGINBITMAPGRAY \7f742,15709
 +/BEGINBITMAP2BIT \7f745,15760
 +/COMMONBITMAP \7f748,15811
 +/Fmcc \7f765,16156
 +/ngrayt \7f773,16371
 +/nredt \7f774,16393
 +/nbluet \7f775,16414
 +/ngreent \7f776,16436
 +/colorsetup \7f787,16603
 +/fakecolorsetup \7f814,17370
 +/BITMAPCOLOR \7f826,17636
 +/BITMAPCOLORc \7f839,17926
 +/BITMAPGRAY \7f855,18275
 +/BITMAPGRAYc \7f858,18335
 +/ENDBITMAP \7f861,18397
 +/fillprocs \7f868,18497
 +\f
 +prol-src/ordsets.prolog,525
 +is_ordset(\7f47,1310
 +list_to_ord_set(\7f63,1688
 +ord_add_element(\7f71,1867
 +ord_del_element(\7f85,2344
 +ord_disjoint(\7f100,2783
 +ord_intersect(\7f108,2953
 +ord_intersection(\7f126,3552
 +ord_intersection3(\7f130,3691
 +ord_intersection(\7f150,4531
 +ord_intersection4(\7f154,4703
 +ord_intersection(\7f176,5664
 +ord_intersection2(\7f181,5812
 +ord_member(\7f200,6318
 +ord_seteq(\7f216,6683
 +ord_setproduct(\7f225,6971
 +ord_subset(\7f240,7377
 +ord_subtract(\7f257,7861
 +ord_symdiff(\7f265,8054
 +ord_union(\7f288,8887
 +ord_union4(\7f303,9352
 +ord_union(\7f324,10171
 +ord_union_all(\7f329,10313
 +\f
 +prol-src/natded.prolog,2319
 +expandmng(\7f100,2879
 +normalize(\7f116,3359
 +fresh_vars(\7f125,3716
 +subst(\7f138,4134
 +normalize_fresh(\7f159,4660
 +reduce_subterm(\7f171,5112
 +reduce(\7f185,5559
 +free_var(\7f196,5903
 +free_for(\7f209,6246
 +compile_lex(\7f231,6875
 +consult_lex:-\7fconsult_lex\ 1248,7384
 +lex(\7f259,7754
 +expandsyn(\7f267,8068
 +bas_syn(\7f292,8897
 +compile_empty:-\7fcompile_empty\ 1310,9376
 +complete(\7f328,10055
 +add_active(\7f340,10527
 +parse(\7f353,10949
 +derived_analyses(\7f364,11341
 +build(\7f378,11965
 +buildact(\7f392,12521
 +mapsyn(\7f412,13542
 +add_edge(\7f434,14278
 +findcats(\7f447,14758
 +normalize_tree(\7f465,15478
 +normalize_trees(\7f475,15856
 +expandmng_tree(\7f486,16248
 +expandmng_trees(\7f496,16614
 +cat(\7f511,17013
 +subtree(\7f644,21266
 +hypothetical_mem(\7f653,21565
 +make_coor(\7f667,22130
 +start_up:-\7fstart_up\ 1688,23013
 +tokenizeatom(\7f710,23921
 +tokenize(\7f720,24348
 +isoperator(\7f752,25377
 +isoptab(\7f756,25431
 +specialsymbol(\7f765,25756
 +sstab(\7f771,25861
 +parse_cgi(\7f787,26347
 +keyvalseq(\7f792,26510
 +andkeyvalseq(\7f796,26609
 +keyval(\7f799,26688
 +valseq(\7f807,26920
 +plusvalseq(\7f810,27007
 +val(\7f816,27109
 +argvals(\7f824,27426
 +commaargvals(\7f828,27503
 +atomval(\7f833,27578
 +atom(\7f836,27640
 +action(\7f846,28004
 +keyvalcgi(\7f864,28649
 +keyvalscgi(\7f865,28670
 +outsyn(\7f868,28726
 +act(\7f876,29060
 +actout(\7f901,29906
 +texttreelist(\7f912,30089
 +htmltreelist(\7f918,30190
 +fitchtreelist(\7f924,30304
 +pp_html_table_tree(\7f938,30759
 +pp_html_tree(\7f949,31113
 +pp_html_trees(\7f988,32381
 +pp_html_table_fitch_tree(\7f999,32769
 +pp_html_fitch_tree(\7f1017,33672
 +removeexp(\7f1129,39002
 +splitexp(\7f1142,39490
 +pp_exp(\7f1155,39990
 +map_word(\7f1168,40249
 +pp_exps(\7f1180,40474
 +pp_tree(\7f1188,40777
 +pp_trees(\7f1216,41807
 +pp_word_list(\7f1225,42128
 +pp_word(\7f1231,42262
 +pp_word_list_rest(\7f1238,42569
 +pp_cat(\7f1248,42929
 +pp_syn(\7f1255,43196
 +pp_syn_paren(\7f1276,43899
 +pp_paren(\7f1293,44377
 +pp_syn_back(\7f1300,44661
 +pp_bas_cat(\7f1311,45001
 +writecat(\7f1322,45409
 +writesubs(\7f1351,46455
 +writesups(\7f1361,46757
 +writelistsubs(\7f1371,47090
 +pp_lam(\7f1380,47408
 +pp_lam_bracket(\7f1398,48022
 +pp_lam_paren(\7f1407,48338
 +pp_rule(\7f1429,49238
 +member(\7f1447,49866
 +append_list(\7f1451,49919
 +append(\7f1456,50010
 +at_least_one_member(\7f1460,50076
 +numbervars(\7f1464,50171
 +reverse(\7f1467,50209
 +select(\7f1471,50290
 +select_last(\7f1475,50357
 +cat_atoms(\7f1479,50436
 +writelist(\7f1485,50524
 +write_lex_cat(\7f1492,50676
 +writebreaklex(\7f1500,50988
 +write_lex(\7f1513,51265
 +writebreak(\7f1521,51541
 +tt:-\7ftt\ 11531,51713
 +mt:-\7fmt\ 11534,51784
 +cmt:-\7fcmt\ 11537,51878
 +\f
 +pyt-src/server.py,1438
 +class Controls:\7fControls\ 117,358
 +    def __init__(\7f18,374
 +    def __repr__(\7f24,590
 +    def __str__(\7f34,871
 +class Server:\7fServer\ 137,934
 +    def __init__(\7f38,948
 +    def dump(\7f73,2198
 +    def __repr__(\7f125,3896
 +    def __str__(\7f128,3945
 +class User:\7fUser\ 1131,4014
 +    def __init__(\7f132,4026
 +    def __repr__(\7f172,5445
 +    def __str__(\7f206,6883
 +def flag2str(\7f223,7212
 +class LabeledEntry(\7f232,7442
 +    def bind(\7f234,7525
 +    def focus_set(\7f236,7584
 +    def __init__(\7f238,7629
 +def ButtonBar(\7f245,7909
 +def helpwin(\7f255,8280
 +class ListEdit(\7f267,8707
 +    def __init__(\7f269,8808
 +    def handleList(\7f303,10042
 +    def handleNew(\7f306,10094
 +    def editItem(\7f314,10426
 +    def deleteItem(\7f320,10596
 +def ConfirmQuit(\7f326,10760
 +class ControlEdit(\7f375,12377
 +    def PostControls(\7f376,12403
 +    def GatherControls(\7f421,13530
 +class ServerEdit(\7f512,16264
 +    def __init__(\7f513,16289
 +    def post(\7f525,16629
 +    def gather(\7f543,17191
 +    def nosave(\7f547,17304
 +    def save(\7f551,17408
 +    def refreshPort(\7f556,17509
 +    def createWidgets(\7f561,17663
 +    def edituser(\7f631,20708
 +class UserEdit(\7f645,20921
 +    def __init__(\7f646,20944
 +    def post(\7f658,21283
 +    def gather(\7f676,21841
 +    def nosave(\7f680,21950
 +    def save(\7f684,22052
 +    def createWidgets(\7f689,22151
 +class Configure(\7f760,24879
 +    def __init__(\7f761,24916
 +    def MakeDispose(\7f772,25211
 +    def MakeSitelist(\7f786,25706
 +    def editsite(\7f794,25949
 +    def save(\7f797,26022
 +    def nosave(\7f807,26310
 +\f
 +ruby-src/test.rb,637
 +module ModuleExample\7f1,0
 +    class ClassExample\7f2,21
 +        def instance_method\7f3,44
 +        def ClassExample.class_method\7fclass_method\ 16,121
 +        def instance_method_exclamation!\7f9,206
 +        def instance_method_question?\7f12,310
 +        def instance_method_equals=\7finstance_method_equals=\ 115,408
 +        def `(\7f18,502
 +        def +(\7f21,592
 +        def [](\7f24,640
 +        def []=(\7f[]=\ 127,690
 +        def <<(\7f30,752
 +        def ==(\7f==\ 133,802
 +        def <=(\7f<=\ 136,872
 +        def <=>(\7f<=>\ 139,943
 +        def ===(\7f===\ 142,990
 +    def module_instance_method\7f46,1051
 +    def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 +\f
 +ruby-src/test1.ru,935
 +class A\7f1,0
 + def a(\7f2,8
 + def b(\7f5,38
 +module A\7f9,57
 +  class B\7f10,66
 +    ABC \7f11,76
 +    Def_ \7f12,88
 +    Xyzzy \7f13,106
 +    def foo!\7f15,121
 +    def self._bar?(\7f_bar?\ 118,143
 +      def qux=(\7fqux=\ 122,194
 +    attr_reader :foo\7ffoo\ 126,233
 +    attr_reader :read1 \7fread1\ 127,254
 +    attr_reader :read1 , :read2;\7fread2\ 127,254
 +    attr_reader :read1 , :read2; attr_writer :write1,\7fwrite1=\ 127,254
 +    attr_reader :read1 , :read2; attr_writer :write1, :write2\7fwrite2=\ 127,254
 +    attr_writer :bar,\7fbar=\ 128,316
 +                :baz,\7fbaz=\ 129,338
 +                :more\7fmore=\ 130,360
 +    attr_accessor :tee\7ftee\ 131,382
 +    attr_accessor :tee\7ftee=\ 131,382
 +    alias_method :qux,\7fqux\ 132,405
 +    alias_method :xyz,\7fxyz\ 133,456
 +                 :tee ; attr_reader :subtle\7fsubtle\ 134,479
 +    attr_reader(:foo1,\7ffoo1\ 135,523
 +    attr_reader(:foo1, :bar1,\7fbar1\ 135,523
 +                :qux1)\7fqux1\ 136,563
 +    alias_method ( :foo2,\7ffoo2\ 137,586
 +A::Constant \7fConstant\ 142,655
 +\f
 +tex-src/testenv.tex,52
 +\newcommand{\nm}\7f\nm\ 14,77
 +\section{blah}\7fblah\ 18,139
 +\f
 +tex-src/gzip.texi,303
 +@node Top,\7f62,2139
 +@node Copying,\7f80,2652
 +@node Overview,\7f83,2705
 +@node Sample,\7f166,7272
 +@node Invoking gzip,\7fInvoking gzip\ 1210,8828
 +@node Advanced usage,\7fAdvanced usage\ 1357,13495
 +@node Environment,\7f420,15207
 +@node Tapes,\7f437,15768
 +@node Problems,\7f460,16767
 +@node Concept Index,\7fConcept Index\ 1473,17287
 +\f
 +tex-src/texinfo.tex,30627
 +\def\texinfoversion{\7f\texinfoversion\ 126,1027
 +\def\tie{\7f\tie\ 149,1518
 +\def\gloggingall{\7f\gloggingall\ 172,2268
 +\def\loggingall{\7f\loggingall\ 173,2337
 +\def\onepageout#1{\7f\onepageout\ 199,3274
 +\def\croppageout#1{\7f\croppageout\ 1115,4024
 +\def\cropmarks{\7f\cropmarks\ 1142,5084
 +\def\pagebody#1{\7f\pagebody\ 1144,5131
 +\def\ewtop{\7f\ewtop\ 1157,5586
 +\def\nstop{\7f\nstop\ 1158,5650
 +\def\ewbot{\7f\ewbot\ 1160,5733
 +\def\nsbot{\7f\nsbot\ 1161,5797
 +\def\parsearg #1{\7f\parsearg\ 1170,6096
 +\def\parseargx{\7f\parseargx\ 1172,6174
 +\def\parseargline{\7f\parseargline\ 1182,6414
 +\def\flushcr{\7f\flushcr\ 1186,6535
 +\newif\ifENV \ENVfalse \def\inENV{\7f\inENV\ 1190,6734
 +\def\ENVcheck{\7f\ENVcheck\ 1191,6798
 +\outer\def\begin{\7f\begin\ 1198,7045
 +\def\beginxxx #1{\7f\beginxxx\ 1200,7083
 +\def\end{\7f\end\ 1208,7338
 +\def\endxxx #1{\7f\endxxx\ 1210,7366
 +\def\errorE#1{\7f\errorE\ 1216,7555
 +\def\singlespace{\7f\singlespace\ 1222,7749
 +\def\@{\7f\@\ 1232,7972
 +\def\`{\7f\`\ 1236,8072
 +\def\'{\7f\'\ 1237,8084
 +\def\mylbrace {\7f\mylbrace\ 1241,8132
 +\def\myrbrace {\7f\myrbrace\ 1242,8165
 +\def\:{\7f\:\ 1247,8279
 +\def\*{\7f\*\ 1250,8333
 +\def\.{\7f\.\ 1253,8409
 +\def\w#1{\7f\w\ 1258,8640
 +\def\group{\7f\group\ 1268,9123
 +  \def\Egroup{\7f\Egroup\ 1273,9287
 +\def\need{\7f\need\ 1289,9729
 +\def\needx#1{\7f\needx\ 1300,10006
 +\def\dots{\7f\dots\ 1339,11392
 +\def\page{\7f\page\ 1343,11456
 +\def\exdent{\7f\exdent\ 1353,11783
 +\def\exdentyyy #1{\7f\exdentyyy\ 1354,11816
 +\def\nofillexdent{\7f\nofillexdent\ 1357,11960
 +\def\nofillexdentyyy #1{\7f\nofillexdentyyy\ 1358,12005
 +\def\include{\7f\include\ 1365,12189
 +\def\includezzz #1{\7f\includezzz\ 1366,12224
 +\def\thisfile{\7f\thisfile\ 1369,12275
 +\def\center{\7f\center\ 1373,12338
 +\def\centerzzz #1{\7f\centerzzz\ 1374,12371
 +\def\sp{\7f\sp\ 1380,12513
 +\def\spxxx #1{\7f\spxxx\ 1381,12538
 +\def\comment{\7f\comment\ 1387,12712
 +\def\commentxxx #1{\7f\commentxxx\ 1390,12809
 +\def\ignoresections{\7f\ignoresections\ 1396,12978
 +\let\chapter=\relax\7f=\relax\ 1397,13000
 +\let\section=\relax\7f=\relax\ 1406,13245
 +\let\subsection=\relax\7f=\relax\ 1409,13306
 +\let\subsubsection=\relax\7f=\relax\ 1410,13329
 +\let\appendix=\relax\7f=\relax\ 1411,13355
 +\let\appendixsec=\relax\7fsec=\relax\ 1412,13376
 +\let\appendixsection=\relax\7fsection=\relax\ 1413,13400
 +\let\appendixsubsec=\relax\7fsubsec=\relax\ 1414,13428
 +\let\appendixsubsection=\relax\7fsubsection=\relax\ 1415,13455
 +\let\appendixsubsubsec=\relax\7fsubsubsec=\relax\ 1416,13486
 +\let\appendixsubsubsection=\relax\7fsubsubsection=\relax\ 1417,13516
 +\def\ignore{\7f\ignore\ 1423,13618
 +\long\def\ignorexxx #1\end ignore{\7f\ignorexxx\ 1427,13758
 +\def\direntry{\7f\direntry\ 1429,13817
 +\long\def\direntryxxx #1\end direntry{\7f\direntryxxx\ 1430,13856
 +\def\ifset{\7f\ifset\ 1434,13966
 +\def\ifsetxxx #1{\7f\ifsetxxx\ 1436,14024
 +\def\Eifset{\7f\Eifset\ 1440,14151
 +\def\ifsetfail{\7f\ifsetfail\ 1441,14165
 +\long\def\ifsetfailxxx #1\end ifset{\7f\ifsetfailxxx\ 1442,14221
 +\def\ifclear{\7f\ifclear\ 1444,14282
 +\def\ifclearxxx #1{\7f\ifclearxxx\ 1446,14344
 +\def\Eifclear{\7f\Eifclear\ 1450,14475
 +\def\ifclearfail{\7f\ifclearfail\ 1451,14491
 +\long\def\ifclearfailxxx #1\end ifclear{\7f\ifclearfailxxx\ 1452,14551
 +\def\set{\7f\set\ 1456,14702
 +\def\setxxx #1{\7f\setxxx\ 1457,14729
 +\def\clear{\7f\clear\ 1460,14791
 +\def\clearxxx #1{\7f\clearxxx\ 1461,14822
 +\def\iftex{\7f\iftex\ 1466,14939
 +\def\Eiftex{\7f\Eiftex\ 1467,14952
 +\def\ifinfo{\7f\ifinfo\ 1468,14966
 +\long\def\ifinfoxxx #1\end ifinfo{\7f\ifinfoxxx\ 1469,15016
 +\long\def\menu #1\end menu{\7f\menu\ 1471,15075
 +\def\asis#1{\7f\asis\ 1472,15104
 +\def\math#1{\7f\math\ 1485,15647
 +\def\node{\7f\node\ 1487,15691
 +\def\nodezzz#1{\7f\nodezzz\ 1488,15729
 +\def\nodexxx[#1,#2]{\7f\nodexxx[\ 1489,15760
 +\def\donoderef{\7f\donoderef\ 1492,15822
 +\def\unnumbnoderef{\7f\unnumbnoderef\ 1496,15943
 +\def\appendixnoderef{\7f\appendixnoderef\ 1500,16074
 +\expandafter\expandafter\expandafter\appendixsetref{\7fsetref\ 1501,16120
 +\let\refill=\relax\7fill=\relax\ 1504,16209
 +\def\setfilename{\7f\setfilename\ 1509,16423
 +\outer\def\bye{\7f\bye\ 1518,16669
 +\def\inforef #1{\7f\inforef\ 1520,16725
 +\def\inforefzzz #1,#2,#3,#4**{\7f\inforefzzz\ 1521,16763
 +\def\losespace #1{\7f\losespace\ 1523,16860
 +\def\sf{\7f\sf\ 1532,17064
 +\font\defbf=cmbx10 scaled \magstep1 %was 1314\7fbf=cmbx10\ 1558,17859
 +\font\deftt=cmtt10 scaled \magstep1\7ftt=cmtt10\ 1559,17905
 +\def\df{\7f\df\ 1560,17941
 +\def\resetmathfonts{\7f\resetmathfonts\ 1635,20535
 +\def\textfonts{\7f\textfonts\ 1648,21124
 +\def\chapfonts{\7f\chapfonts\ 1653,21339
 +\def\secfonts{\7f\secfonts\ 1658,21555
 +\def\subsecfonts{\7f\subsecfonts\ 1663,21760
 +\def\indexfonts{\7f\indexfonts\ 1668,21977
 +\def\smartitalicx{\7f\smartitalicx\ 1691,22709
 +\def\smartitalic#1{\7f\smartitalic\ 1692,22785
 +\let\cite=\smartitalic\7f=\smartitalic\ 1698,22930
 +\def\b#1{\7f\b\ 1700,22954
 +\def\t#1{\7f\t\ 1703,22989
 +\def\samp #1{\7f\samp\ 1706,23141
 +\def\key #1{\7f\key\ 1707,23174
 +\def\ctrl #1{\7f\ctrl\ 1708,23235
 +\def\tclose#1{\7f\tclose\ 1716,23437
 +\def\ {\7f\\ 1720,23603
 +\def\xkey{\7f\xkey\ 1728,23872
 +\def\kbdfoo#1#2#3\par{\7f\kbdfoo\ 1729,23888
 +\def\dmn#1{\7f\dmn\ 1738,24189
 +\def\kbd#1{\7f\kbd\ 1740,24216
 +\def\l#1{\7f\l\ 1742,24273
 +\def\r#1{\7f\r\ 1744,24302
 +\def\sc#1{\7f\sc\ 1746,24370
 +\def\ii#1{\7f\ii\ 1747,24413
 +\def\titlefont#1{\7f\titlefont\ 1755,24646
 +\def\titlepage{\7f\titlepage\ 1761,24749
 +   \def\subtitlefont{\7f\subtitlefont\ 1766,24976
 +   \def\authorfont{\7f\authorfont\ 1768,25060
 +   \def\title{\7f\title\ 1774,25270
 +   \def\titlezzz##1{\7f\titlezzz\ 1775,25305
 +   \def\subtitle{\7f\subtitle\ 1783,25620
 +   \def\subtitlezzz##1{\7f\subtitlezzz\ 1784,25661
 +   \def\author{\7f\author\ 1787,25779
 +   \def\authorzzz##1{\7f\authorzzz\ 1788,25816
 +   \def\page{\7f\page\ 1794,26107
 +\def\Etitlepage{\7f\Etitlepage\ 1804,26276
 +\def\finishtitlepage{\7f\finishtitlepage\ 1817,26664
 +\def\evenheading{\7f\evenheading\ 1846,27672
 +\def\oddheading{\7f\oddheading\ 1847,27715
 +\def\everyheading{\7f\everyheading\ 1848,27756
 +\def\evenfooting{\7f\evenfooting\ 1850,27802
 +\def\oddfooting{\7f\oddfooting\ 1851,27845
 +\def\everyfooting{\7f\everyfooting\ 1852,27886
 +\def\headings #1 {\7f\headings\ 1893,29578
 +\def\HEADINGSoff{\7f\HEADINGSoff\ 1895,29627
 +\def\HEADINGSdouble{\7f\HEADINGSdouble\ 1904,30054
 +\def\HEADINGSsingle{\7f\HEADINGSsingle\ 1914,30374
 +\def\HEADINGSon{\7f\HEADINGSon\ 1922,30595
 +\def\HEADINGSafter{\7f\HEADINGSafter\ 1924,30629
 +\def\HEADINGSdoublex{\7f\HEADINGSdoublex\ 1926,30724
 +\def\HEADINGSsingleafter{\7f\HEADINGSsingleafter\ 1933,30912
 +\def\HEADINGSsinglex{\7f\HEADINGSsinglex\ 1934,30973
 +\def\today{\7f\today\ 1943,31248
 +\def\thistitle{\7f\thistitle\ 1958,31793
 +\def\settitle{\7f\settitle\ 1959,31818
 +\def\settitlezzz #1{\7f\settitlezzz\ 1960,31855
 +\def\internalBitem{\7f\internalBitem\ 1992,32785
 +\def\internalBitemx{\7f\internalBitemx\ 1993,32835
 +\def\internalBxitem "#1"{\7f\internalBxitem\ 1995,32880
 +\def\internalBxitemx "#1"{\7f\internalBxitemx\ 1996,32960
 +\def\internalBkitem{\7f\internalBkitem\ 1998,33035
 +\def\internalBkitemx{\7f\internalBkitemx\ 1999,33087
 +\def\kitemzzz #1{\7f\kitemzzz\ 11001,33134
 +\def\xitemzzz #1{\7f\xitemzzz\ 11004,33236
 +\def\itemzzz #1{\7f\itemzzz\ 11007,33339
 +\def\item{\7f\item\ 11037,34410
 +\def\itemx{\7f\itemx\ 11038,34461
 +\def\kitem{\7f\kitem\ 11039,34514
 +\def\kitemx{\7f\kitemx\ 11040,34567
 +\def\xitem{\7f\xitem\ 11041,34622
 +\def\xitemx{\7f\xitemx\ 11042,34675
 +\def\description{\7f\description\ 11045,34785
 +\def\table{\7f\table\ 11047,34835
 +\def\ftable{\7f\ftable\ 11052,34979
 +\def\Eftable{\7f\Eftable\ 11056,35125
 +\def\vtable{\7f\vtable\ 11059,35194
 +\def\Evtable{\7f\Evtable\ 11063,35340
 +\def\dontindex #1{\7f\dontindex\ 11066,35409
 +\def\fnitemindex #1{\7f\fnitemindex\ 11067,35429
 +\def\vritemindex #1{\7f\vritemindex\ 11068,35474
 +\def\tablez #1#2#3#4#5#6{\7f\tablez\ 11074,35623
 +\def\Edescription{\7f\Edescription\ 11077,35681
 +\def\itemfont{\7f\itemfont\ 11082,35883
 +\def\Etable{\7f\Etable\ 11090,36109
 +\def\itemize{\7f\itemize\ 11103,36433
 +\def\itemizezzz #1{\7f\itemizezzz\ 11105,36469
 +\def\itemizey #1#2{\7f\itemizey\ 11110,36564
 +\def#2{\7f1119,36810
 +\def\itemcontents{\7f\itemcontents\ 11120,36851
 +\def\bullet{\7f\bullet\ 11123,36899
 +\def\minus{\7f\minus\ 11124,36926
 +\def\frenchspacing{\7f\frenchspacing\ 11128,37034
 +\def\splitoff#1#2\endmark{\7f\splitoff\ 11134,37259
 +\def\enumerate{\7f\enumerate\ 11140,37489
 +\def\enumeratezzz #1{\7f\enumeratezzz\ 11141,37528
 +\def\enumeratey #1 #2\endenumeratey{\7f\enumeratey\ 11142,37581
 +  \def\thearg{\7f\thearg\ 11146,37728
 +  \ifx\thearg\empty \def\thearg{\7f\thearg\ 11147,37747
 +\def\numericenumerate{\7f\numericenumerate\ 11184,39081
 +\def\lowercaseenumerate{\7f\lowercaseenumerate\ 11190,39211
 +\def\uppercaseenumerate{\7f\uppercaseenumerate\ 11203,39558
 +\def\startenumeration#1{\7f\startenumeration\ 11219,40048
 +\def\alphaenumerate{\7f\alphaenumerate\ 11227,40230
 +\def\capsenumerate{\7f\capsenumerate\ 11228,40265
 +\def\Ealphaenumerate{\7f\Ealphaenumerate\ 11229,40299
 +\def\Ecapsenumerate{\7f\Ecapsenumerate\ 11230,40333
 +\def\itemizeitem{\7f\itemizeitem\ 11234,40413
 +\def\newindex #1{\7f\newindex\ 11259,41270
 +\def\defindex{\7f\defindex\ 11268,41559
 +\def\newcodeindex #1{\7f\newcodeindex\ 11272,41667
 +\def\defcodeindex{\7f\defcodeindex\ 11279,41927
 +\def\synindex #1 #2 {\7f\synindex\ 11283,42107
 +\def\syncodeindex #1 #2 {\7f\syncodeindex\ 11292,42447
 +\def\doindex#1{\7f\doindex\ 11309,43126
 +\def\singleindexer #1{\7f\singleindexer\ 11310,43185
 +\def\docodeindex#1{\7f\docodeindex\ 11313,43297
 +\def\singlecodeindexer #1{\7f\singlecodeindexer\ 11314,43364
 +\def\indexdummies{\7f\indexdummies\ 11316,43422
 +\def\_{\7f\_\ 11317,43442
 +\def\w{\7f\w\ 11318,43470
 +\def\bf{\7f\bf\ 11319,43497
 +\def\rm{\7f\rm\ 11320,43526
 +\def\sl{\7f\sl\ 11321,43555
 +\def\sf{\7f\sf\ 11322,43584
 +\def\tt{\7f\tt\ 11323,43612
 +\def\gtr{\7f\gtr\ 11324,43640
 +\def\less{\7f\less\ 11325,43670
 +\def\hat{\7f\hat\ 11326,43702
 +\def\char{\7f\char\ 11327,43732
 +\def\TeX{\7f\TeX\ 11328,43764
 +\def\dots{\7f\dots\ 11329,43794
 +\def\copyright{\7f\copyright\ 11330,43827
 +\def\tclose##1{\7f\tclose\ 11331,43870
 +\def\code##1{\7f\code\ 11332,43915
 +\def\samp##1{\7f\samp\ 11333,43956
 +\def\t##1{\7f\t\ 11334,43997
 +\def\r##1{\7f\r\ 11335,44032
 +\def\i##1{\7f\i\ 11336,44067
 +\def\b##1{\7f\b\ 11337,44102
 +\def\cite##1{\7f\cite\ 11338,44137
 +\def\key##1{\7f\key\ 11339,44178
 +\def\file##1{\7f\file\ 11340,44217
 +\def\var##1{\7f\var\ 11341,44258
 +\def\kbd##1{\7f\kbd\ 11342,44297
 +\def\indexdummyfont#1{\7f\indexdummyfont\ 11347,44453
 +\def\indexdummytex{\7f\indexdummytex\ 11348,44479
 +\def\indexdummydots{\7f\indexdummydots\ 11349,44503
 +\def\indexnofonts{\7f\indexnofonts\ 11351,44529
 +\let\w=\indexdummyfont\7fdummyfont\ 11352,44549
 +\let\t=\indexdummyfont\7fdummyfont\ 11353,44572
 +\let\r=\indexdummyfont\7fdummyfont\ 11354,44595
 +\let\i=\indexdummyfont\7fdummyfont\ 11355,44618
 +\let\b=\indexdummyfont\7fdummyfont\ 11356,44641
 +\let\emph=\indexdummyfont\7fdummyfont\ 11357,44664
 +\let\strong=\indexdummyfont\7fdummyfont\ 11358,44690
 +\let\cite=\indexdummyfont\7f=\indexdummyfont\ 11359,44718
 +\let\sc=\indexdummyfont\7fdummyfont\ 11360,44744
 +\let\tclose=\indexdummyfont\7fdummyfont\ 11364,44916
 +\let\code=\indexdummyfont\7fdummyfont\ 11365,44944
 +\let\file=\indexdummyfont\7fdummyfont\ 11366,44970
 +\let\samp=\indexdummyfont\7fdummyfont\ 11367,44996
 +\let\kbd=\indexdummyfont\7fdummyfont\ 11368,45022
 +\let\key=\indexdummyfont\7fdummyfont\ 11369,45047
 +\let\var=\indexdummyfont\7fdummyfont\ 11370,45072
 +\let\TeX=\indexdummytex\7fdummytex\ 11371,45097
 +\let\dots=\indexdummydots\7fdummydots\ 11372,45121
 +\let\indexbackslash=0  %overridden during \printindex.\7fbackslash=0\ 11382,45373
 +\def\doind #1#2{\7f\doind\ 11384,45429
 +{\indexdummies % Must do this here, since \bf, etc expand at this stage\7fdummies\ 11386,45472
 +\def\rawbackslashxx{\7f\rawbackslashxx\ 11389,45612
 +{\indexnofonts\7fnofonts\ 11394,45874
 +\def\dosubind #1#2#3{\7f\dosubind\ 11405,46185
 +{\indexdummies % Must do this here, since \bf, etc expand at this stage\7fdummies\ 11407,46233
 +\def\rawbackslashxx{\7f\rawbackslashxx\ 11410,46337
 +{\indexnofonts\7fnofonts\ 11414,46491
 +\def\findex {\7f\findex\ 11443,47422
 +\def\kindex {\7f\kindex\ 11444,47445
 +\def\cindex {\7f\cindex\ 11445,47468
 +\def\vindex {\7f\vindex\ 11446,47491
 +\def\tindex {\7f\tindex\ 11447,47514
 +\def\pindex {\7f\pindex\ 11448,47537
 +\def\cindexsub {\7f\cindexsub\ 11450,47561
 +\def\printindex{\7f\printindex\ 11462,47888
 +\def\doprintindex#1{\7f\doprintindex\ 11464,47929
 +  \def\indexbackslash{\7f\indexbackslash\ 11481,48414
 +  \indexfonts\rm \tolerance=9500 \advance\baselineskip -1pt\7ffonts\rm\ 11482,48453
 +\def\initial #1{\7f\initial\ 11517,49525
 +\def\entry #1#2{\7f\entry\ 11523,49732
 +  \null\nobreak\indexdotfill % Have leaders before the page number.\7fdotfill\ 11540,50379
 +\def\indexdotfill{\7f\indexdotfill\ 11549,50707
 +\def\primary #1{\7f\primary\ 11552,50813
 +\def\secondary #1#2{\7f\secondary\ 11556,50895
 +\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par\7fdotfill\ 11559,50977
 +\newbox\partialpage\7fialpage\ 11566,51150
 +\def\begindoublecolumns{\7f\begindoublecolumns\ 11572,51308
 +  \output={\global\setbox\partialpage=\7fialpage=\ 11573,51344
 +\def\enddoublecolumns{\7f\enddoublecolumns\ 11577,51532
 +\def\doublecolumnout{\7f\doublecolumnout\ 11580,51617
 +  \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage\7fialpage\ 11581,51686
 +\def\pagesofar{\7f\pagesofar\ 11584,51864
 +\def\balancecolumns{\7f\balancecolumns\ 11588,52101
 +  \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpage\7fialpage\ 11594,52272
 +     \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage\7fialpage\ 11600,52533
 +\newcount \appendixno  \appendixno = `\@\7fno\ 11627,53438
 +\def\appendixletter{\7f\appendixletter\ 11628,53479
 +\def\opencontents{\7f\opencontents\ 11632,53582
 +\def\thischapter{\7f\thischapter\ 11637,53763
 +\def\seccheck#1{\7f\seccheck\ 11638,53801
 +\def\chapternofonts{\7f\chapternofonts\ 11643,53905
 +\def\result{\7f\result\ 11646,53980
 +\def\equiv{\7f\equiv\ 11647,54015
 +\def\expansion{\7f\expansion\ 11648,54048
 +\def\print{\7f\print\ 11649,54089
 +\def\TeX{\7f\TeX\ 11650,54122
 +\def\dots{\7f\dots\ 11651,54151
 +\def\copyright{\7f\copyright\ 11652,54182
 +\def\tt{\7f\tt\ 11653,54223
 +\def\bf{\7f\bf\ 11654,54250
 +\def\w{\7f\w\ 11655,54278
 +\def\less{\7f\less\ 11656,54303
 +\def\gtr{\7f\gtr\ 11657,54334
 +\def\hat{\7f\hat\ 11658,54363
 +\def\char{\7f\char\ 11659,54392
 +\def\tclose##1{\7f\tclose\ 11660,54423
 +\def\code##1{\7f\code\ 11661,54467
 +\def\samp##1{\7f\samp\ 11662,54507
 +\def\r##1{\7f\r\ 11663,54547
 +\def\b##1{\7f\b\ 11664,54581
 +\def\key##1{\7f\key\ 11665,54615
 +\def\file##1{\7f\file\ 11666,54653
 +\def\kbd##1{\7f\kbd\ 11667,54693
 +\def\i##1{\7f\i\ 11669,54801
 +\def\cite##1{\7f\cite\ 11670,54835
 +\def\var##1{\7f\var\ 11671,54875
 +\def\emph##1{\7f\emph\ 11672,54913
 +\def\dfn##1{\7f\dfn\ 11673,54953
 +\def\thischaptername{\7f\thischaptername\ 11676,54994
 +\outer\def\chapter{\7f\chapter\ 11677,55033
 +\def\chapterzzz #1{\7f\chapterzzz\ 11678,55074
 +{\chapternofonts%\7fnofonts%\ 11687,55470
 +\global\let\section = \numberedsec\7f=\ 11692,55623
 +\global\let\subsection = \numberedsubsec\7f=\ 11693,55658
 +\global\let\subsubsection = \numberedsubsubsec\7f=\ 11694,55699
 +\outer\def\appendix{\7f\appendix\ 11697,55750
 +\def\appendixzzz #1{\7f\appendixzzz\ 11698,55793
 +\global\advance \appendixno by 1 \message{\7fno\ 11700,55870
 +\chapmacro {#1}{Appendix \appendixletter}\7fletter\ 11701,55939
 +\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}\7fletter:\ 11704,56032
 +{\chapternofonts%\7fnofonts%\ 11705,56104
 +  {#1}{Appendix \appendixletter}\7fletter\ 11707,56160
 +\appendixnoderef %\7fnoderef\ 11710,56260
 +\global\let\section = \appendixsec\7f=\ 11711,56279
 +\global\let\subsection = \appendixsubsec\7f=\ 11712,56314
 +\global\let\subsubsection = \appendixsubsubsec\7f=\ 11713,56355
 +\outer\def\top{\7f\top\ 11716,56406
 +\outer\def\unnumbered{\7f\unnumbered\ 11717,56446
 +\def\unnumberedzzz #1{\7f\unnumberedzzz\ 11718,56493
 +{\chapternofonts%\7fnofonts%\ 11722,56656
 +\global\let\section = \unnumberedsec\7f=\ 11727,56806
 +\global\let\subsection = \unnumberedsubsec\7f=\ 11728,56843
 +\global\let\subsubsection = \unnumberedsubsubsec\7f=\ 11729,56886
 +\outer\def\numberedsec{\7f\numberedsec\ 11732,56939
 +\def\seczzz #1{\7f\seczzz\ 11733,56980
 +{\chapternofonts%\7fnofonts%\ 11736,57136
 +\outer\def\appendixsection{\7f\appendixsection\ 11745,57322
 +\outer\def\appendixsec{\7f\appendixsec\ 11746,57379
 +\def\appendixsectionzzz #1{\7f\appendixsectionzzz\ 11747,57432
 +\gdef\thissection{#1}\secheading {#1}{\appendixletter}\7fletter\ 11749,57544
 +{\chapternofonts%\7fnofonts%\ 11750,57612
 +{#1}{\appendixletter}\7fletter\ 11752,57668
 +\appendixnoderef %\7fnoderef\ 11755,57768
 +\outer\def\unnumberedsec{\7f\unnumberedsec\ 11759,57808
 +\def\unnumberedseczzz #1{\7f\unnumberedseczzz\ 11760,57861
 +{\chapternofonts%\7fnofonts%\ 11762,57956
 +\outer\def\numberedsubsec{\7f\numberedsubsec\ 11770,58124
 +\def\numberedsubseczzz #1{\7f\numberedsubseczzz\ 11771,58179
 +{\chapternofonts%\7fnofonts%\ 11774,58358
 +\outer\def\appendixsubsec{\7f\appendixsubsec\ 11783,58562
 +\def\appendixsubseczzz #1{\7f\appendixsubseczzz\ 11784,58617
 +\subsecheading {#1}{\appendixletter}\7fletter\ 11786,58739
 +{\chapternofonts%\7fnofonts%\ 11787,58804
 +{#1}{\appendixletter}\7fletter\ 11789,58863
 +\appendixnoderef %\7fnoderef\ 11792,58978
 +\outer\def\unnumberedsubsec{\7f\unnumberedsubsec\ 11796,59018
 +\def\unnumberedsubseczzz #1{\7f\unnumberedsubseczzz\ 11797,59077
 +{\chapternofonts%\7fnofonts%\ 11799,59178
 +\outer\def\numberedsubsubsec{\7f\numberedsubsubsec\ 11807,59349
 +\def\numberedsubsubseczzz #1{\7f\numberedsubsubseczzz\ 11808,59410
 +{\chapternofonts%\7fnofonts%\ 11812,59607
 +\outer\def\appendixsubsubsec{\7f\appendixsubsubsec\ 11823,59840
 +\def\appendixsubsubseczzz #1{\7f\appendixsubsubseczzz\ 11824,59901
 +  {\appendixletter}\7fletter\ 11827,60040
 +{\chapternofonts%\7fnofonts%\ 11828,60106
 +  {\appendixletter}\7fletter\ 11830,60171
 +\appendixnoderef %\7fnoderef\ 11834,60305
 +\outer\def\unnumberedsubsubsec{\7f\unnumberedsubsubsec\ 11838,60345
 +\def\unnumberedsubsubseczzz #1{\7f\unnumberedsubsubseczzz\ 11839,60410
 +{\chapternofonts%\7fnofonts%\ 11841,60517
 +\def\infotop{\7f\infotop\ 11851,60846
 +\def\infounnumbered{\7f\infounnumbered\ 11852,60884
 +\def\infounnumberedsec{\7f\infounnumberedsec\ 11853,60929
 +\def\infounnumberedsubsec{\7f\infounnumberedsubsec\ 11854,60980
 +\def\infounnumberedsubsubsec{\7f\infounnumberedsubsubsec\ 11855,61037
 +\def\infoappendix{\7f\infoappendix\ 11857,61101
 +\def\infoappendixsec{\7f\infoappendixsec\ 11858,61142
 +\def\infoappendixsubsec{\7f\infoappendixsubsec\ 11859,61189
 +\def\infoappendixsubsubsec{\7f\infoappendixsubsubsec\ 11860,61242
 +\def\infochapter{\7f\infochapter\ 11862,61302
 +\def\infosection{\7f\infosection\ 11863,61341
 +\def\infosubsection{\7f\infosubsection\ 11864,61380
 +\def\infosubsubsection{\7f\infosubsubsection\ 11865,61425
 +\global\let\section = \numberedsec\7f=\ 11870,61662
 +\global\let\subsection = \numberedsubsec\7f=\ 11871,61697
 +\global\let\subsubsection = \numberedsubsubsec\7f=\ 11872,61738
 +\def\majorheading{\7f\majorheading\ 11886,62245
 +\def\majorheadingzzz #1{\7f\majorheadingzzz\ 11887,62290
 +\def\chapheading{\7f\chapheading\ 11893,62523
 +\def\chapheadingzzz #1{\7f\chapheadingzzz\ 11894,62566
 +\def\heading{\7f\heading\ 11899,62761
 +\def\subheading{\7f\subheading\ 11901,62798
 +\def\subsubheading{\7f\subsubheading\ 11903,62841
 +\def\dobreak#1#2{\7f\dobreak\ 11910,63118
 +\def\setchapterstyle #1 {\7f\setchapterstyle\ 11912,63196
 +\def\chapbreak{\7f\chapbreak\ 11919,63451
 +\def\chappager{\7f\chappager\ 11920,63501
 +\def\chapoddpage{\7f\chapoddpage\ 11921,63539
 +\def\setchapternewpage #1 {\7f\setchapternewpage\ 11923,63618
 +\def\CHAPPAGoff{\7f\CHAPPAGoff\ 11925,63675
 +\def\CHAPPAGon{\7f\CHAPPAGon\ 11929,63769
 +\global\def\HEADINGSon{\7f\HEADINGSon\ 11932,63860
 +\def\CHAPPAGodd{\7f\CHAPPAGodd\ 11934,63902
 +\global\def\HEADINGSon{\7f\HEADINGSon\ 11937,63998
 +\def\CHAPFplain{\7f\CHAPFplain\ 11941,64052
 +\def\chfplain #1#2{\7f\chfplain\ 11945,64144
 +\def\unnchfplain #1{\7f\unnchfplain\ 11956,64367
 +\def\unnchfopen #1{\7f\unnchfopen\ 11964,64596
 +\def\chfopen #1#2{\7f\chfopen\ 11970,64804
 +\def\CHAPFopen{\7f\CHAPFopen\ 11975,64948
 +\def\subsecheadingbreak{\7f\subsecheadingbreak\ 11982,65166
 +\def\secheadingbreak{\7f\secheadingbreak\ 11985,65295
 +\def\secheading #1#2#3{\7f\secheading\ 11993,65577
 +\def\plainsecheading #1{\7f\plainsecheading\ 11994,65633
 +\def\secheadingi #1{\7f\secheadingi\ 11995,65676
 +\def\subsecheading #1#2#3#4{\7f\subsecheading\ 12006,66044
 +\def\subsecheadingi #1{\7f\subsecheadingi\ 12007,66111
 +\def\subsubsecfonts{\7f\subsubsecfonts\ 12014,66408
 +\def\subsubsecheading #1#2#3#4#5{\7f\subsubsecheading\ 12017,66531
 +\def\subsubsecheadingi #1{\7f\subsubsecheadingi\ 12018,66609
 +\def\startcontents#1{\7f\startcontents\ 12032,67081
 +   \unnumbchapmacro{#1}\def\thischapter{\7f\thischapter\ 12040,67354
 +\outer\def\contents{\7f\contents\ 12049,67713
 +\outer\def\summarycontents{\7f\summarycontents\ 12057,67857
 +      \def\secentry ##1##2##3##4{\7f\secentry\ 12067,68228
 +      \def\unnumbsecentry ##1##2{\7f\unnumbsecentry\ 12068,68263
 +      \def\subsecentry ##1##2##3##4##5{\7f\subsecentry\ 12069,68298
 +      \def\unnumbsubsecentry ##1##2{\7f\unnumbsubsecentry\ 12070,68339
 +      \def\subsubsecentry ##1##2##3##4##5##6{\7f\subsubsecentry\ 12071,68377
 +      \def\unnumbsubsubsecentry ##1##2{\7f\unnumbsubsubsecentry\ 12072,68424
 +\def\chapentry#1#2#3{\7f\chapentry\ 12085,68858
 +\def\shortchapentry#1#2#3{\7f\shortchapentry\ 12088,68975
 +    {#2\labelspace #1}\7fspace\ 12091,69085
 +\def\unnumbchapentry#1#2{\7f\unnumbchapentry\ 12094,69139
 +\def\shortunnumberedentry#1#2{\7f\shortunnumberedentry\ 12095,69186
 +\def\secentry#1#2#3#4{\7f\secentry\ 12102,69350
 +\def\unnumbsecentry#1#2{\7f\unnumbsecentry\ 12103,69409
 +\def\subsecentry#1#2#3#4#5{\7f\subsecentry\ 12106,69470
 +\def\unnumbsubsecentry#1#2{\7f\unnumbsubsecentry\ 12107,69540
 +\def\subsubsecentry#1#2#3#4#5#6{\7f\subsubsecentry\ 12110,69614
 +  \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}\7fspace\ 12111,69648
 +\def\unnumbsubsubsecentry#1#2{\7f\unnumbsubsubsecentry\ 12112,69699
 +\def\dochapentry#1#2{\7f\dochapentry\ 12123,70073
 +\def\dosecentry#1#2{\7f\dosecentry\ 12138,70678
 +\def\dosubsecentry#1#2{\7f\dosubsecentry\ 12145,70856
 +\def\dosubsubsecentry#1#2{\7f\dosubsubsecentry\ 12152,71041
 +\def\labelspace{\7f\labelspace\ 12160,71292
 +\def\dopageno#1{\7f\dopageno\ 12162,71327
 +\def\doshortpageno#1{\7f\doshortpageno\ 12163,71353
 +\def\chapentryfonts{\7f\chapentryfonts\ 12165,71385
 +\def\secentryfonts{\7f\secentryfonts\ 12166,71420
 +\def\point{\7f\point\ 12192,72379
 +\def\result{\7f\result\ 12194,72400
 +\def\expansion{\7f\expansion\ 12195,72473
 +\def\print{\7f\print\ 12196,72544
 +\def\equiv{\7f\equiv\ 12198,72611
 +\def\error{\7f\error\ 12218,73384
 +\def\tex{\7f\tex\ 12224,73613
 +\def\@{\7f\@\ 12242,73996
 +\gdef\sepspaces{\def {\ }}}\7f\\ 12265,74728
 +\def\aboveenvbreak{\7f\aboveenvbreak\ 12268,74810
 +\def\afterenvbreak{\7f\afterenvbreak\ 12272,74976
 +\def\ctl{\7f\ctl\ 12286,75487
 +\def\ctr{\7f\ctr\ 12287,75559
 +\def\cbl{\7f\cbl\ 12288,75598
 +\def\cbr{\7f\cbr\ 12289,75638
 +\def\carttop{\7f\carttop\ 12290,75677
 +\def\cartbot{\7f\cartbot\ 12293,75785
 +\long\def\cartouche{\7f\cartouche\ 12299,75925
 +\def\Ecartouche{\7f\Ecartouche\ 12326,76713
 +\def\lisp{\7f\lisp\ 12338,76848
 +\def\Elisp{\7f\Elisp\ 12348,77195
 +\def\next##1{\7f\next\ 12360,77521
 +\def\Eexample{\7f\Eexample\ 12364,77563
 +\def\Esmallexample{\7f\Esmallexample\ 12367,77610
 +\def\smalllispx{\7f\smalllispx\ 12373,77788
 +\def\Esmalllisp{\7f\Esmalllisp\ 12383,78142
 +\obeyspaces \obeylines \ninett \indexfonts \rawbackslash\7ffonts\ 12396,78498
 +\def\next##1{\7f\next\ 12397,78555
 +\def\display{\7f\display\ 12401,78635
 +\def\Edisplay{\7f\Edisplay\ 12410,78954
 +\def\next##1{\7f\next\ 12422,79265
 +\def\format{\7f\format\ 12426,79368
 +\def\Eformat{\7f\Eformat\ 12434,79664
 +\def\next##1{\7f\next\ 12437,79753
 +\def\flushleft{\7f\flushleft\ 12441,79805
 +\def\Eflushleft{\7f\Eflushleft\ 12451,80176
 +\def\next##1{\7f\next\ 12454,80269
 +\def\flushright{\7f\flushright\ 12456,80291
 +\def\Eflushright{\7f\Eflushright\ 12466,80663
 +\def\next##1{\7f\next\ 12470,80794
 +\def\quotation{\7f\quotation\ 12474,80852
 +\def\Equotation{\7f\Equotation\ 12480,81044
 +\def\setdeffont #1 {\7f\setdeffont\ 12493,81442
 +\newskip\defbodyindent \defbodyindent=.4in\7fbodyindent\ 12495,81488
 +\newskip\defargsindent \defargsindent=50pt\7fargsindent\ 12496,81531
 +\newskip\deftypemargin \deftypemargin=12pt\7ftypemargin\ 12497,81574
 +\newskip\deflastargmargin \deflastargmargin=18pt\7flastargmargin\ 12498,81617
 +\def\activeparens{\7f\activeparens\ 12503,81815
 +\def\opnr{\7f\opnr\ 12529,83027
 +\def\lbrb{\7f\lbrb\ 12530,83092
 +\def\defname #1#2{\7f\defname\ 12536,83293
 +\advance\dimen2 by -\defbodyindent\7fbodyindent\ 12540,83411
 +\advance\dimen3 by -\defbodyindent\7fbodyindent\ 12542,83465
 +\setbox0=\hbox{\hskip \deflastargmargin{\7flastargmargin\ 12544,83519
 +\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations\7fargsindent\ 12546,83661
 +\parshape 2 0in \dimen0 \defargsindent \dimen1     %\7fargsindent\ 12547,83736
 +\rlap{\rightline{{\rm #2}\hskip \deftypemargin}\7ftypemargin\ 12554,84105
 +\advance\leftskip by -\defbodyindent\7fbodyindent\ 12557,84239
 +\exdentamount=\defbodyindent\7fbodyindent\ 12558,84276
 +\def\defparsebody #1#2#3{\7f\defparsebody\ 12568,84635
 +\def#1{\7f2572,84819
 +\def#2{\7f2573,84855
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12575,84927
 +\exdentamount=\defbodyindent\7fbodyindent\ 12576,85001
 +\def\defmethparsebody #1#2#3#4 {\7f\defmethparsebody\ 12581,85105
 +\def#1{\7f2585,85266
 +\def#2##1 {\7f2586,85302
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12588,85385
 +\exdentamount=\defbodyindent\7fbodyindent\ 12589,85459
 +\def\defopparsebody #1#2#3#4#5 {\7f\defopparsebody\ 12592,85544
 +\def#1{\7f2596,85705
 +\def#2##1 ##2 {\7f2597,85741
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12600,85841
 +\exdentamount=\defbodyindent\7fbodyindent\ 12601,85915
 +\def\defvarparsebody #1#2#3{\7f\defvarparsebody\ 12608,86186
 +\def#1{\7f2612,86373
 +\def#2{\7f2613,86409
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12615,86468
 +\exdentamount=\defbodyindent\7fbodyindent\ 12616,86542
 +\def\defvrparsebody #1#2#3#4 {\7f\defvrparsebody\ 12621,86633
 +\def#1{\7f2625,86792
 +\def#2##1 {\7f2626,86828
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12628,86898
 +\exdentamount=\defbodyindent\7fbodyindent\ 12629,86972
 +\def\defopvarparsebody #1#2#3#4#5 {\7f\defopvarparsebody\ 12632,87044
 +\def#1{\7f2636,87208
 +\def#2##1 ##2 {\7f2637,87244
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12640,87331
 +\exdentamount=\defbodyindent\7fbodyindent\ 12641,87405
 +\def\defunargs #1{\7f\defunargs\ 12664,88165
 +\def\deftypefunargs #1{\7f\deftypefunargs\ 12676,88547
 +\def\deffn{\7f\deffn\ 12690,88929
 +\def\deffnheader #1#2#3{\7f\deffnheader\ 12692,88986
 +\begingroup\defname {\7fname\ 12693,89034
 +\def\defun{\7f\defun\ 12699,89179
 +\def\defunheader #1#2{\7f\defunheader\ 12701,89232
 +\begingroup\defname {\7fname\ 12702,89307
 +\defunargs {\7funargs\ 12703,89343
 +\def\deftypefun{\7f\deftypefun\ 12709,89491
 +\def\deftypefunheader #1#2{\7f\deftypefunheader\ 12712,89613
 +\def\deftypefunheaderx #1#2 #3\relax{\7f\deftypefunheaderx\ 12714,89722
 +\begingroup\defname {\7fname\ 12716,89814
 +\deftypefunargs {\7ftypefunargs\ 12717,89860
 +\def\deftypefn{\7f\deftypefn\ 12723,90031
 +\def\deftypefnheader #1#2#3{\7f\deftypefnheader\ 12726,90180
 +\def\deftypefnheaderx #1#2#3 #4\relax{\7f\deftypefnheaderx\ 12728,90316
 +\begingroup\defname {\7fname\ 12730,90409
 +\deftypefunargs {\7ftypefunargs\ 12731,90449
 +\def\defmac{\7f\defmac\ 12737,90570
 +\def\defmacheader #1#2{\7f\defmacheader\ 12739,90627
 +\begingroup\defname {\7fname\ 12740,90703
 +\defunargs {\7funargs\ 12741,90736
 +\def\defspec{\7f\defspec\ 12747,90860
 +\def\defspecheader #1#2{\7f\defspecheader\ 12749,90921
 +\begingroup\defname {\7fname\ 12750,90998
 +\defunargs {\7funargs\ 12751,91038
 +\def\deffnx #1 {\7f\deffnx\ 12758,91233
 +\def\defunx #1 {\7f\defunx\ 12759,91290
 +\def\defmacx #1 {\7f\defmacx\ 12760,91347
 +\def\defspecx #1 {\7f\defspecx\ 12761,91406
 +\def\deftypefnx #1 {\7f\deftypefnx\ 12762,91467
 +\def\deftypeunx #1 {\7f\deftypeunx\ 12763,91532
 +\def\defop #1 {\7f\defop\ 12769,91678
 +\defopparsebody\Edefop\defopx\defopheader\defoptype}\7fopparsebody\Edefop\defopx\defopheader\defoptype\ 12770,91713
 +\def\defopheader #1#2#3{\7f\defopheader\ 12772,91767
 +\begingroup\defname {\7fname\ 12774,91856
 +\defunargs {\7funargs\ 12775,91902
 +\def\defmethod{\7f\defmethod\ 12780,91963
 +\def\defmethodheader #1#2#3{\7f\defmethodheader\ 12782,92036
 +\begingroup\defname {\7fname\ 12784,92124
 +\defunargs {\7funargs\ 12785,92164
 +\def\defcv #1 {\7f\defcv\ 12790,92238
 +\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}\7fopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype\ 12791,92273
 +\def\defcvarheader #1#2#3{\7f\defcvarheader\ 12793,92332
 +\begingroup\defname {\7fname\ 12795,92418
 +\defvarargs {\7fvarargs\ 12796,92464
 +\def\defivar{\7f\defivar\ 12801,92537
 +\def\defivarheader #1#2#3{\7f\defivarheader\ 12803,92600
 +\begingroup\defname {\7fname\ 12805,92686
 +\defvarargs {\7fvarargs\ 12806,92737
 +\def\defopx #1 {\7f\defopx\ 12812,92886
 +\def\defmethodx #1 {\7f\defmethodx\ 12813,92943
 +\def\defcvx #1 {\7f\defcvx\ 12814,93008
 +\def\defivarx #1 {\7f\defivarx\ 12815,93065
 +\def\defvarargs #1{\7f\defvarargs\ 12822,93336
 +\def\defvr{\7f\defvr\ 12828,93480
 +\def\defvrheader #1#2#3{\7f\defvrheader\ 12830,93535
 +\begingroup\defname {\7fname\ 12831,93583
 +\def\defvar{\7f\defvar\ 12835,93668
 +\def\defvarheader #1#2{\7f\defvarheader\ 12837,93728
 +\begingroup\defname {\7fname\ 12838,93799
 +\defvarargs {\7fvarargs\ 12839,93835
 +\def\defopt{\7f\defopt\ 12844,93901
 +\def\defoptheader #1#2{\7f\defoptheader\ 12846,93961
 +\begingroup\defname {\7fname\ 12847,94032
 +\defvarargs {\7fvarargs\ 12848,94071
 +\def\deftypevar{\7f\deftypevar\ 12853,94128
 +\def\deftypevarheader #1#2{\7f\deftypevarheader\ 12856,94244
 +\begingroup\defname {\7fname\ 12858,94327
 +\def\deftypevr{\7f\deftypevr\ 12865,94501
 +\def\deftypevrheader #1#2#3{\7f\deftypevrheader\ 12867,94572
 +\begingroup\defname {\7fname\ 12868,94624
 +\def\defvrx #1 {\7f\defvrx\ 12876,94861
 +\def\defvarx #1 {\7f\defvarx\ 12877,94918
 +\def\defoptx #1 {\7f\defoptx\ 12878,94977
 +\def\deftypevarx #1 {\7f\deftypevarx\ 12879,95036
 +\def\deftypevrx #1 {\7f\deftypevrx\ 12880,95103
 +\def\deftpargs #1{\7f\deftpargs\ 12885,95252
 +\def\deftp{\7f\deftp\ 12889,95332
 +\def\deftpheader #1#2#3{\7f\deftpheader\ 12891,95387
 +\begingroup\defname {\7fname\ 12892,95435
 +\def\deftpx #1 {\7f\deftpx\ 12897,95594
 +\def\setref#1{\7f\setref\ 12908,95915
 +\def\unnumbsetref#1{\7f\unnumbsetref\ 12913,96029
 +\def\appendixsetref#1{\7f\appendixsetref\ 12918,96136
 +\def\pxref#1{\7f\pxref\ 12929,96547
 +\def\xref#1{\7f\xref\ 12930,96583
 +\def\ref#1{\7f\ref\ 12931,96618
 +\def\xrefX[#1,#2,#3,#4,#5,#6]{\7f\xrefX[\ 12932,96648
 +\def\printedmanual{\7f\printedmanual\ 12933,96691
 +\def\printednodename{\7f\printednodename\ 12934,96729
 +\def\printednodename{\7f\printednodename\ 12939,96854
 +section ``\printednodename'' in \cite{\printedmanual}\7f\printedmanual\ 12954,97487
 +\refx{\7fx\ 12957,97565
 +\def\dosetq #1#2{\7f\dosetq\ 12965,97785
 +\def\internalsetq #1#2{\7f\internalsetq\ 12973,98043
 +\def\Ypagenumber{\7f\Ypagenumber\ 12977,98144
 +\def\Ytitle{\7f\Ytitle\ 12979,98170
 +\def\Ynothing{\7f\Ynothing\ 12981,98197
 +\def\Ysectionnumberandtype{\7f\Ysectionnumberandtype\ 12983,98214
 +\def\Yappendixletterandtype{\7f\Yappendixletterandtype\ 12992,98530
 +\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{\7fno\ 12993,98560
 +\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %\7fno.\the\secno\ 12994,98615
 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %\7fno.\the\secno.\the\subsecno\ 12996,98719
 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %\7fno.\the\secno.\the\subsecno.\the\subsubsecno\ 12998,98790
 +  \def\linenumber{\7f\linenumber\ 13009,99129
 +\def\refx#1#2{\7f\refx\ 13015,99313
 +\def\xrdef #1#2{\7f\xrdef\ 13037,99939
 +\def\readauxfile{\7f\readauxfile\ 13040,100024
 +\def\supereject{\7f\supereject\ 13110,101805
 +\footstrut\parindent=\defaultparindent\hang\textindent{\7faultparindent\hang\textindent\ 13131,102490
 +\def\openindices{\7f\openindices\ 13139,102676
 +\newdimen\defaultparindent \defaultparindent = 15pt\7faultparindent\ 13151,102901
 +\parindent = \defaultparindent\7faultparindent\ 13152,102953
 +\def\smallbook{\7f\smallbook\ 13175,103677
 +\global\def\Esmallexample{\7f\Esmallexample\ 13192,104104
 +\def\afourpaper{\7f\afourpaper\ 13196,104195
 +\def\finalout{\7f\finalout\ 13224,105003
 +\def\normaldoublequote{\7f\normaldoublequote\ 13235,105264
 +\def\normaltilde{\7f\normaltilde\ 13236,105290
 +\def\normalcaret{\7f\normalcaret\ 13237,105310
 +\def\normalunderscore{\7f\normalunderscore\ 13238,105330
 +\def\normalverticalbar{\7f\normalverticalbar\ 13239,105355
 +\def\normalless{\7f\normalless\ 13240,105381
 +\def\normalgreater{\7f\normalgreater\ 13241,105400
 +\def\normalplus{\7f\normalplus\ 13242,105422
 +\def\ifusingtt#1#2{\7f\ifusingtt\ 13253,105914
 +\def\activedoublequote{\7f\activedoublequote\ 13261,106242
 +\def~{\7f~\ 13264,106328
 +\def^{\7f^\ 13267,106389
 +\def_{\7f_\ 13270,106428
 +\def\_{\7f\_\ 13272,106502
 +\def\lvvmode{\7f\lvvmode\ 13279,106839
 +\def|{\7f|\ 13282,106889
 +\def<{\7f<\ 13285,106952
 +\def>{\7f>\ 13288,107009
 +\def+{\7f+\ 13290,107047
 +\def\turnoffactive{\7f\turnoffactive\ 13296,107208
 +\global\def={\7f=\ 13307,107494
 +\def\normalbackslash{\7f\normalbackslash\ 13321,107876
 +\f
 +c-src/c.c,76
 +T f(\7f1,0
 +}T i;\7f2,14
 +void bar(\7f5,69
 +int foobar(\7f6,94
 +interface_locate(\7f9,131
 +\f
 +c.c,1663
 +my_printf \7f135,
 +void fatala \7f138,
 +max \7f141,
 +struct bar \7f143,
 +__attribute__ ((always_inline)) max \7f147,
 +struct foo\7f150,
 +char stack[\7fstack\ 1155,
 +struct S \7f156,
 +} wait_status_ptr_t \7f161,
 +Some_Class  A \7f162,
 +typedef T1 T3 \7f163,
 +T3 z \7f164,
 +typedef int more_aligned_int \7f165,
 +struct S  __attribute__ ((vector_size (16))) foo;\7f166,
 +int foo \7f167,
 +char *__attribute__((aligned(8))) *f;\7ff\ 1168,
 +int i \7f169,
 +extern void foobar \7f170,
 +typedef struct cacheLRUEntry_s\7f172,
 +__attribute__ ((packed)) cacheLRUEntry_t;\7f177,
 +struct foo \7f178,
 +     f1 \7f183,
 +void f2 \7f184,
 +int x \7f188,
 +struct foo \7f189,
 +short array[\7farray\ 1190,
 +int f\7f193,
 +DEAFUN \7f196,
 +XDEFUN \7f203,
 +DEFUN ("x-get-selection-internal", Fx_get_selection_internal,\7fx-get-selection-internal\ 1206,
 +       Fx_get_selection_internal,\7fx-get-selection-internal\ 1212,
 +      Fy_get_selection_internal,\7fy-get-selection-internal\ 1216,
 +defun_func1(\7f218,
 +DEFUN_func2(\7f220,
 +typedef int bool;\7f222,
 +bool funcboo \7f223,
 +struct my_struct \7f226,
 +typedef struct my_struct my_typedef;\7f228,
 +int bla \7f229,
 +a(\7f234,
 +int func1\7f237,
 +static struct cca_control init_control \7f239,
 +static tpcmd rbtp \7f240,
 +static byte ring1 \7f241,
 +static byte ring2 \7f242,
 +request request \7f243,
 +int func2 \7f246,
 +  aaa;\7f249,
 +  bbb;\7f251,
 +struct sss1 \7f252,
 +struct sss2\7f253,
 +  struct ss3\7f255,
 +struct a b;\7f259,
 +struct aa *b;\7fb\ 1260,
 +  **b;\7fb\ 1262,
 +caccacacca \7f263,
 +a \7f267,
 +  typedef struct aa \7f269,
 +  typedef struct aa {} aaa;\7f269,
 +static void inita \7f271,
 +node *lasta \7flasta\ 1272,
 +b \7f273,
 +  typedef  int bb;\7f275,
 +static void initb \7f277,
 +node *lastb \7flastb\ 1278,
 +typedef enum { REG_ENOSYS \7f279,
 +typedef enum { REG_ENOSYS = -1, aa \7f279,
 +typedef enum { REG_ENOSYS = -1, aa } reg_errcode_t;\7f279,
 +\f
 +c-src/a/b/b.c,18
 +#define this \7f1,0
 +\f
 +../c/c.web,20
 +#define questo \7f34,
 +\f
 +y-src/parse.y,738
 +#define obstack_chunk_alloc \7f46,1116
 +#define obstack_chunk_free \7f47,1154
 +VOIDSTAR parse_hash;\7f63,1405
 +unsigned char fnin[\7ffnin\ 167,1524
 +#define YYSTYPE \7f71,1622
 +typedef struct node *YYSTYPE;\7fYYSTYPE\ 172,1653
 +YYSTYPE parse_return;\7f73,1683
 +char *instr;\7finstr\ 180,1795
 +int parse_error \7f81,1808
 +line:\7fline\ 186,1867
 +exp:\7fexp\ 194,1980
 +exp_list:\7fexp_list\ 1262,5647
 +range_exp:\7frange_exp\ 1268,5745
 +range_exp_list:\7frange_exp_list\ 1272,5775
 +cell:\7fcell\ 1278,5893
 +yyerror FUN1(\7f285,5940
 +make_list FUN2(\7f292,6020
 +#define ERROR \7f303,6220
 +yylex FUN0(\7f314,6397
 +parse_cell_or_range FUN2(\7f586,11763
 +#define CK_ABS_R(\7f670,13205
 +#define CK_REL_R(\7f674,13284
 +#define CK_ABS_C(\7f679,13413
 +#define CK_REL_C(\7f683,13492
 +#define MAYBEREL(\7f688,13621
 +str_to_col FUN1(\7f846,16822
 +\f
 +y-src/parse.c,520
 +#define YYBISON \7f4,64
 +# define      NE      \7f6,114
 +# define      LE      \7f7,130
 +# define      GE      \7f8,146
 +# define      NEG     \7f9,162
 +# define      L_CELL  \7f10,179
 +# define      L_RANGE \7f11,199
 +# define      L_VAR   \7f12,220
 +# define      L_CONST \7f13,239
 +# define      L_FN0   \7f14,260
 +# define      L_FN1   \7f15,279
 +# define      L_FN2   \7f16,298
 +# define      L_FN3   \7f17,317
 +# define      L_FN4   \7f18,336
 +# define      L_FNN   \7f19,355
 +# define      L_FN1R  \7f20,374
 +# define      L_FN2R  \7f21,394
 +# define      L_FN3R  \7f22,414
 +# define      L_FN4R  \7f23,434
 +# define      L_FNNR  \7f24,454
 +# define      L_LE    \7f25,474
 +# define      L_NE    \7f26,492
 +# define      L_GE    \7f27,510
 +\f
 +parse.y,1181
 +#define obstack_chunk_alloc \7f46,
 +#define obstack_chunk_free \7f47,
 +VOIDSTAR parse_hash;\7f63,
 +unsigned char fnin[\7ffnin\ 167,
 +#define YYSTYPE \7f71,
 +typedef struct node *YYSTYPE;\7fYYSTYPE\ 172,
 +YYSTYPE parse_return;\7f73,
 +char *instr;\7finstr\ 180,
 +int parse_error \7f81,
 +#define YYSTYPE \7f85,
 +# define YYDEBUG \7f88,
 +#define       YYFINAL \7f93,
 +#define       YYFLAG  \7f94,
 +#define       YYNTBASE        \7f95,
 +#define YYTRANSLATE(\7f98,
 +static const char yytranslate[\7fyytranslate\ 1101,
 +static const short yyprhs[\7fyyprhs\ 1134,
 +static const short yyrhs[\7fyyrhs\ 1142,
 +static const short yyrline[\7fyyrline\ 1171,
 +static const char *const yytname[\7fyytname\ 1185,
 +static const short yyr1[\7fyyr1\ 1197,
 +static const short yyr2[\7fyyr2\ 1207,
 +static const short yydefact[\7fyydefact\ 1219,
 +static const short yydefgoto[\7fyydefgoto\ 1237,
 +static const short yypact[\7fyypact\ 1242,
 +static const short yypgoto[\7fyypgoto\ 1260,
 +#define       YYLAST  \7f266,
 +static const short yytable[\7fyytable\ 1269,
 +static const short yycheck[\7fyycheck\ 1330,
 +yyerror FUN1(\7f285,
 +make_list FUN2(\7f292,
 +#define ERROR \7f303,
 +yylex FUN0(\7f314,
 +parse_cell_or_range FUN2(\7f586,
 +#define CK_ABS_R(\7f670,
 +#define CK_REL_R(\7f674,
 +#define CK_ABS_C(\7f679,
 +#define CK_REL_C(\7f683,
 +#define MAYBEREL(\7f688,
 +str_to_col FUN1(\7f846,
 +\f
 +/usr/share/bison/bison.simple,2110
 +# define YYSTD(\7f40,
 +# define YYSTD(\7f42,
 +#  define YYSTACK_ALLOC \7f50,
 +#  define YYSIZE_T \7f51,
 +#    define YYSTACK_ALLOC \7f55,
 +#    define YYSIZE_T \7f56,
 +#     define YYSTACK_ALLOC \7f59,
 +#  define YYSTACK_FREE(\7f67,
 +#   define YYSIZE_T \7f71,
 +#    define YYSIZE_T \7f75,
 +#  define YYSTACK_ALLOC \7f78,
 +#  define YYSTACK_FREE \7f79,
 +union yyalloc\7f83,
 +# define YYSTACK_GAP_MAX \7f93,
 +#  define YYSTACK_BYTES(\7f98,
 +#  define YYSTACK_BYTES(\7f102,
 +# define YYSTACK_RELOCATE(\7f112,
 +# define YYSIZE_T \7f128,
 +# define YYSIZE_T \7f131,
 +#  define YYSIZE_T \7f136,
 +#   define YYSIZE_T \7f140,
 +# define YYSIZE_T \7f145,
 +#define yyerrok       \7f148,
 +#define yyclearin     \7f149,
 +#define YYEMPTY       \7f150,
 +#define YYEOF \7f151,
 +#define YYACCEPT      \7f152,
 +#define YYABORT \7f153,
 +#define YYERROR       \7f154,
 +#define YYFAIL        \7f158,
 +#define YYRECOVERING(\7f159,
 +#define YYBACKUP(\7f160,
 +#define YYTERROR      \7f177,
 +#define YYERRCODE     \7f178,
 +# define YYLLOC_DEFAULT(\7f189,
 +#   define YYLEX      \7f200,
 +#   define YYLEX      \7f202,
 +#   define YYLEX      \7f206,
 +#   define YYLEX      \7f208,
 +# define YYLEX        \7f212,
 +#  define YYFPRINTF \7f225,
 +# define YYDPRINTF(\7f228,
 +int yydebug;\7f237,
 +# define YYDPRINTF(\7f239,
 +# define YYINITDEPTH \7f244,
 +# undef YYMAXDEPTH\7f255,
 +# define YYMAXDEPTH \7f259,
 +#  define yymemcpy \7f264,
 +yymemcpy \7f271,
 +#   define yystrlen \7f293,
 +yystrlen \7f298,
 +#   define yystpcpy \7f316,
 +yystpcpy \7f322,
 +#  define YYPARSE_PARAM_ARG \7f351,
 +#  define YYPARSE_PARAM_DECL\7f352,
 +#  define YYPARSE_PARAM_ARG \7f354,
 +#  define YYPARSE_PARAM_DECL \7f355,
 +# define YYPARSE_PARAM_ARG\7f358,
 +# define YYPARSE_PARAM_DECL\7f359,
 +#define YY_DECL_NON_LSP_VARIABLES     \7f374,
 +# define YY_DECL_VARIABLES    \7f385,
 +# define YY_DECL_VARIABLES    \7f391,
 +yyparse \7f403,
 +# define YYPOPSTACK \7f445,
 +# define YYPOPSTACK \7f447,
 +# undef YYSTACK_RELOCATE\7f548,
 +  *++yyvsp \7fyyvsp\ 1746,
 +  *++yylsp \7fyylsp\ 1748,
 +  yyn \7f755,
 +  yystate \7f757,
 +    yystate \7f761,
 +  goto yynewstate;\7f763,
 +  goto yyerrlab1;\7f823,
 +  yyerrstatus \7f846,
 +  goto yyerrhandle;\7f848,
 +  yyn \7f861,
 +  yystate \7f875,
 +  yyn \7f895,
 +  yyn \7f903,
 +  *++yyvsp \7fyyvsp\ 1919,
 +  *++yylsp \7fyylsp\ 1921,
 +  yystate \7f924,
 +  goto yynewstate;\7f925,
 +  yyresult \7f932,
 +  goto yyreturn;\7f933,
 +  yyresult \7f939,
 +  goto yyreturn;\7f940,
 +  yyresult \7f947,
 +\f
 +y-src/atest.y,9
 +exp   \7f2,3
 +\f
 +y-src/cccp.c,303
 +#define YYBISON \7f4,63
 +# define      INT     \7f6,113
 +# define      CHAR    \7f7,130
 +# define      NAME    \7f8,148
 +# define      ERROR   \7f9,166
 +# define      OR      \7f10,185
 +# define      AND     \7f11,201
 +# define      EQUAL   \7f12,218
 +# define      NOTEQUAL        \7f13,237
 +# define      LEQ     \7f14,259
 +# define      GEQ     \7f15,276
 +# define      LSH     \7f16,293
 +# define      RSH     \7f17,310
 +# define      UNARY   \7f18,327
 +\f
 +cccp.y,1579
 +typedef unsigned char U_CHAR;\7f38,
 +struct arglist \7f41,
 +#define NULL \7f51,
 +#define GENERIC_PTR \7f56,
 +#define GENERIC_PTR \7f58,
 +#define NULL_PTR \7f63,
 +int expression_value;\7f68,
 +static jmp_buf parse_return_error;\7f70,
 +static int keyword_parsing \7f73,
 +#define CHAR_TYPE_SIZE \7f87,
 +#define INT_TYPE_SIZE \7f91,
 +#define LONG_TYPE_SIZE \7f95,
 +#define WCHAR_TYPE_SIZE \7f99,
 +#define possible_sum_sign(\7f104,
 +  struct constant \7f113,
 +  struct name \7f114,
 +} yystype;\7f118,
 +# define YYSTYPE \7f119,
 +# define YYDEBUG \7f122,
 +#define       YYFINAL \7f127,
 +#define       YYFLAG  \7f128,
 +#define       YYNTBASE        \7f129,
 +#define YYTRANSLATE(\7f132,
 +static const char yytranslate[\7fyytranslate\ 1135,
 +static const short yyprhs[\7fyyprhs\ 1167,
 +static const short yyrhs[\7fyyrhs\ 1174,
 +static const short yyrline[\7fyyrline\ 1195,
 +static const char *const yytname[\7fyytname\ 1208,
 +static const short yyr1[\7fyyr1\ 1219,
 +static const short yyr2[\7fyyr2\ 1228,
 +static const short yydefact[\7fyydefact\ 1239,
 +static const short yydefgoto[\7fyydefgoto\ 1251,
 +static const short yypact[\7fyypact\ 1256,
 +static const short yypgoto[\7fyypgoto\ 1268,
 +#define       YYLAST  \7f274,
 +static const short yytable[\7fyytable\ 1277,
 +static const short yycheck[\7fyycheck\ 1301,
 +static char *lexptr;\7flexptr\ 1332,
 +parse_number \7f341,
 +struct token \7f437,
 +static struct token tokentab2[\7ftokentab2\ 1442,
 +yylex \7f459,
 +parse_escape \7f740,
 +yyerror \7f836,
 +integer_overflow \7f844,
 +left_shift \7f851,
 +right_shift \7f873,
 +parse_c_expression \7f893,
 +main \7f923,
 +unsigned char is_idchar[\7fis_idchar\ 1948,
 +unsigned char is_idstart[\7fis_idstart\ 1950,
 +char is_hor_space[\7fis_hor_space\ 1953,
 +initialize_random_junk \7f958,
 +error \7f988,
 +warning \7f993,
 +lookup \7f999,
 +\f
 +/usr/share/bison/bison.simple,2110
 +# define YYSTD(\7f41,
 +# define YYSTD(\7f43,
 +#  define YYSTACK_ALLOC \7f51,
 +#  define YYSIZE_T \7f52,
 +#    define YYSTACK_ALLOC \7f56,
 +#    define YYSIZE_T \7f57,
 +#     define YYSTACK_ALLOC \7f60,
 +#  define YYSTACK_FREE(\7f68,
 +#   define YYSIZE_T \7f72,
 +#    define YYSIZE_T \7f76,
 +#  define YYSTACK_ALLOC \7f79,
 +#  define YYSTACK_FREE \7f80,
 +union yyalloc\7f84,
 +# define YYSTACK_GAP_MAX \7f94,
 +#  define YYSTACK_BYTES(\7f99,
 +#  define YYSTACK_BYTES(\7f103,
 +# define YYSTACK_RELOCATE(\7f113,
 +# define YYSIZE_T \7f129,
 +# define YYSIZE_T \7f132,
 +#  define YYSIZE_T \7f137,
 +#   define YYSIZE_T \7f141,
 +# define YYSIZE_T \7f146,
 +#define yyerrok       \7f149,
 +#define yyclearin     \7f150,
 +#define YYEMPTY       \7f151,
 +#define YYEOF \7f152,
 +#define YYACCEPT      \7f153,
 +#define YYABORT \7f154,
 +#define YYERROR       \7f155,
 +#define YYFAIL        \7f159,
 +#define YYRECOVERING(\7f160,
 +#define YYBACKUP(\7f161,
 +#define YYTERROR      \7f178,
 +#define YYERRCODE     \7f179,
 +# define YYLLOC_DEFAULT(\7f190,
 +#   define YYLEX      \7f201,
 +#   define YYLEX      \7f203,
 +#   define YYLEX      \7f207,
 +#   define YYLEX      \7f209,
 +# define YYLEX        \7f213,
 +#  define YYFPRINTF \7f226,
 +# define YYDPRINTF(\7f229,
 +int yydebug;\7f238,
 +# define YYDPRINTF(\7f240,
 +# define YYINITDEPTH \7f245,
 +# undef YYMAXDEPTH\7f256,
 +# define YYMAXDEPTH \7f260,
 +#  define yymemcpy \7f265,
 +yymemcpy \7f272,
 +#   define yystrlen \7f294,
 +yystrlen \7f299,
 +#   define yystpcpy \7f317,
 +yystpcpy \7f323,
 +#  define YYPARSE_PARAM_ARG \7f351,
 +#  define YYPARSE_PARAM_DECL\7f352,
 +#  define YYPARSE_PARAM_ARG \7f354,
 +#  define YYPARSE_PARAM_DECL \7f355,
 +# define YYPARSE_PARAM_ARG\7f358,
 +# define YYPARSE_PARAM_DECL\7f359,
 +#define YY_DECL_NON_LSP_VARIABLES     \7f374,
 +# define YY_DECL_VARIABLES    \7f385,
 +# define YY_DECL_VARIABLES    \7f391,
 +yyparse \7f403,
 +# define YYPOPSTACK \7f445,
 +# define YYPOPSTACK \7f447,
 +# undef YYSTACK_RELOCATE\7f548,
 +  *++yyvsp \7fyyvsp\ 1746,
 +  *++yylsp \7fyylsp\ 1748,
 +  yyn \7f755,
 +  yystate \7f757,
 +    yystate \7f761,
 +  goto yynewstate;\7f763,
 +  goto yyerrlab1;\7f823,
 +  yyerrstatus \7f846,
 +  goto yyerrhandle;\7f848,
 +  yyn \7f861,
 +  yystate \7f875,
 +  yyn \7f895,
 +  yyn \7f903,
 +  *++yyvsp \7fyyvsp\ 1919,
 +  *++yylsp \7fyylsp\ 1921,
 +  yystate \7f924,
 +  goto yynewstate;\7f925,
 +  yyresult \7f932,
 +  goto yyreturn;\7f933,
 +  yyresult \7f939,
 +  goto yyreturn;\7f940,
 +  yyresult \7f947,
 +\f
 +y-src/cccp.y,1107
 +typedef unsigned char U_CHAR;\7f38,1201
 +struct arglist \7f41,1301
 +#define NULL \7f51,1468
 +#define GENERIC_PTR \7f56,1578
 +#define GENERIC_PTR \7f58,1611
 +#define NULL_PTR \7f63,1670
 +int expression_value;\7f68,1743
 +static jmp_buf parse_return_error;\7f70,1766
 +static int keyword_parsing \7f73,1865
 +#define CHAR_TYPE_SIZE \7f87,2162
 +#define INT_TYPE_SIZE \7f91,2229
 +#define LONG_TYPE_SIZE \7f95,2296
 +#define WCHAR_TYPE_SIZE \7f99,2365
 +#define possible_sum_sign(\7f104,2556
 +  struct constant \7f112,2733
 +  struct name \7f113,2789
 +start \7f143,3226
 +exp1  \7f148,3330
 +exp   \7f156,3505
 +exp   \7f185,4295
 +keywords \7f306,7835
 +static char *lexptr;\7flexptr\ 1332,8579
 +parse_number \7f341,8842
 +struct token \7f437,11038
 +static struct token tokentab2[\7ftokentab2\ 1442,11088
 +yylex \7f459,11367
 +parse_escape \7f740,17718
 +yyerror \7f836,19599
 +integer_overflow \7f844,19690
 +left_shift \7f851,19804
 +right_shift \7f873,20194
 +parse_c_expression \7f893,20732
 +main \7f923,21483
 +unsigned char is_idchar[\7fis_idchar\ 1948,21901
 +unsigned char is_idstart[\7fis_idstart\ 1950,21996
 +char is_hor_space[\7fis_hor_space\ 1953,22160
 +initialize_random_junk \7f958,22259
 +error \7f988,22915
 +warning \7f993,22963
 +lookup \7f999,23033
 +\f
 +tex-src/nonewline.tex,0
 +\f
 +php-src/sendmail.php,0
 +\f
 +c-src/fail.c,0
 +\f
 +a-src/empty.zz,0
index 9eb1d4297c863ab603d708163360dbcc65d83b53,0000000000000000000000000000000000000000..ecfa7d19885a22a56624710db5a021a079f6b25e
mode 100644,000000..100644
--- /dev/null
@@@ -1,4938 -1,0 +1,4938 @@@
- perl-src/htlmify-cystic,1443
 +\f
 +ada-src/etags-test-for.ada,1969
 +   type LL_Task_Procedure_Access \7fLL_Task_Procedure_Access/t\ 11,0
 +   function Body_Required\7fBody_Required/f\ 13,78
 +   type Type_Specific_Data \7fType_Specific_Data/t\ 111,280
 +   function "abs"\7fabs/f\ 119,504
 +   type Barrier_Function_Pointer \7fBarrier_Function_Pointer/t\ 121,577
 +   function "="\7f=/f\ 127,722
 +   type usfreelock_ptr \7fusfreelock_ptr/t\ 130,803
 +   function p \7fp/f\ 133,891
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 137,1054
 +function p \7fp/f\ 139,1094
 +package Pkg1 \7fPkg1/s\ 144,1203
 +  type Private_T \7fPrivate_T/t\ 146,1220
 +  package Inner1 \7fInner1/s\ 148,1250
 +    procedure Private_T;\7fPrivate_T/p\ 149,1270
 +  package Inner2 \7fInner2/s\ 152,1310
 +    task Private_T;\7fPrivate_T/k\ 153,1330
 +  type Public_T \7fPublic_T/t\ 156,1365
 +  procedure Pkg1_Proc1;\7fPkg1_Proc1/p\ 162,1450
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 164,1475
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 166,1514
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 168,1553
 +  package Pkg1_Pkg1 \7fPkg1_Pkg1/s\ 171,1622
 +    procedure Pkg1_Pkg1_Proc1;\7fPkg1_Pkg1_Proc1/p\ 172,1645
 +  task type Task_Type \7fTask_Type/k\ 175,1694
 +  type Private_T \7fPrivate_T/t\ 182,1786
 +package body Pkg1 \7fPkg1/b\ 189,1882
 +  procedure Pkg1_Proc1 \7fPkg1_Proc1/p\ 191,1904
 +  package body Inner1 \7fInner1/b\ 196,1956
 +    procedure Private_T \7fPrivate_T/p\ 197,1981
 +  package body Inner2 \7fInner2/b\ 1103,2054
 +    task body Private_T \7fPrivate_T/b\ 1104,2079
 +  task body Task_Type \7fTask_Type/b\ 1112,2181
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 1126,2367
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 1132,2445
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 1134,2496
 +  package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1140,2596
 +package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1146,2663
 +  procedure Pkg1_Pkg1_Proc1 \7fPkg1_Pkg1_Proc1/p\ 1147,2689
 +function  Pkg1_Func1 \7fPkg1_Func1/f\ 1155,2778
 +package Truc \7fTruc/s\ 1162,2887
 +package Truc.Bidule \7fTruc.Bidule/s\ 1166,2929
 +  protected Bidule \7fBidule/t\ 1168,2953
 +  protected type Machin_T \7fMachin_T/t\ 1172,3007
 +package body Truc.Bidule \7fTruc.Bidule/b\ 1178,3087
 +  protected body Bidule \7fBidule/b\ 1179,3115
 +  protected Machin_T \7fMachin_T/t\ 1186,3207
 +\f
 +ada-src/2ataspri.adb,2190
 +package body System.Task_Primitives \7fSystem.Task_Primitives/b\ 164,2603
 +   package RTE \7fRTE/s\ 169,2712
 +   package TSL \7fTSL/s\ 170,2759
 +   function To_void_ptr \7fTo_void_ptr/f\ 186,3287
 +   function To_TCB_Ptr \7fTo_TCB_Ptr/f\ 189,3366
 +   function pthread_mutexattr_setprotocol\7fpthread_mutexattr_setprotocol/f\ 192,3444
 +   function pthread_mutexattr_setprio_ceiling\7fpthread_mutexattr_setprio_ceiling/f\ 199,3728
 +   procedure Abort_Wrapper\7fAbort_Wrapper/p\ 1115,4302
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 1122,4526
 +   procedure Initialize_LL_Tasks \7fInitialize_LL_Tasks/p\ 1131,4830
 +   function Self \7fSelf/f\ 1160,5586
 +   procedure Initialize_Lock\7fInitialize_Lock/p\ 1174,5958
 +   procedure Finalize_Lock \7fFinalize_Lock/p\ 1210,6927
 +   procedure Write_Lock \7fWrite_Lock/p\ 1226,7338
 +   procedure Read_Lock \7fRead_Lock/p\ 1239,7700
 +   procedure Unlock \7fUnlock/p\ 1246,7850
 +   procedure Initialize_Cond \7fInitialize_Cond/p\ 1258,8160
 +   procedure Finalize_Cond \7fFinalize_Cond/p\ 1286,8979
 +   procedure Cond_Wait \7fCond_Wait/p\ 1300,9303
 +   procedure Cond_Timed_Wait\7fCond_Timed_Wait/p\ 1312,9661
 +   procedure Cond_Signal \7fCond_Signal/p\ 1343,10510
 +   procedure Set_Priority\7fSet_Priority/p\ 1355,10836
 +   procedure Set_Own_Priority \7fSet_Own_Priority/p\ 1372,11243
 +   function Get_Priority \7fGet_Priority/f\ 1385,11598
 +   function Get_Own_Priority \7fGet_Own_Priority/f\ 1398,12023
 +   procedure Create_LL_Task\7fCreate_LL_Task/p\ 1412,12438
 +      function To_Start_Addr \7fTo_Start_Addr/f\ 1426,12873
 +   procedure Exit_LL_Task \7fExit_LL_Task/p\ 1491,14995
 +   procedure Abort_Task \7fAbort_Task/p\ 1500,15158
 +   procedure Test_Abort \7fTest_Abort/p\ 1518,15716
 +   procedure Install_Abort_Handler \7fInstall_Abort_Handler/p\ 1527,15878
 +   procedure Abort_Wrapper\7fAbort_Wrapper/p\ 1557,16939
 +      function Address_To_Call_State \7fAddress_To_Call_State/f\ 1562,17062
 +   procedure Install_Error_Handler \7fInstall_Error_Handler/p\ 1573,17351
 +   procedure LL_Assert \7fLL_Assert/p\ 1599,18146
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 1608,18299
 +   procedure Initialize_TAS_Cell \7fInitialize_TAS_Cell/p\ 1630,19010
 +   procedure Finalize_TAS_Cell \7fFinalize_TAS_Cell/p\ 1635,19129
 +   procedure Clear \7fClear/p\ 1640,19236
 +   procedure Test_And_Set \7fTest_And_Set/p\ 1645,19330
 +   function  Is_Set \7fIs_Set/f\ 1659,19676
 +\f
 +ada-src/2ataspri.ads,2313
 +package System.Task_Primitives \7fSystem.Task_Primitives/s\ 158,3169
 +   type LL_Task_Procedure_Access \7fLL_Task_Procedure_Access/t\ 162,3253
 +   type Pre_Call_State \7fPre_Call_State/t\ 164,3331
 +   type Task_Storage_Size \7fTask_Storage_Size/t\ 166,3378
 +   type Machine_Exceptions \7fMachine_Exceptions/t\ 168,3433
 +   type Error_Information \7fError_Information/t\ 170,3499
 +   type Lock \7fLock/t\ 172,3569
 +   type Condition_Variable \7fCondition_Variable/t\ 173,3594
 +   type Task_Control_Block \7fTask_Control_Block/t\ 181,3955
 +   type TCB_Ptr \7fTCB_Ptr/t\ 189,4241
 +   function Address_To_TCB_Ptr \7fAddress_To_TCB_Ptr/f\ 193,4333
 +   procedure Initialize_LL_Tasks \7fInitialize_LL_Tasks/p\ 196,4425
 +   function Self \7fSelf/f\ 1100,4602
 +   procedure Initialize_Lock \7fInitialize_Lock/p\ 1103,4707
 +   procedure Finalize_Lock \7fFinalize_Lock/p\ 1107,4879
 +   procedure Write_Lock \7fWrite_Lock/p\ 1111,5034
 +   procedure Read_Lock \7fRead_Lock/p\ 1118,5428
 +   procedure Unlock \7fUnlock/p\ 1128,5995
 +   procedure Initialize_Cond \7fInitialize_Cond/p\ 1135,6300
 +   procedure Finalize_Cond \7fFinalize_Cond/p\ 1138,6413
 +   procedure Cond_Wait \7fCond_Wait/p\ 1142,6591
 +   procedure Cond_Timed_Wait\7fCond_Timed_Wait/p\ 1155,7396
 +   procedure Cond_Signal \7fCond_Signal/p\ 1164,7812
 +   procedure Set_Priority \7fSet_Priority/p\ 1169,8040
 +   procedure Set_Own_Priority \7fSet_Own_Priority/p\ 1173,8200
 +   function Get_Priority \7fGet_Priority/f\ 1177,8348
 +   function Get_Own_Priority \7fGet_Own_Priority/f\ 1181,8504
 +   procedure Create_LL_Task\7fCreate_LL_Task/p\ 1185,8647
 +   procedure Exit_LL_Task;\7fExit_LL_Task/p\ 1198,9282
 +   procedure Abort_Task \7fAbort_Task/p\ 1203,9516
 +   procedure Test_Abort;\7fTest_Abort/p\ 1210,9878
 +   type Abort_Handler_Pointer \7fAbort_Handler_Pointer/t\ 1217,10233
 +   procedure Install_Abort_Handler \7fInstall_Abort_Handler/p\ 1219,10312
 +   procedure Install_Error_Handler \7fInstall_Error_Handler/p\ 1226,10741
 +   procedure LL_Assert \7fLL_Assert/p\ 1231,10983
 +   type Proc \7fProc/t\ 1238,11240
 +   type TAS_Cell \7fTAS_Cell/t\ 1242,11328
 +   procedure Initialize_TAS_Cell \7fInitialize_TAS_Cell/p\ 1249,11670
 +   procedure Finalize_TAS_Cell \7fFinalize_TAS_Cell/p\ 1255,11941
 +   procedure Clear \7fClear/p\ 1260,12157
 +   procedure Test_And_Set \7fTest_And_Set/p\ 1267,12462
 +   function  Is_Set \7fIs_Set/f\ 1275,12877
 +   type Lock \7fLock/t\ 1283,13155
 +   type Condition_Variable \7fCondition_Variable/t\ 1288,13267
 +   type TAS_Cell \7fTAS_Cell/t\ 1293,13389
 +\f
 +ada-src/waroquiers.ada,1503
 +package Pkg1 \7fPkg1/s\ 13,89
 +  type Private_T \7fPrivate_T/t\ 15,106
 +  package Inner1 \7fInner1/s\ 17,136
 +    procedure Private_T;\7fPrivate_T/p\ 18,156
 +  package Inner2 \7fInner2/s\ 111,196
 +    task Private_T;\7fPrivate_T/k\ 112,216
 +  type Public_T \7fPublic_T/t\ 115,251
 +  procedure Pkg1_Proc1;\7fPkg1_Proc1/p\ 121,336
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 123,361
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 125,400
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 127,439
 +  package Pkg1_Pkg1 \7fPkg1_Pkg1/s\ 130,508
 +    procedure Pkg1_Pkg1_Proc1;\7fPkg1_Pkg1_Proc1/p\ 131,531
 +  task type Task_Type \7fTask_Type/k\ 134,580
 +  type Private_T \7fPrivate_T/t\ 140,671
 +package body Pkg1 \7fPkg1/b\ 146,766
 +  procedure Pkg1_Proc1 \7fPkg1_Proc1/p\ 148,788
 +  package body Inner1 \7fInner1/b\ 153,840
 +    procedure Private_T \7fPrivate_T/p\ 154,865
 +  package body Inner2 \7fInner2/b\ 160,938
 +    task body Private_T \7fPrivate_T/b\ 161,963
 +  task body Task_Type \7fTask_Type/b\ 168,1064
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 182,1250
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 188,1328
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 190,1379
 +  package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 196,1479
 +package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1100,1544
 +  procedure Pkg1_Pkg1_Proc1 \7fPkg1_Pkg1_Proc1/p\ 1101,1570
 +function  Pkg1_Func1 \7fPkg1_Func1/f\ 1107,1657
 +package Truc \7fTruc/s\ 1112,1764
 +package Truc.Bidule \7fTruc.Bidule/s\ 1116,1816
 +  protected Bidule \7fBidule/t\ 1125,1964
 +  protected type Machin_T \7fMachin_T/t\ 1131,2046
 +package body Truc.Bidule \7fTruc.Bidule/b\ 1138,2153
 +  protected body Bidule \7fBidule/b\ 1139,2181
 +  protected body Machin_T \7fMachin_T/b\ 1146,2281
 +\f
 +c-src/abbrev.c,1432
 +Lisp_Object Vabbrev_table_name_list;\7f43,1424
 +Lisp_Object Vglobal_abbrev_table;\7f48,1569
 +Lisp_Object Vfundamental_mode_abbrev_table;\7f52,1680
 +int abbrevs_changed;\7f56,1781
 +int abbrev_all_caps;\7f58,1803
 +Lisp_Object Vabbrev_start_location;\7f63,1952
 +Lisp_Object Vabbrev_start_location_buffer;\7f66,2041
 +Lisp_Object Vlast_abbrev;\7f70,2150
 +Lisp_Object Vlast_abbrev_text;\7f75,2319
 +int last_abbrev_point;\7f79,2409
 +Lisp_Object Vpre_abbrev_expand_hook,\7f83,2482
 +Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;\7f83,2482
 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,\7fmake-abbrev-table\ 185,2546
 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,\7fclear-abbrev-table\ 192,2738
 +DEFUN ("define-abbrev", Fdefine_abbrev,\7fdefine-abbrev\ 1107,3119
 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,\7fdefine-global-abbrev\ 1149,4438
 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,\7fdefine-mode-abbrev\ 1160,4809
 +DEFUN ("abbrev-symbol", Fabbrev_symbol,\7fabbrev-symbol\ 1174,5277
 +DEFUN ("abbrev-expansion", Fabbrev_expansion,\7fabbrev-expansion\ 1202,6241
 +DEFUN ("expand-abbrev", Fexpand_abbrev,\7fexpand-abbrev\ 1218,6756
 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,\7funexpand-abbrev\ 1389,11677
 +write_abbrev \7f426,12884
 +describe_abbrev \7f445,13319
 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,\7finsert-abbrev-table-description\ 1466,13834
 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,\7fdefine-abbrev-table\ 1506,14990
 +syms_of_abbrev \7f540,16067
 +\f
 +c-src/torture.c,197
 +(*tag1 \7ftag1\ 118,452
 +#define notag2 \7f26,553
 +(*tag2 \7ftag2\ 129,630
 +(*tag3 \7ftag3\ 139,772
 +#define notag4 \7f45,861
 +(*tag4 \7ftag4\ 148,955
 +tag5 \7f57,1081
 +tag6 \7f66,1208
 +int pp1(\7f74,1317
 +pp2\7f87,1419
 +pp3(\7f100,1518
 +\f
 +c-src/getopt.h,538
 +#define _GETOPT_H \7f19,794
 +extern char *optarg;\7foptarg\ 131,1102
 +extern int optind;\7f45,1610
 +extern int opterr;\7f50,1736
 +struct option\7f73,2790
 +#define       no_argument     \7f89,3117
 +#define required_argument     \7f90,3140
 +#define optional_argument     \7f91,3168
 +extern int getopt \7f98,3433
 +extern int getopt \7f100,3537
 +extern int getopt_long \7f102,3592
 +extern int getopt_long_only \7f104,3724
 +extern int _getopt_internal \7f109,3935
 +extern int getopt \7f114,4133
 +extern int getopt_long \7f115,4155
 +extern int getopt_long_only \7f116,4182
 +extern int _getopt_internal \7f118,4215
 +\f
 +c-src/etags.c,12175
 +char pot_etags_version[\7fpot_etags_version\ 181,3470
 +#  undef DEBUG\7f84,3552
 +#  define DEBUG \7f85,3567
 +#  define DEBUG \7f87,3594
 +#  define NDEBUG      \7f88,3617
 +# define _GNU_SOURCE \7f94,3705
 +# undef MSDOS\7f100,3876
 +# undef  WINDOWSNT\7f101,3890
 +# define WINDOWSNT\7f102,3909
 +# undef MSDOS\7f106,3968
 +# define MSDOS \7f107,3982
 +# define MSDOS \7f110,4032
 +# define MAXPATHLEN \7f115,4111
 +# undef HAVE_NTGUI\7f116,4141
 +# undef  DOS_NT\7f117,4160
 +# define DOS_NT\7f118,4176
 +# undef  assert       \7f135,4482
 +# define assert(\7f136,4541
 +# undef  CTAGS\7f146,4857
 +# define CTAGS \7f147,4872
 +# define CTAGS \7f149,4898
 +#define streq(\7f152,4927
 +#define strcaseeq(\7f153,4996
 +#define strneq(\7f154,5075
 +#define strncaseeq(\7f155,5151
 +#define CHARS \7f157,5238
 +#define CHAR(\7f158,5278
 +#define       iswhite(\7f159,5329
 +#define notinname(\7f160,5394
 +#define       begtoken(\7f161,5469
 +#define       intoken(\7f162,5542
 +#define       endtoken(\7f163,5614
 +#define ISALNUM(\7f165,5684
 +#define ISALPHA(\7f166,5722
 +#define ISDIGIT(\7f167,5760
 +#define ISLOWER(\7f168,5798
 +#define lowcase(\7f170,5837
 +#define xnew(\7f179,6015
 +#define xrnew(\7f180,6083
 +typedef void Lang_function \7f182,6164
 +} compressor;\7f188,6365
 +} language;\7f199,6835
 +typedef struct fdesc\7f201,6848
 +} fdesc;\7f212,7366
 +typedef struct node_st\7f214,7376
 +} node;\7f225,7894
 +} linebuffer;\7f239,8248
 +    at_language,\7f245,8344
 +    at_regexp,\7f246,8393
 +    at_filename,\7f247,8437
 +    at_stdin,\7f248,8473
 +    at_end    \7f249,8516
 +} argument;\7f253,8698
 +typedef struct regexp\7f256,8758
 +} regexp;\7f268,9325
 +static void Ada_funcs \7f274,9428
 +static void Asm_labels \7f275,9460
 +static void C_entries \7f276,9493
 +static void default_C_entries \7f277,9536
 +static void plain_C_entries \7f278,9576
 +static void Cjava_entries \7f279,9614
 +static void Cobol_paragraphs \7f280,9650
 +static void Cplusplus_entries \7f281,9689
 +static void Cstar_entries \7f282,9729
 +static void Erlang_functions \7f283,9765
 +static void Forth_words \7f284,9804
 +static void Fortran_functions \7f285,9838
 +static void HTML_labels \7f286,9878
 +static void Lisp_functions \7f287,9912
 +static void Lua_functions \7f288,9949
 +static void Makefile_targets \7f289,9985
 +static void Pascal_functions \7f290,10024
 +static void Perl_functions \7f291,10063
 +static void PHP_functions \7f292,10100
 +static void PS_functions \7f293,10136
 +static void Prolog_functions \7f294,10171
 +static void Python_functions \7f295,10210
 +static void Scheme_functions \7f296,10249
 +static void TeX_commands \7f297,10288
 +static void Texinfo_nodes \7f298,10323
 +static void Yacc_entries \7f299,10359
 +static void just_read_file \7f300,10394
 +static language *get_language_from_langname \7fget_language_from_langname\ 1302,10432
 +static void readline \7f303,10492
 +static long readline_internal \7f304,10537
 +static bool nocase_tail \7f305,10591
 +static void get_tag \7f306,10631
 +static void analyze_regex \7f308,10671
 +static void free_regexps \7f309,10707
 +static void regex_tag_multiline \7f310,10740
 +static void error \7f311,10780
 +# undef STDIN\7f408,15073
 +#define STDIN \7f411,15095
 +static compressor compressors[\7fcompressors\ 1457,17664
 +static const char *Ada_suffixes \7fAda_suffixes\ 1473,17907
 +static const char Ada_help \7f475,17977
 +static const char *Asm_suffixes \7fAsm_suffixes\ 1493,18580
 +static const char Asm_help \7f504,18976
 +static const char *default_C_suffixes \7fdefault_C_suffixes\ 1512,19312
 +static const char default_C_help \7f515,19413
 +static const char default_C_help \7f523,19850
 +static const char *Cplusplus_suffixes \7fCplusplus_suffixes\ 1535,20460
 +static const char Cplusplus_help \7f540,20658
 +static const char *Cjava_suffixes \7fCjava_suffixes\ 1549,21113
 +static char Cjava_help \7f551,21172
 +static const char *Cobol_suffixes \7fCobol_suffixes\ 1556,21337
 +static char Cobol_help \7f558,21402
 +static const char *Cstar_suffixes \7fCstar_suffixes\ 1562,21543
 +static const char *Erlang_suffixes \7fErlang_suffixes\ 1565,21607
 +static const char Erlang_help \7f567,21673
 +const char *Forth_suffixes \7fForth_suffixes\ 1571,21799
 +static const char Forth_help \7f573,21857
 +static const char *Fortran_suffixes \7fFortran_suffixes\ 1577,22008
 +static const char Fortran_help \7f579,22085
 +static const char *HTML_suffixes \7fHTML_suffixes\ 1582,22190
 +static const char HTML_help \7f584,22264
 +static const char *Lisp_suffixes \7fLisp_suffixes\ 1589,22452
 +static const char Lisp_help \7f591,22556
 +static const char *Lua_suffixes \7fLua_suffixes\ 1598,22871
 +static const char Lua_help \7f600,22934
 +static const char *Makefile_filenames \7fMakefile_filenames\ 1603,23010
 +static const char Makefile_help \7f605,23133
 +static const char *Objc_suffixes \7fObjc_suffixes\ 1609,23277
 +static const char Objc_help \7f613,23399
 +static const char *Pascal_suffixes \7fPascal_suffixes\ 1619,23714
 +static const char Pascal_help \7f621,23778
 +static const char *Perl_suffixes \7fPerl_suffixes\ 1626,23966
 +static const char *Perl_interpreters \7fPerl_interpreters\ 1628,24028
 +static const char Perl_help \7f630,24100
 +static const char *PHP_suffixes \7fPHP_suffixes\ 1637,24451
 +static const char PHP_help \7f639,24523
 +static const char *plain_C_suffixes \7fplain_C_suffixes\ 1643,24678
 +static const char *PS_suffixes \7fPS_suffixes\ 1647,24762
 +static const char PS_help \7f649,24848
 +static const char *Prolog_suffixes \7fProlog_suffixes\ 1652,24931
 +static const char Prolog_help \7f654,24993
 +static const char *Python_suffixes \7fPython_suffixes\ 1658,25107
 +static const char Python_help \7f660,25165
 +static const char *Scheme_suffixes \7fScheme_suffixes\ 1665,25347
 +static const char Scheme_help \7f667,25460
 +static const char *TeX_suffixes \7fTeX_suffixes\ 1672,25683
 +static const char TeX_help \7f674,25781
 +static const char *Texinfo_suffixes \7fTexinfo_suffixes\ 1686,26316
 +static const char Texinfo_help \7f688,26395
 +static const char *Yacc_suffixes \7fYacc_suffixes\ 1691,26492
 +static const char Yacc_help \7f693,26606
 +static const char auto_help \7f699,26856
 +static const char none_help \7f703,27020
 +static const char no_lang_help \7f707,27143
 +static language lang_names \7f718,27355
 +print_language_names \7f753,29532
 +# define EMACS_NAME \7f786,30755
 +# define VERSION \7f789,30811
 +print_version \7f792,30869
 +# define PRINT_UNDOCUMENTED_OPTIONS_HELP \7f804,31173
 +print_help \7f808,31250
 +main \7f981,37438
 +get_compressor_from_suffix \7f1319,46217
 +get_language_from_langname \7f1355,47158
 +get_language_from_interpreter \7f1377,47545
 +get_language_from_filename \7f1399,47976
 +process_file_name \7f1433,48834
 +process_file \7f1555,51665
 +init \7f1632,54150
 +find_entries \7f1656,54901
 +make_tag \7f1814,59707
 +pfnote \7f1856,60942
 +free_tree \7f1917,62744
 +free_fdesc \7f1935,63029
 +add_node \7f1955,63472
 +invalidate_nodes \7f2035,65537
 +static int total_size_of_entries \7f2067,66150
 +static int number_len \7f2068,66193
 +total_size_of_entries \7f2087,66694
 +put_entries \7f2107,67154
 +#define C_EXT \7f2193,68995
 +#define C_PLAIN \7f2194,69037
 +#define C_PLPL        \7f2195,69070
 +#define C_STAR        \7f2196,69104
 +#define C_JAVA        \7f2197,69137
 +#define C_AUTO \7f2198,69172
 +#define YACC  \7f2199,69242
 +enum sym_type\7f2204,69312
 +  st_none,\7f2206,69328
 +  st_C_objprot,\7f2207,69339
 +  st_C_objprot, st_C_objimpl,\7f2207,69339
 +  st_C_objprot, st_C_objimpl, st_C_objend,\7f2207,69339
 +  st_C_gnumacro,\7f2208,69382
 +  st_C_ignore,\7f2209,69399
 +  st_C_ignore, st_C_attribute,\7f2209,69399
 +  st_C_javastruct,\7f2210,69430
 +  st_C_operator,\7f2211,69449
 +  st_C_class,\7f2212,69466
 +  st_C_class, st_C_template,\7f2212,69466
 +  st_C_struct,\7f2213,69495
 +  st_C_struct, st_C_extern,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum, st_C_define,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum, st_C_define, st_C_typedef\7f2213,69495
 +struct C_stab_entry \7f2271,71278
 +hash \7f2275,71409
 +in_word_set \7f2321,72937
 +      TOTAL_KEYWORDS \7f2325,73018
 +      MIN_WORD_LENGTH \7f2326,73045
 +      MAX_WORD_LENGTH \7f2327,73072
 +      MIN_HASH_VALUE \7f2328,73100
 +      MAX_HASH_VALUE \7f2329,73126
 +C_symtype \7f2387,74985
 +static bool inattribute;\7f2400,75234
 +  fvnone,\7f2408,75435
 +  fdefunkey,\7f2409,75466
 +  fdefunname,\7f2410,75512
 +  foperator,\7f2411,75556
 +  fvnameseen,\7f2412,75613
 +  fstartlist,\7f2413,75666
 +  finlist,\7f2414,75722
 +  flistseen,\7f2415,75765
 +  fignore,\7f2416,75813
 +  vignore     \7f2417,75856
 +} fvdef;\7f2418,75901
 +static bool fvextern;\7f2420,75911
 +  tnone,\7f2428,76089
 +  tkeyseen,\7f2429,76119
 +  ttypeseen,\7f2430,76160
 +  tinbody,\7f2431,76199
 +  tend,\7f2432,76238
 +  tignore     \7f2433,76279
 +} typdef;\7f2434,76320
 +  snone,\7f2443,76499
 +  skeyseen,\7f2445,76575
 +  stagseen,\7f2446,76620
 +  scolonseen  \7f2447,76661
 +} structdef;\7f2448,76715
 +static const char *objtag \7fobjtag\ 12453,76809
 +  dnone,\7f2460,76942
 +  dsharpseen,\7f2461,76972
 +  ddefineseen,\7f2462,77025
 +  dignorerest \7f2463,77070
 +} definedef;\7f2464,77112
 +  onone,\7f2472,77267
 +  oprotocol,\7f2473,77297
 +  oimplementation,\7f2474,77347
 +  otagseen,\7f2475,77395
 +  oparenseen,\7f2476,77431
 +  ocatseen,\7f2477,77486
 +  oinbody,\7f2478,77525
 +  omethodsign,\7f2479,77568
 +  omethodtag,\7f2480,77626
 +  omethodcolon,\7f2481,77666
 +  omethodparm,\7f2482,77709
 +  oignore     \7f2483,77755
 +} objdef;\7f2484,77787
 +static struct tok\7f2491,77944
 +} token;\7f2508,78626
 +static void pushclass_above \7f2514,78784
 +static void popclass_above \7f2515,78832
 +static void write_classname \7f2516,78866
 +} cstack;\7f2523,79136
 +#define nestlev       \7f2525,79264
 +#define instruct      \7f2527,79369
 +pushclass_above \7f2531,79489
 +popclass_above \7f2550,79948
 +write_classname \7f2564,80162
 +static bool consider_token \7f2592,80761
 +static void make_C_tag \7f2593,80833
 +consider_token \7f2613,81341
 +} lbs[\7flbs\ 12924,88532
 +#define current_lb_is_new \7f2926,88543
 +#define switch_line_buffers(\7f2927,88588
 +#define curlb \7f2929,88641
 +#define newlb \7f2930,88672
 +#define curlinepos \7f2931,88703
 +#define newlinepos \7f2932,88744
 +#define plainc \7f2934,88786
 +#define cplpl \7f2935,88830
 +#define cjava \7f2936,88861
 +#define CNL_SAVE_DEFINEDEF(\7f2938,88905
 +#define CNL(\7f2947,89117
 +make_C_tag \7f2960,89375
 +C_entries \7f2986,90194
 +default_C_entries \7f3833,110156
 +plain_C_entries \7f3840,110276
 +Cplusplus_entries \7f3847,110364
 +Cjava_entries \7f3854,110460
 +Cstar_entries \7f3861,110550
 +Yacc_entries \7f3868,110642
 +#define LOOP_ON_INPUT_LINES(\7f3875,110720
 +#define LOOKING_AT(\7f3884,111056
 +#define LOOKING_AT_NOCASE(\7f3891,111461
 +just_read_file \7f3901,111861
 +static void F_takeprec \7f3910,111965
 +static void F_getit \7f3911,111996
 +F_takeprec \7f3914,112039
 +F_getit \7f3937,112366
 +Fortran_functions \7f3961,112840
 +Ada_getit \7f4052,114669
 +Ada_funcs \7f4115,116044
 +Asm_labels \7f4228,118582
 +Perl_functions \7f4261,119549
 +Python_functions \7f4357,122057
 +PHP_functions \7f4387,122684
 +Cobol_paragraphs \7f4466,124471
 +Makefile_targets \7f4494,125029
 +Pascal_functions \7f4529,125950
 +static void L_getit \7f4706,130277
 +L_getit \7f4709,130318
 +Lisp_functions \7f4725,130664
 +Lua_functions \7f4785,131850
 +PS_functions \7f4811,132385
 +Forth_words \7f4841,133053
 +Scheme_functions \7f4877,134092
 +static linebuffer *TEX_toktab \7fTEX_toktab\ 14908,134781
 +static const char *TEX_defenv \7fTEX_defenv\ 14912,134974
 +static void TEX_mode \7f4917,135172
 +static void TEX_decode_env \7f4918,135203
 +static char TEX_esc \7f4920,135261
 +static char TEX_opgrp \7f4921,135289
 +static char TEX_clgrp \7f4922,135318
 +TeX_commands \7f4928,135395
 +#define TEX_LESC \7f4986,136652
 +#define TEX_SESC \7f4987,136674
 +TEX_mode \7f4992,136804
 +TEX_decode_env \7f5026,137509
 +Texinfo_nodes \7f5071,138554
 +HTML_labels \7f5094,139013
 +static size_t prolog_pr \7f5214,142192
 +static void prolog_skip_comment \7f5215,142234
 +static size_t prolog_atom \7f5216,142290
 +Prolog_functions \7f5219,142347
 +prolog_skip_comment \7f5255,143128
 +prolog_pr \7f5281,143736
 +prolog_atom \7f5319,144628
 +static int erlang_func \7f5374,145540
 +static void erlang_attribute \7f5375,145581
 +static int erlang_atom \7f5376,145620
 +Erlang_functions \7f5379,145666
 +erlang_func \7f5438,146965
 +erlang_attribute \7f5476,147642
 +erlang_atom \7f5496,148061
 +static char *scan_separators \7fscan_separators\ 15520,148487
 +static void add_regex \7f5521,148526
 +static char *substitute \7fsubstitute\ 15522,148570
 +scan_separators \7f5534,149080
 +analyze_regex \7f5586,150460
 +add_regex \7f5654,152050
 +substitute \7f5767,154797
 +free_regexps \7f5814,155837
 +regex_tag_multiline \7f5836,156291
 +nocase_tail \7f5913,158263
 +get_tag \7f5928,158519
 +readline_internal \7f5959,159455
 +readline \7f6037,161296
 +savestr \7f6230,167243
 +savenstr \7f6240,167473
 +skip_spaces \7f6249,167679
 +skip_non_spaces \7f6258,167833
 +skip_name \7f6267,167983
 +fatal \7f6277,168156
 +pfatal \7f6284,168253
 +suggest_asking_for_help \7f6291,168332
 +error \7f6300,168554
 +concat \7f6313,168846
 +etags_getcwd \7f6329,169259
 +relative_filename \7f6350,169725
 +absolute_filename \7f6389,170751
 +absolute_dirname \7f6453,172416
 +filename_is_absolute \7f6472,172845
 +canonicalize_filename \7f6484,173096
 +# define ISUPPER(\7f6491,173235
 +linebuffer_init \7f6514,173656
 +linebuffer_setlen \7f6524,173887
 +xmalloc \7f6536,174148
 +xrealloc \7f6545,174314
 +\f
 +c-src/exit.c,47
 +  } __libc_atexit;\7f30,1017
 +DEFUN(exit,\7f38,1258
 +\f
 +c-src/exit.strange_suffix,47
 +  } __libc_atexit;\7f30,1017
 +DEFUN(exit,\7f38,1258
 +\f
 +c-src/sysdep.h,491
 +#define       ENTRY(\7f21,870
 +#define       PSEUDO(\7f26,977
 +    movl $SYS_##syscall_nam\7f$SYS_##syscall_na\ 131,1137
 +    movl $SYS_##syscall_name, %eax;\7feax\ 131,1137
 +    int $0x80;\7f32,1185
 +    test %eax,\7feax\ 133,1215
 +    test %eax, %eax;\7feax\ 133,1215
 +    jl syscall_error;\7f34,1250
 +#define       XCHG_0  \7f47,1567
 +#define       XCHG_1  \7f48,1611
 +#define       XCHG_2  \7f49,1653
 +#define       XCHG_3  \7f50,1696
 +#define       XCHG_4  \7f51,1739
 +#define       XCHG_5  \7f52,1782
 +#define       r0      \7f54,1826
 +#define       r1      \7f55,1880
 +#define scratch \7f56,1937
 +#define MOVE(\7f57,2006
 +\f
 +c-src/tab.c,196
 +static int            count_words(\7f15,263
 +static char           *get_word(\7fget_word\ 135,553
 +void                  tab_free(\7f59,966
 +char                  **tab_fill(\7ftab_fill\ 170,1129
 +int                   tab_delete_first(\7f91,1638
 +int                   tab_count_words(\7f103,1820
 +\f
 +c-src/dostorture.c,198
 +(*tag1 \7ftag1\ 118,468
 +#define notag2 \7f26,577
 +(*tag2 \7ftag2\ 129,657
 +(*tag3 \7ftag3\ 139,809
 +#define notag4 \7f45,904
 +(*tag4 \7ftag4\ 148,1001
 +tag5 \7f57,1136
 +tag6 \7f66,1272
 +int pp1(\7f74,1389
 +pp2\7f87,1504
 +pp3(\7f100,1616
 +\f
 +c-src/emacs/src/gmalloc.c,6643
 +#define USE_PTHREAD\7f25,1002
 +#undef get_current_dir_name\7f33,1126
 +extern void emacs_abort \7f47,1305
 +#undef malloc\7f64,2110
 +#undef realloc\7f65,2124
 +#undef calloc\7f66,2139
 +#undef free\7f67,2153
 +#define malloc \7f68,2165
 +#define realloc \7f69,2188
 +#define calloc \7f70,2213
 +#define aligned_alloc \7f71,2236
 +#define free \7f72,2273
 +extern void *bss_sbrk \7fbss_sbrk\ 176,2335
 +extern int bss_sbrk_did_unexec;\7f77,2375
 +extern char bss_sbrk_buffer[\7fbss_sbrk_buffer\ 178,2407
 +extern void *bss_sbrk_buffer_end;\7fbss_sbrk_buffer_end\ 179,2438
 +#define DUMPED \7f80,2472
 +#define ALLOCATED_BEFORE_DUMPING(\7f81,2507
 +extern void *malloc \7fmalloc\ 194,2718
 +#define INT_BIT       \7f124,3934
 +#define BLOCKLOG      \7f125,3977
 +#define BLOCKSIZE     \7f126,4018
 +#define BLOCKIFY(\7f127,4052
 +#define HEAP  \7f131,4215
 +#define FINAL_FREE_BLOCKS     \7f135,4391
 +  } malloc_info;\7f167,5388
 +extern char *_heapbase;\7f_heapbase\ 1170,5449
 +extern malloc_info *_heapinfo;\7f_heapinfo\ 1173,5541
 +#define BLOCK(\7f176,5620
 +#define ADDRESS(\7f177,5682
 +extern size_t _heapindex;\7f180,5797
 +extern size_t _heaplimit;\7f183,5866
 +struct list\7f186,5939
 +extern struct list _fraghead[\7f_fraghead\ 1193,6056
 +struct alignlist\7f196,6153
 +extern struct alignlist *_aligned_blocks;\7f_aligned_blocks\ 1202,6334
 +extern size_t _chunks_used;\7f205,6401
 +extern size_t _bytes_used;\7f206,6429
 +extern size_t _chunks_free;\7f207,6456
 +extern size_t _bytes_free;\7f208,6484
 +extern void *_malloc_internal \7f_malloc_internal\ 1213,6673
 +extern void *_realloc_internal \7f_realloc_internal\ 1214,6713
 +extern void _free_internal \7f215,6762
 +extern void *_malloc_internal_nolock \7f_malloc_internal_nolock\ 1216,6799
 +extern void *_realloc_internal_nolock \7f_realloc_internal_nolock\ 1217,6846
 +extern void _free_internal_nolock \7f218,6902
 +extern pthread_mutex_t _malloc_mutex,\7f221,6966
 +extern pthread_mutex_t _malloc_mutex, _aligned_blocks_mutex;\7f221,6966
 +extern int _malloc_thread_enabled_p;\7f222,7027
 +#define LOCK(\7f223,7064
 +#define UNLOCK(\7f228,7195
 +#define LOCK_ALIGNED_BLOCKS(\7f233,7329
 +#define UNLOCK_ALIGNED_BLOCKS(\7f238,7484
 +#define LOCK(\7f244,7649
 +#define UNLOCK(\7f245,7664
 +#define LOCK_ALIGNED_BLOCKS(\7f246,7681
 +#define UNLOCK_ALIGNED_BLOCKS(\7f247,7711
 +extern void *malloc_find_object_address \7fmalloc_find_object_address\ 1252,7865
 +extern void *(*__morecore)\7f__morecore\ 1256,8021
 +extern void *__default_morecore \7f__default_morecore\ 1259,8105
 +extern void (*__after_morecore_hook)\7f__after_morecore_hook\ 1263,8269
 +extern size_t __malloc_extra_blocks;\7f267,8442
 +extern int __malloc_initialized;\7f270,8552
 +extern int __malloc_initialize \7f272,8646
 +extern void (*__malloc_initialize_hook)\7f__malloc_initialize_hook\ 1275,8723
 +extern void (*__free_hook)\7f__free_hook\ 1276,8771
 +extern void *(*__malloc_hook)\7f__malloc_hook\ 1277,8811
 +extern void *(*__realloc_hook)\7f__realloc_hook\ 1278,8856
 +extern void *(*__memalign_hook)\7f__memalign_hook\ 1279,8913
 +enum mcheck_status\7f283,9092
 +    MCHECK_DISABLED \7f285,9115
 +    MCHECK_OK,\7f286,9187
 +    MCHECK_FREE,\7f287,9226
 +    MCHECK_HEAD,\7f288,9270
 +    MCHECK_TAIL       \7f289,9334
 +extern int mcheck \7f296,9701
 +extern enum mcheck_status mprobe \7f301,9952
 +extern void mtrace \7f304,10055
 +extern void muntrace \7f305,10082
 +struct mstats\7f308,10153
 +extern struct mstats mstats \7f318,10518
 +extern void memory_warnings \7f321,10625
 +void *(*__malloc_hook)\7f__malloc_hook\ 1352,11743
 +char *_heapbase;\7f_heapbase\ 1355,11829
 +malloc_info *_heapinfo;\7f_heapinfo\ 1358,11927
 +static size_t heapsize;\7f361,11983
 +size_t _heapindex;\7f364,12047
 +size_t _heaplimit;\7f367,12109
 +struct list _fraghead[\7f_fraghead\ 1370,12171
 +size_t _chunks_used;\7f373,12229
 +size_t _bytes_used;\7f374,12250
 +size_t _chunks_free;\7f375,12270
 +size_t _bytes_free;\7f376,12291
 +int __malloc_initialized;\7f379,12340
 +size_t __malloc_extra_blocks;\7f381,12367
 +void (*__malloc_initialize_hook)\7f__malloc_initialize_hook\ 1383,12398
 +void (*__after_morecore_hook)\7f__after_morecore_hook\ 1384,12439
 +static int state_protected_p;\7f400,12912
 +static size_t last_state_size;\7f401,12942
 +static malloc_info *last_heapinfo;\7flast_heapinfo\ 1402,12973
 +protect_malloc_state \7f405,13014
 +#define PROTECT_MALLOC_STATE(\7f426,13627
 +#define PROTECT_MALLOC_STATE(\7f429,13697
 +align \7f435,13794
 +get_contiguous_space \7f466,14616
 +register_heapinfo \7f497,15325
 +pthread_mutex_t _malloc_mutex \7f517,15879
 +pthread_mutex_t _aligned_blocks_mutex \7f518,15938
 +int _malloc_thread_enabled_p;\7f519,16005
 +malloc_atfork_handler_prepare \7f522,16048
 +malloc_atfork_handler_parent \7f529,16139
 +malloc_atfork_handler_child \7f536,16233
 +malloc_enable_thread \7f544,16375
 +malloc_initialize_1 \7f563,16961
 +__malloc_initialize \7f594,17793
 +static int morecore_recursing;\7f604,17926
 +morecore_nolock \7f609,18066
 +_malloc_internal_nolock \7f722,21584
 +_malloc_internal \7f920,28102
 +malloc \7f932,28247
 +extern void *_malloc \7f_malloc\ 1956,29033
 +extern void _free \7f957,29064
 +extern void *_realloc \7f_realloc\ 1958,29092
 +_malloc \7f961,29140
 +_free \7f967,29196
 +_realloc \7f973,29240
 +void (*__free_hook)\7f__free_hook\ 11001,30259
 +struct alignlist *_aligned_blocks \7f_aligned_blocks\ 11004,30345
 +_free_internal_nolock \7f1009,30474
 +_free_internal \7f1255,38476
 +free \7f1265,38603
 +weak_alias \7f1277,38799
 +#define min(\7f1306,39813
 +void *(*__realloc_hook)\7f__realloc_hook\ 11310,39898
 +_realloc_internal_nolock \7f1319,40309
 +_realloc_internal \7f1435,43563
 +realloc \7f1447,43726
 +calloc \7f1478,44894
 +#define       __sbrk  \7f1513,46042
 +extern void *__sbrk \7f__sbrk\ 11518,46247
 +__default_morecore \7f1525,46511
 +void *(*__memalign_hook)\7f__memalign_hook\ 11554,47456
 +aligned_alloc \7f1557,47522
 +memalign \7f1647,49704
 +posix_memalign \7f1656,49909
 +extern void *valloc \7fvalloc\ 11695,51140
 +extern int getpagesize \7f1700,51278
 +static size_t pagesize;\7f1703,51317
 +valloc \7f1706,51349
 +#undef malloc\7f1715,51490
 +#undef realloc\7f1716,51504
 +#undef calloc\7f1717,51519
 +#undef aligned_alloc\7f1718,51533
 +#undef free\7f1719,51554
 +extern void *malloc \7fmalloc\ 11722,51609
 +extern void *realloc \7frealloc\ 11723,51644
 +extern void *calloc \7fcalloc\ 11724,51691
 +extern void free \7f1725,51740
 +extern void *aligned_alloc \7faligned_alloc\ 11727,51796
 +extern int posix_memalign \7f1729,51890
 +hybrid_malloc \7f1736,52083
 +hybrid_calloc \7f1744,52188
 +hybrid_free \7f1752,52319
 +hybrid_aligned_alloc \7f1765,52626
 +hybrid_realloc \7f1780,52984
 +char *gget_current_dir_name \7fgget_current_dir_name\ 11808,53753
 +hybrid_get_current_dir_name \7f1811,53797
 +static void (*old_free_hook)\7fold_free_hook\ 11846,54921
 +static void *(*old_malloc_hook)\7fold_malloc_hook\ 11847,54963
 +static void *(*old_realloc_hook)\7fold_realloc_hook\ 11848,55010
 +static void (*abortfunc)\7fabortfunc\ 11851,55124
 +#define MAGICWORD     \7f1854,55206
 +#define MAGICFREE     \7f1855,55261
 +#define MAGICBYTE     \7f1856,55316
 +#define MALLOCFLOOD   \7f1857,55348
 +#define FREEFLOOD     \7f1858,55382
 +struct hdr\7f1860,55415
 +checkhdr \7f1867,55581
 +freehook \7f1891,56022
 +mallochook \7f1927,56804
 +reallochook \7f1944,57143
 +mabort \7f1978,57901
 +static int mcheck_used \7f2012,58586
 +mcheck \7f2015,58619
 +mprobe \7f2035,59138
 +\f
 +c-src/emacs/src/regex.h,4576
 +#define _REGEX_H \7f21,836
 +typedef unsigned long reg_syntax_t;\7f43,1577
 +#define RE_BACKSLASH_ESCAPE_IN_LISTS \7f47,1749
 +#define RE_BK_PLUS_QM \7f52,1969
 +#define RE_CHAR_CLASSES \7f58,2298
 +#define RE_CONTEXT_INDEP_ANCHORS \7f72,3032
 +#define RE_CONTEXT_INDEP_OPS \7f80,3458
 +#define RE_CONTEXT_INVALID_OPS \7f84,3658
 +#define RE_DOT_NEWLINE \7f88,3801
 +#define RE_DOT_NOT_NULL \7f92,3937
 +#define RE_HAT_LISTS_NOT_NEWLINE \7f96,4082
 +#define RE_INTERVALS \7f101,4292
 +#define RE_LIMITED_OPS \7f105,4441
 +#define RE_NEWLINE_ALT \7f109,4583
 +#define RE_NO_BK_BRACES \7f114,4773
 +#define RE_NO_BK_PARENS \7f118,4964
 +#define RE_NO_BK_REFS \7f122,5120
 +#define RE_NO_BK_VBAR \7f126,5316
 +#define RE_NO_EMPTY_RANGES \7f132,5610
 +#define RE_UNMATCHED_RIGHT_PAREN_ORD \7f136,5766
 +#define RE_NO_POSIX_BACKTRACKING \7f140,5937
 +#define RE_NO_GNU_OPS \7f144,6133
 +#define RE_FRUGAL \7f147,6253
 +#define RE_SHY_GROUPS \7f150,6360
 +#define RE_NO_NEWLINE_ANCHOR \7f153,6468
 +#define RE_DEBUG \7f161,6884
 +extern reg_syntax_t re_syntax_options;\7f167,7170
 +extern Lisp_Object re_match_object;\7f172,7344
 +extern size_t re_max_failures;\7f176,7454
 +#define RE_SYNTAX_EMACS       \7f183,7684
 +#define RE_SYNTAX_AWK \7f186,7780
 +#define RE_SYNTAX_GNU_AWK     \7f193,8084
 +#define RE_SYNTAX_POSIX_AWK \7f197,8255
 +#define RE_SYNTAX_GREP        \7f201,8393
 +#define RE_SYNTAX_EGREP       \7f206,8549
 +#define RE_SYNTAX_POSIX_EGREP \7f212,8765
 +#define RE_SYNTAX_ED \7f216,8910
 +#define RE_SYNTAX_SED \7f218,8954
 +#define _RE_SYNTAX_POSIX_COMMON       \7f221,9072
 +#define RE_SYNTAX_POSIX_BASIC \7f225,9215
 +#define RE_SYNTAX_POSIX_MINIMAL_BASIC \7f231,9508
 +#define RE_SYNTAX_POSIX_EXTENDED      \7f234,9598
 +#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED      \7f242,9967
 +# undef RE_DUP_MAX\7f253,10454
 +#define RE_DUP_MAX \7f256,10540
 +#define REG_EXTENDED \7f263,10762
 +#define REG_ICASE \7f267,10886
 +#define REG_NEWLINE \7f272,11070
 +#define REG_NOSUB \7f276,11248
 +#define REG_NOTBOL \7f286,11614
 +#define REG_NOTEOL \7f289,11688
 +  REG_ENOSYS \7f297,11859
 +  REG_NOERROR \7f300,11941
 +  REG_NOMATCH,\7f301,11976
 +  REG_BADPAT,\7f305,12123
 +  REG_ECOLLATE,\7f306,12162
 +  REG_ECTYPE,\7f307,12203
 +  REG_EESCAPE,\7f308,12255
 +  REG_ESUBREG,\7f309,12298
 +  REG_EBRACK,\7f310,12345
 +  REG_EPAREN,\7f311,12391
 +  REG_EBRACE,\7f312,12436
 +  REG_BADBR,\7f313,12472
 +  REG_ERANGE,\7f314,12519
 +  REG_ESPACE,\7f315,12560
 +  REG_BADRPT,\7f316,12601
 +  REG_EEND,\7f319,12693
 +  REG_ESIZE,\7f320,12728
 +  REG_ERPAREN,\7f321,12790
 +  REG_ERANGEX \7f322,12859
 +} reg_errcode_t;\7f323,12911
 +# define RE_TRANSLATE_TYPE \7f332,13273
 +struct re_pattern_buffer\7f335,13315
 +#define REGS_UNALLOCATED \7f376,14889
 +#define REGS_REALLOCATE \7f377,14916
 +#define REGS_FIXED \7f378,14942
 +typedef struct re_pattern_buffer regex_t;\7f416,16098
 +typedef ssize_t regoff_t;\7f423,16492
 +struct re_registers\7f428,16652
 +# define RE_NREGS \7f440,16942
 +} regmatch_t;\7f451,17317
 +extern reg_syntax_t re_set_syntax \7f457,17512
 +extern const char *re_compile_pattern \7fre_compile_pattern\ 1462,17776
 +extern int re_compile_fastmap \7f469,18058
 +extern regoff_t re_search \7f477,18466
 +extern regoff_t re_search_2 \7f485,18781
 +extern regoff_t re_match \7f495,19177
 +extern regoff_t re_match_2 \7f501,19407
 +extern void re_set_registers \7f520,20197
 +extern char *re_comp \7fre_comp\ 1528,20469
 +extern int re_exec \7f529,20506
 +#  define _Restrict_ \7f540,20886
 +#  define _Restrict_ \7f542,20979
 +#  define _Restrict_\7f544,21018
 +#  define _Restrict_arr_ \7f555,21418
 +#  define _Restrict_arr_\7f557,21461
 +extern reg_errcode_t regcomp \7f562,21530
 +extern reg_errcode_t regexec \7f566,21656
 +extern size_t regerror \7f571,21850
 +extern void regfree \7f574,21956
 +#  define CHAR_CLASS_MAX_LENGTH \7f593,22470
 +#  define CHAR_CLASS_MAX_LENGTH \7f597,22648
 +typedef wctype_t re_wctype_t;\7f599,22692
 +typedef wchar_t re_wchar_t;\7f600,22722
 +# define re_wctype \7f601,22750
 +# define re_iswctype \7f602,22776
 +# define re_wctype_to_bit(\7f603,22806
 +# define CHAR_CLASS_MAX_LENGTH \7f605,22844
 +# define btowc(\7f606,22906
 +typedef enum { RECC_ERROR \7f609,22953
 +             RECC_ALNUM,\7f610,22984
 +             RECC_ALNUM, RECC_ALPHA,\7f610,22984
 +             RECC_ALNUM, RECC_ALPHA, RECC_WORD,\7f610,22984
 +             RECC_GRAPH,\7f611,23027
 +             RECC_GRAPH, RECC_PRINT,\7f611,23027
 +             RECC_LOWER,\7f612,23059
 +             RECC_LOWER, RECC_UPPER,\7f612,23059
 +             RECC_PUNCT,\7f613,23091
 +             RECC_PUNCT, RECC_CNTRL,\7f613,23091
 +             RECC_DIGIT,\7f614,23123
 +             RECC_DIGIT, RECC_XDIGIT,\7f614,23123
 +             RECC_BLANK,\7f615,23156
 +             RECC_BLANK, RECC_SPACE,\7f615,23156
 +             RECC_MULTIBYTE,\7f616,23188
 +             RECC_MULTIBYTE, RECC_NONASCII,\7f616,23188
 +             RECC_ASCII,\7f617,23227
 +             RECC_ASCII, RECC_UNIBYTE\7f617,23227
 +} re_wctype_t;\7f618,23260
 +extern char re_iswctype \7f620,23276
 +extern re_wctype_t re_wctype \7f621,23329
 +typedef int re_wchar_t;\7f623,23387
 +extern void re_set_whitespace_regexp \7f625,23412
 +\f
 +c-src/emacs/src/keyboard.c,15493
 +volatile int interrupt_input_blocked;\7f76,1808
 +volatile bool pending_signals;\7f80,1944
 +#define KBD_BUFFER_SIZE \7f82,1976
 +KBOARD *initial_kboard;\7finitial_kboard\ 184,2006
 +KBOARD *current_kboard;\7fcurrent_kboard\ 185,2030
 +static KBOARD *all_kboards;\7fall_kboards\ 186,2054
 +static bool single_kboard;\7f89,2154
 +#define NUM_RECENT_KEYS \7f91,2182
 +static int recent_keys_index;\7f94,2269
 +static int total_keys;\7f97,2357
 +static Lisp_Object recent_keys;\7f100,2443
 +Lisp_Object this_command_keys;\7f107,2777
 +ptrdiff_t this_command_key_count;\7f108,2808
 +static bool this_command_key_count_reset;\7f112,2922
 +static Lisp_Object raw_keybuf;\7f116,3074
 +static int raw_keybuf_count;\7f117,3105
 +#define GROW_RAW_KEYBUF       \7f119,3135
 +static ptrdiff_t this_single_command_key_start;\7f125,3350
 +static ptrdiff_t before_command_key_count;\7f129,3498
 +static ptrdiff_t before_command_echo_length;\7f130,3541
 +sigjmp_buf return_to_command_loop;\7f135,3677
 +static Lisp_Object recover_top_level_message;\7f138,3791
 +static Lisp_Object regular_top_level_message;\7f143,3930
 +static sys_jmp_buf getcjmp;\7f147,4031
 +bool waiting_for_input;\7f150,4095
 +static bool echoing;\7f154,4186
 +static struct kboard *ok_to_echo_at_next_pause;\7fok_to_echo_at_next_pause\ 1159,4328
 +struct kboard *echo_kboard;\7fecho_kboard\ 1166,4632
 +Lisp_Object echo_message_buffer;\7f171,4744
 +bool immediate_quit;\7f174,4837
 +int quit_char;\7f192,5623
 +EMACS_INT command_loop_level;\7f195,5680
 +Lisp_Object unread_switch_frame;\7f204,6108
 +static ptrdiff_t last_non_minibuf_size;\7f207,6216
 +uintmax_t num_input_events;\7f210,6334
 +static EMACS_INT last_auto_save;\7f214,6428
 +static ptrdiff_t last_point_position;\7f217,6523
 +Lisp_Object internal_last_event_frame;\7f228,7028
 +static Lisp_Object read_key_sequence_cmd;\7f232,7168
 +static Lisp_Object read_key_sequence_remapped;\7f233,7210
 +static FILE *dribble;\7fdribble\ 1236,7310
 +bool input_pending;\7f239,7368
 +static bool input_was_pending;\7f287,10022
 +static struct input_event kbd_buffer[\7fkbd_buffer\ 1291,10107
 +static struct input_event *kbd_fetch_ptr;\7fkbd_fetch_ptr\ 1297,10386
 +static struct input_event * volatile kbd_store_ptr;\7f302,10601
 +static void recursive_edit_unwind \7f313,11088
 +static Lisp_Object command_loop \7f314,11144
 +static void echo_now \7f316,11185
 +static ptrdiff_t echo_length \7f317,11214
 +unsigned timers_run;\7f320,11296
 +struct timespec *input_available_clear_time;\7finput_available_clear_time\ 1324,11408
 +bool interrupt_input;\7f328,11573
 +bool interrupts_deferred;\7f331,11671
 +static struct timespec timer_idleness_start_time;\7f335,11746
 +static struct timespec timer_last_idleness_start_time;\7f340,11916
 +#define READABLE_EVENTS_DO_TIMERS_NOW \7f346,12046
 +#define READABLE_EVENTS_FILTER_EVENTS \7f347,12094
 +#define READABLE_EVENTS_IGNORE_SQUEEZABLES    \7f348,12142
 +static void (*keyboard_init_hook)\7fkeyboard_init_hook\ 1351,12264
 +static bool get_input_pending \7f353,12307
 +static bool readable_events \7f354,12344
 +static Lisp_Object read_char_x_menu_prompt \7f355,12379
 +static Lisp_Object read_char_minibuf_menu_prompt \7f357,12502
 +static Lisp_Object make_lispy_event \7f358,12571
 +static Lisp_Object make_lispy_movement \7f359,12631
 +static Lisp_Object modify_event_symbol \7f363,12840
 +static Lisp_Object make_lispy_switch_frame \7f366,13050
 +static Lisp_Object make_lispy_focus_in \7f367,13108
 +static Lisp_Object make_lispy_focus_out \7f369,13188
 +static bool help_char_p \7f371,13275
 +static void save_getcjmp \7f372,13314
 +static void restore_getcjmp \7f373,13354
 +static Lisp_Object apply_modifiers \7f374,13397
 +static void clear_event \7f375,13452
 +static void restore_kboard_configuration \7f376,13500
 +static void deliver_input_available_signal \7f378,13568
 +static void handle_interrupt \7f380,13631
 +static _Noreturn void quit_throw_to_read_char \7f381,13668
 +static void process_special_events \7f382,13722
 +static void timer_start_idle \7f383,13765
 +static void timer_stop_idle \7f384,13802
 +static void timer_resume_idle \7f385,13838
 +static void deliver_user_signal \7f386,13876
 +static char *find_user_signal_name \7ffind_user_signal_name\ 1387,13915
 +static void store_user_signal_events \7f388,13957
 +kset_echo_string \7f392,14088
 +kset_kbd_queue \7f397,14184
 +kset_keyboard_translate_table \7f402,14276
 +kset_last_prefix_arg \7f407,14399
 +kset_last_repeatable_command \7f412,14504
 +kset_local_function_key_map \7f417,14625
 +kset_overriding_terminal_local_map \7f422,14744
 +kset_real_last_command \7f427,14877
 +kset_system_key_syms \7f432,14986
 +echo_add_key \7f443,15249
 +echo_char \7f527,17527
 +echo_dash \7f541,17813
 +echo_now \7f586,19140
 +cancel_echoing \7f635,20614
 +echo_length \7f648,20922
 +echo_truncate \7f660,21253
 +add_command_key \7f672,21582
 +recursive_edit_1 \7f697,22406
 +record_auto_save \7f742,23848
 +force_auto_save_soon \7f751,24016
 +DEFUN ("recursive-edit", Frecursive_edit,\7frecursive-edit\ 1759,24137
 +recursive_edit_unwind \7f804,25747
 +any_kboard_state \7f817,26013
 +single_kboard_state \7f838,26665
 +not_single_kboard_state \7f848,26803
 +struct kboard_stack\7f858,27065
 +static struct kboard_stack *kboard_stack;\7fkboard_stack\ 1864,27138
 +push_kboard \7f867,27186
 +pop_kboard \7f879,27375
 +temporarily_switch_to_single_kboard \7f914,28263
 +record_single_kboard_state \7f943,29437
 +restore_kboard_configuration \7f952,29621
 +cmd_error \7f970,30077
 +cmd_error_internal \7f1024,31510
 +DEFUN ("command-error-default-function", Fcommand_error_default_function,\7fcommand-error-default-function\ 11043,32030
 +static Lisp_Object command_loop_2 \7f1086,33637
 +static Lisp_Object top_level_1 \7f1087,33686
 +command_loop \7f1094,33916
 +command_loop_2 \7f1134,35135
 +top_level_2 \7f1146,35339
 +top_level_1 \7f1152,35417
 +DEFUN ("top-level", Ftop_level,\7ftop-level\ 11164,35787
 +user_error \7f1183,36288
 +DEFUN ("exit-recursive-edit", Fexit_recursive_edit,\7fexit-recursive-edit\ 11189,36429
 +DEFUN ("abort-recursive-edit", Fabort_recursive_edit,\7fabort-recursive-edit\ 11201,36819
 +tracking_off \7f1216,37281
 +DEFUN ("internal--track-mouse", Ftrack_mouse,\7ftrack-mouse\ 11234,37816
 +bool ignore_mouse_drag_p;\7f1256,38392
 +some_mouse_moved \7f1259,38441
 +static int read_key_sequence \7f1282,38799
 +static void adjust_point_for_property \7f1284,38917
 +Lisp_Object last_undo_boundary;\7f1287,39032
 +command_loop_1 \7f1294,39273
 +read_menu_command \7f1649,50889
 +adjust_point_for_property \7f1678,51617
 +safe_run_hooks_1 \7f1831,57339
 +safe_run_hooks_error \7f1841,57569
 +safe_run_hook_funcall \7f1878,58576
 +safe_run_hooks \7f1893,59058
 +int poll_suppress_count;\7f1908,59397
 +static struct atimer *poll_timer;\7fpoll_timer\ 11915,59487
 +poll_for_input_1 \7f1919,59589
 +poll_for_input \7f1930,59789
 +start_polling \7f1942,60053
 +input_polling_used \7f1979,61091
 +stop_polling \7f1994,61390
 +set_poll_suppress_count \7f2009,61759
 +bind_polling_period \7f2029,62141
 +make_ctrl_char \7f2048,62492
 +show_help_echo \7f2113,64455
 +static Lisp_Object kbd_buffer_get_event \7f2152,65484
 +static void record_char \7f2154,65596
 +static Lisp_Object help_form_saved_window_configs;\7f2156,65638
 +read_char_help_form_unwind \7f2158,65701
 +#define STOP_POLLING  \7f2166,65959
 +#define RESUME_POLLING        \7f2170,66084
 +read_event_from_main_queue \7f2175,66229
 +read_decoded_event_from_main_queue \7f2249,68417
 +#define MAX_ENCODED_BYTES \7f2254,68664
 +echo_keystrokes_p \7f2342,71556
 +read_char \7f2376,72848
 +record_menu_key \7f3225,98949
 +help_char_p \7f3258,99674
 +record_char \7f3273,99953
 +save_getcjmp \7f3412,104235
 +restore_getcjmp \7f3418,104326
 +readable_events \7f3430,104697
 +int stop_character EXTERNALLY_VISIBLE;\7f3497,106437
 +event_to_kboard \7f3500,106493
 +kbd_buffer_nr_stored \7f3522,107142
 +kbd_buffer_store_event \7f3534,107483
 +kbd_buffer_store_event_hold \7f3550,108025
 +kbd_buffer_unget_event \7f3684,111617
 +#define INPUT_EVENT_POS_MAX \7f3698,112018
 +#define INPUT_EVENT_POS_MIN \7f3701,112147
 +position_to_Time \7f3706,112287
 +Time_to_position \7f3716,112514
 +gen_help_event \7f3738,113171
 +kbd_buffer_store_help_event \7f3756,113611
 +discard_mouse_events \7f3773,113976
 +kbd_buffer_events_waiting \7f3803,114711
 +clear_event \7f3823,115068
 +kbd_buffer_get_event \7f3836,115408
 +process_special_events \7f4258,127881
 +swallow_events \7f4322,129705
 +timer_start_idle \7f4339,130098
 +timer_stop_idle \7f4355,130576
 +timer_resume_idle \7f4363,130720
 +struct input_event last_timer_event EXTERNALLY_VISIBLE;\7f4372,130912
 +Lisp_Object pending_funcalls;\7f4377,131172
 +decode_timer \7f4381,131293
 +timer_check_2 \7f4414,132246
 +timer_check \7f4572,136817
 +DEFUN ("current-idle-time", Fcurrent_idle_time,\7fcurrent-idle-time\ 14607,137662
 +static Lisp_Object accent_key_syms;\7f4625,138239
 +static Lisp_Object func_key_syms;\7f4626,138275
 +static Lisp_Object mouse_syms;\7f4627,138309
 +static Lisp_Object wheel_syms;\7f4628,138340
 +static Lisp_Object drag_n_drop_syms;\7f4629,138371
 +static const int lispy_accent_codes[\7flispy_accent_codes\ 14634,138516
 +static const char *const lispy_accent_keys[\7flispy_accent_keys\ 14741,139878
 +#define FUNCTION_KEY_OFFSET \7f4766,140314
 +const char *const lispy_function_keys[\7flispy_function_keys\ 14768,140347
 +static const char *const lispy_multimedia_keys[\7flispy_multimedia_keys\ 14962,148901
 +static const char *const lispy_kana_keys[\7flispy_kana_keys\ 15026,150135
 +#define FUNCTION_KEY_OFFSET \7f5061,151751
 +static const char *const lispy_function_keys[\7flispy_function_keys\ 15065,151894
 +#define ISO_FUNCTION_KEY_OFFSET \7f5149,154429
 +static const char *const iso_lispy_function_keys[\7fiso_lispy_function_keys\ 15151,154469
 +static Lisp_Object Vlispy_mouse_stem;\7f5172,155328
 +static const char *const lispy_wheel_names[\7flispy_wheel_names\ 15174,155367
 +static const char *const lispy_drag_n_drop_names[\7flispy_drag_n_drop_names\ 15181,155619
 +static short const scroll_bar_parts[\7fscroll_bar_parts\ 15189,155885
 +static Lisp_Object button_down_location;\7f5210,156910
 +static int last_mouse_button;\7f5215,157065
 +static int last_mouse_x;\7f5216,157095
 +static int last_mouse_y;\7f5217,157120
 +static Time button_down_time;\7f5218,157145
 +static int double_click_count;\7f5222,157229
 +make_lispy_position \7f5228,157390
 +toolkit_menubar_in_use \7f5456,163953
 +make_scroll_bar_position \7f5469,164321
 +make_lispy_event \7f5485,164967
 +make_lispy_movement \7f6104,183531
 +make_lispy_switch_frame \7f6131,184262
 +make_lispy_focus_in \7f6137,184369
 +make_lispy_focus_out \7f6145,184495
 +parse_modifiers_uncached \7f6163,184945
 +#define SINGLE_LETTER_MOD(\7f6185,185465
 +#undef SINGLE_LETTER_MOD\7f6212,185906
 +#define MULTI_LETTER_MOD(\7f6214,185932
 +#undef MULTI_LETTER_MOD\7f6231,186400
 +apply_modifiers_uncached \7f6273,187574
 +static const char *const modifier_names[\7fmodifier_names\ 16319,189193
 +#define NUM_MOD_NAMES \7f6325,189399
 +static Lisp_Object modifier_symbols;\7f6327,189449
 +lispy_modifier_list \7f6331,189586
 +#define KEY_TO_CHAR(\7f6353,190252
 +parse_modifiers \7f6356,190328
 +DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,\7fevent-symbol-parse-modifiers\ 16399,191517
 +apply_modifiers \7f6422,192391
 +reorder_modifiers \7f6491,194720
 +modify_event_symbol \7f6536,196528
 +DEFUN ("event-convert-list", Fevent_convert_list,\7fevent-convert-list\ 16628,199244
 +parse_solitary_modifier \7f6695,201135
 +#define SINGLE_LETTER_MOD(\7f6701,201258
 +#define MULTI_LETTER_MOD(\7f6705,201343
 +#undef SINGLE_LETTER_MOD\7f6763,202641
 +#undef MULTI_LETTER_MOD\7f6764,202666
 +lucid_event_type_list_p \7f6775,202889
 +get_input_pending \7f6814,203960
 +record_asynch_buffer_change \7f6834,204579
 +gobble_input \7f6872,205702
 +tty_read_avail_input \7f6967,208310
 +handle_async_input \7f7149,214039
 +process_pending_signals \7f7165,214359
 +unblock_input_to \7f7177,214645
 +unblock_input \7f7200,215277
 +totally_unblock_input \7f7209,215445
 +handle_input_available_signal \7f7217,215529
 +deliver_input_available_signal \7f7226,215700
 +struct user_signal_info\7f7235,215865
 +static struct user_signal_info *user_signals \7fuser_signals\ 17250,216090
 +add_user_signal \7f7253,216149
 +handle_user_signal \7f7275,216598
 +deliver_user_signal \7f7316,217558
 +find_user_signal_name \7f7322,217659
 +store_user_signal_events \7f7334,217841
 +static void menu_bar_item \7f7362,218341
 +static Lisp_Object menu_bar_one_keymap_changed_items;\7f7363,218416
 +static Lisp_Object menu_bar_items_vector;\7f7368,218630
 +static int menu_bar_items_index;\7f7369,218672
 +static const char *separator_names[\7fseparator_names\ 17372,218707
 +menu_separator_name_p \7f7393,219148
 +menu_bar_items \7f7426,219852
 +Lisp_Object item_properties;\7f7568,224603
 +menu_bar_item \7f7571,224645
 +menu_item_eval_property_1 \7f7647,227175
 +eval_dyn \7f7658,227465
 +menu_item_eval_property \7f7666,227675
 +parse_menu_item \7f7686,228341
 +static Lisp_Object tool_bar_items_vector;\7f7965,236336
 +static Lisp_Object tool_bar_item_properties;\7f7970,236510
 +static int ntool_bar_items;\7f7974,236606
 +static void init_tool_bar_items \7f7978,236664
 +static void process_tool_bar_item \7f7979,236711
 +static bool parse_tool_bar_item \7f7981,236801
 +static void append_tool_bar_item \7f7982,236861
 +tool_bar_items \7f7990,237083
 +process_tool_bar_item \7f8075,239892
 +#define PROP(\7f8112,240969
 +set_prop \7f8114,241038
 +parse_tool_bar_item \7f8167,242453
 +#undef PROP\7f8379,248844
 +init_tool_bar_items \7f8387,248969
 +append_tool_bar_item \7f8401,249261
 +read_char_x_menu_prompt \7f8443,250771
 +read_char_minibuf_menu_prompt \7f8503,252445
 +#define PUSH_C_STR(\7f8527,253014
 +follow_key \7f8726,258553
 +active_maps \7f8733,258695
 +typedef struct keyremap\7f8742,259021
 +} keyremap;\7f8754,259464
 +access_keymap_keyremap \7f8764,259808
 +keyremap_step \7f8811,261450
 +test_undefined \7f8867,262934
 +read_key_sequence \7f8916,264861
 +read_key_sequence_vs \7f9826,295821
 +DEFUN ("read-key-sequence", Fread_key_sequence,\7fread-key-sequence\ 19885,297294
 +DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,\7fread-key-sequence-vector\ 19938,299982
 +detect_input_pending \7f9950,300488
 +detect_input_pending_ignore_squeezables \7f9959,300654
 +detect_input_pending_run_timers \7f9967,300870
 +clear_input_pending \7f9985,301362
 +requeued_events_pending_p \7f9997,301732
 +DEFUN ("input-pending-p", Finput_pending_p,\7finput-pending-p\ 110002,301813
 +DEFUN ("recent-keys", Frecent_keys,\7frecent-keys\ 110024,302596
 +DEFUN ("this-command-keys", Fthis_command_keys,\7fthis-command-keys\ 110055,303517
 +DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,\7fthis-command-keys-vector\ 110068,303958
 +DEFUN ("this-single-command-keys", Fthis_single_command_keys,\7fthis-single-command-keys\ 110080,304380
 +DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,\7fthis-single-command-raw-keys\ 110096,304955
 +DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,\7freset-this-command-lengths\ 110109,305495
 +DEFUN ("clear-this-command-keys", Fclear_this_command_keys,\7fclear-this-command-keys\ 110136,306510
 +DEFUN ("recursion-depth", Frecursion_depth,\7frecursion-depth\ 110158,307069
 +DEFUN ("open-dribble-file", Fopen_dribble_file,\7fopen-dribble-file\ 110169,307406
 +DEFUN ("discard-input", Fdiscard_input,\7fdiscard-input\ 110203,308447
 +DEFUN ("suspend-emacs", Fsuspend_emacs,\7fsuspend-emacs\ 110225,308949
 +stuff_buffered_input \7f10285,311045
 +set_waiting_for_input \7f10323,312016
 +clear_waiting_for_input \7f10337,312390
 +handle_interrupt_signal \7f10351,312754
 +deliver_interrupt_signal \7f10378,313642
 +static int volatile force_quit_count;\7f10387,313932
 +handle_interrupt \7f10401,314414
 +quit_throw_to_read_char \7f10541,318711
 +DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,\7fset-input-interrupt-mode\ 110562,319288
 +DEFUN ("set-output-flow-control", Fset_output_flow_control,\7fset-output-flow-control\ 110609,320516
 +DEFUN ("set-input-meta-mode", Fset_input_meta_mode,\7fset-input-meta-mode\ 110643,321432
 +DEFUN ("set-quit-char", Fset_quit_char,\7fset-quit-char\ 110694,322706
 +DEFUN ("set-input-mode", Fset_input_mode,\7fset-input-mode\ 110729,323570
 +DEFUN ("current-input-mode", Fcurrent_input_mode,\7fcurrent-input-mode\ 110750,324459
 +DEFUN ("posn-at-x-y", Fposn_at_x_y,\7fposn-at-x-y\ 110787,325837
 +DEFUN ("posn-at-point", Fposn_at_point,\7fposn-at-point\ 110824,327060
 +init_kboard \7f10861,328214
 +allocate_kboard \7f10893,329284
 +wipe_kboard \7f10909,329637
 +delete_kboard \7f10917,329751
 +init_keyboard \7f10942,330281
 +struct event_head\7f11021,332696
 +static const struct event_head head_table[\7fhead_table\ 111027,332747
 +syms_of_keyboard \7f11045,333577
 +keys_of_keyboard \7f11841,367115
 +mark_kboards \7f11916,370434
 +\f
 +c-src/emacs/src/lisp.h,33973
 +#define EMACS_LISP_H\7f22,800
 +#define DECLARE_GDB_SYM(\7f47,1421
 +# define DEFINE_GDB_SYMBOL_BEGIN(\7f49,1508
 +# define DEFINE_GDB_SYMBOL_END(\7f50,1578
 +# define DEFINE_GDB_SYMBOL_BEGIN(\7f52,1625
 +# define DEFINE_GDB_SYMBOL_END(\7f53,1702
 +#undef min\7f57,1790
 +#undef max\7f58,1801
 +#define max(\7f59,1812
 +#define min(\7f60,1854
 +#define ARRAYELTS(\7f63,1936
 +#define GCTYPEBITS \7f67,2079
 +DEFINE_GDB_SYMBOL_BEGIN \7fGCTYPEBITS\ 166,2037
 +# define NONPOINTER_BITS \7f78,2567
 +# define NONPOINTER_BITS \7f80,2600
 +typedef int EMACS_INT;\7f91,3023
 +typedef unsigned int EMACS_UINT;\7f92,3046
 +#  define EMACS_INT_MAX \7f93,3079
 +#  define pI \7f94,3111
 +typedef long int EMACS_INT;\7f96,3203
 +typedef unsigned long EMACS_UINT;\7f97,3231
 +#  define EMACS_INT_MAX \7f98,3265
 +#  define pI \7f99,3298
 +typedef long long int EMACS_INT;\7f103,3477
 +typedef unsigned long long int EMACS_UINT;\7f104,3510
 +#  define EMACS_INT_MAX \7f105,3553
 +#  define pI \7f106,3587
 +enum {  BOOL_VECTOR_BITS_PER_CHAR \7f114,3804
 +#define BOOL_VECTOR_BITS_PER_CHAR \7f115,3840
 +typedef size_t bits_word;\7f123,4165
 +# define BITS_WORD_MAX \7f124,4191
 +enum { BITS_PER_BITS_WORD \7f125,4223
 +typedef unsigned char bits_word;\7f127,4290
 +# define BITS_WORD_MAX \7f128,4323
 +enum { BITS_PER_BITS_WORD \7f129,4386
 +verify \7f131,4450
 +    BITS_PER_CHAR \7f136,4570
 +    BITS_PER_SHORT \7f137,4605
 +    BITS_PER_LONG \7f138,4657
 +    BITS_PER_EMACS_INT \7f139,4712
 +typedef intmax_t printmax_t;\7f148,5089
 +typedef uintmax_t uprintmax_t;\7f149,5118
 +# define pMd \7f150,5149
 +# define pMu \7f151,5170
 +typedef EMACS_INT printmax_t;\7f153,5197
 +typedef EMACS_UINT uprintmax_t;\7f154,5227
 +# define pMd \7f155,5259
 +# define pMu \7f156,5278
 +# define pD \7f165,5664
 +# define pD \7f167,5709
 +# define pD \7f169,5756
 +# define pD \7f171,5779
 +# define eassert(\7f200,7062
 +# define eassume(\7f201,7140
 +extern _Noreturn void die \7f204,7206
 +extern bool suppress_checking EXTERNALLY_VISIBLE;\7f206,7268
 +# define eassert(\7f208,7319
 +# define eassume(\7f212,7450
 +enum Lisp_Bits\7f239,8519
 +#define GCALIGNMENT \7f243,8647
 +    VALBITS \7f246,8742
 +    INTTYPEBITS \7f249,8838
 +    FIXNUM_BITS \7f252,8945
 +#define VAL_MAX \7f263,9327
 +#define USE_LSB_TAG \7f271,9777
 +DEFINE_GDB_SYMBOL_BEGIN \7fUSE_LSB_TAG\ 1270,9733
 +# define alignas(\7f281,10077
 +# define GCALIGNED \7f288,10227
 +# define GCALIGNED \7f290,10292
 +# define lisp_h_XLI(\7f327,11642
 +# define lisp_h_XIL(\7f328,11673
 +# define lisp_h_XLI(\7f330,11724
 +# define lisp_h_XIL(\7f331,11751
 +#define lisp_h_CHECK_LIST_CONS(\7f333,11785
 +#define lisp_h_CHECK_NUMBER(\7f334,11856
 +#define lisp_h_CHECK_SYMBOL(\7f335,11927
 +#define lisp_h_CHECK_TYPE(\7f336,11996
 +#define lisp_h_CONSP(\7f338,12107
 +#define lisp_h_EQ(\7f339,12156
 +#define lisp_h_FLOATP(\7f340,12201
 +#define lisp_h_INTEGERP(\7f341,12252
 +#define lisp_h_MARKERP(\7f342,12333
 +#define lisp_h_MISCP(\7f343,12408
 +#define lisp_h_NILP(\7f344,12457
 +#define lisp_h_SET_SYMBOL_VAL(\7f345,12493
 +#define lisp_h_SYMBOL_CONSTANT_P(\7f347,12607
 +#define lisp_h_SYMBOL_VAL(\7f348,12671
 +#define lisp_h_SYMBOLP(\7f350,12772
 +#define lisp_h_VECTORLIKEP(\7f351,12825
 +#define lisp_h_XCAR(\7f352,12886
 +#define lisp_h_XCDR(\7f353,12924
 +#define lisp_h_XCONS(\7f354,12964
 +#define lisp_h_XHASH(\7f356,13059
 +#define lisp_h_XPNTR(\7f357,13093
 +# define lisp_h_check_cons_list(\7f360,13221
 +# define lisp_h_make_number(\7f363,13289
 +# define lisp_h_XFASTINT(\7f365,13392
 +# define lisp_h_XINT(\7f366,13429
 +# define lisp_h_XSYMBOL(\7f367,13478
 +# define lisp_h_XTYPE(\7f371,13631
 +# define lisp_h_XUNTAG(\7f372,13696
 +# define XLI(\7f381,14086
 +# define XIL(\7f382,14117
 +# define CHECK_LIST_CONS(\7f383,14148
 +# define CHECK_NUMBER(\7f384,14209
 +# define CHECK_SYMBOL(\7f385,14258
 +# define CHECK_TYPE(\7f386,14307
 +# define CONSP(\7f387,14382
 +# define EQ(\7f388,14417
 +# define FLOATP(\7f389,14452
 +# define INTEGERP(\7f390,14489
 +# define MARKERP(\7f391,14530
 +# define MISCP(\7f392,14569
 +# define NILP(\7f393,14604
 +# define SET_SYMBOL_VAL(\7f394,14637
 +# define SYMBOL_CONSTANT_P(\7f395,14700
 +# define SYMBOL_VAL(\7f396,14763
 +# define SYMBOLP(\7f397,14812
 +# define VECTORLIKEP(\7f398,14851
 +# define XCAR(\7f399,14898
 +# define XCDR(\7f400,14931
 +# define XCONS(\7f401,14964
 +# define XHASH(\7f402,14999
 +# define XPNTR(\7f403,15034
 +#  define check_cons_list(\7f405,15097
 +#  define make_number(\7f408,15176
 +#  define XFASTINT(\7f409,15224
 +#  define XINT(\7f410,15266
 +#  define XSYMBOL(\7f411,15300
 +#  define XTYPE(\7f412,15340
 +#  define XUNTAG(\7f413,15376
 +#define LISP_MACRO_DEFUN(\7f421,15672
 +#define LISP_MACRO_DEFUN_VOID(\7f425,15845
 +#define INTMASK \7f437,16289
 +#define case_Lisp_Int \7f438,16342
 +#define ENUM_BF(\7f445,16681
 +#define ENUM_BF(\7f447,16722
 +enum Lisp_Type\7f451,16763
 +    Lisp_Symbol \7f454,16851
 +    Lisp_Misc \7f458,16993
 +    Lisp_Int0 \7f461,17067
 +    Lisp_Int1 \7f462,17086
 +    Lisp_String \7f466,17264
 +    Lisp_Vectorlike \7f472,17543
 +    Lisp_Cons \7f475,17632
 +    Lisp_Float \7f477,17670
 +enum Lisp_Misc_Type\7f485,18016
 +    Lisp_Misc_Free \7f487,18040
 +    Lisp_Misc_Marker,\7f488,18069
 +    Lisp_Misc_Overlay,\7f489,18091
 +    Lisp_Misc_Save_Value,\7f490,18114
 +    Lisp_Misc_Finalizer,\7f491,18140
 +    Lisp_Misc_Float,\7f494,18275
 +    Lisp_Misc_Limit\7f496,18359
 +enum Lisp_Fwd_Type\7f502,18543
 +    Lisp_Fwd_Int,\7f504,18566
 +    Lisp_Fwd_Bool,\7f505,18619
 +    Lisp_Fwd_Obj,\7f506,18670
 +    Lisp_Fwd_Buffer_Obj,\7f507,18729
 +    Lisp_Fwd_Kboard_Obj       \7f508,18800
 +typedef struct { EMACS_INT i; } Lisp_Object;\7f567,21781
 +#define LISP_INITIALLY(\7f569,21827
 +#undef CHECK_LISP_OBJECT_TYPE\7f571,21858
 +enum CHECK_LISP_OBJECT_TYPE \7f572,21888
 +enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE \7f572,21888
 +typedef EMACS_INT Lisp_Object;\7f577,22064
 +#define LISP_INITIALLY(\7f578,22095
 +enum CHECK_LISP_OBJECT_TYPE \7f579,22125
 +enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE \7f579,22125
 +#define LISP_INITIALLY_ZERO \7f582,22226
 +INLINE bool BOOL_VECTOR_P \7f588,22350
 +INLINE bool BUFFER_OBJFWDP \7f589,22391
 +INLINE bool BUFFERP \7f590,22438
 +INLINE bool CHAR_TABLE_P \7f591,22473
 +INLINE Lisp_Object CHAR_TABLE_REF_ASCII \7f592,22513
 +INLINE bool \7f593,22579
 +INLINE bool \7f594,22614
 +INLINE bool functionp \7f595,22650
 +INLINE bool \7f596,22687
 +INLINE bool \7f597,22725
 +INLINE bool \7f598,22762
 +INLINE bool \7f599,22797
 +INLINE bool OVERLAYP \7f600,22831
 +INLINE bool PROCESSP \7f601,22867
 +INLINE bool PSEUDOVECTORP \7f602,22903
 +INLINE bool SAVE_VALUEP \7f603,22949
 +INLINE bool FINALIZERP \7f604,22988
 +INLINE void set_sub_char_table_contents \7f605,23026
 +INLINE bool STRINGP \7f607,23116
 +INLINE bool SUB_CHAR_TABLE_P \7f608,23151
 +INLINE bool SUBRP \7f609,23195
 +INLINE bool \7f610,23228
 +INLINE bool \7f611,23265
 +INLINE bool WINDOWP \7f612,23306
 +INLINE bool TERMINALP \7f613,23341
 +INLINE struct Lisp_Save_Value *XSAVE_VALUE \7fXSAVE_VALUE\ 1614,23378
 +INLINE struct Lisp_Finalizer *XFINALIZER \7fXFINALIZER\ 1615,23436
 +INLINE struct Lisp_Symbol *(XSYMBOL)\7f616,23492
 +INLINE void \7f617,23544
 +extern Lisp_Object char_table_ref \7f620,23616
 +extern void char_table_set \7f621,23670
 +extern _Noreturn Lisp_Object wrong_type_argument \7f624,23757
 +extern _Noreturn void wrong_choice \7f625,23834
 +extern bool might_dump;\7f628,23925
 +extern bool initialized;\7f631,24061
 +extern double extract_float \7f634,24117
 +enum symbol_interned\7f639,24199
 +  SYMBOL_UNINTERNED \7f641,24222
 +  SYMBOL_INTERNED \7f642,24247
 +  SYMBOL_INTERNED_IN_INITIAL_OBARRAY \7f643,24270
 +enum symbol_redirect\7f646,24315
 +  SYMBOL_PLAINVAL \7f648,24338
 +  SYMBOL_VARALIAS \7f649,24362
 +  SYMBOL_LOCALIZED \7f650,24386
 +  SYMBOL_FORWARDED \7f651,24410
 +struct Lisp_Symbol\7f654,24437
 +  ENUM_BF \7f663,24793
 +#define EXFUN(\7f707,26252
 +#define DEFUN_ARGS_MANY       \7f712,26446
 +#define DEFUN_ARGS_UNEVALLED  \7f713,26498
 +#define DEFUN_ARGS_0  \7f714,26541
 +#define DEFUN_ARGS_1  \7f715,26569
 +#define DEFUN_ARGS_2  \7f716,26604
 +#define DEFUN_ARGS_3  \7f717,26652
 +#define DEFUN_ARGS_4  \7f718,26713
 +#define DEFUN_ARGS_5  \7f719,26787
 +#define DEFUN_ARGS_6  \7f721,26880
 +#define DEFUN_ARGS_7  \7f723,26986
 +#define DEFUN_ARGS_8  \7f725,27105
 +#define TAG_PTR(\7f729,27296
 +#define TAG_SYMOFFSET(\7f734,27543
 +#define XLI_BUILTIN_LISPSYM(\7f741,27842
 +#define DEFINE_LISP_SYMBOL(\7f746,28101
 +# define DEFINE_NON_NIL_Q_SYMBOL_MACROS \7f755,28572
 +LISP_MACRO_DEFUN \7f762,28777
 +# define ARRAY_MARK_FLAG \7f768,29024
 +# define PSEUDOVECTOR_FLAG \7f774,29267
 +enum pvec_type\7f780,29568
 +  PVEC_NORMAL_VECTOR,\7f782,29585
 +  PVEC_FREE,\7f783,29607
 +  PVEC_PROCESS,\7f784,29620
 +  PVEC_FRAME,\7f785,29636
 +  PVEC_WINDOW,\7f786,29650
 +  PVEC_BOOL_VECTOR,\7f787,29665
 +  PVEC_BUFFER,\7f788,29685
 +  PVEC_HASH_TABLE,\7f789,29700
 +  PVEC_TERMINAL,\7f790,29719
 +  PVEC_WINDOW_CONFIGURATION,\7f791,29736
 +  PVEC_SUBR,\7f792,29765
 +  PVEC_OTHER,\7f793,29778
 +  PVEC_COMPILED,\7f795,29856
 +  PVEC_CHAR_TABLE,\7f796,29873
 +  PVEC_SUB_CHAR_TABLE,\7f797,29892
 +  PVEC_FONT \7f798,29915
 +enum More_Lisp_Bits\7f801,29991
 +    PSEUDOVECTOR_SIZE_BITS \7f808,30382
 +    PSEUDOVECTOR_SIZE_MASK \7f809,30415
 +    PSEUDOVECTOR_REST_BITS \7f813,30625
 +    PSEUDOVECTOR_REST_MASK \7f814,30658
 +    PSEUDOVECTOR_AREA_BITS \7f818,30823
 +    PVEC_TYPE_MASK \7f819,30901
 +# define VALMASK \7f829,31302
 +DEFINE_GDB_SYMBOL_BEGIN \7fVALMASK\ 1828,31257
 +#define MOST_POSITIVE_FIXNUM \7f834,31532
 +#define MOST_NEGATIVE_FIXNUM \7f835,31592
 +XINT \7f874,32684
 +XFASTINT \7f889,33035
 +XSYMBOL \7f899,33263
 +XTYPE \7f910,33481
 +XUNTAG \7f918,33661
 +LISP_MACRO_DEFUN \7f927,33857
 +LISP_MACRO_DEFUN \7f940,34242
 +#define FIXNUM_OVERFLOW_P(\7f958,34855
 +LISP_MACRO_DEFUN \7fFIXNUM_OVERFLOW_P\ 1952,34632
 +LISP_MACRO_DEFUN \7f970,35171
 +XSTRING \7f980,35391
 +#define SYMBOL_INDEX(\7f988,35575
 +XFLOAT \7f991,35636
 +XPROCESS \7f1000,35778
 +XWINDOW \7f1007,35895
 +XTERMINAL \7f1014,36012
 +XSUBR \7f1021,36134
 +XBUFFER \7f1028,36245
 +XCHAR_TABLE \7f1035,36369
 +XSUB_CHAR_TABLE \7f1042,36506
 +XBOOL_VECTOR \7f1049,36648
 +make_lisp_ptr \7f1058,36827
 +make_lisp_symbol \7f1066,37013
 +builtin_lisp_symbol \7f1074,37197
 +#define XSETINT(\7f1079,37279
 +#define XSETFASTINT(\7f1080,37325
 +#define XSETCONS(\7f1081,37375
 +#define XSETVECTOR(\7f1082,37435
 +#define XSETSTRING(\7f1083,37503
 +#define XSETSYMBOL(\7f1084,37567
 +#define XSETFLOAT(\7f1085,37621
 +#define XSETMISC(\7f1086,37683
 +#define XSETPVECTYPE(\7f1090,37772
 +#define XSETPVECTYPESIZE(\7f1092,37888
 +#define XSETPSEUDOVECTOR(\7f1099,38185
 +#define XSETTYPED_PSEUDOVECTOR(\7f1105,38369
 +#define XSETWINDOW_CONFIGURATION(\7f1110,38579
 +#define XSETPROCESS(\7f1112,38675
 +#define XSETWINDOW(\7f1113,38741
 +#define XSETTERMINAL(\7f1114,38805
 +#define XSETSUBR(\7f1115,38873
 +#define XSETCOMPILED(\7f1116,38933
 +#define XSETBUFFER(\7f1117,39001
 +#define XSETCHAR_TABLE(\7f1118,39065
 +#define XSETBOOL_VECTOR(\7f1119,39137
 +#define XSETSUB_CHAR_TABLE(\7f1120,39211
 +XINTPTR \7f1128,39581
 +make_pointer_integer \7f1134,39661
 +LISP_MACRO_DEFUN_VOID \7f1143,39826
 +typedef struct interval *INTERVAL;\7fINTERVAL\ 11149,39987
 +xcar_addr \7f1174,40760
 +xcdr_addr \7f1179,40837
 +LISP_MACRO_DEFUN \7f1185,40931
 +XSETCDR \7f1198,41307
 +CAR \7f1205,41457
 +CDR \7f1212,41591
 +CAR_SAFE \7f1221,41791
 +CDR_SAFE \7f1226,41877
 +STRING_MULTIBYTE \7f1243,42250
 +#define STRING_BYTES_BOUND \7f1261,43057
 +#define STRING_SET_UNIBYTE(\7f1265,43201
 +#define STRING_SET_MULTIBYTE(\7f1275,43516
 +SDATA \7f1286,43830
 +SSDATA \7f1291,43908
 +SREF \7f1297,44037
 +SSET \7f1302,44128
 +SCHARS \7f1307,44242
 +extern ptrdiff_t string_bytes \7f1313,44337
 +STRING_BYTES \7f1316,44415
 +SBYTES \7f1326,44595
 +STRING_SET_CHARS \7f1331,44681
 +struct vectorlike_header\7f1343,45232
 +struct Lisp_Vector\7f1369,46482
 +    ALIGNOF_STRUCT_LISP_VECTOR\7f1378,46681
 +struct Lisp_Bool_Vector\7f1384,46864
 +bool_vector_size \7f1399,47385
 +bool_vector_data \7f1407,47523
 +bool_vector_uchar_data \7f1413,47617
 +bool_vector_words \7f1421,47803
 +bool_vector_bytes \7f1428,47998
 +bool_vector_bitref \7f1437,48238
 +bool_vector_ref \7f1445,48478
 +bool_vector_set \7f1453,48618
 +    header_size \7f1471,49047
 +    bool_header_size \7f1472,49106
 +    word_size \7f1473,49171
 +AREF \7f1479,49284
 +aref_addr \7f1485,49391
 +ASIZE \7f1491,49501
 +ASET \7f1497,49583
 +gc_aset \7f1504,49742
 +enum { NIL_IS_ZERO \7f1515,50269
 +memclear \7f1520,50464
 +#define VECSIZE(\7f1531,50762
 +#define PSEUDOVECSIZE(\7f1538,51047
 +#define UNSIGNED_CMP(\7f1546,51480
 +#define ASCII_CHAR_P(\7f1552,51734
 +enum CHARTAB_SIZE_BITS\7f1565,52489
 +    CHARTAB_SIZE_BITS_0 \7f1567,52516
 +    CHARTAB_SIZE_BITS_1 \7f1568,52545
 +    CHARTAB_SIZE_BITS_2 \7f1569,52574
 +    CHARTAB_SIZE_BITS_3 \7f1570,52603
 +extern const int chartab_size[\7fchartab_size\ 11573,52637
 +struct Lisp_Char_Table\7f1575,52672
 +struct Lisp_Sub_Char_Table\7f1606,53752
 +CHAR_TABLE_REF_ASCII \7f1628,54566
 +CHAR_TABLE_REF \7f1648,55113
 +CHAR_TABLE_SET \7f1658,55402
 +struct Lisp_Subr\7f1670,55786
 +enum char_table_specials\7f1692,56798
 +    CHAR_TABLE_STANDARD_SLOTS \7f1697,56993
 +    SUB_CHAR_TABLE_OFFSET \7f1701,57214
 +CHAR_TABLE_EXTRA_SLOTS \7f1707,57377
 +verify \7f1714,57596
 +LISP_MACRO_DEFUN \7f1723,57921
 +SYMBOL_BLV \7f1732,58181
 +SYMBOL_FWD \7f1738,58316
 +LISP_MACRO_DEFUN_VOID \7f1744,58428
 +SET_SYMBOL_BLV \7f1754,58691
 +SET_SYMBOL_FWD \7f1760,58850
 +SYMBOL_NAME \7f1767,59001
 +SYMBOL_INTERNED_P \7f1775,59130
 +SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P \7f1783,59299
 +#define DEFSYM(\7f1796,59809
 +LISP_MACRO_DEFUN \7fDEFSYM\ 11792,59630
 +struct hash_table_test\7f1805,60062
 +struct Lisp_Hash_Table\7f1823,60555
 +XHASH_TABLE \7f1880,62531
 +#define XSET_HASH_TABLE(\7f1885,62602
 +HASH_TABLE_P \7f1889,62703
 +HASH_KEY \7f1896,62860
 +HASH_VALUE \7f1903,63040
 +HASH_NEXT \7f1911,63254
 +HASH_HASH \7f1918,63431
 +HASH_INDEX \7f1926,63677
 +HASH_TABLE_SIZE \7f1933,63826
 +enum DEFAULT_HASH_SIZE \7f1940,63956
 +enum DEFAULT_HASH_SIZE { DEFAULT_HASH_SIZE \7f1940,63956
 +static double const DEFAULT_REHASH_THRESHOLD \7f1946,64176
 +static double const DEFAULT_REHASH_SIZE \7f1950,64299
 +sxhash_combine \7f1956,64465
 +SXHASH_REDUCE \7f1964,64648
 +struct Lisp_Misc_Any  \7f1971,64806
 +  ENUM_BF \7f1973,64866
 +struct Lisp_Marker\7f1978,64980
 +  ENUM_BF \7f1980,65001
 +struct Lisp_Overlay\7f2021,66841
 +    ENUM_BF \7f2034,67349
 +    SAVE_UNUSED,\7f2047,67644
 +    SAVE_INTEGER,\7f2048,67661
 +    SAVE_FUNCPOINTER,\7f2049,67679
 +    SAVE_POINTER,\7f2050,67701
 +    SAVE_OBJECT\7f2051,67719
 +enum { SAVE_SLOT_BITS \7f2055,67804
 +enum { SAVE_VALUE_SLOTS \7f2058,67901
 +enum { SAVE_TYPE_BITS \7f2062,68009
 +enum Lisp_Save_Type\7f2064,68075
 +    SAVE_TYPE_INT_INT \7f2066,68099
 +    SAVE_TYPE_INT_INT_INT\7f2067,68172
 +    SAVE_TYPE_OBJ_OBJ \7f2069,68262
 +    SAVE_TYPE_OBJ_OBJ_OBJ \7f2070,68333
 +    SAVE_TYPE_OBJ_OBJ_OBJ_OBJ\7f2071,68414
 +    SAVE_TYPE_PTR_INT \7f2073,68509
 +    SAVE_TYPE_PTR_OBJ \7f2074,68582
 +    SAVE_TYPE_PTR_PTR \7f2075,68654
 +    SAVE_TYPE_FUNCPTR_PTR_OBJ\7f2076,68727
 +    SAVE_TYPE_MEMORY \7f2080,68885
 +typedef void (*voidfuncptr)\7fvoidfuncptr\ 12108,69839
 +struct Lisp_Save_Value\7f2110,69876
 +    ENUM_BF \7f2112,69903
 +save_type \7f2134,70755
 +XSAVE_POINTER \7f2143,70985
 +set_save_pointer \7f2149,71147
 +XSAVE_FUNCPOINTER \7f2155,71329
 +XSAVE_INTEGER \7f2164,71549
 +set_save_integer \7f2170,71711
 +XSAVE_OBJECT \7f2179,71932
 +struct Lisp_Finalizer\7f2186,72109
 +struct Lisp_Free\7f2201,72584
 +    ENUM_BF \7f2203,72605
 +union Lisp_Misc\7f2212,72885
 +XMISC \7f2223,73184
 +XMISCANY \7f2229,73273
 +XMISCTYPE \7f2236,73382
 +XMARKER \7f2242,73470
 +XOVERLAY \7f2249,73585
 +XSAVE_VALUE \7f2256,73706
 +XFINALIZER \7f2263,73835
 +struct Lisp_Intfwd\7f2274,74120
 +struct Lisp_Boolfwd\7f2284,74414
 +struct Lisp_Objfwd\7f2294,74705
 +struct Lisp_Buffer_Objfwd\7f2302,74937
 +struct Lisp_Buffer_Local_Value\7f2334,76473
 +struct Lisp_Kboard_Objfwd\7f2362,77732
 +union Lisp_Fwd\7f2368,77841
 +XFWDTYPE \7f2378,78087
 +XBUFFER_OBJFWD \7f2384,78183
 +struct Lisp_Float\7f2391,78319
 +XFLOAT_DATA \7f2401,78437
 +    IEEE_FLOATING_POINT\7f2415,78946
 +#define _UCHAR_T\7f2423,79269
 +typedef unsigned char UCHAR;\7f2424,79286
 +enum Lisp_Compiled\7f2429,79369
 +    COMPILED_ARGLIST \7f2431,79392
 +    COMPILED_BYTECODE \7f2432,79418
 +    COMPILED_CONSTANTS \7f2433,79445
 +    COMPILED_STACK_DEPTH \7f2434,79473
 +    COMPILED_DOC_STRING \7f2435,79503
 +    COMPILED_INTERACTIVE \7f2436,79532
 +enum char_bits\7f2443,79834
 +    CHAR_ALT \7f2445,79853
 +    CHAR_SUPER \7f2446,79879
 +    CHAR_HYPER \7f2447,79907
 +    CHAR_SHIFT \7f2448,79935
 +    CHAR_CTL \7f2449,79963
 +    CHAR_META \7f2450,79989
 +    CHAR_MODIFIER_MASK \7f2452,80017
 +    CHARACTERBITS \7f2457,80212
 +LISP_MACRO_DEFUN \7f2462,80270
 +NATNUMP \7f2470,80412
 +RANGED_INTEGERP \7f2476,80493
 +#define TYPE_RANGED_INTEGERP(\7f2481,80615
 +LISP_MACRO_DEFUN \7f2486,80800
 +VECTORP \7f2500,81273
 +OVERLAYP \7f2505,81376
 +SAVE_VALUEP \7f2510,81475
 +FINALIZERP \7f2516,81581
 +AUTOLOADP \7f2522,81685
 +BUFFER_OBJFWDP \7f2528,81776
 +PSEUDOVECTOR_TYPEP \7f2534,81874
 +PSEUDOVECTORP \7f2542,82127
 +WINDOW_CONFIGURATIONP \7f2558,82479
 +PROCESSP \7f2564,82589
 +WINDOWP \7f2570,82673
 +TERMINALP \7f2576,82755
 +SUBRP \7f2582,82841
 +COMPILEDP \7f2588,82919
 +BUFFERP \7f2594,83005
 +CHAR_TABLE_P \7f2600,83087
 +SUB_CHAR_TABLE_P \7f2606,83178
 +BOOL_VECTOR_P \7f2612,83277
 +FRAMEP \7f2618,83370
 +IMAGEP \7f2625,83487
 +ARRAYP \7f2632,83592
 +CHECK_LIST \7f2638,83711
 +LISP_MACRO_DEFUN_VOID \7f2643,83792
 +CHECK_STRING_CAR \7f2653,84089
 +CHECK_CONS \7f2658,84193
 +CHECK_VECTOR \7f2663,84273
 +CHECK_BOOL_VECTOR \7f2668,84359
 +CHECK_VECTOR_OR_STRING \7f2674,84536
 +CHECK_ARRAY \7f2683,84710
 +CHECK_BUFFER \7f2688,84818
 +CHECK_WINDOW \7f2693,84904
 +CHECK_PROCESS \7f2699,85010
 +CHECK_NATNUM \7f2705,85106
 +#define CHECK_RANGED_INTEGER(\7f2710,85183
 +#define CHECK_TYPE_RANGED_INTEGER(\7f2721,85566
 +#define CHECK_NUMBER_COERCE_MARKER(\7f2729,85836
 +XFLOATINT \7f2738,86089
 +CHECK_NUMBER_OR_FLOAT \7f2744,86160
 +#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(\7f2749,86259
 +CHECK_NUMBER_CAR \7f2760,86669
 +CHECK_NUMBER_CDR \7f2768,86791
 +#define DEFUN(\7f2803,88386
 +#define DEFUN(\7f2812,88854
 +FUNCTIONP \7f2822,89209
 +extern void defsubr \7f2829,89361
 +enum maxargs\7f2831,89404
 +    MANY \7f2833,89421
 +    UNEVALLED \7f2834,89436
 +#define CALLMANY(\7f2838,89539
 +#define CALLN(\7f2844,89892
 +extern void defvar_lisp \7f2846,89962
 +extern void defvar_lisp_nopro \7f2847,90039
 +extern void defvar_bool \7f2848,90122
 +extern void defvar_int \7f2849,90193
 +extern void defvar_kboard \7f2850,90267
 +#define DEFVAR_LISP(\7f2869,91097
 +#define DEFVAR_LISP_NOPRO(\7f2874,91269
 +#define DEFVAR_BOOL(\7f2879,91451
 +#define DEFVAR_INT(\7f2884,91624
 +#define DEFVAR_BUFFER_DEFAULTS(\7f2890,91795
 +#define DEFVAR_KBOARD(\7f2896,91999
 +typedef jmp_buf sys_jmp_buf;\7f2906,92323
 +# define sys_setjmp(\7f2907,92352
 +# define sys_longjmp(\7f2908,92387
 +typedef sigjmp_buf sys_jmp_buf;\7f2910,92459
 +# define sys_setjmp(\7f2911,92491
 +# define sys_longjmp(\7f2912,92531
 +typedef jmp_buf sys_jmp_buf;\7f2916,92690
 +# define sys_setjmp(\7f2917,92719
 +# define sys_longjmp(\7f2918,92753
 +enum specbind_tag \7f2943,93805
 +  SPECPDL_UNWIND,\7f2944,93825
 +  SPECPDL_UNWIND_PTR,\7f2945,93894
 +  SPECPDL_UNWIND_INT,\7f2946,93945
 +  SPECPDL_UNWIND_VOID,\7f2947,93993
 +  SPECPDL_BACKTRACE,\7f2948,94047
 +  SPECPDL_LET,\7f2949,94105
 +  SPECPDL_LET_LOCAL,\7f2951,94235
 +  SPECPDL_LET_DEFAULT \7f2952,94292
 +union specbinding\7f2955,94364
 +    ENUM_BF \7f2957,94386
 +      ENUM_BF \7f2959,94443
 +      ENUM_BF \7f2964,94573
 +      ENUM_BF \7f2969,94696
 +      ENUM_BF \7f2974,94814
 +      ENUM_BF \7f2978,94919
 +      ENUM_BF \7f2983,95094
 +enum handlertype \7f3021,96410
 +enum handlertype { CATCHER,\7f3021,96410
 +enum handlertype { CATCHER, CONDITION_CASE \7f3021,96410
 +struct handler\7f3023,96457
 +#define PUSH_HANDLER(\7f3053,97446
 +extern Lisp_Object memory_signal_data;\7f3075,98152
 +extern char *stack_bottom;\7fstack_bottom\ 13079,98285
 +extern void process_pending_signals \7f3097,99102
 +extern bool volatile pending_signals;\7f3098,99146
 +extern void process_quit_flag \7f3100,99185
 +#define QUIT  \7f3101,99223
 +#define QUITP \7f3112,99473
 +extern Lisp_Object Vascii_downcase_table;\7f3114,99534
 +extern Lisp_Object Vascii_canon_table;\7f3115,99576
 +extern struct gcpro *gcprolist;\7fgcprolist\ 13130,100283
 +struct gcpro\7f3132,100316
 +#define GC_USE_GCPROS_AS_BEFORE       \7f3171,101297
 +#define GC_MAKE_GCPROS_NOOPS  \7f3172,101332
 +#define GC_MARK_STACK_CHECK_GCPROS    \7f3173,101364
 +#define GC_USE_GCPROS_CHECK_ZOMBIES   \7f3174,101401
 +#define GC_MARK_STACK \7f3177,101462
 +#define BYTE_MARK_STACK \7f3181,101562
 +#define GCPRO1(\7f3190,101833
 +#define GCPRO2(\7f3191,101873
 +#define GCPRO3(\7f3192,101939
 +#define GCPRO4(\7f3194,102034
 +#define GCPRO5(\7f3196,102154
 +#define GCPRO6(\7f3198,102299
 +#define GCPRO7(\7f3201,102474
 +#define UNGCPRO \7f3202,102553
 +#define GCPRO1(\7f3208,102653
 +#define GCPRO2(\7f3212,102775
 +#define GCPRO3(\7f3217,102967
 +#define GCPRO4(\7f3223,103229
 +#define GCPRO5(\7f3230,103560
 +#define GCPRO6(\7f3238,103961
 +#define GCPRO7(\7f3247,104431
 +#define UNGCPRO \7f3257,104971
 +extern int gcpro_level;\7f3261,105040
 +#define GCPRO1(\7f3263,105065
 +#define GCPRO2(\7f3269,105299
 +#define GCPRO3(\7f3278,105717
 +#define GCPRO4(\7f3289,106274
 +#define GCPRO5(\7f3302,106972
 +#define GCPRO6(\7f3317,107812
 +#define GCPRO7(\7f3334,108793
 +#define UNGCPRO       \7f3353,109916
 +#define RETURN_UNGCPRO(\7f3363,110183
 +void staticpro \7f3375,110456
 +vcopy \7f3384,110657
 +set_hash_key_slot \7f3393,110932
 +set_hash_value_slot \7f3399,111071
 +set_symbol_function \7f3408,111306
 +set_symbol_plist \7f3414,111421
 +set_symbol_next \7f3420,111524
 +blv_found \7f3428,111697
 +set_overlay_plist \7f3437,111880
 +string_intervals \7f3445,112031
 +set_string_intervals \7f3453,112153
 +set_char_table_defalt \7f3462,112355
 +set_char_table_purpose \7f3467,112467
 +set_char_table_extras \7f3475,112636
 +set_char_table_contents \7f3482,112845
 +set_sub_char_table_contents \7f3489,113040
 +extern Lisp_Object indirect_function \7f3495,113199
 +extern Lisp_Object find_symbol_value \7f3496,113251
 +enum Arith_Comparison \7f3497,113303
 +  ARITH_EQUAL,\7f3498,113327
 +  ARITH_NOTEQUAL,\7f3499,113342
 +  ARITH_LESS,\7f3500,113360
 +  ARITH_GRTR,\7f3501,113374
 +  ARITH_LESS_OR_EQUAL,\7f3502,113388
 +  ARITH_GRTR_OR_EQUAL\7f3503,113411
 +extern Lisp_Object arithcompare \7f3505,113436
 +#define INTEGER_TO_CONS(\7f3511,113762
 +#define CONS_TO_INTEGER(\7f3529,114625
 +extern intmax_t cons_to_signed \7f3533,114840
 +extern uintmax_t cons_to_unsigned \7f3534,114906
 +extern struct Lisp_Symbol *indirect_variable \7findirect_variable\ 13536,114967
 +extern _Noreturn void args_out_of_range \7f3537,115036
 +extern _Noreturn void args_out_of_range_3 \7f3538,115104
 +extern Lisp_Object do_symval_forwarding \7f3540,115195
 +extern void set_internal \7f3541,115255
 +extern void syms_of_data \7f3542,115327
 +extern void swap_in_global_binding \7f3543,115360
 +extern void syms_of_cmds \7f3546,115444
 +extern void keys_of_cmds \7f3547,115477
 +extern Lisp_Object detect_coding_system \7f3550,115539
 +extern void init_coding \7f3552,115692
 +extern void init_coding_once \7f3553,115724
 +extern void syms_of_coding \7f3554,115761
 +extern ptrdiff_t chars_in_text \7f3557,115828
 +extern ptrdiff_t multibyte_chars_in_text \7f3558,115895
 +extern void syms_of_character \7f3559,115972
 +extern void init_charset \7f3562,116040
 +extern void init_charset_once \7f3563,116073
 +extern void syms_of_charset \7f3564,116111
 +extern void init_syntax_once \7f3569,116231
 +extern void syms_of_syntax \7f3570,116268
 +enum { NEXT_ALMOST_PRIME_LIMIT \7f3573,116329
 +extern EMACS_INT next_almost_prime \7f3574,116368
 +enum constype \7f3739,123820
 +enum constype {CONSTYPE_HEAP,\7fCONSTYPE_HEAP\ 13739,123820
 +enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}\7fCONSTYPE_PURE\ 13739,123820
 +extern Lisp_Object listn \7f3740,123866
 +list2i \7f3745,124010
 +list3i \7f3751,124119
 +list4i \7f3757,124258
 +extern Lisp_Object make_uninit_bool_vector \7f3763,124410
 +extern Lisp_Object bool_vector_fill \7f3764,124466
 +extern _Noreturn void string_overflow \7f3765,124530
 +extern Lisp_Object make_string \7f3766,124576
 +extern Lisp_Object make_formatted_string \7f3767,124634
 +extern Lisp_Object make_multibyte_string \7f3779,124988
 +extern Lisp_Object make_event_array \7f3780,125067
 +extern Lisp_Object make_uninit_string \7f3781,125131
 +extern Lisp_Object make_uninit_multibyte_string \7f3782,125182
 +extern Lisp_Object make_string_from_bytes \7f3783,125254
 +extern Lisp_Object make_specified_string \7f3784,125334
 +extern Lisp_Object make_pure_string \7f3786,125426
 +extern Lisp_Object make_pure_c_string \7f3787,125506
 +build_pure_c_string \7f3792,125662
 +build_string \7f3801,125867
 +extern Lisp_Object pure_cons \7f3806,125945
 +extern void make_byte_code \7f3807,126002
 +extern struct Lisp_Vector *allocate_vector \7fallocate_vector\ 13808,126053
 +make_uninit_vector \7f3820,126438
 +make_uninit_sub_char_table \7f3833,126657
 +extern struct Lisp_Vector *allocate_pseudovector \7fallocate_pseudovector\ 13844,126966
 +#define ALLOCATE_PSEUDOVECTOR(\7f3850,127201
 +#define ALLOCATE_ZEROED_PSEUDOVECTOR(\7f3858,127537
 +extern bool gc_in_progress;\7f3863,127738
 +extern bool abort_on_gc;\7f3864,127766
 +extern Lisp_Object make_float \7f3865,127791
 +extern void display_malloc_warning \7f3866,127831
 +extern ptrdiff_t inhibit_garbage_collection \7f3867,127874
 +extern Lisp_Object make_save_int_int_int \7f3868,127926
 +extern Lisp_Object make_save_obj_obj_obj_obj \7f3869,128002
 +extern Lisp_Object make_save_ptr \7f3871,128112
 +extern Lisp_Object make_save_ptr_int \7f3872,128155
 +extern Lisp_Object make_save_ptr_ptr \7f3873,128213
 +extern Lisp_Object make_save_funcptr_ptr_obj \7f3874,128268
 +extern Lisp_Object make_save_memory \7f3876,128364
 +extern void free_save_value \7f3877,128428
 +extern Lisp_Object build_overlay \7f3878,128471
 +extern void free_marker \7f3879,128545
 +extern void free_cons \7f3880,128584
 +extern void init_alloc_once \7f3881,128628
 +extern void init_alloc \7f3882,128664
 +extern void syms_of_alloc \7f3883,128695
 +extern struct buffer * allocate_buffer \7f3884,128729
 +extern int valid_lisp_object_p \7f3885,128776
 +extern int relocatable_string_data_p \7f3886,128822
 +extern void check_cons_list \7f3888,128901
 +INLINE void \7f3890,128943
 +extern void *r_alloc \7fr_alloc\ 13895,129064
 +#define FLOAT_TO_STRING_BUFSIZE \7f3927,130527
 +extern int openp \7f3957,131676
 +extern Lisp_Object string_to_number \7f3959,131786
 +extern void map_obarray \7f3960,131849
 +extern void dir_warning \7f3962,131963
 +extern void init_obarray \7f3963,132016
 +extern void init_lread \7f3964,132049
 +extern void syms_of_lread \7f3965,132080
 +intern \7f3968,132134
 +intern_c_string \7f3974,132222
 +extern EMACS_INT lisp_eval_depth;\7f3980,132335
 +extern Lisp_Object Vautoload_queue;\7f3981,132369
 +extern Lisp_Object Vrun_hooks;\7f3982,132405
 +extern Lisp_Object Vsignaling_function;\7f3983,132436
 +extern Lisp_Object inhibit_lisp_code;\7f3984,132476
 +extern struct handler *handlerlist;\7fhandlerlist\ 13985,132514
 +extern void run_hook \7f3994,132756
 +extern void run_hook_with_args_2 \7f3995,132792
 +extern Lisp_Object run_hook_with_args \7f3996,132866
 +extern _Noreturn void xsignal \7f3999,133025
 +extern _Noreturn void xsignal0 \7f4000,133083
 +extern _Noreturn void xsignal1 \7f4001,133129
 +extern _Noreturn void xsignal2 \7f4002,133188
 +extern _Noreturn void xsignal3 \7f4003,133260
 +extern _Noreturn void signal_error \7f4005,133349
 +extern Lisp_Object eval_sub \7f4006,133413
 +extern Lisp_Object apply1 \7f4007,133461
 +extern Lisp_Object call0 \7f4008,133515
 +extern Lisp_Object call1 \7f4009,133555
 +extern Lisp_Object call2 \7f4010,133608
 +extern Lisp_Object call3 \7f4011,133674
 +extern Lisp_Object call4 \7f4012,133753
 +extern Lisp_Object call5 \7f4013,133845
 +extern Lisp_Object call6 \7f4014,133950
 +extern Lisp_Object call7 \7f4015,134068
 +extern Lisp_Object internal_catch \7f4016,134199
 +extern Lisp_Object internal_lisp_condition_case \7f4017,134292
 +extern Lisp_Object internal_condition_case \7f4018,134381
 +extern Lisp_Object internal_condition_case_1 \7f4019,134494
 +extern Lisp_Object internal_condition_case_2 \7f4020,134629
 +extern Lisp_Object internal_condition_case_n\7f4021,134790
 +extern void specbind \7f4024,134986
 +extern void record_unwind_protect \7f4025,135035
 +extern void record_unwind_protect_ptr \7f4026,135108
 +extern void record_unwind_protect_int \7f4027,135175
 +extern void record_unwind_protect_void \7f4028,135236
 +extern void record_unwind_protect_nothing \7f4029,135294
 +extern void clear_unwind_protect \7f4030,135344
 +extern void set_unwind_protect \7f4031,135390
 +extern void set_unwind_protect_ptr \7f4032,135471
 +extern Lisp_Object unbind_to \7f4033,135546
 +extern _Noreturn void error \7f4034,135601
 +fast_string_match_ignore_case \7f4136,140089
 +extern ptrdiff_t fast_c_string_match_ignore_case \7f4141,140239
 +extern ptrdiff_t fast_looking_at \7f4143,140336
 +extern ptrdiff_t find_newline \7f4145,140475
 +extern ptrdiff_t scan_newline \7f4147,140604
 +extern ptrdiff_t scan_newline_from_point \7f4149,140707
 +extern ptrdiff_t find_newline_no_quit \7f4150,140787
 +extern ptrdiff_t find_before_next_newline \7f4152,140884
 +extern void syms_of_search \7f4154,140982
 +extern void clear_regexp_cache \7f4155,141017
 +extern Lisp_Object Vminibuffer_list;\7f4159,141087
 +extern Lisp_Object last_minibuf_string;\7f4160,141124
 +extern Lisp_Object get_minibuffer \7f4161,141164
 +extern void init_minibuf_once \7f4162,141211
 +extern void syms_of_minibuf \7f4163,141249
 +extern void syms_of_callint \7f4167,141316
 +extern void syms_of_casefiddle \7f4171,141386
 +extern void keys_of_casefiddle \7f4172,141425
 +extern void init_casetab_once \7f4176,141495
 +extern void syms_of_casetab \7f4177,141533
 +extern Lisp_Object echo_message_buffer;\7f4181,141601
 +extern struct kboard *echo_kboard;\7fecho_kboard\ 14182,141641
 +extern void cancel_echoing \7f4183,141676
 +extern Lisp_Object last_undo_boundary;\7f4184,141711
 +extern bool input_pending;\7f4185,141750
 +extern sigjmp_buf return_to_command_loop;\7f4187,141813
 +extern Lisp_Object menu_bar_items \7f4189,141862
 +extern Lisp_Object tool_bar_items \7f4190,141911
 +extern void discard_mouse_events \7f4191,141967
 +void handle_input_available_signal \7f4193,142028
 +extern Lisp_Object pending_funcalls;\7f4195,142077
 +extern bool detect_input_pending \7f4196,142114
 +extern bool detect_input_pending_ignore_squeezables \7f4197,142155
 +extern bool detect_input_pending_run_timers \7f4198,142215
 +extern void safe_run_hooks \7f4199,142267
 +extern void cmd_error_internal \7f4200,142309
 +extern Lisp_Object command_loop_1 \7f4201,142369
 +extern Lisp_Object read_menu_command \7f4202,142411
 +extern Lisp_Object recursive_edit_1 \7f4203,142456
 +extern void record_auto_save \7f4204,142500
 +extern void force_auto_save_soon \7f4205,142537
 +extern void init_keyboard \7f4206,142578
 +extern void syms_of_keyboard \7f4207,142612
 +extern void keys_of_keyboard \7f4208,142649
 +extern ptrdiff_t current_column \7f4211,142715
 +extern void invalidate_current_column \7f4212,142755
 +extern bool indented_beyond_p \7f4213,142801
 +extern void syms_of_indent \7f4214,142866
 +extern void store_frame_param \7f4217,142929
 +extern void store_in_alist \7f4218,143003
 +extern Lisp_Object do_switch_frame \7f4219,143073
 +extern Lisp_Object get_frame_param \7f4220,143146
 +extern void frames_discard_buffer \7f4221,143212
 +extern void syms_of_frame \7f4222,143261
 +extern char **initial_argv;\7finitial_argv\ 14225,143323
 +extern int initial_argc;\7f4226,143351
 +extern bool display_arg;\7f4228,143426
 +extern Lisp_Object decode_env_path \7f4230,143458
 +extern Lisp_Object empty_unibyte_string,\7f4231,143529
 +extern Lisp_Object empty_unibyte_string, empty_multibyte_string;\7f4231,143529
 +extern _Noreturn void terminate_due_to_signal \7f4232,143594
 +extern Lisp_Object Vlibrary_cache;\7f4234,143669
 +void fixup_locale \7f4237,143730
 +void synchronize_system_messages_locale \7f4238,143756
 +void synchronize_system_time_locale \7f4239,143804
 +INLINE void fixup_locale \7f4241,143854
 +INLINE void synchronize_system_messages_locale \7f4242,143889
 +INLINE void synchronize_system_time_locale \7f4243,143946
 +extern void shut_down_emacs \7f4245,144006
 +extern bool noninteractive;\7f4248,144132
 +extern bool no_site_lisp;\7f4251,144224
 +extern int daemon_pipe[\7fdaemon_pipe\ 14256,144392
 +#define IS_DAEMON \7f4257,144419
 +#define DAEMON_RUNNING \7f4258,144459
 +extern void *w32_daemon_event;\7fw32_daemon_event\ 14260,144527
 +#define IS_DAEMON \7f4261,144558
 +#define DAEMON_RUNNING \7f4262,144603
 +extern bool fatal_error_in_progress;\7f4266,144724
 +extern bool inhibit_window_system;\7f4269,144830
 +extern bool running_asynch_code;\7f4271,144923
 +extern void kill_buffer_processes \7f4274,144986
 +extern int wait_reading_process_output \7f4275,145035
 +# define WAIT_READING_MAX \7f4281,145422
 +# define WAIT_READING_MAX \7f4283,145494
 +extern void add_timer_wait_descriptor \7f4286,145558
 +extern void add_keyboard_wait_descriptor \7f4288,145610
 +extern void delete_keyboard_wait_descriptor \7f4289,145658
 +extern void add_gpm_wait_descriptor \7f4291,145725
 +extern void delete_gpm_wait_descriptor \7f4292,145768
 +extern void init_process_emacs \7f4294,145821
 +extern void syms_of_process \7f4295,145860
 +extern void setup_process_coding_systems \7f4296,145896
 +extern int child_setup \7f4302,146016
 +extern void init_callproc_1 \7f4303,146084
 +extern void init_callproc \7f4304,146120
 +extern void set_initial_environment \7f4305,146154
 +extern void syms_of_callproc \7f4306,146198
 +extern Lisp_Object read_doc_string \7f4309,146261
 +extern Lisp_Object get_doc_string \7f4310,146311
 +extern void syms_of_doc \7f4311,146372
 +extern int read_bytecode_char \7f4312,146404
 +extern void syms_of_bytecode \7f4315,146473
 +extern struct byte_stack *byte_stack_list;\7fbyte_stack_list\ 14316,146510
 +extern void mark_byte_stack \7f4318,146573
 +extern void unmark_byte_stack \7f4320,146616
 +extern Lisp_Object exec_byte_code \7f4321,146654
 +extern void init_macros \7f4325,146804
 +extern void syms_of_macros \7f4326,146836
 +extern void truncate_undo_list \7f4329,146898
 +extern void record_insert \7f4330,146948
 +extern void record_delete \7f4331,146998
 +extern void record_first_change \7f4332,147056
 +extern void record_change \7f4333,147096
 +extern void record_property_change \7f4334,147146
 +extern void syms_of_undo \7f4337,147288
 +extern void report_interval_modification \7f4340,147352
 +extern void syms_of_menu \7f4343,147448
 +extern void syms_of_xmenu \7f4346,147509
 +extern char *get_current_dir_name \7fget_current_dir_name\ 14356,147711
 +extern void stuff_char \7f4358,147760
 +extern void init_foreground_group \7f4359,147793
 +extern void sys_subshell \7f4360,147835
 +extern void sys_suspend \7f4361,147868
 +extern void discard_tty_input \7f4362,147900
 +extern void init_sys_modes \7f4363,147938
 +extern void reset_sys_modes \7f4364,147994
 +extern void init_all_sys_modes \7f4365,148051
 +extern void reset_all_sys_modes \7f4366,148090
 +extern void child_setup_tty \7f4367,148130
 +extern void setup_pty \7f4368,148165
 +extern int set_window_size \7f4369,148194
 +extern EMACS_INT get_random \7f4370,148238
 +extern void seed_random \7f4371,148274
 +extern void init_random \7f4372,148319
 +extern void emacs_backtrace \7f4373,148351
 +extern _Noreturn void emacs_abort \7f4374,148386
 +extern void xputenv \7f4527,152700
 +extern char *egetenv_internal \7fegetenv_internal\ 14529,152737
 +egetenv \7f4532,152809
 +extern void init_system_name \7f4539,153012
 +#define eabs(\7f4545,153305
 +#define make_fixnum_or_float(\7f4550,153438
 +enum MAX_ALLOCA \7f4556,153689
 +enum MAX_ALLOCA { MAX_ALLOCA \7f4556,153689
 +extern void *record_xmalloc \7frecord_xmalloc\ 14558,153734
 +#define USE_SAFE_ALLOCA       \7f4560,153800
 +#define AVAIL_ALLOCA(\7f4564,153933
 +#define SAFE_ALLOCA(\7f4568,154044
 +#define SAFE_NALLOCA(\7f4576,154385
 +#define SAFE_ALLOCA_STRING(\7f4590,154861
 +#define SAFE_FREE(\7f4598,155113
 +#define SAFE_ALLOCA_LISP(\7f4625,155691
 +# define USE_STACK_LISP_OBJECTS \7f4652,156813
 +# undef USE_STACK_LISP_OBJECTS\7f4658,156979
 +# define USE_STACK_LISP_OBJECTS \7f4659,157010
 +enum { defined_GC_CHECK_STRING_BYTES \7f4663,157085
 +enum { defined_GC_CHECK_STRING_BYTES \7f4665,157138
 +union Aligned_Cons\7f4670,157272
 +union Aligned_String\7f4676,157352
 +    USE_STACK_CONS \7f4689,157707
 +    USE_STACK_STRING \7f4691,157813
 +#define STACK_CONS(\7f4699,158150
 +#define AUTO_CONS_EXPR(\7f4701,158247
 +#define AUTO_CONS(\7f4709,158610
 +#define AUTO_LIST1(\7f4710,158681
 +#define AUTO_LIST2(\7f4712,158789
 +#define AUTO_LIST3(\7f4716,158944
 +#define AUTO_LIST4(\7f4720,159119
 +extern const char *verify_ascii \7fverify_ascii\ 14730,159456
 +# define verify_ascii(\7f4732,159510
 +#define AUTO_STRING(\7f4740,159818
 +#define FOR_EACH_TAIL(\7f4752,160282
 +#define FOR_EACH_ALIST_VALUE(\7f4766,160773
 +maybe_gc \7f4774,161060
 +functionp \7f4784,161299
 +\f
 +c-src/machsyscalls.c,23
 +#define       SYSCALL(\7f6,113
 +\f
 +c-src/machsyscalls.h,159
 +SYSCALL (mach_msg_trap,\7f1,0
 +SYSCALL (mach_reply_port,\7f13,314
 +SYSCALL (mach_thread_self,\7f18,377
 +SYSCALL (mach_task_self,\7f23,441
 +SYSCALL (mach_host_self,\7f28,503
 +\f
 +c-src/fail.c,30
 +void (*prt_call(\7fprt_call\ 11,0
 +\f
 +c-src/h.h,1962
 +   ELEM_I/\7fELEM_I\ 13,15
 +} Fails_t;\7f5,85
 +typedef void Lang_function \7f6,96
 +void Asm_labels \7f7,127
 +typedef struct tpcmd\7f8,147
 +#define ggg \7f10,170
 +tpcmd;\7f15,209
 +typedef struct foobar2_ \7f16,216
 +} foobar2;\7f20,307
 +    DEVICE_SWP,\7f23,333
 +    DEVICE_LAST\7f24,349
 +} bsp_DevId;\7f25,365
 +  struct constant_args \7f27,394
 +} args;\7f30,457
 +typedef int *regset;\7fregset\ 131,465
 +typedef int INT;\7f32,486
 +typedef union abc\7f33,503
 +} ghi1;\7f36,534
 +typedef union abc \7f37,542
 +} ghi2;\7f39,573
 +typedef struct a \7f40,581
 +} b;\7f41,600
 +#define c(\7f42,605
 +typedef struct an_extern_linkage *an_extern_linkage_ptr;\7fan_extern_linkage_ptr\ 143,619
 +typedef struct an_extern_linkage \7f44,676
 +} an_extern_linkage;\7f56,1054
 +typedef struct pollfd   pfdset[\7fpfdset\ 157,1075
 +typedef union rtunion_def\7f58,1119
 +  } womboid \7f63,1206
 +typedef union rtunion_def\7f64,1220
 +womboid\7f75,1330
 +enum {dog,\7fdog\ 181,1416
 +enum {dog, cat}\7fcat\ 181,1416
 +enum {dog, cat} animals;\7f81,1416
 +typedef void (_CALLBACK_ *signal_handler)\7fsignal_handler\ 182,1441
 +typedef void (_CALLBACK_ *signal_handler1)\7fsignal_handler1\ 183,1489
 +/* comment */ #define ANSIC\7f84,1538
 + #define ANSIC\7f85,1566
 +typedef void (proc)\7f87,1588
 +typedef void OperatorFun(\7f88,1612
 +typedef int f(\7f89,1648
 +struct my_struct \7f91,1691
 +typedef struct my_struct my_typedef;\7f93,1713
 +typedef RETSIGTYPE (*signal_handler_t)\7fsignal_handler_t\ 194,1750
 +  Date 04 May 87 235311 PDT \7f96,1802
 +typedef unsigned char unchar;\7f99,1880
 +typedef int X,\7f100,1910
 +typedef int X, Y,\7f100,1910
 +typedef int X, Y, Z;\7f100,1910
 +typedef mio mao;\7f101,1931
 +extern void ab(\7f102,1948
 +typedef struct a \7f103,1966
 +typedef struct a { } b;\7f103,1966
 +typedef struct b\7f104,1990
 +} c;\7f106,2009
 +int   (*oldhup)\7foldhup\ 1107,2014
 +request (*oldhup)\7foldhup\ 1108,2031
 +int extvar;\7f109,2053
 +#define tag1\7f110,2065
 +#define aaaaaa \7f111,2078
 +#define bbbbbb\\7fbbbbbb\ 1113,2102
 +#define cccccccccc\7f115,2125
 +#define enter_critical_section        \7f116,2144
 +#define exit_critical_to_previous     \7f117,2199
 +#define UNDEFINED\7f118,2259
 +struct re_pattern_buffer \7f119,2277
 +\f
 +cp-src/c.C,2378
 +template <typename ipc3dIslandHierarchy,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType, unsigned numOfChannels,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType, unsigned numOfChannels, typename ipc3dLinkControl,\7f1,0
 +class CMultiChannelCSC19_3D\7f2,151
 +        void execute(\7f11,493
 +static void my_function1(\7f24,984
 +int main \7f25,1026
 +double base \7f26,1088
 +operator += \7foperator +=\ 129,1174
 +class TestRecord;\7f31,1233
 +typedef struct s1 \7f32,1251
 +} t1;\7f34,1287
 +struct s2 \7f35,1293
 +typedef struct s2 t2;\7f38,1324
 +class A \7f39,1346
 +  enum { rosso,\7f40,1356
 +  enum { rosso, giallo,\7f40,1356
 +  enum { rosso, giallo, verde \7f40,1356
 +  const A& operator+(\7f41,1396
 +const A& A::operator+(\7foperator+\ 143,1431
 +void operator+(\7f44,1467
 +void operator -(\7foperator -\ 145,1495
 +void operator int(\7foperator int\ 146,1524
 +A<int>* f(\7f48,1556
 +int f(\7f49,1571
 +int A<int>::f(\7ff\ 150,1590
 +A<float,B<int> > A<B<float>,int>::f(\7ff\ 151,1618
 +template <class C, int n> class AT \7f52,1668
 +class AU \7f53,1716
 +class B<\7fB\ 154,1735
 +class B<int> { void f(\7f54,1735
 +const A::B::T& abt \7f55,1766
 +class A \7f56,1792
 +class A { class B \7f56,1792
 +class A { class B { int f(\7f56,1792
 +class A \7f57,1827
 +  int get_data(\7f58,1837
 +  A operator+(\7f59,1861
 +is_muldiv_operation(\7f61,1888
 +domain foo \7f68,1956
 +     void f(\7f69,1969
 +void A::A(\7fA\ 172,1990
 +struct A \7f73,2005
 +struct A { A(\7f73,2005
 +struct B \7f74,2023
 +struct B { B(\7f74,2023
 +void B::B(\7fB\ 175,2042
 +void BE_Node::BE_Node(\7fBE_Node\ 176,2057
 +class BE_Node \7f77,2084
 +struct foo \7f79,2103
 +class test \7f86,2157
 +  int f(\7f87,2170
 +  int ff(\7f89,2232
 +  int g(\7f90,2255
 +class AST_Root \7f92,2279
 +class AST_Root;\7f96,2328
 +AST_ConcreteType::AST_ConcreteType(\7f99,2394
 +AST_Array::AST_Array(\7f107,2533
 +     void f(\7f115,2734
 +struct A \7f117,2754
 +    ~A(\7f118,2765
 +A::~A(\7f~A\ 1120,2778
 +struct B \7f122,2790
 +    ~B(\7f123,2801
 +enum {dog,\7fdog\ 1126,2818
 +enum {dog, cat}\7fcat\ 1126,2818
 +enum {dog, cat} animals;\7f126,2818
 +struct {int teats;} cow;\7f127,2843
 +class Boo \7f129,2869
 +    enum {dog,\7fdog\ 1130,2881
 +    enum {dog, cat}\7fcat\ 1130,2881
 +    foo(\7f133,2955
 +    Boo(\7f137,2996
 +    Boo(\7f138,3053
 +Boo::Boo(\7f141,3071
 +typedef int should_see_this_one_enclosed_in_extern_C;\7f149,3156
 +typedef int (*should_see_this_function_pointer)\7fshould_see_this_function_pointer\ 1153,3229
 +typedef int should_see_this_array_type[\7fshould_see_this_array_type\ 1156,3311
 +\f
 +cp-src/x.cc,102
 +class XX\7f1,0
 +     int foo(\7f4,19
 +     void bar(\7f5,35
 +XX::foo(\7ffoo\ 19,60
 +XX::bar(\7fbar\ 115,95
 +main(\7f21,126
 +\f
 +cp-src/burton.cpp,124
 +::dummy::dummy test::dummy1(\7fdummy1\ 11,0
 +::dummy::dummy test::dummy2(\7fdummy2\ 16,64
 +::dummy::dummy test::dummy3(\7fdummy3\ 111,143
 +\f
 +cp-src/functions.cpp,778
 +void Date::setDate \7fsetDate\ 15,148
 +void Date::plus \7fplus\ 132,939
 +void Date::minus \7fminus\ 142,1229
 +void Date::shift \7fshift\ 152,1407
 +Date & Date::operator = \7foperator =\ 162,1628
 +Date & Date::operator += \7foperator +=\ 169,1789
 +Date & Date::operator -= \7foperator -=\ 178,1939
 +Date & Date::operator ++ \7foperator ++\ 187,2080
 +Date & Date::operator -- \7foperator --\ 196,2216
 +int Date::operator - \7foperator -\ 1104,2331
 +int Date::operator < \7foperator <\ 1112,2483
 +int Date::operator > \7foperator >\ 1116,2557
 +int Date::operator == \7foperator ==\ 1120,2631
 +ostream& operator << \7foperator <<\ 1124,2707
 +istream& operator >> \7foperator >>\ 1133,2943
 +bool isLeap \7f159,3543
 +bool isHoliday \7f163,3629
 +void asort(\7f173,3865
 +void ReadVacation \7f186,4064
 +void Debug \7f201,4523
 +int WorkingDays(\7f211,4867
 +Date StartDay(\7f226,5129
 +\f
 +cp-src/MDiagArray2.h,1194
 +#define octave_MDiagArray2_h \7f29,870
 +#undef LTGT\7f35,967
 +#define LTGT\7f39,1031
 +#define LTGT \7f42,1051
 +class MDiagArray2;\7f45,1087
 +operator += \7foperator +=\ 148,1145
 +operator -= \7foperator -=\ 151,1242
 +operator * \7foperator *\ 154,1339
 +operator / \7foperator /\ 157,1428
 +operator * \7foperator *\ 160,1517
 +operator + \7foperator +\ 163,1605
 +operator - \7foperator -\ 166,1707
 +product \7f69,1808
 +operator - \7foperator -\ 172,1907
 +class MDiagArray2 \7f78,2022
 +  MDiagArray2 \7f82,2077
 +  MDiagArray2 \7f86,2154
 +  MDiagArray2 \7f87,2198
 +  MDiagArray2 \7f88,2254
 +  MDiagArray2 \7f89,2329
 +  MDiagArray2 \7f90,2387
 +  MDiagArray2 \7f91,2450
 +  ~MDiagArray2 \7f93,2515
 +  MDiagArray2<T>& operator = \7foperator =\ 195,2542
 +      DiagArray2<T>::operator = \7foperator =\ 197,2603
 +  operator MArray2<T> \7foperator MArray2<T>\ 1101,2667
 +  operator += \7foperator +=\ 1116,2966
 +  operator -= \7foperator -=\ 1119,3057
 +  friend MDiagArray2<T> operator * \7foperator *\ 1123,3174
 +  friend MDiagArray2<T> operator / \7foperator /\ 1124,3253
 +  friend MDiagArray2<T> operator * \7foperator *\ 1128,3384
 +  operator + \7foperator +\ 1133,3544
 +  operator - \7foperator -\ 1136,3640
 +  friend MDiagArray2<T> operator - \7foperator -\ 1141,3803
 +#undef LTGT\7f144,3874
 +#define INSTANTIATE_MDIAGARRAY_FRIENDS(\7f146,3887
 +\f
 +cp-src/Range.h,678
 +#define octave_Range_h \7f24,765
 +class istream;\7f30,840
 +class ostream;\7f31,855
 +class Matrix;\7f32,870
 +Range\7f35,891
 +  Range \7f39,909
 +  Range \7f42,995
 +  Range \7f46,1130
 +  Range \7f50,1248
 +  double base \7f54,1376
 +  double limit \7f55,1425
 +  double inc \7f56,1475
 +  int nelem \7f57,1523
 +  bool all_elements_are_ints \7f59,1571
 +  Matrix matrix_value \7f61,1615
 +  double min \7f63,1652
 +  double max \7f64,1679
 +  void sort \7f66,1707
 +  void set_base \7f68,1728
 +  void set_limit \7f69,1774
 +  void set_inc \7f70,1821
 +  friend ostream& operator << \7foperator <<\ 172,1867
 +  friend istream& operator >> \7foperator >>\ 173,1928
 +  void print_range \7f75,1984
 +  int nelem_internal \7f85,2099
 +extern Range operator - \7foperator -\ 188,2138
 +\f
 +cp-src/screen.cpp,228
 +unsigned char cursor_x,\7f15,548
 +unsigned char cursor_x, cursor_y;\7f15,548
 +static union REGS regs;\7f16,582
 +void goto_xy(\7f18,607
 +void hide_cursor(\7f27,774
 +void cursor_position(\7f32,836
 +void clear_screen(\7f41,997
 +void write_xyc(\7f55,1247
 +\f
 +cp-src/screen.hpp,538
 +#define __COLORS\7f9,401
 +enum COLORS \7f11,419
 +    BLACK,\7f12,433
 +    BLUE,\7f13,471
 +    GREEN,\7f14,481
 +    CYAN,\7f15,492
 +    RED,\7f16,502
 +    MAGENTA,\7f17,511
 +    BROWN,\7f18,524
 +    LIGHTGRAY,\7f19,535
 +    DARKGRAY,\7f20,550
 +    LIGHTBLUE,\7f21,589
 +    LIGHTGREEN,\7f22,604
 +    LIGHTCYAN,\7f23,620
 +    LIGHTRED,\7f24,635
 +    LIGHTMAGENTA,\7f25,649
 +    YELLOW,\7f26,667
 +    WHITE\7f27,679
 +#define SCREEN_FP(\7f31,700
 +#define SCREEN_START \7f33,795
 +void goto_xy(\7f35,835
 +void hide_cursor(\7f36,883
 +void cursor_position(\7f37,907
 +void clear_screen(\7f38,935
 +void write_xyc(\7f39,960
 +\f
 +cp-src/conway.cpp,288
 +#define max(\7f12,357
 +#define min(\7f13,393
 +const int num_rows \7f15,430
 +const int num_columns \7f16,470
 +class site *field_of_play[\7ffield_of_play\ 118,499
 +int site::total_surrounding(\7ftotal_surrounding\ 120,550
 +void display(\7f37,958
 +void glider(\7f50,1239
 +void traffic_light(\7f59,1478
 +void main(\7f67,1633
 +\f
 +cp-src/conway.hpp,215
 +class site:\7fsite\ 15,235
 +    int total_surrounding(\7f8,303
 +    site(\7f10,344
 +    ~site(\7f11,397
 +    char read(\7f12,410
 +    void set(\7f13,444
 +    void clear(\7f14,478
 +    void compute_next_state(\7f15,514
 +    void step(\7f22,717
 +\f
 +cp-src/clheir.cpp,359
 +const int max_num_generic_objects \7f9,298
 +generic_object * object_registry[\7fobject_registry\ 110,340
 +void init_registry(\7f12,400
 +void step_everybody(\7f19,527
 +void discrete_location::clear_neighbors(\7fclear_neighbors\ 131,852
 +generic_object::generic_object(\7fgeneric_object\ 136,981
 +generic_object::~generic_object(\7f~generic_object\ 148,1255
 +void agent::move(\7fmove\ 153,1353
 +\f
 +cp-src/clheir.hpp,731
 +extern void init_registry(\7f10,452
 +extern void step_everybody(\7f11,485
 +class generic_object\7f13,520
 +    generic_object(\7f17,582
 +    ~generic_object(\7f19,724
 +    virtual void compute_next_state(\7f21,843
 +    virtual void step(\7f22,889
 +const int max_num_directions \7f31,1220
 +class location:\7flocation\ 133,1290
 +    location(\7f43,1643
 +    ~location(\7f44,1662
 +class irregular_location:\7firregular_location\ 147,1687
 +    irregular_location(\7f51,1763
 +    ~irregular_location(\7f53,1855
 +class discrete_location:\7fdiscrete_location\ 156,1890
 +    void clear_neighbors(\7f60,2005
 +    discrete_location(\7f62,2045
 +    ~discrete_location(\7f65,2155
 +    void assign_neighbor(\7f66,2185
 +class agent:\7fagent\ 175,2509
 +    agent(\7f79,2579
 +    ~agent(\7f80,2592
 +    void move(\7f81,2606
 +\f
 +cp-src/fail.C,315
 +struct A \7f7,263
 +         struct B \7f8,274
 +                 struct C \7f9,289
 +                         C(\7f11,318
 +                         operator int(\7foperator int\ 112,342
 +                 typedef C T;\7f14,389
 +         typedef B T2;\7f16,414
 +class String;\7f20,437
 +class A \7f23,453
 +      class B \7f24,463
 +              class C \7f25,474
 +              int f(\7f26,488
 +int A::B::f(\7ff\ 131,521
 +main(\7f37,571
 +      class D \7f41,622
 +              D(\7f43,659
 +\f
 +el-src/TAGTEST.EL,148
 +(foo::defmumble bletch \7f1,0
 +(defalias 'pending-delete-mode \7fpending-delete-mode\ 15,102
 +(defalias (quote explicitly-quoted-pending-delete-mode)\7f8,175
 +\f
 +el-src/emacs/lisp/progmodes/etags.el,5188
 +(defvar tags-file-name \7f34,1034
 +(defgroup etags \7f43,1498
 +(defcustom tags-case-fold-search \7f47,1566
 +(defcustom tags-table-list \7f59,2051
 +(defcustom tags-compression-info-list\7f69,2449
 +(defcustom tags-add-tables \7f88,3231
 +(defcustom tags-revert-without-query \7f98,3627
 +(defvar tags-table-computed-list \7f103,3778
 +(defvar tags-table-computed-list-for \7f112,4262
 +(defvar tags-table-list-pointer \7f117,4510
 +(defvar tags-table-list-started-at \7f121,4701
 +(defvar tags-table-set-list \7f124,4821
 +(defcustom find-tag-hook \7f129,5000
 +(defcustom find-tag-default-function \7f137,5263
 +(define-obsolete-variable-alias 'find-tag-marker-ring-length\7ffind-tag-marker-ring-length\ 1145,5602
 +(defcustom tags-tag-face \7f148,5699
 +(defcustom tags-apropos-verbose \7f154,5834
 +(defcustom tags-apropos-additional-actions \7f160,5998
 +(defvaralias 'find-tag-marker-ring \7ffind-tag-marker-ring\ 1183,6917
 +(defvar default-tags-table-function \7f189,7097
 +(defvar tags-location-ring \7f194,7323
 +(defvar tags-table-files \7f201,7599
 +(defvar tags-completion-table \7f206,7766
 +(defvar tags-included-tables \7f209,7858
 +(defvar next-file-list \7f212,7953
 +(defvar tags-table-format-functions \7f217,8059
 +(defvar file-of-tag-function \7f224,8440
 +(defvar tags-table-files-function \7f228,8634
 +(defvar tags-completion-table-function \7f230,8745
 +(defvar snarf-tag-function \7f232,8840
 +(defvar goto-tag-location-function \7f236,9049
 +(defvar find-tag-regexp-search-function \7f239,9222
 +(defvar find-tag-regexp-tag-order \7f241,9343
 +(defvar find-tag-regexp-next-line-after-failure-p \7f243,9452
 +(defvar find-tag-search-function \7f245,9572
 +(defvar find-tag-tag-order \7f247,9679
 +(defvar find-tag-next-line-after-failure-p \7f249,9774
 +(defvar list-tags-function \7f251,9880
 +(defvar tags-apropos-function \7f253,9968
 +(defvar tags-included-tables-function \7f255,10062
 +(defvar verify-tags-table-function \7f257,10181
 +(defun initialize-new-tags-table \7f260,10292
 +(defun tags-table-mode \7f276,10980
 +(defun visit-tags-table \7f285,11245
 +(defun tags-table-check-computed-list \7f321,12783
 +(defun tags-table-extend-computed-list \7f360,14654
 +(defun tags-expand-table-name \7f400,16367
 +(defun tags-table-list-member \7f409,16710
 +(defun tags-verify-table \7f421,17182
 +(defun tags-table-including \7f470,19302
 +(defun tags-next-table \7f522,21346
 +(defun visit-tags-table-buffer \7f543,22203
 +(defun tags-reset-tags-tables \7f712,28513
 +(defun file-of-tag \7f731,29170
 +(defun tags-table-files \7f740,29519
 +(defun tags-included-tables \7f749,29869
 +(defun tags-completion-table \7f755,30115
 +(defun tags-lazy-completion-table \7f783,31309
 +(defun tags-completion-at-point-function \7f799,31944
 +(defun find-tag-tag \7f818,32694
 +(defvar last-tag \7f837,33367
 +(defun find-tag-interactive \7f840,33426
 +(defvar find-tag-history \7f852,33841
 +(defvar etags-case-fold-search)\7f855,33906
 +(defvar etags-syntax-table)\7f856,33938
 +(defvar local-find-tag-hook)\7f857,33966
 +(defun find-tag-noselect \7f860,34011
 +(defun find-tag \7f932,37125
 +(defun find-tag-other-window \7f959,38341
 +(defun find-tag-other-frame \7f1000,40269
 +(defun find-tag-regexp \7f1025,41443
 +(defalias 'pop-tag-mark \7fpop-tag-mark\ 11049,42605
 +(defvar tag-lines-already-matched \7f1052,42656
 +(defun find-tag-in-order \7f1055,42763
 +(defun tag-find-file-of-tag-noselect \7f1167,47109
 +(defun tag-find-file-of-tag \7f1200,48955
 +(defun etags-recognize-tags-table \7f1208,49181
 +(defun etags-verify-tags-table \7f1241,50812
 +(defun etags-file-of-tag \7f1246,51010
 +(defun etags-tags-completion-table \7f1256,51345
 +(defun etags-snarf-tag \7f1286,52551
 +(defun etags-goto-tag-location \7f1324,54120
 +(defun etags-list-tags \7f1388,56563
 +(defmacro tags-with-face \7f1423,57838
 +(defun etags-tags-apropos-additional \7f1431,58171
 +(defun etags-tags-apropos \7f1465,59408
 +(defun etags-tags-table-files \7f1527,61617
 +(defun etags-tags-included-tables \7f1542,62053
 +(defun tags-recognize-empty-tags-table \7f1559,62593
 +(defun tag-exact-file-name-match-p \7f1587,63739
 +(defun tag-file-name-match-p \7f1596,64132
 +(defun tag-exact-match-p \7f1609,64688
 +(defun tag-implicit-name-match-p \7f1620,65256
 +(defun tag-symbol-match-p \7f1633,65856
 +(defun tag-word-match-p \7f1643,66292
 +(defun tag-partial-file-name-match-p \7f1652,66690
 +(defun tag-any-match-p \7f1662,67134
 +(defun tag-re-match-p \7f1667,67318
 +(defcustom tags-loop-revert-buffers \7f1675,67567
 +(defun next-file \7f1685,67976
 +(defvar tags-loop-operate \7f1760,70890
 +(defvar tags-loop-scan\7f1763,70984
 +(defun tags-loop-eval \7f1771,71313
 +(defun tags-loop-continue \7f1782,71642
 +(defun tags-search \7f1850,73948
 +(defun tags-query-replace \7f1871,74774
 +(defun tags-complete-tags-table-file \7f1896,75998
 +(defun list-tags \7f1906,76377
 +(defun tags-apropos \7f1934,77330
 +(define-button-type 'tags-select-tags-table\7ftags-select-tags-table\ 11957,78156
 +(defun select-tags-table \7f1964,78395
 +(defvar select-tags-table-mode-map \7f2019,80522
 +(define-derived-mode select-tags-table-mode \7f2030,80905
 +(defun select-tags-table-select \7f2034,81089
 +(defun select-tags-table-quit \7f2043,81455
 +(defun complete-tag \7f2049,81610
 +(defconst etags--xref-limit \7f2074,82551
 +(defvar etags-xref-find-definitions-tag-order \7f2076,82586
 +(defun etags-xref-find \7f2082,82876
 +(defun etags--xref-find-definitions \7f2096,83405
 +(defclass xref-etags-location \7f2129,85119
 +(defun xref-make-etags-location \7f2135,85342
 +(cl-defmethod xref-location-marker \7f2139,85497
 +(cl-defmethod xref-location-line \7f2146,85741
 +\f
 +erl-src/gs_dialog.erl,98
 +-define(VERSION\7f2,32
 +behaviour_info(\7f51,2177
 +show(\7f124,5458
 +dialog_loop(\7f219,9529
 +test(\7f252,10806
 +\f
 +f-src/entry.for,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +f-src/entry.strange_suffix,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +f-src/entry.strange,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +forth-src/test-forth.fth,408
 +: a-forth-word \7f20,301
 +99 constant a-forth-constant!\7f22,343
 +55 value a-forth-value?\7f23,373
 +create :a-forth-dictionary-entry\7f24,397
 +defer #a-defer-word\7f27,460
 +: (another-forth-word)\7f(another-forth-word\ 129,481
 +   9   field   >field1\7f36,582
 +   5   field   >field2\7f37,605
 +constant (a-forth-constant\7f(a-forth-constant\ 138,628
 +2000 buffer: #some-storage\7f41,657
 +code assemby-code-word \7f43,685
 +: a-forth-word \7f50,870
 +\f
 +go-src/test.go,48
 +package main\7f1,0
 +func say(\7f5,28
 +func main(\7f9,72
 +\f
 +go-src/test1.go,119
 +package main\7f1,0
 +func (s str) PrintAdd(\7f17,136
 +func (n intNumber) PrintAdd(\7f21,189
 +func test(\7f25,248
 +func main(\7f29,285
 +\f
 +html-src/softwarelibero.html,200
 +Cos'è il software libero?\7f4,38
 +Licenze d'uso di un programma\7flicenze\ 165,2500
 +Sfatiamo alcuni miti\7f138,6118
 +Il movimento open source\7foss\ 1191,8037
 +Impatto pratico del software libero\7fimpatto\ 1231,10066
 +\f
 +html-src/index.shtml,104
 +&nbsp;\7f8,281
 +In evidenza\7f15,447
 +Comunicati e iniziative\7f32,976
 +Ultime notizie dall'associazione\7f63,2030
 +\f
 +html-src/algrthms.html,467
 +Tutorial on Convolutional Coding with Viterbi Decoding--Description of the Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and Quantizing Algorithms\7f7,277
 +Description\7falgorithms\ 110,481
 +Generating the Data\7fgenalgorithm\ 148,1995
 +Convolutionally\7fconalgorithm\ 155,2512
 +Next\7fstatetable\ 1262,11587
 +Output\7foutputtable\ 1350,13915
 +Mapping the Channel Symbols\7fmapping\ 1433,16213
 +Adding Noise to the\7faddnoise\ 1439,16607
 +Quantizing the Received\7fquantizing\ 1469,19100
 +\f
 +html-src/software.html,439
 +Francesco Potortì Software Page\7f9,280
 +Software that I wrote for supporting my research activity\7fsimulation\ 136,1398
 +MTG\7fmtg\ 141,1482
 +Fracas\7ffracas\ 165,2624
 +GaliLEO\7fgalileo\ 1101,4232
 +Leasqr\7fleasqr\ 1114,4677
 +Free software that I wrote for the GNU project or for my personal or work\7fgnu\ 1142,6065
 +Etags\7fetags\ 1148,6180
 +checkiso\7f161,6729
 +cgrep\7f178,7547
 +debian-bug.el\7fdebian-bug\ 1190,7979
 +tcpdump\7f205,8564
 +Links to interesting software\7flinks\ 1216,8891
 +\f
 +lua-src/allegro.lua,400
 +local function get_layer_by_name \7f7,175
 +local function count_layers \7f33,621
 +function GetLayerByName \7f54,980
 +function GetUniqueLayerName \7f65,1204
 +function SelectLayer \7f76,1415
 +function NewLayer \7f86,1773
 +function NewLayerSet \7f144,3226
 +function RemoveLayer \7f170,3750
 +function MoveLayerTop \7f211,4767
 +function MoveLayerBottom \7f223,5079
 +function MoveLayerBefore \7f236,5457
 +function MoveLayerAfter \7f258,6090
 +\f
 +lua-src/test.lua,442
 +function Rectangle.getPos \7f2,15
 +function Rectangle.getPos \7fgetPos\ 12,15
 +function Circle.getPos \7f6,61
 +function Circle.getPos \7fgetPos\ 16,61
 +function Cube.data.getFoo \7f10,102
 +function Cube.data.getFoo \7fgetFoo\ 110,102
 +function Square.something:Bar \7f14,148
 +function Square.something:Bar \7fBar\ 114,148
 +   function test.me_22a(\7f22,241
 +   function test.me_22a(\7fme_22a\ 122,241
 +   local function test.me22b \7f25,297
 +   local function test.me22b \7fme22b\ 125,297
 +\f
 +make-src/Makefile,2175
 +LATEST=\7f1,0
 +RELEASELIST=\7f2,10
 +ADASRC=\7f4,104
 +ASRC=\7f5,171
 +CSRC=\7f6,197
 +CPSRC=\7f10,423
 +ELSRC=\7f13,614
 +ERLSRC=\7f14,661
 +FORTHSRC=\7f15,702
 +FSRC=\7f16,726
 +HTMLSRC=\7f17,776
 +JAVASRC=\7f18,844
 +LUASRC=\7f19,907
 +MAKESRC=\7f20,926
 +OBJCSRC=\7f21,943
 +OBJCPPSRC=\7f22,999
 +PASSRC=\7f23,1035
 +PERLSRC=\7f24,1053
 +PHPSRC=\7f25,1108
 +PSSRC=\7f26,1156
 +PROLSRC=\7f27,1173
 +PYTSRC=\7f28,1210
 +TEXSRC=\7f29,1227
 +YSRC=\7f30,1282
 +SRCS=\7f31,1325
 +NONSRCS=\7f35,1577
 +VHDLFLAGS=\7f37,1624
 +COBOLFLAGS=\7f38,1827
 +POSTSCRIPTFLAGS=\7f39,1889
 +TCLFLAGS=\7f40,1943
 +GETOPTOBJS=\7f42,2002
 +RXINCLUDE=\7f43,2034
 +REGEXOBJS=\7f44,2056
 +CHECKOBJS=\7f46,2075
 +CHECKFLAGS=\7f47,2105
 +OBJS=\7f48,2145
 +CPPFLAGS=\7f49,2190
 +LDFLAGS=\7f50,2259
 +WARNINGS=\7f51,2282
 +CFLAGS=\7f52,2466
 +FASTCFLAGS=\7f55,2530
 +FASTCFLAGSWARN=\7f56,2591
 +FILTER=\7f58,2641
 +REGEX=\7f59,2695
 +xx=\7f60,2741
 +MAKE:\7fMAKE\ 162,2790
 +RUN=\7f63,2825
 +RUN=\7f64,2865
 +OPTIONS=\7f65,2870
 +ARGS=\7f66,2922
 +infiles \7f68,2940
 +quiettest:\7fquiettest\ 170,3002
 +test:\7ftest\ 179,3409
 +${CHECKOBJS}:\7f${CHECKOBJS}\ 188,3805
 +checker:\7fchecker\ 190,3849
 +standalone:\7fstandalone\ 196,4062
 +prof:\7fprof\ 1101,4168
 +fastetags:\7ffastetags\ 1104,4198
 +fastctags:\7ffastctags\ 1108,4322
 +staticetags:\7fstaticetags\ 1112,4446
 +rsynctofly:\7frsynctofly\ 1116,4608
 +rsyncfromfly:\7frsyncfromfly\ 1119,4698
 +web ftp publish:\7fweb ftp publish\ 1122,4794
 +release distrib:\7frelease distrib\ 1129,5115
 +tags:\7ftags\ 1134,5255
 +clean:\7fclean\ 1136,5267
 +srclist:\7fsrclist\ 1139,5302
 +regexfile:\7fregexfile\ 1143,5391
 +/home/www/pub/etags.c.gz:\7f/home/www/pub/etags.c.gz\ 1149,5566
 +/home/www/pub/software/unix/etags.tar.gz:\7f/home/www/pub/software/unix/etags.tar.gz\ 1156,5825
 +regex.o:\7fregex.o\ 1159,6031
 +getopt.o:\7fgetopt.o\ 1162,6086
 +getopt1.o:\7fgetopt1.o\ 1165,6147
 +etags:\7fetags\ 1168,6210
 +ctags:\7fctags\ 1171,6299
 +man manpage:\7fman manpage\ 1174,6396
 +etags.1.man:\7fetags.1.man\ 1176,6422
 +maintaining.info:\7fmaintaining.info\ 1179,6475
 +TAGS:\7fTAGS\ 1182,6557
 +%ediff:\7f%ediff\ 1185,6587
 +oediff:\7foediff\ 1188,6677
 +%cdiff:\7f%cdiff\ 1191,6764
 +xdiff:\7fxdiff\ 1194,6854
 +ETAGS:\7fETAGS\ 1197,6942
 +ETAGS%:\7fETAGS%\ 1200,7012
 +ETAGS13 ETAGS14 ETAGS15:\7fETAGS13 ETAGS14 ETAGS15\ 1203,7084
 +ETAGS12:\7fETAGS12\ 1206,7216
 +OTAGS:\7fOTAGS\ 1209,7304
 +CTAGS:\7fCTAGS\ 1212,7369
 +CTAGS%:\7fCTAGS%\ 1215,7443
 +CTAGS13 CTAGS14 CTAGS15:\7fCTAGS13 CTAGS14 CTAGS15\ 1218,7545
 +EXTAGS:\7fEXTAGS\ 1221,7680
 +.PRECIOUS:\7f.PRECIOUS\ 1224,7838
 +FRC:\7fFRC\ 1226,7894
 +\f
 +objc-src/Subprocess.h,98
 +#define Subprocess \7f41,1217
 +#define BUFFERSIZE \7f43,1267
 +@interface Subprocess:\7fSubprocess\ 145,1292
 +\f
 +objc-src/Subprocess.m,476
 +#define       PTY_TEMPLATE \7f20,494
 +#define       PTY_LENGTH \7f21,528
 +static void showError(\7f23,551
 +@interface Subprocess(Private)\7f32,737
 +- childDidExit\7f39,851
 +- fdHandler:\7ffdHandler\ 167,1589
 +showError \7f98,2360
 +fdHandler \7f112,2785
 +getptys \7f119,2907
 +- init:\7finit\ 1183,4815
 +    andStdErr:\7finit\ 1197,5147
 +- send:(const char *)string withNewline:\7fsend\ 1300,7436
 +- send:\7fsend\ 1308,7599
 +- terminateInput\7f314,7689
 +- terminate:\7fterminate\ 1321,7810
 +- setDelegate:\7fsetDelegate\ 1332,7961
 +- delegate\7f338,8031
 +\f
 +objc-src/PackInsp.h,109
 +#define NUMSTATS      \7f36,1101
 +#define TYPESTOSTAT   \7f37,1120
 +@interface PackageInspector:\7fPackageInspector\ 139,1172
 +\f
 +objc-src/PackInsp.m,1322
 +static const char RCSid[\7fRCSid\ 130,1032
 +#define VERSION       \7f34,1116
 +#   define DEBUG \7f37,1155
 +#define LISTCONTENTS  \7f39,1181
 +#define OPENBUTTON    \7f47,1352
 +#define LISTCONTENTSBUTTON    \7f48,1449
 +#define LISTDESCRIPTIONBUTTON \7f49,1562
 +#define STATE_UNINSTALLED     \7f52,1687
 +#define STATE_INSTALLED       \7f53,1807
 +#define STATE_COMPRESSD       \7f54,1948
 +#define SIZEFORMAT    \7f57,2152
 +#define KBYTES        \7f58,2362
 +#define MBYTES        \7f59,2473
 +#define LOCALIZE(\7f61,2585
 +#define LOCALIZE_ARCH(\7f62,2668
 ++new\7fnew\ 167,2802
 +-showInfo:\7fshowInfo\ 193,3417
 +-revert:\7frevert\ 1107,3737
 +-ok:\7fok\ 1136,4297
 +-load\7fload\ 1143,4424
 +#define LOOKUP(\7f156,4826
 +#undef LOOKUP\7f176,5694
 +-loadKeyValuesFrom:(const char *)type inTable:\7floadKeyValuesFrom\ 1186,5852
 +-loadContentsOf:(const char *)type inTable:\7floadContentsOf\ 1238,7079
 +-loadImage\7floadImage\ 1257,7552
 +#define STAT_EQ(\7f275,7940
 +-(BOOL)shouldLoad\7f280,8116
 +-toggleDescription\7ftoggleDescription\ 1301,8626
 +-(const char *)getPath:(char *)buf forType:\7fgetPath\ 1317,8899
 +-setRevertButtonTitle\7fsetRevertButtonTitle\ 1333,9320
 +-(const char *)formatSize:(const char *)size inBuf:\7fformatSize\ 1344,9525
 +#define WORKING       \7f368,10045
 +-(void)getArchs\7f370,10100
 +-(void)addArchs:\7faddArchs\ 1385,10520
 +-subprocess:(Subprocess *)sender output:\7fsubprocess\ 1428,11351
 +-subprocessDone:\7fsubprocessDone\ 1436,11484
 +static void openInWorkspace(\7f446,11634
 +-open:\7fopen\ 1464,12063
 +\f
 +objcpp-src/SimpleCalc.H,41
 +@interface SimpleCalc:\7fSimpleCalc\ 114,400
 +\f
 +objcpp-src/SimpleCalc.M,445
 +- init\7f52,1747
 +- appendToDisplay:\7fappendToDisplay\ 160,1933
 +- registerAction:\7fregisterAction\ 170,2210
 +- decimalKey:\7fdecimalKey\ 177,2348
 +- numberKeys:\7fnumberKeys\ 191,2661
 +- equalsKey:\7fequalsKey\ 1112,3192
 +- operationKeys:\7foperationKeys\ 1131,3680
 +- clearKey:\7fclearKey\ 1153,4301
 +- clearAllKey:\7fclearAllKey\ 1160,4410
 +- appDidInit:\7fappDidInit\ 1168,4591
 +- windowWillClose:\7fwindowWillClose\ 1178,4882
 +- infoPanel:\7finfoPanel\ 1186,5132
 +- helpPanel:\7fhelpPanel\ 1198,5482
 +\f
 +pas-src/common.pas,1875
 +procedure InitializeStringPackage;\7f26,527
 +function newtextstring;\7f34,874
 +procedure disposetextstring;\7f52,1404
 +function ConcatT;\7f78,2066
 +function AppendTextString;\7f112,3238
 +function CopyTextString;\7f132,3947
 +procedure CONVERT_CHARSTRING_TO_VALUE;\7f151,4505
 +procedure append_string;\7f172,5166
 +function To_Upper;\7f186,5462
 +function To_Lower;\7f194,5617
 +function EmptyNmStr(\7f209,6213
 +function chartonmstr;\7f219,6436
 +function LowerCaseNmStr;\7f230,6682
 +function concatenatenamestrings;\7f242,7007
 +procedure writenamestring;\7f263,7517
 +function IsControlChar;\7f277,7928
 +function namestringequal;\7f283,8079
 +function NameStringLess;\7f302,8539
 +function IsControlCharName(\7f343,9710
 +function SubString;\7f358,10208
 +function SkipChars;\7f379,10791
 +function RemoveUnderlineControl;\7f397,11311
 +procedure First100Chars;\7f427,12162
 +procedure SkipSpaces;\7f462,13298
 +function SkipBlanks;\7f477,13782
 +function stripname;\7f505,14595
 +function Locate;\7f522,15039
 +function NameHasChar;\7f543,15581
 +function integertonmstr;\7f561,16134
 +function NmStrToInteger;\7f585,16901
 +function AddNullToNmStr;\7f600,17317
 +function ValToNmStr;\7f611,17585
 +function ChangeFileType;\7f625,18037
 +function StripPath;\7f647,18734
 +function ReprOfChar;\7f675,19343
 +procedure ExtractCommentInfo;\7f702,20749
 +procedure INSERT_TREE_NODE;\7f784,24053
 +function GetNameList;\7f920,27926
 +procedure DisposeANameList(\7f925,28010
 +procedure DisposeNameList;\7f938,28340
 +function GetNewNameListNode;\7f943,28409
 +function insertname;\7f972,29051
 +procedure InitNameList;\7f988,29471
 +procedure InitNameStringPool;\7f998,29767
 +procedure NewNameString;\7f1004,29867
 +procedure ReleaseNameString;\7f1022,30232
 +procedure SDTrefStringToRec \7f1045,30741
 +procedure SDTrefSkipSpaces;\7f1059,31092
 +function SDTrefIsEnd \7f1070,31323
 +function SDTrefGetInteger \7f1082,31529
 +procedure SDTrefRecToString \7f1303,37546
 +function NmStrToErrStr;\7f1497,42305
 +function ErrStrToNmStr;\7f1509,42557
 +function GetTextRef;\7f1529,43112
 +\f
 +php-src/lce_functions.php,2152
 +  define("LCE_FUNCTIONS"\7fLCE_FUNCTIONS\ 14,38
 +  define("LCE_UNKNOWN"\7fLCE_UNKNOWN\ 19,145
 +  define("LCE_WS"\7fLCE_WS\ 111,194
 +  define("LCE_COMMENT"\7fLCE_COMMENT\ 113,244
 +  define("LCE_COMMENT_USER"\7fLCE_COMMENT_USER\ 115,303
 +  define("LCE_COMMENT_TOOL"\7fLCE_COMMENT_TOOL\ 117,366
 +  define("LCE_MSGID"\7fLCE_MSGID\ 119,430
 +  define("LCE_MSGSTR"\7fLCE_MSGSTR\ 121,488
 +  define("LCE_TEXT"\7fLCE_TEXT\ 123,541
 +  define("STATE_ABORT"\7fSTATE_ABORT\ 125,567
 +  define("STATE_OK"\7fSTATE_OK\ 126,595
 +  define("STATE_LOOP"\7fSTATE_LOOP\ 127,620
 +  class POEntryAD \7f29,648
 +      function validate(\7f31,683
 +      function checkQuotation(\7f59,1384
 +  class CommentAD \7f70,1639
 +      function CommentAD(\7f73,1693
 +      function validate(\7f83,1944
 +  class POEntry \7f105,2410
 +      function POEntry(\7f119,2711
 +      function lineCount(\7f135,3255
 +      function serializeToVars(\7f141,3365
 +      function write(\7f151,3800
 +  class POReader \7f163,4178
 +      function gettext(\7f177,4457
 +      function parseFromVars(\7f189,4705
 +      function serializeToVars(\7f215,5331
 +      function POReader(\7f229,5613
 +      function read(\7f243,5983
 +      function write(\7f259,6307
 +      function isComment(\7f277,6645
 +      function comment(\7f284,6822
 +      function msgid(\7f304,7247
 +      function msgstr(\7f320,7574
 +      function start(\7f340,8232
 +      function createPOEntries(\7f360,8644
 +      function stripLine(\7f394,9472
 +      function printClassification(\7f421,10056
 +      function classifyLine(\7f432,10301
 +  function getTextDomains(\7f471,11094
 +  class PORManager \7f498,11756
 +      function PORManager(\7f502,11822
 +      function addPOReader(\7f507,11896
 +      function &getPOReader(\7fgetPOReader\ 1512,11992
 +      function getDomainNames(\7f517,12081
 +  function &loadPORManager(\7floadPORManager\ 1523,12174
 +  function fileJoin(\7f536,12436
 +      function lce_bindtextdomain(\7f557,12839
 +      function lce_textdomain(\7f614,14530
 +      function lce_gettext(\7f620,14641
 +      function lce_dgettext(\7f626,14767
 +      function lce(\7f634,14966
 +      function lce_bindtextdomain(\7f651,15488
 +      function lce_textdomain(\7f656,15592
 +      function lce_gettext(\7f661,15674
 +      function lce_dgettext(\7f666,15755
 +      function lce(\7f670,15855
 +  function lce_geteditcode(\7f676,15898
 +\f
 +php-src/ptest.php,46
 +define("TEST"\7fTEST\ 11,0
 +test \7f4,26
 +foo(\7f16,200
 +\f
- sub read_toc \7fmain::read_toc\ 1165,3917
++perl-src/htlmify-cystic,1197
 +my @section_name;\7fsection_name\ 112,236
 +my @appendix_name;\7fappendix_name\ 113,254
 +my @section_toc;\7fsection_toc\ 115,274
 +my @appendix_toc;\7fappendix_toc\ 116,291
 +my $new_tag \7fnew_tag\ 118,310
 +my $appendix;\7fappendix\ 124,409
 +my $section;\7fsection\ 125,423
 +my $subsection;\7fsubsection\ 126,436
 +my $subsubsection;\7fsubsubsection\ 127,452
 +my $this_file_toc \7fthis_file_toc\ 129,472
 +my %file_tocs;\7ffile_tocs\ 130,496
 +my @output_files \7foutput_files\ 132,512
 +my $file_index \7ffile_index\ 133,535
 +my $output_file;\7foutput_file\ 135,556
 +my $line;\7fline\ 137,574
 +my $subsection_marker;\7fsubsection_marker\ 1161,3883
 +my $new;\7fnew\ 1163,3907
- sub finish_subsubsections \7fmain::finish_subsubsections\ 1302,7805
- sub finish_subsections \7fmain::finish_subsections\ 1309,7987
- sub finish_sections \7fmain::finish_sections\ 1320,8310
- sub finish_appendices \7fmain::finish_appendices\ 1331,8599
- sub section_url_base \7fmain::section_url_base\ 1337,8724
- sub section_url_name \7fmain::section_url_name\ 1342,8922
- sub section_url \7fmain::section_url\ 1355,9284
++sub read_toc \7f165,3917
 +        my $entry \7fentry\ 1218,5621
 +        my $entry \7fentry\ 1234,6077
 +            my $entry \7fentry\ 1245,6351
 +        my $entry \7fentry\ 1252,6536
 +        my $entry \7fentry\ 1268,7010
 +            my $entry \7fentry\ 1276,7204
 +        my $entry \7fentry\ 1281,7328
 +      my $entry \7fentry\ 1296,7698
- sub section_href \7fmain::section_href\ 1364,9452
- sub section_name \7fmain::section_name\ 1368,9551
- sub toc_line \7fmain::toc_line\ 1372,9655
- sub file_end \7fmain::file_end\ 1375,9750
++sub finish_subsubsections \7f302,7805
++sub finish_subsections \7f309,7987
++sub finish_sections \7f320,8310
++sub finish_appendices \7f331,8599
++sub section_url_base \7f337,8724
++sub section_url_name \7f342,8922
++sub section_url \7f355,9284
 +  my $name \7fname\ 1357,9336
- perl-src/yagrip.pl,258
- sub getopt \7fmain::getopt\ 17,156
++sub section_href \7f364,9452
++sub section_name \7f368,9551
++sub toc_line \7f372,9655
++sub file_end \7f375,9750
 +\f
- sub usage \7fmain::usage\ 138,856
++perl-src/yagrip.pl,233
++sub getopt \7f7,156
 +      local($_,$flag,$opt,$f,$r,@temp)\7f($_,$flag,$opt,$f,$r,@temp\ 18,169
- perl-src/kai-test.pl,244
- sub f1 \7fmain::f1\ 12,16
- sub main::f2 \7f6,50
++sub usage \7f38,856
 +      local($prog,$_,@list)\7f($prog,$_,@list\ 139,868
 +      local($string,$flag,@string,@temp,@last)\7f($string,$flag,@string,@temp,@last\ 140,897
 +\f
- sub f3 \7fFoo::f3\ 112,104
- sub Bar::f4 \7f16,138
++perl-src/kai-test.pl,203
++sub f1 \7f2,16
++sub main::f2 \7ff2\ 16,50
 +package Foo;\7f10,90
- sub f5 \7fBar::f5\ 122,191
++sub f3 \7f12,104
++sub Bar::f4 \7ff4\ 116,138
 +package Bar;\7f20,177
- sub f6 \7fFoo::Bar::f6\ 128,244
++sub f5 \7f22,191
 +package Foo::Bar;\7f26,225
- sub f7 \7fmain::f7\ 134,293
++sub f6 \7f28,244
 +package main;\7f32,278
++sub f7 \7f34,293
 +\f
 +ps-src/rfc1245.ps,2478
 +/FMversion \7f12,311
 +/FrameDict \7f17,500
 +/FMVERSION \7f47,1307
 +/FMLOCAL \7f56,1494
 +/FMDOCUMENT \7f73,1766
 +/FMBEGINPAGE \7f95,2279
 +/FMENDPAGE \7f109,2516
 +/FMDEFINEFONT \7f115,2582
 +/FMNORMALIZEGRAPHICS \7f126,2725
 +/FMBEGINEPSF \7f142,2955
 +/FMENDEPSF \7f153,3207
 +/setmanualfeed \7f158,3283
 +/max \7f163,3386
 +/min \7f164,3426
 +/inch \7f165,3466
 +/pagedimen \7f166,3485
 +/setpapername \7f172,3629
 +/papersize \7f190,4214
 +/manualpapersize \7f211,4789
 +/desperatepapersize \7f230,5211
 +/savematrix \7f239,5370
 +/restorematrix \7f242,5425
 +/dmatrix \7f245,5475
 +/dpi \7f246,5495
 +/freq \7f248,5583
 +/sangle \7f249,5658
 +/DiacriticEncoding \7f250,5717
 +/.notdef \7f251,5738
 +/.notdef \7f252,5801
 +/.notdef \7f253,5864
 +/.notdef \7f254,5927
 +/.notdef \7f255,5990
 +/numbersign \7f256,6051
 +/parenright \7f257,6115
 +/two \7f258,6184
 +/less \7f259,6251
 +/L \7f260,6320
 +/bracketright \7f261,6389
 +/i \7f262,6459
 +/braceright \7f263,6529
 +/Ntilde \7f264,6598
 +/atilde \7f265,6668
 +/iacute \7f266,6733
 +/ocircumflex \7f267,6797
 +/udieresis \7f268,6858
 +/paragraph \7f269,6919
 +/dieresis \7f270,6983
 +/yen \7f271,7050
 +/ordfeminine \7f272,7109
 +/exclamdown \7f273,7171
 +/guillemotleft \7f274,7230
 +/Otilde \7f275,7296
 +/quoteleft \7f276,7357
 +/fraction \7f277,7420
 +/periodcentered \7f278,7490
 +/Acircumflex \7f279,7549
 +/Icircumflex \7f280,7610
 +/Uacute \7f281,7680
 +/breve \7f282,7746
 +/ReEncode \7f284,7814
 +/graymode \7f300,8020
 +/setpattern \7f310,8184
 +/grayness \7f331,8725
 +/normalize \7f394,9873
 +/dnormalize \7f397,9942
 +/lnormalize \7f400,10014
 +/H \7f403,10104
 +/Z \7f406,10147
 +/X \7f409,10176
 +/V \7f412,10219
 +/N \7f415,10260
 +/M \7f418,10286
 +/E \7f419,10315
 +/D \7f420,10336
 +/O \7f421,10358
 +/L \7f423,10394
 +/Y \7f430,10489
 +/R \7f439,10588
 +/RR \7f450,10696
 +/C \7f467,10959
 +/U \7f473,11004
 +/F \7f477,11039
 +/T \7f481,11084
 +/RF \7f484,11115
 +/TF \7f488,11164
 +/P \7f495,11219
 +/PF \7f499,11270
 +/S \7f506,11344
 +/SF \7f510,11384
 +/B \7f517,11446
 +/BF \7f521,11505
 +/W \7f538,11714
 +/G \7f573,12382
 +/A \7f582,12525
 +/BEGINPRINTCODE \7f606,12918
 +/ENDPRINTCODE \7f615,13131
 +/gn \7f620,13259
 +/cfs \7f631,13384
 +/ic \7f636,13473
 +/ms \7f658,14285
 +/ip \7f668,14395
 +/wh \7f678,14492
 +/bl \7f684,14607
 +/s1 \7f690,14722
 +/fl \7f691,14739
 +/hx \7f698,14887
 +/wbytes \7f709,15055
 +/BEGINBITMAPBWc \7f713,15147
 +/BEGINBITMAPGRAYc \7f716,15198
 +/BEGINBITMAP2BITc \7f719,15251
 +/COMMONBITMAPc \7f722,15304
 +/BEGINBITMAPBW \7f739,15660
 +/BEGINBITMAPGRAY \7f742,15709
 +/BEGINBITMAP2BIT \7f745,15760
 +/COMMONBITMAP \7f748,15811
 +/Fmcc \7f765,16156
 +/ngrayt \7f773,16371
 +/nredt \7f774,16393
 +/nbluet \7f775,16414
 +/ngreent \7f776,16436
 +/colorsetup \7f787,16603
 +/fakecolorsetup \7f814,17370
 +/BITMAPCOLOR \7f826,17636
 +/BITMAPCOLORc \7f839,17926
 +/BITMAPGRAY \7f855,18275
 +/BITMAPGRAYc \7f858,18335
 +/ENDBITMAP \7f861,18397
 +/fillprocs \7f868,18497
 +\f
 +prol-src/ordsets.prolog,525
 +is_ordset(\7f47,1310
 +list_to_ord_set(\7f63,1688
 +ord_add_element(\7f71,1867
 +ord_del_element(\7f85,2344
 +ord_disjoint(\7f100,2783
 +ord_intersect(\7f108,2953
 +ord_intersection(\7f126,3552
 +ord_intersection3(\7f130,3691
 +ord_intersection(\7f150,4531
 +ord_intersection4(\7f154,4703
 +ord_intersection(\7f176,5664
 +ord_intersection2(\7f181,5812
 +ord_member(\7f200,6318
 +ord_seteq(\7f216,6683
 +ord_setproduct(\7f225,6971
 +ord_subset(\7f240,7377
 +ord_subtract(\7f257,7861
 +ord_symdiff(\7f265,8054
 +ord_union(\7f288,8887
 +ord_union4(\7f303,9352
 +ord_union(\7f324,10171
 +ord_union_all(\7f329,10313
 +\f
 +prol-src/natded.prolog,2319
 +expandmng(\7f100,2879
 +normalize(\7f116,3359
 +fresh_vars(\7f125,3716
 +subst(\7f138,4134
 +normalize_fresh(\7f159,4660
 +reduce_subterm(\7f171,5112
 +reduce(\7f185,5559
 +free_var(\7f196,5903
 +free_for(\7f209,6246
 +compile_lex(\7f231,6875
 +consult_lex:-\7fconsult_lex\ 1248,7384
 +lex(\7f259,7754
 +expandsyn(\7f267,8068
 +bas_syn(\7f292,8897
 +compile_empty:-\7fcompile_empty\ 1310,9376
 +complete(\7f328,10055
 +add_active(\7f340,10527
 +parse(\7f353,10949
 +derived_analyses(\7f364,11341
 +build(\7f378,11965
 +buildact(\7f392,12521
 +mapsyn(\7f412,13542
 +add_edge(\7f434,14278
 +findcats(\7f447,14758
 +normalize_tree(\7f465,15478
 +normalize_trees(\7f475,15856
 +expandmng_tree(\7f486,16248
 +expandmng_trees(\7f496,16614
 +cat(\7f511,17013
 +subtree(\7f644,21266
 +hypothetical_mem(\7f653,21565
 +make_coor(\7f667,22130
 +start_up:-\7fstart_up\ 1688,23013
 +tokenizeatom(\7f710,23921
 +tokenize(\7f720,24348
 +isoperator(\7f752,25377
 +isoptab(\7f756,25431
 +specialsymbol(\7f765,25756
 +sstab(\7f771,25861
 +parse_cgi(\7f787,26347
 +keyvalseq(\7f792,26510
 +andkeyvalseq(\7f796,26609
 +keyval(\7f799,26688
 +valseq(\7f807,26920
 +plusvalseq(\7f810,27007
 +val(\7f816,27109
 +argvals(\7f824,27426
 +commaargvals(\7f828,27503
 +atomval(\7f833,27578
 +atom(\7f836,27640
 +action(\7f846,28004
 +keyvalcgi(\7f864,28649
 +keyvalscgi(\7f865,28670
 +outsyn(\7f868,28726
 +act(\7f876,29060
 +actout(\7f901,29906
 +texttreelist(\7f912,30089
 +htmltreelist(\7f918,30190
 +fitchtreelist(\7f924,30304
 +pp_html_table_tree(\7f938,30759
 +pp_html_tree(\7f949,31113
 +pp_html_trees(\7f988,32381
 +pp_html_table_fitch_tree(\7f999,32769
 +pp_html_fitch_tree(\7f1017,33672
 +removeexp(\7f1129,39002
 +splitexp(\7f1142,39490
 +pp_exp(\7f1155,39990
 +map_word(\7f1168,40249
 +pp_exps(\7f1180,40474
 +pp_tree(\7f1188,40777
 +pp_trees(\7f1216,41807
 +pp_word_list(\7f1225,42128
 +pp_word(\7f1231,42262
 +pp_word_list_rest(\7f1238,42569
 +pp_cat(\7f1248,42929
 +pp_syn(\7f1255,43196
 +pp_syn_paren(\7f1276,43899
 +pp_paren(\7f1293,44377
 +pp_syn_back(\7f1300,44661
 +pp_bas_cat(\7f1311,45001
 +writecat(\7f1322,45409
 +writesubs(\7f1351,46455
 +writesups(\7f1361,46757
 +writelistsubs(\7f1371,47090
 +pp_lam(\7f1380,47408
 +pp_lam_bracket(\7f1398,48022
 +pp_lam_paren(\7f1407,48338
 +pp_rule(\7f1429,49238
 +member(\7f1447,49866
 +append_list(\7f1451,49919
 +append(\7f1456,50010
 +at_least_one_member(\7f1460,50076
 +numbervars(\7f1464,50171
 +reverse(\7f1467,50209
 +select(\7f1471,50290
 +select_last(\7f1475,50357
 +cat_atoms(\7f1479,50436
 +writelist(\7f1485,50524
 +write_lex_cat(\7f1492,50676
 +writebreaklex(\7f1500,50988
 +write_lex(\7f1513,51265
 +writebreak(\7f1521,51541
 +tt:-\7ftt\ 11531,51713
 +mt:-\7fmt\ 11534,51784
 +cmt:-\7fcmt\ 11537,51878
 +\f
 +pyt-src/server.py,1438
 +class Controls:\7fControls\ 117,358
 +    def __init__(\7f18,374
 +    def __repr__(\7f24,590
 +    def __str__(\7f34,871
 +class Server:\7fServer\ 137,934
 +    def __init__(\7f38,948
 +    def dump(\7f73,2198
 +    def __repr__(\7f125,3896
 +    def __str__(\7f128,3945
 +class User:\7fUser\ 1131,4014
 +    def __init__(\7f132,4026
 +    def __repr__(\7f172,5445
 +    def __str__(\7f206,6883
 +def flag2str(\7f223,7212
 +class LabeledEntry(\7f232,7442
 +    def bind(\7f234,7525
 +    def focus_set(\7f236,7584
 +    def __init__(\7f238,7629
 +def ButtonBar(\7f245,7909
 +def helpwin(\7f255,8280
 +class ListEdit(\7f267,8707
 +    def __init__(\7f269,8808
 +    def handleList(\7f303,10042
 +    def handleNew(\7f306,10094
 +    def editItem(\7f314,10426
 +    def deleteItem(\7f320,10596
 +def ConfirmQuit(\7f326,10760
 +class ControlEdit(\7f375,12377
 +    def PostControls(\7f376,12403
 +    def GatherControls(\7f421,13530
 +class ServerEdit(\7f512,16264
 +    def __init__(\7f513,16289
 +    def post(\7f525,16629
 +    def gather(\7f543,17191
 +    def nosave(\7f547,17304
 +    def save(\7f551,17408
 +    def refreshPort(\7f556,17509
 +    def createWidgets(\7f561,17663
 +    def edituser(\7f631,20708
 +class UserEdit(\7f645,20921
 +    def __init__(\7f646,20944
 +    def post(\7f658,21283
 +    def gather(\7f676,21841
 +    def nosave(\7f680,21950
 +    def save(\7f684,22052
 +    def createWidgets(\7f689,22151
 +class Configure(\7f760,24879
 +    def __init__(\7f761,24916
 +    def MakeDispose(\7f772,25211
 +    def MakeSitelist(\7f786,25706
 +    def editsite(\7f794,25949
 +    def save(\7f797,26022
 +    def nosave(\7f807,26310
 +\f
 +ruby-src/test.rb,637
 +module ModuleExample\7f1,0
 +    class ClassExample\7f2,21
 +        def instance_method\7f3,44
 +        def ClassExample.class_method\7fclass_method\ 16,121
 +        def instance_method_exclamation!\7f9,206
 +        def instance_method_question?\7f12,310
 +        def instance_method_equals=\7finstance_method_equals=\ 115,408
 +        def `(\7f18,502
 +        def +(\7f21,592
 +        def [](\7f24,640
 +        def []=(\7f[]=\ 127,690
 +        def <<(\7f30,752
 +        def ==(\7f==\ 133,802
 +        def <=(\7f<=\ 136,872
 +        def <=>(\7f<=>\ 139,943
 +        def ===(\7f===\ 142,990
 +    def module_instance_method\7f46,1051
 +    def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 +\f
 +ruby-src/test1.ru,935
 +class A\7f1,0
 + def a(\7f2,8
 + def b(\7f5,38
 +module A\7f9,57
 +  class B\7f10,66
 +    ABC \7f11,76
 +    Def_ \7f12,88
 +    Xyzzy \7f13,106
 +    def foo!\7f15,121
 +    def self._bar?(\7f_bar?\ 118,143
 +      def qux=(\7fqux=\ 122,194
 +    attr_reader :foo\7ffoo\ 126,233
 +    attr_reader :read1 \7fread1\ 127,254
 +    attr_reader :read1 , :read2;\7fread2\ 127,254
 +    attr_reader :read1 , :read2; attr_writer :write1,\7fwrite1=\ 127,254
 +    attr_reader :read1 , :read2; attr_writer :write1, :write2\7fwrite2=\ 127,254
 +    attr_writer :bar,\7fbar=\ 128,316
 +                :baz,\7fbaz=\ 129,338
 +                :more\7fmore=\ 130,360
 +    attr_accessor :tee\7ftee\ 131,382
 +    attr_accessor :tee\7ftee=\ 131,382
 +    alias_method :qux,\7fqux\ 132,405
 +    alias_method :xyz,\7fxyz\ 133,456
 +                 :tee ; attr_reader :subtle\7fsubtle\ 134,479
 +    attr_reader(:foo1,\7ffoo1\ 135,523
 +    attr_reader(:foo1, :bar1,\7fbar1\ 135,523
 +                :qux1)\7fqux1\ 136,563
 +    alias_method ( :foo2,\7ffoo2\ 137,586
 +A::Constant \7fConstant\ 142,655
 +\f
 +tex-src/testenv.tex,52
 +\newcommand{\nm}\7f\nm\ 14,77
 +\section{blah}\7fblah\ 18,139
 +\f
 +tex-src/gzip.texi,303
 +@node Top,\7f62,2139
 +@node Copying,\7f80,2652
 +@node Overview,\7f83,2705
 +@node Sample,\7f166,7272
 +@node Invoking gzip,\7fInvoking gzip\ 1210,8828
 +@node Advanced usage,\7fAdvanced usage\ 1357,13495
 +@node Environment,\7f420,15207
 +@node Tapes,\7f437,15768
 +@node Problems,\7f460,16767
 +@node Concept Index,\7fConcept Index\ 1473,17287
 +\f
 +tex-src/texinfo.tex,30627
 +\def\texinfoversion{\7f\texinfoversion\ 126,1027
 +\def\tie{\7f\tie\ 149,1518
 +\def\gloggingall{\7f\gloggingall\ 172,2268
 +\def\loggingall{\7f\loggingall\ 173,2337
 +\def\onepageout#1{\7f\onepageout\ 199,3274
 +\def\croppageout#1{\7f\croppageout\ 1115,4024
 +\def\cropmarks{\7f\cropmarks\ 1142,5084
 +\def\pagebody#1{\7f\pagebody\ 1144,5131
 +\def\ewtop{\7f\ewtop\ 1157,5586
 +\def\nstop{\7f\nstop\ 1158,5650
 +\def\ewbot{\7f\ewbot\ 1160,5733
 +\def\nsbot{\7f\nsbot\ 1161,5797
 +\def\parsearg #1{\7f\parsearg\ 1170,6096
 +\def\parseargx{\7f\parseargx\ 1172,6174
 +\def\parseargline{\7f\parseargline\ 1182,6414
 +\def\flushcr{\7f\flushcr\ 1186,6535
 +\newif\ifENV \ENVfalse \def\inENV{\7f\inENV\ 1190,6734
 +\def\ENVcheck{\7f\ENVcheck\ 1191,6798
 +\outer\def\begin{\7f\begin\ 1198,7045
 +\def\beginxxx #1{\7f\beginxxx\ 1200,7083
 +\def\end{\7f\end\ 1208,7338
 +\def\endxxx #1{\7f\endxxx\ 1210,7366
 +\def\errorE#1{\7f\errorE\ 1216,7555
 +\def\singlespace{\7f\singlespace\ 1222,7749
 +\def\@{\7f\@\ 1232,7972
 +\def\`{\7f\`\ 1236,8072
 +\def\'{\7f\'\ 1237,8084
 +\def\mylbrace {\7f\mylbrace\ 1241,8132
 +\def\myrbrace {\7f\myrbrace\ 1242,8165
 +\def\:{\7f\:\ 1247,8279
 +\def\*{\7f\*\ 1250,8333
 +\def\.{\7f\.\ 1253,8409
 +\def\w#1{\7f\w\ 1258,8640
 +\def\group{\7f\group\ 1268,9123
 +  \def\Egroup{\7f\Egroup\ 1273,9287
 +\def\need{\7f\need\ 1289,9729
 +\def\needx#1{\7f\needx\ 1300,10006
 +\def\dots{\7f\dots\ 1339,11392
 +\def\page{\7f\page\ 1343,11456
 +\def\exdent{\7f\exdent\ 1353,11783
 +\def\exdentyyy #1{\7f\exdentyyy\ 1354,11816
 +\def\nofillexdent{\7f\nofillexdent\ 1357,11960
 +\def\nofillexdentyyy #1{\7f\nofillexdentyyy\ 1358,12005
 +\def\include{\7f\include\ 1365,12189
 +\def\includezzz #1{\7f\includezzz\ 1366,12224
 +\def\thisfile{\7f\thisfile\ 1369,12275
 +\def\center{\7f\center\ 1373,12338
 +\def\centerzzz #1{\7f\centerzzz\ 1374,12371
 +\def\sp{\7f\sp\ 1380,12513
 +\def\spxxx #1{\7f\spxxx\ 1381,12538
 +\def\comment{\7f\comment\ 1387,12712
 +\def\commentxxx #1{\7f\commentxxx\ 1390,12809
 +\def\ignoresections{\7f\ignoresections\ 1396,12978
 +\let\chapter=\relax\7f=\relax\ 1397,13000
 +\let\section=\relax\7f=\relax\ 1406,13245
 +\let\subsection=\relax\7f=\relax\ 1409,13306
 +\let\subsubsection=\relax\7f=\relax\ 1410,13329
 +\let\appendix=\relax\7f=\relax\ 1411,13355
 +\let\appendixsec=\relax\7fsec=\relax\ 1412,13376
 +\let\appendixsection=\relax\7fsection=\relax\ 1413,13400
 +\let\appendixsubsec=\relax\7fsubsec=\relax\ 1414,13428
 +\let\appendixsubsection=\relax\7fsubsection=\relax\ 1415,13455
 +\let\appendixsubsubsec=\relax\7fsubsubsec=\relax\ 1416,13486
 +\let\appendixsubsubsection=\relax\7fsubsubsection=\relax\ 1417,13516
 +\def\ignore{\7f\ignore\ 1423,13618
 +\long\def\ignorexxx #1\end ignore{\7f\ignorexxx\ 1427,13758
 +\def\direntry{\7f\direntry\ 1429,13817
 +\long\def\direntryxxx #1\end direntry{\7f\direntryxxx\ 1430,13856
 +\def\ifset{\7f\ifset\ 1434,13966
 +\def\ifsetxxx #1{\7f\ifsetxxx\ 1436,14024
 +\def\Eifset{\7f\Eifset\ 1440,14151
 +\def\ifsetfail{\7f\ifsetfail\ 1441,14165
 +\long\def\ifsetfailxxx #1\end ifset{\7f\ifsetfailxxx\ 1442,14221
 +\def\ifclear{\7f\ifclear\ 1444,14282
 +\def\ifclearxxx #1{\7f\ifclearxxx\ 1446,14344
 +\def\Eifclear{\7f\Eifclear\ 1450,14475
 +\def\ifclearfail{\7f\ifclearfail\ 1451,14491
 +\long\def\ifclearfailxxx #1\end ifclear{\7f\ifclearfailxxx\ 1452,14551
 +\def\set{\7f\set\ 1456,14702
 +\def\setxxx #1{\7f\setxxx\ 1457,14729
 +\def\clear{\7f\clear\ 1460,14791
 +\def\clearxxx #1{\7f\clearxxx\ 1461,14822
 +\def\iftex{\7f\iftex\ 1466,14939
 +\def\Eiftex{\7f\Eiftex\ 1467,14952
 +\def\ifinfo{\7f\ifinfo\ 1468,14966
 +\long\def\ifinfoxxx #1\end ifinfo{\7f\ifinfoxxx\ 1469,15016
 +\long\def\menu #1\end menu{\7f\menu\ 1471,15075
 +\def\asis#1{\7f\asis\ 1472,15104
 +\def\math#1{\7f\math\ 1485,15647
 +\def\node{\7f\node\ 1487,15691
 +\def\nodezzz#1{\7f\nodezzz\ 1488,15729
 +\def\nodexxx[#1,#2]{\7f\nodexxx[\ 1489,15760
 +\def\donoderef{\7f\donoderef\ 1492,15822
 +\def\unnumbnoderef{\7f\unnumbnoderef\ 1496,15943
 +\def\appendixnoderef{\7f\appendixnoderef\ 1500,16074
 +\expandafter\expandafter\expandafter\appendixsetref{\7fsetref\ 1501,16120
 +\let\refill=\relax\7fill=\relax\ 1504,16209
 +\def\setfilename{\7f\setfilename\ 1509,16423
 +\outer\def\bye{\7f\bye\ 1518,16669
 +\def\inforef #1{\7f\inforef\ 1520,16725
 +\def\inforefzzz #1,#2,#3,#4**{\7f\inforefzzz\ 1521,16763
 +\def\losespace #1{\7f\losespace\ 1523,16860
 +\def\sf{\7f\sf\ 1532,17064
 +\font\defbf=cmbx10 scaled \magstep1 %was 1314\7fbf=cmbx10\ 1558,17859
 +\font\deftt=cmtt10 scaled \magstep1\7ftt=cmtt10\ 1559,17905
 +\def\df{\7f\df\ 1560,17941
 +\def\resetmathfonts{\7f\resetmathfonts\ 1635,20535
 +\def\textfonts{\7f\textfonts\ 1648,21124
 +\def\chapfonts{\7f\chapfonts\ 1653,21339
 +\def\secfonts{\7f\secfonts\ 1658,21555
 +\def\subsecfonts{\7f\subsecfonts\ 1663,21760
 +\def\indexfonts{\7f\indexfonts\ 1668,21977
 +\def\smartitalicx{\7f\smartitalicx\ 1691,22709
 +\def\smartitalic#1{\7f\smartitalic\ 1692,22785
 +\let\cite=\smartitalic\7f=\smartitalic\ 1698,22930
 +\def\b#1{\7f\b\ 1700,22954
 +\def\t#1{\7f\t\ 1703,22989
 +\def\samp #1{\7f\samp\ 1706,23141
 +\def\key #1{\7f\key\ 1707,23174
 +\def\ctrl #1{\7f\ctrl\ 1708,23235
 +\def\tclose#1{\7f\tclose\ 1716,23437
 +\def\ {\7f\\ 1720,23603
 +\def\xkey{\7f\xkey\ 1728,23872
 +\def\kbdfoo#1#2#3\par{\7f\kbdfoo\ 1729,23888
 +\def\dmn#1{\7f\dmn\ 1738,24189
 +\def\kbd#1{\7f\kbd\ 1740,24216
 +\def\l#1{\7f\l\ 1742,24273
 +\def\r#1{\7f\r\ 1744,24302
 +\def\sc#1{\7f\sc\ 1746,24370
 +\def\ii#1{\7f\ii\ 1747,24413
 +\def\titlefont#1{\7f\titlefont\ 1755,24646
 +\def\titlepage{\7f\titlepage\ 1761,24749
 +   \def\subtitlefont{\7f\subtitlefont\ 1766,24976
 +   \def\authorfont{\7f\authorfont\ 1768,25060
 +   \def\title{\7f\title\ 1774,25270
 +   \def\titlezzz##1{\7f\titlezzz\ 1775,25305
 +   \def\subtitle{\7f\subtitle\ 1783,25620
 +   \def\subtitlezzz##1{\7f\subtitlezzz\ 1784,25661
 +   \def\author{\7f\author\ 1787,25779
 +   \def\authorzzz##1{\7f\authorzzz\ 1788,25816
 +   \def\page{\7f\page\ 1794,26107
 +\def\Etitlepage{\7f\Etitlepage\ 1804,26276
 +\def\finishtitlepage{\7f\finishtitlepage\ 1817,26664
 +\def\evenheading{\7f\evenheading\ 1846,27672
 +\def\oddheading{\7f\oddheading\ 1847,27715
 +\def\everyheading{\7f\everyheading\ 1848,27756
 +\def\evenfooting{\7f\evenfooting\ 1850,27802
 +\def\oddfooting{\7f\oddfooting\ 1851,27845
 +\def\everyfooting{\7f\everyfooting\ 1852,27886
 +\def\headings #1 {\7f\headings\ 1893,29578
 +\def\HEADINGSoff{\7f\HEADINGSoff\ 1895,29627
 +\def\HEADINGSdouble{\7f\HEADINGSdouble\ 1904,30054
 +\def\HEADINGSsingle{\7f\HEADINGSsingle\ 1914,30374
 +\def\HEADINGSon{\7f\HEADINGSon\ 1922,30595
 +\def\HEADINGSafter{\7f\HEADINGSafter\ 1924,30629
 +\def\HEADINGSdoublex{\7f\HEADINGSdoublex\ 1926,30724
 +\def\HEADINGSsingleafter{\7f\HEADINGSsingleafter\ 1933,30912
 +\def\HEADINGSsinglex{\7f\HEADINGSsinglex\ 1934,30973
 +\def\today{\7f\today\ 1943,31248
 +\def\thistitle{\7f\thistitle\ 1958,31793
 +\def\settitle{\7f\settitle\ 1959,31818
 +\def\settitlezzz #1{\7f\settitlezzz\ 1960,31855
 +\def\internalBitem{\7f\internalBitem\ 1992,32785
 +\def\internalBitemx{\7f\internalBitemx\ 1993,32835
 +\def\internalBxitem "#1"{\7f\internalBxitem\ 1995,32880
 +\def\internalBxitemx "#1"{\7f\internalBxitemx\ 1996,32960
 +\def\internalBkitem{\7f\internalBkitem\ 1998,33035
 +\def\internalBkitemx{\7f\internalBkitemx\ 1999,33087
 +\def\kitemzzz #1{\7f\kitemzzz\ 11001,33134
 +\def\xitemzzz #1{\7f\xitemzzz\ 11004,33236
 +\def\itemzzz #1{\7f\itemzzz\ 11007,33339
 +\def\item{\7f\item\ 11037,34410
 +\def\itemx{\7f\itemx\ 11038,34461
 +\def\kitem{\7f\kitem\ 11039,34514
 +\def\kitemx{\7f\kitemx\ 11040,34567
 +\def\xitem{\7f\xitem\ 11041,34622
 +\def\xitemx{\7f\xitemx\ 11042,34675
 +\def\description{\7f\description\ 11045,34785
 +\def\table{\7f\table\ 11047,34835
 +\def\ftable{\7f\ftable\ 11052,34979
 +\def\Eftable{\7f\Eftable\ 11056,35125
 +\def\vtable{\7f\vtable\ 11059,35194
 +\def\Evtable{\7f\Evtable\ 11063,35340
 +\def\dontindex #1{\7f\dontindex\ 11066,35409
 +\def\fnitemindex #1{\7f\fnitemindex\ 11067,35429
 +\def\vritemindex #1{\7f\vritemindex\ 11068,35474
 +\def\tablez #1#2#3#4#5#6{\7f\tablez\ 11074,35623
 +\def\Edescription{\7f\Edescription\ 11077,35681
 +\def\itemfont{\7f\itemfont\ 11082,35883
 +\def\Etable{\7f\Etable\ 11090,36109
 +\def\itemize{\7f\itemize\ 11103,36433
 +\def\itemizezzz #1{\7f\itemizezzz\ 11105,36469
 +\def\itemizey #1#2{\7f\itemizey\ 11110,36564
 +\def#2{\7f1119,36810
 +\def\itemcontents{\7f\itemcontents\ 11120,36851
 +\def\bullet{\7f\bullet\ 11123,36899
 +\def\minus{\7f\minus\ 11124,36926
 +\def\frenchspacing{\7f\frenchspacing\ 11128,37034
 +\def\splitoff#1#2\endmark{\7f\splitoff\ 11134,37259
 +\def\enumerate{\7f\enumerate\ 11140,37489
 +\def\enumeratezzz #1{\7f\enumeratezzz\ 11141,37528
 +\def\enumeratey #1 #2\endenumeratey{\7f\enumeratey\ 11142,37581
 +  \def\thearg{\7f\thearg\ 11146,37728
 +  \ifx\thearg\empty \def\thearg{\7f\thearg\ 11147,37747
 +\def\numericenumerate{\7f\numericenumerate\ 11184,39081
 +\def\lowercaseenumerate{\7f\lowercaseenumerate\ 11190,39211
 +\def\uppercaseenumerate{\7f\uppercaseenumerate\ 11203,39558
 +\def\startenumeration#1{\7f\startenumeration\ 11219,40048
 +\def\alphaenumerate{\7f\alphaenumerate\ 11227,40230
 +\def\capsenumerate{\7f\capsenumerate\ 11228,40265
 +\def\Ealphaenumerate{\7f\Ealphaenumerate\ 11229,40299
 +\def\Ecapsenumerate{\7f\Ecapsenumerate\ 11230,40333
 +\def\itemizeitem{\7f\itemizeitem\ 11234,40413
 +\def\newindex #1{\7f\newindex\ 11259,41270
 +\def\defindex{\7f\defindex\ 11268,41559
 +\def\newcodeindex #1{\7f\newcodeindex\ 11272,41667
 +\def\defcodeindex{\7f\defcodeindex\ 11279,41927
 +\def\synindex #1 #2 {\7f\synindex\ 11283,42107
 +\def\syncodeindex #1 #2 {\7f\syncodeindex\ 11292,42447
 +\def\doindex#1{\7f\doindex\ 11309,43126
 +\def\singleindexer #1{\7f\singleindexer\ 11310,43185
 +\def\docodeindex#1{\7f\docodeindex\ 11313,43297
 +\def\singlecodeindexer #1{\7f\singlecodeindexer\ 11314,43364
 +\def\indexdummies{\7f\indexdummies\ 11316,43422
 +\def\_{\7f\_\ 11317,43442
 +\def\w{\7f\w\ 11318,43470
 +\def\bf{\7f\bf\ 11319,43497
 +\def\rm{\7f\rm\ 11320,43526
 +\def\sl{\7f\sl\ 11321,43555
 +\def\sf{\7f\sf\ 11322,43584
 +\def\tt{\7f\tt\ 11323,43612
 +\def\gtr{\7f\gtr\ 11324,43640
 +\def\less{\7f\less\ 11325,43670
 +\def\hat{\7f\hat\ 11326,43702
 +\def\char{\7f\char\ 11327,43732
 +\def\TeX{\7f\TeX\ 11328,43764
 +\def\dots{\7f\dots\ 11329,43794
 +\def\copyright{\7f\copyright\ 11330,43827
 +\def\tclose##1{\7f\tclose\ 11331,43870
 +\def\code##1{\7f\code\ 11332,43915
 +\def\samp##1{\7f\samp\ 11333,43956
 +\def\t##1{\7f\t\ 11334,43997
 +\def\r##1{\7f\r\ 11335,44032
 +\def\i##1{\7f\i\ 11336,44067
 +\def\b##1{\7f\b\ 11337,44102
 +\def\cite##1{\7f\cite\ 11338,44137
 +\def\key##1{\7f\key\ 11339,44178
 +\def\file##1{\7f\file\ 11340,44217
 +\def\var##1{\7f\var\ 11341,44258
 +\def\kbd##1{\7f\kbd\ 11342,44297
 +\def\indexdummyfont#1{\7f\indexdummyfont\ 11347,44453
 +\def\indexdummytex{\7f\indexdummytex\ 11348,44479
 +\def\indexdummydots{\7f\indexdummydots\ 11349,44503
 +\def\indexnofonts{\7f\indexnofonts\ 11351,44529
 +\let\w=\indexdummyfont\7fdummyfont\ 11352,44549
 +\let\t=\indexdummyfont\7fdummyfont\ 11353,44572
 +\let\r=\indexdummyfont\7fdummyfont\ 11354,44595
 +\let\i=\indexdummyfont\7fdummyfont\ 11355,44618
 +\let\b=\indexdummyfont\7fdummyfont\ 11356,44641
 +\let\emph=\indexdummyfont\7fdummyfont\ 11357,44664
 +\let\strong=\indexdummyfont\7fdummyfont\ 11358,44690
 +\let\cite=\indexdummyfont\7f=\indexdummyfont\ 11359,44718
 +\let\sc=\indexdummyfont\7fdummyfont\ 11360,44744
 +\let\tclose=\indexdummyfont\7fdummyfont\ 11364,44916
 +\let\code=\indexdummyfont\7fdummyfont\ 11365,44944
 +\let\file=\indexdummyfont\7fdummyfont\ 11366,44970
 +\let\samp=\indexdummyfont\7fdummyfont\ 11367,44996
 +\let\kbd=\indexdummyfont\7fdummyfont\ 11368,45022
 +\let\key=\indexdummyfont\7fdummyfont\ 11369,45047
 +\let\var=\indexdummyfont\7fdummyfont\ 11370,45072
 +\let\TeX=\indexdummytex\7fdummytex\ 11371,45097
 +\let\dots=\indexdummydots\7fdummydots\ 11372,45121
 +\let\indexbackslash=0  %overridden during \printindex.\7fbackslash=0\ 11382,45373
 +\def\doind #1#2{\7f\doind\ 11384,45429
 +{\indexdummies % Must do this here, since \bf, etc expand at this stage\7fdummies\ 11386,45472
 +\def\rawbackslashxx{\7f\rawbackslashxx\ 11389,45612
 +{\indexnofonts\7fnofonts\ 11394,45874
 +\def\dosubind #1#2#3{\7f\dosubind\ 11405,46185
 +{\indexdummies % Must do this here, since \bf, etc expand at this stage\7fdummies\ 11407,46233
 +\def\rawbackslashxx{\7f\rawbackslashxx\ 11410,46337
 +{\indexnofonts\7fnofonts\ 11414,46491
 +\def\findex {\7f\findex\ 11443,47422
 +\def\kindex {\7f\kindex\ 11444,47445
 +\def\cindex {\7f\cindex\ 11445,47468
 +\def\vindex {\7f\vindex\ 11446,47491
 +\def\tindex {\7f\tindex\ 11447,47514
 +\def\pindex {\7f\pindex\ 11448,47537
 +\def\cindexsub {\7f\cindexsub\ 11450,47561
 +\def\printindex{\7f\printindex\ 11462,47888
 +\def\doprintindex#1{\7f\doprintindex\ 11464,47929
 +  \def\indexbackslash{\7f\indexbackslash\ 11481,48414
 +  \indexfonts\rm \tolerance=9500 \advance\baselineskip -1pt\7ffonts\rm\ 11482,48453
 +\def\initial #1{\7f\initial\ 11517,49525
 +\def\entry #1#2{\7f\entry\ 11523,49732
 +  \null\nobreak\indexdotfill % Have leaders before the page number.\7fdotfill\ 11540,50379
 +\def\indexdotfill{\7f\indexdotfill\ 11549,50707
 +\def\primary #1{\7f\primary\ 11552,50813
 +\def\secondary #1#2{\7f\secondary\ 11556,50895
 +\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par\7fdotfill\ 11559,50977
 +\newbox\partialpage\7fialpage\ 11566,51150
 +\def\begindoublecolumns{\7f\begindoublecolumns\ 11572,51308
 +  \output={\global\setbox\partialpage=\7fialpage=\ 11573,51344
 +\def\enddoublecolumns{\7f\enddoublecolumns\ 11577,51532
 +\def\doublecolumnout{\7f\doublecolumnout\ 11580,51617
 +  \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage\7fialpage\ 11581,51686
 +\def\pagesofar{\7f\pagesofar\ 11584,51864
 +\def\balancecolumns{\7f\balancecolumns\ 11588,52101
 +  \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpage\7fialpage\ 11594,52272
 +     \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage\7fialpage\ 11600,52533
 +\newcount \appendixno  \appendixno = `\@\7fno\ 11627,53438
 +\def\appendixletter{\7f\appendixletter\ 11628,53479
 +\def\opencontents{\7f\opencontents\ 11632,53582
 +\def\thischapter{\7f\thischapter\ 11637,53763
 +\def\seccheck#1{\7f\seccheck\ 11638,53801
 +\def\chapternofonts{\7f\chapternofonts\ 11643,53905
 +\def\result{\7f\result\ 11646,53980
 +\def\equiv{\7f\equiv\ 11647,54015
 +\def\expansion{\7f\expansion\ 11648,54048
 +\def\print{\7f\print\ 11649,54089
 +\def\TeX{\7f\TeX\ 11650,54122
 +\def\dots{\7f\dots\ 11651,54151
 +\def\copyright{\7f\copyright\ 11652,54182
 +\def\tt{\7f\tt\ 11653,54223
 +\def\bf{\7f\bf\ 11654,54250
 +\def\w{\7f\w\ 11655,54278
 +\def\less{\7f\less\ 11656,54303
 +\def\gtr{\7f\gtr\ 11657,54334
 +\def\hat{\7f\hat\ 11658,54363
 +\def\char{\7f\char\ 11659,54392
 +\def\tclose##1{\7f\tclose\ 11660,54423
 +\def\code##1{\7f\code\ 11661,54467
 +\def\samp##1{\7f\samp\ 11662,54507
 +\def\r##1{\7f\r\ 11663,54547
 +\def\b##1{\7f\b\ 11664,54581
 +\def\key##1{\7f\key\ 11665,54615
 +\def\file##1{\7f\file\ 11666,54653
 +\def\kbd##1{\7f\kbd\ 11667,54693
 +\def\i##1{\7f\i\ 11669,54801
 +\def\cite##1{\7f\cite\ 11670,54835
 +\def\var##1{\7f\var\ 11671,54875
 +\def\emph##1{\7f\emph\ 11672,54913
 +\def\dfn##1{\7f\dfn\ 11673,54953
 +\def\thischaptername{\7f\thischaptername\ 11676,54994
 +\outer\def\chapter{\7f\chapter\ 11677,55033
 +\def\chapterzzz #1{\7f\chapterzzz\ 11678,55074
 +{\chapternofonts%\7fnofonts%\ 11687,55470
 +\global\let\section = \numberedsec\7f=\ 11692,55623
 +\global\let\subsection = \numberedsubsec\7f=\ 11693,55658
 +\global\let\subsubsection = \numberedsubsubsec\7f=\ 11694,55699
 +\outer\def\appendix{\7f\appendix\ 11697,55750
 +\def\appendixzzz #1{\7f\appendixzzz\ 11698,55793
 +\global\advance \appendixno by 1 \message{\7fno\ 11700,55870
 +\chapmacro {#1}{Appendix \appendixletter}\7fletter\ 11701,55939
 +\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}\7fletter:\ 11704,56032
 +{\chapternofonts%\7fnofonts%\ 11705,56104
 +  {#1}{Appendix \appendixletter}\7fletter\ 11707,56160
 +\appendixnoderef %\7fnoderef\ 11710,56260
 +\global\let\section = \appendixsec\7f=\ 11711,56279
 +\global\let\subsection = \appendixsubsec\7f=\ 11712,56314
 +\global\let\subsubsection = \appendixsubsubsec\7f=\ 11713,56355
 +\outer\def\top{\7f\top\ 11716,56406
 +\outer\def\unnumbered{\7f\unnumbered\ 11717,56446
 +\def\unnumberedzzz #1{\7f\unnumberedzzz\ 11718,56493
 +{\chapternofonts%\7fnofonts%\ 11722,56656
 +\global\let\section = \unnumberedsec\7f=\ 11727,56806
 +\global\let\subsection = \unnumberedsubsec\7f=\ 11728,56843
 +\global\let\subsubsection = \unnumberedsubsubsec\7f=\ 11729,56886
 +\outer\def\numberedsec{\7f\numberedsec\ 11732,56939
 +\def\seczzz #1{\7f\seczzz\ 11733,56980
 +{\chapternofonts%\7fnofonts%\ 11736,57136
 +\outer\def\appendixsection{\7f\appendixsection\ 11745,57322
 +\outer\def\appendixsec{\7f\appendixsec\ 11746,57379
 +\def\appendixsectionzzz #1{\7f\appendixsectionzzz\ 11747,57432
 +\gdef\thissection{#1}\secheading {#1}{\appendixletter}\7fletter\ 11749,57544
 +{\chapternofonts%\7fnofonts%\ 11750,57612
 +{#1}{\appendixletter}\7fletter\ 11752,57668
 +\appendixnoderef %\7fnoderef\ 11755,57768
 +\outer\def\unnumberedsec{\7f\unnumberedsec\ 11759,57808
 +\def\unnumberedseczzz #1{\7f\unnumberedseczzz\ 11760,57861
 +{\chapternofonts%\7fnofonts%\ 11762,57956
 +\outer\def\numberedsubsec{\7f\numberedsubsec\ 11770,58124
 +\def\numberedsubseczzz #1{\7f\numberedsubseczzz\ 11771,58179
 +{\chapternofonts%\7fnofonts%\ 11774,58358
 +\outer\def\appendixsubsec{\7f\appendixsubsec\ 11783,58562
 +\def\appendixsubseczzz #1{\7f\appendixsubseczzz\ 11784,58617
 +\subsecheading {#1}{\appendixletter}\7fletter\ 11786,58739
 +{\chapternofonts%\7fnofonts%\ 11787,58804
 +{#1}{\appendixletter}\7fletter\ 11789,58863
 +\appendixnoderef %\7fnoderef\ 11792,58978
 +\outer\def\unnumberedsubsec{\7f\unnumberedsubsec\ 11796,59018
 +\def\unnumberedsubseczzz #1{\7f\unnumberedsubseczzz\ 11797,59077
 +{\chapternofonts%\7fnofonts%\ 11799,59178
 +\outer\def\numberedsubsubsec{\7f\numberedsubsubsec\ 11807,59349
 +\def\numberedsubsubseczzz #1{\7f\numberedsubsubseczzz\ 11808,59410
 +{\chapternofonts%\7fnofonts%\ 11812,59607
 +\outer\def\appendixsubsubsec{\7f\appendixsubsubsec\ 11823,59840
 +\def\appendixsubsubseczzz #1{\7f\appendixsubsubseczzz\ 11824,59901
 +  {\appendixletter}\7fletter\ 11827,60040
 +{\chapternofonts%\7fnofonts%\ 11828,60106
 +  {\appendixletter}\7fletter\ 11830,60171
 +\appendixnoderef %\7fnoderef\ 11834,60305
 +\outer\def\unnumberedsubsubsec{\7f\unnumberedsubsubsec\ 11838,60345
 +\def\unnumberedsubsubseczzz #1{\7f\unnumberedsubsubseczzz\ 11839,60410
 +{\chapternofonts%\7fnofonts%\ 11841,60517
 +\def\infotop{\7f\infotop\ 11851,60846
 +\def\infounnumbered{\7f\infounnumbered\ 11852,60884
 +\def\infounnumberedsec{\7f\infounnumberedsec\ 11853,60929
 +\def\infounnumberedsubsec{\7f\infounnumberedsubsec\ 11854,60980
 +\def\infounnumberedsubsubsec{\7f\infounnumberedsubsubsec\ 11855,61037
 +\def\infoappendix{\7f\infoappendix\ 11857,61101
 +\def\infoappendixsec{\7f\infoappendixsec\ 11858,61142
 +\def\infoappendixsubsec{\7f\infoappendixsubsec\ 11859,61189
 +\def\infoappendixsubsubsec{\7f\infoappendixsubsubsec\ 11860,61242
 +\def\infochapter{\7f\infochapter\ 11862,61302
 +\def\infosection{\7f\infosection\ 11863,61341
 +\def\infosubsection{\7f\infosubsection\ 11864,61380
 +\def\infosubsubsection{\7f\infosubsubsection\ 11865,61425
 +\global\let\section = \numberedsec\7f=\ 11870,61662
 +\global\let\subsection = \numberedsubsec\7f=\ 11871,61697
 +\global\let\subsubsection = \numberedsubsubsec\7f=\ 11872,61738
 +\def\majorheading{\7f\majorheading\ 11886,62245
 +\def\majorheadingzzz #1{\7f\majorheadingzzz\ 11887,62290
 +\def\chapheading{\7f\chapheading\ 11893,62523
 +\def\chapheadingzzz #1{\7f\chapheadingzzz\ 11894,62566
 +\def\heading{\7f\heading\ 11899,62761
 +\def\subheading{\7f\subheading\ 11901,62798
 +\def\subsubheading{\7f\subsubheading\ 11903,62841
 +\def\dobreak#1#2{\7f\dobreak\ 11910,63118
 +\def\setchapterstyle #1 {\7f\setchapterstyle\ 11912,63196
 +\def\chapbreak{\7f\chapbreak\ 11919,63451
 +\def\chappager{\7f\chappager\ 11920,63501
 +\def\chapoddpage{\7f\chapoddpage\ 11921,63539
 +\def\setchapternewpage #1 {\7f\setchapternewpage\ 11923,63618
 +\def\CHAPPAGoff{\7f\CHAPPAGoff\ 11925,63675
 +\def\CHAPPAGon{\7f\CHAPPAGon\ 11929,63769
 +\global\def\HEADINGSon{\7f\HEADINGSon\ 11932,63860
 +\def\CHAPPAGodd{\7f\CHAPPAGodd\ 11934,63902
 +\global\def\HEADINGSon{\7f\HEADINGSon\ 11937,63998
 +\def\CHAPFplain{\7f\CHAPFplain\ 11941,64052
 +\def\chfplain #1#2{\7f\chfplain\ 11945,64144
 +\def\unnchfplain #1{\7f\unnchfplain\ 11956,64367
 +\def\unnchfopen #1{\7f\unnchfopen\ 11964,64596
 +\def\chfopen #1#2{\7f\chfopen\ 11970,64804
 +\def\CHAPFopen{\7f\CHAPFopen\ 11975,64948
 +\def\subsecheadingbreak{\7f\subsecheadingbreak\ 11982,65166
 +\def\secheadingbreak{\7f\secheadingbreak\ 11985,65295
 +\def\secheading #1#2#3{\7f\secheading\ 11993,65577
 +\def\plainsecheading #1{\7f\plainsecheading\ 11994,65633
 +\def\secheadingi #1{\7f\secheadingi\ 11995,65676
 +\def\subsecheading #1#2#3#4{\7f\subsecheading\ 12006,66044
 +\def\subsecheadingi #1{\7f\subsecheadingi\ 12007,66111
 +\def\subsubsecfonts{\7f\subsubsecfonts\ 12014,66408
 +\def\subsubsecheading #1#2#3#4#5{\7f\subsubsecheading\ 12017,66531
 +\def\subsubsecheadingi #1{\7f\subsubsecheadingi\ 12018,66609
 +\def\startcontents#1{\7f\startcontents\ 12032,67081
 +   \unnumbchapmacro{#1}\def\thischapter{\7f\thischapter\ 12040,67354
 +\outer\def\contents{\7f\contents\ 12049,67713
 +\outer\def\summarycontents{\7f\summarycontents\ 12057,67857
 +      \def\secentry ##1##2##3##4{\7f\secentry\ 12067,68228
 +      \def\unnumbsecentry ##1##2{\7f\unnumbsecentry\ 12068,68263
 +      \def\subsecentry ##1##2##3##4##5{\7f\subsecentry\ 12069,68298
 +      \def\unnumbsubsecentry ##1##2{\7f\unnumbsubsecentry\ 12070,68339
 +      \def\subsubsecentry ##1##2##3##4##5##6{\7f\subsubsecentry\ 12071,68377
 +      \def\unnumbsubsubsecentry ##1##2{\7f\unnumbsubsubsecentry\ 12072,68424
 +\def\chapentry#1#2#3{\7f\chapentry\ 12085,68858
 +\def\shortchapentry#1#2#3{\7f\shortchapentry\ 12088,68975
 +    {#2\labelspace #1}\7fspace\ 12091,69085
 +\def\unnumbchapentry#1#2{\7f\unnumbchapentry\ 12094,69139
 +\def\shortunnumberedentry#1#2{\7f\shortunnumberedentry\ 12095,69186
 +\def\secentry#1#2#3#4{\7f\secentry\ 12102,69350
 +\def\unnumbsecentry#1#2{\7f\unnumbsecentry\ 12103,69409
 +\def\subsecentry#1#2#3#4#5{\7f\subsecentry\ 12106,69470
 +\def\unnumbsubsecentry#1#2{\7f\unnumbsubsecentry\ 12107,69540
 +\def\subsubsecentry#1#2#3#4#5#6{\7f\subsubsecentry\ 12110,69614
 +  \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}\7fspace\ 12111,69648
 +\def\unnumbsubsubsecentry#1#2{\7f\unnumbsubsubsecentry\ 12112,69699
 +\def\dochapentry#1#2{\7f\dochapentry\ 12123,70073
 +\def\dosecentry#1#2{\7f\dosecentry\ 12138,70678
 +\def\dosubsecentry#1#2{\7f\dosubsecentry\ 12145,70856
 +\def\dosubsubsecentry#1#2{\7f\dosubsubsecentry\ 12152,71041
 +\def\labelspace{\7f\labelspace\ 12160,71292
 +\def\dopageno#1{\7f\dopageno\ 12162,71327
 +\def\doshortpageno#1{\7f\doshortpageno\ 12163,71353
 +\def\chapentryfonts{\7f\chapentryfonts\ 12165,71385
 +\def\secentryfonts{\7f\secentryfonts\ 12166,71420
 +\def\point{\7f\point\ 12192,72379
 +\def\result{\7f\result\ 12194,72400
 +\def\expansion{\7f\expansion\ 12195,72473
 +\def\print{\7f\print\ 12196,72544
 +\def\equiv{\7f\equiv\ 12198,72611
 +\def\error{\7f\error\ 12218,73384
 +\def\tex{\7f\tex\ 12224,73613
 +\def\@{\7f\@\ 12242,73996
 +\gdef\sepspaces{\def {\ }}}\7f\\ 12265,74728
 +\def\aboveenvbreak{\7f\aboveenvbreak\ 12268,74810
 +\def\afterenvbreak{\7f\afterenvbreak\ 12272,74976
 +\def\ctl{\7f\ctl\ 12286,75487
 +\def\ctr{\7f\ctr\ 12287,75559
 +\def\cbl{\7f\cbl\ 12288,75598
 +\def\cbr{\7f\cbr\ 12289,75638
 +\def\carttop{\7f\carttop\ 12290,75677
 +\def\cartbot{\7f\cartbot\ 12293,75785
 +\long\def\cartouche{\7f\cartouche\ 12299,75925
 +\def\Ecartouche{\7f\Ecartouche\ 12326,76713
 +\def\lisp{\7f\lisp\ 12338,76848
 +\def\Elisp{\7f\Elisp\ 12348,77195
 +\def\next##1{\7f\next\ 12360,77521
 +\def\Eexample{\7f\Eexample\ 12364,77563
 +\def\Esmallexample{\7f\Esmallexample\ 12367,77610
 +\def\smalllispx{\7f\smalllispx\ 12373,77788
 +\def\Esmalllisp{\7f\Esmalllisp\ 12383,78142
 +\obeyspaces \obeylines \ninett \indexfonts \rawbackslash\7ffonts\ 12396,78498
 +\def\next##1{\7f\next\ 12397,78555
 +\def\display{\7f\display\ 12401,78635
 +\def\Edisplay{\7f\Edisplay\ 12410,78954
 +\def\next##1{\7f\next\ 12422,79265
 +\def\format{\7f\format\ 12426,79368
 +\def\Eformat{\7f\Eformat\ 12434,79664
 +\def\next##1{\7f\next\ 12437,79753
 +\def\flushleft{\7f\flushleft\ 12441,79805
 +\def\Eflushleft{\7f\Eflushleft\ 12451,80176
 +\def\next##1{\7f\next\ 12454,80269
 +\def\flushright{\7f\flushright\ 12456,80291
 +\def\Eflushright{\7f\Eflushright\ 12466,80663
 +\def\next##1{\7f\next\ 12470,80794
 +\def\quotation{\7f\quotation\ 12474,80852
 +\def\Equotation{\7f\Equotation\ 12480,81044
 +\def\setdeffont #1 {\7f\setdeffont\ 12493,81442
 +\newskip\defbodyindent \defbodyindent=.4in\7fbodyindent\ 12495,81488
 +\newskip\defargsindent \defargsindent=50pt\7fargsindent\ 12496,81531
 +\newskip\deftypemargin \deftypemargin=12pt\7ftypemargin\ 12497,81574
 +\newskip\deflastargmargin \deflastargmargin=18pt\7flastargmargin\ 12498,81617
 +\def\activeparens{\7f\activeparens\ 12503,81815
 +\def\opnr{\7f\opnr\ 12529,83027
 +\def\lbrb{\7f\lbrb\ 12530,83092
 +\def\defname #1#2{\7f\defname\ 12536,83293
 +\advance\dimen2 by -\defbodyindent\7fbodyindent\ 12540,83411
 +\advance\dimen3 by -\defbodyindent\7fbodyindent\ 12542,83465
 +\setbox0=\hbox{\hskip \deflastargmargin{\7flastargmargin\ 12544,83519
 +\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations\7fargsindent\ 12546,83661
 +\parshape 2 0in \dimen0 \defargsindent \dimen1     %\7fargsindent\ 12547,83736
 +\rlap{\rightline{{\rm #2}\hskip \deftypemargin}\7ftypemargin\ 12554,84105
 +\advance\leftskip by -\defbodyindent\7fbodyindent\ 12557,84239
 +\exdentamount=\defbodyindent\7fbodyindent\ 12558,84276
 +\def\defparsebody #1#2#3{\7f\defparsebody\ 12568,84635
 +\def#1{\7f2572,84819
 +\def#2{\7f2573,84855
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12575,84927
 +\exdentamount=\defbodyindent\7fbodyindent\ 12576,85001
 +\def\defmethparsebody #1#2#3#4 {\7f\defmethparsebody\ 12581,85105
 +\def#1{\7f2585,85266
 +\def#2##1 {\7f2586,85302
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12588,85385
 +\exdentamount=\defbodyindent\7fbodyindent\ 12589,85459
 +\def\defopparsebody #1#2#3#4#5 {\7f\defopparsebody\ 12592,85544
 +\def#1{\7f2596,85705
 +\def#2##1 ##2 {\7f2597,85741
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12600,85841
 +\exdentamount=\defbodyindent\7fbodyindent\ 12601,85915
 +\def\defvarparsebody #1#2#3{\7f\defvarparsebody\ 12608,86186
 +\def#1{\7f2612,86373
 +\def#2{\7f2613,86409
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12615,86468
 +\exdentamount=\defbodyindent\7fbodyindent\ 12616,86542
 +\def\defvrparsebody #1#2#3#4 {\7f\defvrparsebody\ 12621,86633
 +\def#1{\7f2625,86792
 +\def#2##1 {\7f2626,86828
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12628,86898
 +\exdentamount=\defbodyindent\7fbodyindent\ 12629,86972
 +\def\defopvarparsebody #1#2#3#4#5 {\7f\defopvarparsebody\ 12632,87044
 +\def#1{\7f2636,87208
 +\def#2##1 ##2 {\7f2637,87244
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12640,87331
 +\exdentamount=\defbodyindent\7fbodyindent\ 12641,87405
 +\def\defunargs #1{\7f\defunargs\ 12664,88165
 +\def\deftypefunargs #1{\7f\deftypefunargs\ 12676,88547
 +\def\deffn{\7f\deffn\ 12690,88929
 +\def\deffnheader #1#2#3{\7f\deffnheader\ 12692,88986
 +\begingroup\defname {\7fname\ 12693,89034
 +\def\defun{\7f\defun\ 12699,89179
 +\def\defunheader #1#2{\7f\defunheader\ 12701,89232
 +\begingroup\defname {\7fname\ 12702,89307
 +\defunargs {\7funargs\ 12703,89343
 +\def\deftypefun{\7f\deftypefun\ 12709,89491
 +\def\deftypefunheader #1#2{\7f\deftypefunheader\ 12712,89613
 +\def\deftypefunheaderx #1#2 #3\relax{\7f\deftypefunheaderx\ 12714,89722
 +\begingroup\defname {\7fname\ 12716,89814
 +\deftypefunargs {\7ftypefunargs\ 12717,89860
 +\def\deftypefn{\7f\deftypefn\ 12723,90031
 +\def\deftypefnheader #1#2#3{\7f\deftypefnheader\ 12726,90180
 +\def\deftypefnheaderx #1#2#3 #4\relax{\7f\deftypefnheaderx\ 12728,90316
 +\begingroup\defname {\7fname\ 12730,90409
 +\deftypefunargs {\7ftypefunargs\ 12731,90449
 +\def\defmac{\7f\defmac\ 12737,90570
 +\def\defmacheader #1#2{\7f\defmacheader\ 12739,90627
 +\begingroup\defname {\7fname\ 12740,90703
 +\defunargs {\7funargs\ 12741,90736
 +\def\defspec{\7f\defspec\ 12747,90860
 +\def\defspecheader #1#2{\7f\defspecheader\ 12749,90921
 +\begingroup\defname {\7fname\ 12750,90998
 +\defunargs {\7funargs\ 12751,91038
 +\def\deffnx #1 {\7f\deffnx\ 12758,91233
 +\def\defunx #1 {\7f\defunx\ 12759,91290
 +\def\defmacx #1 {\7f\defmacx\ 12760,91347
 +\def\defspecx #1 {\7f\defspecx\ 12761,91406
 +\def\deftypefnx #1 {\7f\deftypefnx\ 12762,91467
 +\def\deftypeunx #1 {\7f\deftypeunx\ 12763,91532
 +\def\defop #1 {\7f\defop\ 12769,91678
 +\defopparsebody\Edefop\defopx\defopheader\defoptype}\7fopparsebody\Edefop\defopx\defopheader\defoptype\ 12770,91713
 +\def\defopheader #1#2#3{\7f\defopheader\ 12772,91767
 +\begingroup\defname {\7fname\ 12774,91856
 +\defunargs {\7funargs\ 12775,91902
 +\def\defmethod{\7f\defmethod\ 12780,91963
 +\def\defmethodheader #1#2#3{\7f\defmethodheader\ 12782,92036
 +\begingroup\defname {\7fname\ 12784,92124
 +\defunargs {\7funargs\ 12785,92164
 +\def\defcv #1 {\7f\defcv\ 12790,92238
 +\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}\7fopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype\ 12791,92273
 +\def\defcvarheader #1#2#3{\7f\defcvarheader\ 12793,92332
 +\begingroup\defname {\7fname\ 12795,92418
 +\defvarargs {\7fvarargs\ 12796,92464
 +\def\defivar{\7f\defivar\ 12801,92537
 +\def\defivarheader #1#2#3{\7f\defivarheader\ 12803,92600
 +\begingroup\defname {\7fname\ 12805,92686
 +\defvarargs {\7fvarargs\ 12806,92737
 +\def\defopx #1 {\7f\defopx\ 12812,92886
 +\def\defmethodx #1 {\7f\defmethodx\ 12813,92943
 +\def\defcvx #1 {\7f\defcvx\ 12814,93008
 +\def\defivarx #1 {\7f\defivarx\ 12815,93065
 +\def\defvarargs #1{\7f\defvarargs\ 12822,93336
 +\def\defvr{\7f\defvr\ 12828,93480
 +\def\defvrheader #1#2#3{\7f\defvrheader\ 12830,93535
 +\begingroup\defname {\7fname\ 12831,93583
 +\def\defvar{\7f\defvar\ 12835,93668
 +\def\defvarheader #1#2{\7f\defvarheader\ 12837,93728
 +\begingroup\defname {\7fname\ 12838,93799
 +\defvarargs {\7fvarargs\ 12839,93835
 +\def\defopt{\7f\defopt\ 12844,93901
 +\def\defoptheader #1#2{\7f\defoptheader\ 12846,93961
 +\begingroup\defname {\7fname\ 12847,94032
 +\defvarargs {\7fvarargs\ 12848,94071
 +\def\deftypevar{\7f\deftypevar\ 12853,94128
 +\def\deftypevarheader #1#2{\7f\deftypevarheader\ 12856,94244
 +\begingroup\defname {\7fname\ 12858,94327
 +\def\deftypevr{\7f\deftypevr\ 12865,94501
 +\def\deftypevrheader #1#2#3{\7f\deftypevrheader\ 12867,94572
 +\begingroup\defname {\7fname\ 12868,94624
 +\def\defvrx #1 {\7f\defvrx\ 12876,94861
 +\def\defvarx #1 {\7f\defvarx\ 12877,94918
 +\def\defoptx #1 {\7f\defoptx\ 12878,94977
 +\def\deftypevarx #1 {\7f\deftypevarx\ 12879,95036
 +\def\deftypevrx #1 {\7f\deftypevrx\ 12880,95103
 +\def\deftpargs #1{\7f\deftpargs\ 12885,95252
 +\def\deftp{\7f\deftp\ 12889,95332
 +\def\deftpheader #1#2#3{\7f\deftpheader\ 12891,95387
 +\begingroup\defname {\7fname\ 12892,95435
 +\def\deftpx #1 {\7f\deftpx\ 12897,95594
 +\def\setref#1{\7f\setref\ 12908,95915
 +\def\unnumbsetref#1{\7f\unnumbsetref\ 12913,96029
 +\def\appendixsetref#1{\7f\appendixsetref\ 12918,96136
 +\def\pxref#1{\7f\pxref\ 12929,96547
 +\def\xref#1{\7f\xref\ 12930,96583
 +\def\ref#1{\7f\ref\ 12931,96618
 +\def\xrefX[#1,#2,#3,#4,#5,#6]{\7f\xrefX[\ 12932,96648
 +\def\printedmanual{\7f\printedmanual\ 12933,96691
 +\def\printednodename{\7f\printednodename\ 12934,96729
 +\def\printednodename{\7f\printednodename\ 12939,96854
 +section ``\printednodename'' in \cite{\printedmanual}\7f\printedmanual\ 12954,97487
 +\refx{\7fx\ 12957,97565
 +\def\dosetq #1#2{\7f\dosetq\ 12965,97785
 +\def\internalsetq #1#2{\7f\internalsetq\ 12973,98043
 +\def\Ypagenumber{\7f\Ypagenumber\ 12977,98144
 +\def\Ytitle{\7f\Ytitle\ 12979,98170
 +\def\Ynothing{\7f\Ynothing\ 12981,98197
 +\def\Ysectionnumberandtype{\7f\Ysectionnumberandtype\ 12983,98214
 +\def\Yappendixletterandtype{\7f\Yappendixletterandtype\ 12992,98530
 +\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{\7fno\ 12993,98560
 +\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %\7fno.\the\secno\ 12994,98615
 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %\7fno.\the\secno.\the\subsecno\ 12996,98719
 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %\7fno.\the\secno.\the\subsecno.\the\subsubsecno\ 12998,98790
 +  \def\linenumber{\7f\linenumber\ 13009,99129
 +\def\refx#1#2{\7f\refx\ 13015,99313
 +\def\xrdef #1#2{\7f\xrdef\ 13037,99939
 +\def\readauxfile{\7f\readauxfile\ 13040,100024
 +\def\supereject{\7f\supereject\ 13110,101805
 +\footstrut\parindent=\defaultparindent\hang\textindent{\7faultparindent\hang\textindent\ 13131,102490
 +\def\openindices{\7f\openindices\ 13139,102676
 +\newdimen\defaultparindent \defaultparindent = 15pt\7faultparindent\ 13151,102901
 +\parindent = \defaultparindent\7faultparindent\ 13152,102953
 +\def\smallbook{\7f\smallbook\ 13175,103677
 +\global\def\Esmallexample{\7f\Esmallexample\ 13192,104104
 +\def\afourpaper{\7f\afourpaper\ 13196,104195
 +\def\finalout{\7f\finalout\ 13224,105003
 +\def\normaldoublequote{\7f\normaldoublequote\ 13235,105264
 +\def\normaltilde{\7f\normaltilde\ 13236,105290
 +\def\normalcaret{\7f\normalcaret\ 13237,105310
 +\def\normalunderscore{\7f\normalunderscore\ 13238,105330
 +\def\normalverticalbar{\7f\normalverticalbar\ 13239,105355
 +\def\normalless{\7f\normalless\ 13240,105381
 +\def\normalgreater{\7f\normalgreater\ 13241,105400
 +\def\normalplus{\7f\normalplus\ 13242,105422
 +\def\ifusingtt#1#2{\7f\ifusingtt\ 13253,105914
 +\def\activedoublequote{\7f\activedoublequote\ 13261,106242
 +\def~{\7f~\ 13264,106328
 +\def^{\7f^\ 13267,106389
 +\def_{\7f_\ 13270,106428
 +\def\_{\7f\_\ 13272,106502
 +\def\lvvmode{\7f\lvvmode\ 13279,106839
 +\def|{\7f|\ 13282,106889
 +\def<{\7f<\ 13285,106952
 +\def>{\7f>\ 13288,107009
 +\def+{\7f+\ 13290,107047
 +\def\turnoffactive{\7f\turnoffactive\ 13296,107208
 +\global\def={\7f=\ 13307,107494
 +\def\normalbackslash{\7f\normalbackslash\ 13321,107876
 +\f
 +c-src/c.c,76
 +T f(\7f1,0
 +}T i;\7f2,14
 +void bar(\7f5,69
 +int foobar(\7f6,94
 +interface_locate(\7f9,131
 +\f
 +c.c,1836
 +void (*fa)\7ffa\ 1131,
 +void \7f132,
 +my_printf \7f135,
 +void fatala \7f138,
 +void fatalb \7f139,
 +max \7f141,
 +struct bar \7f143,
 +__attribute__ ((always_inline)) max \7f147,
 +extern int old_var \7f149,
 +struct foo\7f150,
 +char stack[\7fstack\ 1155,
 +struct S \7f156,
 +} wait_status_ptr_t \7f161,
 +Some_Class  A \7f162,
 +typedef T1 T3 \7f163,
 +T3 z \7f164,
 +typedef int more_aligned_int \7f165,
 +struct S  __attribute__ ((vector_size (16))) foo;\7f166,
 +int foo \7f167,
 +char *__attribute__((aligned(8))) *f;\7ff\ 1168,
 +int i \7f169,
 +extern void foobar \7f170,
 +typedef struct cacheLRUEntry_s\7f172,
 +__attribute__ ((packed)) cacheLRUEntry_t;\7f177,
 +struct foo \7f178,
 +     f1 \7f183,
 +void f2 \7f184,
 +__attribute__((noreturn)) void d0 \7f185,
 +  __attribute__((format(printf, 1, 2))) d1 \7f186,
 +  d2 \7f187,
 +int x \7f188,
 +struct foo \7f189,
 +short array[\7farray\ 1190,
 +int f\7f193,
 +DEAFUN \7f196,
 +XDEFUN \7f203,
 +DEFUN ("x-get-selection-internal", Fx_get_selection_internal,\7fx-get-selection-internal\ 1206,
 +       Fx_get_selection_internal,\7fx-get-selection-internal\ 1212,
 +      Fy_get_selection_internal,\7fy-get-selection-internal\ 1216,
 +defun_func1(\7f218,
 +DEFUN_func2(\7f220,
 +typedef int bool;\7f222,
 +bool funcboo \7f223,
 +struct my_struct \7f226,
 +typedef struct my_struct my_typedef;\7f228,
 +int bla \7f229,
 +a(\7f234,
 +int func1\7f237,
 +static struct cca_control init_control \7f239,
 +static tpcmd rbtp \7f240,
 +static byte ring1 \7f241,
 +static byte ring2 \7f242,
 +request request \7f243,
 +int func2 \7f246,
 +  aaa;\7f249,
 +  bbb;\7f251,
 +struct sss1 \7f252,
 +struct sss2\7f253,
 +  struct ss3\7f255,
 +struct a b;\7f259,
 +struct aa *b;\7fb\ 1260,
 +  **b;\7fb\ 1262,
 +caccacacca \7f263,
 +a \7f267,
 +  typedef struct aa \7f269,
 +  typedef struct aa {} aaa;\7f269,
 +static void inita \7f271,
 +node *lasta \7flasta\ 1272,
 +b \7f273,
 +  typedef  int bb;\7f275,
 +static void initb \7f277,
 +node *lastb \7flastb\ 1278,
 +typedef enum { REG_ENOSYS \7f279,
 +typedef enum { REG_ENOSYS = -1, aa \7f279,
 +typedef enum { REG_ENOSYS = -1, aa } reg_errcode_t;\7f279,
 +\f
 +c-src/a/b/b.c,18
 +#define this \7f1,0
 +\f
 +../c/c.web,20
 +#define questo \7f34,
 +\f
 +y-src/parse.y,1061
 +#define obstack_chunk_alloc \7f46,1116
 +#define obstack_chunk_free \7f47,1154
 +int yylex \7f57,1322
 +void yyerror \7f59,1352
 +void yyerror \7f61,1381
 +VOIDSTAR parse_hash;\7f63,1405
 +extern VOIDSTAR hash_find(\7f64,1426
 +unsigned char fnin[\7ffnin\ 167,1524
 +#define YYSTYPE \7f71,1622
 +typedef struct node *YYSTYPE;\7fYYSTYPE\ 172,1653
 +YYSTYPE parse_return;\7f73,1683
 +YYSTYPE make_list \7f75,1721
 +YYSTYPE make_list \7f77,1765
 +char *instr;\7finstr\ 180,1795
 +int parse_error \7f81,1808
 +extern struct obstack tmp_mem;\7f82,1829
 +line:\7fline\ 186,1867
 +exp:\7fexp\ 194,1980
 +exp_list:\7fexp_list\ 1262,5647
 +range_exp:\7frange_exp\ 1268,5745
 +range_exp_list:\7frange_exp_list\ 1272,5775
 +cell:\7fcell\ 1278,5893
 +yyerror FUN1(\7f285,5940
 +make_list FUN2(\7f292,6020
 +#define ERROR \7f303,6220
 +extern struct node *yylval;\7fyylval\ 1305,6238
 +unsigned char parse_cell_or_range \7f308,6283
 +unsigned char parse_cell_or_range \7f310,6347
 +yylex FUN0(\7f314,6397
 +parse_cell_or_range FUN2(\7f586,11763
 +#define CK_ABS_R(\7f670,13205
 +#define CK_REL_R(\7f674,13284
 +#define CK_ABS_C(\7f679,13413
 +#define CK_REL_C(\7f683,13492
 +#define MAYBEREL(\7f688,13621
 +str_to_col FUN1(\7f846,16822
 +\f
 +y-src/parse.c,520
 +#define YYBISON \7f4,64
 +# define      NE      \7f6,114
 +# define      LE      \7f7,130
 +# define      GE      \7f8,146
 +# define      NEG     \7f9,162
 +# define      L_CELL  \7f10,179
 +# define      L_RANGE \7f11,199
 +# define      L_VAR   \7f12,220
 +# define      L_CONST \7f13,239
 +# define      L_FN0   \7f14,260
 +# define      L_FN1   \7f15,279
 +# define      L_FN2   \7f16,298
 +# define      L_FN3   \7f17,317
 +# define      L_FN4   \7f18,336
 +# define      L_FNN   \7f19,355
 +# define      L_FN1R  \7f20,374
 +# define      L_FN2R  \7f21,394
 +# define      L_FN3R  \7f22,414
 +# define      L_FN4R  \7f23,434
 +# define      L_FNNR  \7f24,454
 +# define      L_LE    \7f25,474
 +# define      L_NE    \7f26,492
 +# define      L_GE    \7f27,510
 +\f
 +parse.y,1464
 +#define obstack_chunk_alloc \7f46,
 +#define obstack_chunk_free \7f47,
 +int yylex \7f57,
 +void yyerror \7f59,
 +void yyerror \7f61,
 +VOIDSTAR parse_hash;\7f63,
 +extern VOIDSTAR hash_find(\7f64,
 +unsigned char fnin[\7ffnin\ 167,
 +#define YYSTYPE \7f71,
 +typedef struct node *YYSTYPE;\7fYYSTYPE\ 172,
 +YYSTYPE parse_return;\7f73,
 +YYSTYPE make_list \7f75,
 +YYSTYPE make_list \7f77,
 +char *instr;\7finstr\ 180,
 +int parse_error \7f81,
 +extern struct obstack tmp_mem;\7f82,
 +#define YYSTYPE \7f85,
 +# define YYDEBUG \7f88,
 +#define       YYFINAL \7f93,
 +#define       YYFLAG  \7f94,
 +#define       YYNTBASE        \7f95,
 +#define YYTRANSLATE(\7f98,
 +static const char yytranslate[\7fyytranslate\ 1101,
 +static const short yyprhs[\7fyyprhs\ 1134,
 +static const short yyrhs[\7fyyrhs\ 1142,
 +static const short yyrline[\7fyyrline\ 1171,
 +static const char *const yytname[\7fyytname\ 1185,
 +static const short yyr1[\7fyyr1\ 1197,
 +static const short yyr2[\7fyyr2\ 1207,
 +static const short yydefact[\7fyydefact\ 1219,
 +static const short yydefgoto[\7fyydefgoto\ 1237,
 +static const short yypact[\7fyypact\ 1242,
 +static const short yypgoto[\7fyypgoto\ 1260,
 +#define       YYLAST  \7f266,
 +static const short yytable[\7fyytable\ 1269,
 +static const short yycheck[\7fyycheck\ 1330,
 +yyerror FUN1(\7f285,
 +make_list FUN2(\7f292,
 +#define ERROR \7f303,
 +extern struct node *yylval;\7fyylval\ 1305,
 +unsigned char parse_cell_or_range \7f308,
 +unsigned char parse_cell_or_range \7f310,
 +yylex FUN0(\7f314,
 +parse_cell_or_range FUN2(\7f586,
 +#define CK_ABS_R(\7f670,
 +#define CK_REL_R(\7f674,
 +#define CK_ABS_C(\7f679,
 +#define CK_REL_C(\7f683,
 +#define MAYBEREL(\7f688,
 +str_to_col FUN1(\7f846,
 +\f
 +/usr/share/bison/bison.simple,2180
 +# define YYSTD(\7f40,
 +# define YYSTD(\7f42,
 +#  define YYSTACK_ALLOC \7f50,
 +#  define YYSIZE_T \7f51,
 +#    define YYSTACK_ALLOC \7f55,
 +#    define YYSIZE_T \7f56,
 +#     define YYSTACK_ALLOC \7f59,
 +#  define YYSTACK_FREE(\7f67,
 +#   define YYSIZE_T \7f71,
 +#    define YYSIZE_T \7f75,
 +#  define YYSTACK_ALLOC \7f78,
 +#  define YYSTACK_FREE \7f79,
 +union yyalloc\7f83,
 +# define YYSTACK_GAP_MAX \7f93,
 +#  define YYSTACK_BYTES(\7f98,
 +#  define YYSTACK_BYTES(\7f102,
 +# define YYSTACK_RELOCATE(\7f112,
 +# define YYSIZE_T \7f128,
 +# define YYSIZE_T \7f131,
 +#  define YYSIZE_T \7f136,
 +#   define YYSIZE_T \7f140,
 +# define YYSIZE_T \7f145,
 +#define yyerrok       \7f148,
 +#define yyclearin     \7f149,
 +#define YYEMPTY       \7f150,
 +#define YYEOF \7f151,
 +#define YYACCEPT      \7f152,
 +#define YYABORT \7f153,
 +#define YYERROR       \7f154,
 +#define YYFAIL        \7f158,
 +#define YYRECOVERING(\7f159,
 +#define YYBACKUP(\7f160,
 +#define YYTERROR      \7f177,
 +#define YYERRCODE     \7f178,
 +# define YYLLOC_DEFAULT(\7f189,
 +#   define YYLEX      \7f200,
 +#   define YYLEX      \7f202,
 +#   define YYLEX      \7f206,
 +#   define YYLEX      \7f208,
 +# define YYLEX        \7f212,
 +#  define YYFPRINTF \7f225,
 +# define YYDPRINTF(\7f228,
 +int yydebug;\7f237,
 +# define YYDPRINTF(\7f239,
 +# define YYINITDEPTH \7f244,
 +# undef YYMAXDEPTH\7f255,
 +# define YYMAXDEPTH \7f259,
 +#  define yymemcpy \7f264,
 +yymemcpy \7f271,
 +#   define yystrlen \7f293,
 +yystrlen \7f298,
 +#   define yystpcpy \7f316,
 +yystpcpy \7f322,
 +#  define YYPARSE_PARAM_ARG \7f351,
 +#  define YYPARSE_PARAM_DECL\7f352,
 +#  define YYPARSE_PARAM_ARG \7f354,
 +#  define YYPARSE_PARAM_DECL \7f355,
 +# define YYPARSE_PARAM_ARG\7f358,
 +# define YYPARSE_PARAM_DECL\7f359,
 +int yyparse \7f365,
 +int yyparse \7f367,
 +#define YY_DECL_NON_LSP_VARIABLES     \7f374,
 +# define YY_DECL_VARIABLES    \7f385,
 +# define YY_DECL_VARIABLES    \7f391,
 +yyparse \7f403,
 +# define YYPOPSTACK \7f445,
 +# define YYPOPSTACK \7f447,
 +# undef YYSTACK_RELOCATE\7f548,
 +  *++yyvsp \7fyyvsp\ 1746,
 +  *++yylsp \7fyylsp\ 1748,
 +  yyn \7f755,
 +  yystate \7f757,
 +    yystate \7f761,
 +  goto yynewstate;\7f763,
 +  goto yyerrlab1;\7f823,
 +  yyerrstatus \7f846,
 +  goto yyerrhandle;\7f848,
 +  yyn \7f861,
 +  yystate \7f875,
 +  yyn \7f895,
 +  yyn \7f903,
 +  YYDPRINTF \7f917,
 +  *++yyvsp \7fyyvsp\ 1919,
 +  *++yylsp \7fyylsp\ 1921,
 +  yystate \7f924,
 +  goto yynewstate;\7f925,
 +  yyresult \7f932,
 +  goto yyreturn;\7f933,
 +  yyresult \7f939,
 +  goto yyreturn;\7f940,
 +  yyerror \7f946,
 +  yyresult \7f947,
 +\f
 +y-src/atest.y,9
 +exp   \7f2,3
 +\f
 +y-src/cccp.c,303
 +#define YYBISON \7f4,63
 +# define      INT     \7f6,113
 +# define      CHAR    \7f7,130
 +# define      NAME    \7f8,148
 +# define      ERROR   \7f9,166
 +# define      OR      \7f10,185
 +# define      AND     \7f11,201
 +# define      EQUAL   \7f12,218
 +# define      NOTEQUAL        \7f13,237
 +# define      LEQ     \7f14,259
 +# define      GEQ     \7f15,276
 +# define      LSH     \7f16,293
 +# define      RSH     \7f17,310
 +# define      UNARY   \7f18,327
 +\f
 +cccp.y,2005
 +typedef unsigned char U_CHAR;\7f38,
 +struct arglist \7f41,
 +#define NULL \7f51,
 +#define GENERIC_PTR \7f56,
 +#define GENERIC_PTR \7f58,
 +#define NULL_PTR \7f63,
 +int yylex \7f66,
 +void yyerror \7f67,
 +int expression_value;\7f68,
 +static jmp_buf parse_return_error;\7f70,
 +static int keyword_parsing \7f73,
 +extern unsigned char is_idstart[\7fis_idstart\ 176,
 +extern unsigned char is_idstart[], is_idchar[\7fis_idchar\ 176,
 +extern unsigned char is_idstart[], is_idchar[], is_hor_space[\7fis_hor_space\ 176,
 +extern char *xmalloc \7fxmalloc\ 178,
 +extern int pedantic;\7f81,
 +extern int traditional;\7f84,
 +#define CHAR_TYPE_SIZE \7f87,
 +#define INT_TYPE_SIZE \7f91,
 +#define LONG_TYPE_SIZE \7f95,
 +#define WCHAR_TYPE_SIZE \7f99,
 +#define possible_sum_sign(\7f104,
 +static void integer_overflow \7f106,
 +static long left_shift \7f107,
 +static long right_shift \7f108,
 +  struct constant \7f113,
 +  struct name \7f114,
 +} yystype;\7f118,
 +# define YYSTYPE \7f119,
 +# define YYDEBUG \7f122,
 +#define       YYFINAL \7f127,
 +#define       YYFLAG  \7f128,
 +#define       YYNTBASE        \7f129,
 +#define YYTRANSLATE(\7f132,
 +static const char yytranslate[\7fyytranslate\ 1135,
 +static const short yyprhs[\7fyyprhs\ 1167,
 +static const short yyrhs[\7fyyrhs\ 1174,
 +static const short yyrline[\7fyyrline\ 1195,
 +static const char *const yytname[\7fyytname\ 1208,
 +static const short yyr1[\7fyyr1\ 1219,
 +static const short yyr2[\7fyyr2\ 1228,
 +static const short yydefact[\7fyydefact\ 1239,
 +static const short yydefgoto[\7fyydefgoto\ 1251,
 +static const short yypact[\7fyypact\ 1256,
 +static const short yypgoto[\7fyypgoto\ 1268,
 +#define       YYLAST  \7f274,
 +static const short yytable[\7fyytable\ 1277,
 +static const short yycheck[\7fyycheck\ 1301,
 +static char *lexptr;\7flexptr\ 1332,
 +parse_number \7f341,
 +struct token \7f437,
 +static struct token tokentab2[\7ftokentab2\ 1442,
 +yylex \7f459,
 +parse_escape \7f740,
 +yyerror \7f836,
 +integer_overflow \7f844,
 +left_shift \7f851,
 +right_shift \7f873,
 +parse_c_expression \7f893,
 +extern int yydebug;\7f919,
 +main \7f923,
 +unsigned char is_idchar[\7fis_idchar\ 1948,
 +unsigned char is_idstart[\7fis_idstart\ 1950,
 +char is_hor_space[\7fis_hor_space\ 1953,
 +initialize_random_junk \7f958,
 +error \7f988,
 +warning \7f993,
 +lookup \7f999,
 +\f
 +/usr/share/bison/bison.simple,2180
 +# define YYSTD(\7f41,
 +# define YYSTD(\7f43,
 +#  define YYSTACK_ALLOC \7f51,
 +#  define YYSIZE_T \7f52,
 +#    define YYSTACK_ALLOC \7f56,
 +#    define YYSIZE_T \7f57,
 +#     define YYSTACK_ALLOC \7f60,
 +#  define YYSTACK_FREE(\7f68,
 +#   define YYSIZE_T \7f72,
 +#    define YYSIZE_T \7f76,
 +#  define YYSTACK_ALLOC \7f79,
 +#  define YYSTACK_FREE \7f80,
 +union yyalloc\7f84,
 +# define YYSTACK_GAP_MAX \7f94,
 +#  define YYSTACK_BYTES(\7f99,
 +#  define YYSTACK_BYTES(\7f103,
 +# define YYSTACK_RELOCATE(\7f113,
 +# define YYSIZE_T \7f129,
 +# define YYSIZE_T \7f132,
 +#  define YYSIZE_T \7f137,
 +#   define YYSIZE_T \7f141,
 +# define YYSIZE_T \7f146,
 +#define yyerrok       \7f149,
 +#define yyclearin     \7f150,
 +#define YYEMPTY       \7f151,
 +#define YYEOF \7f152,
 +#define YYACCEPT      \7f153,
 +#define YYABORT \7f154,
 +#define YYERROR       \7f155,
 +#define YYFAIL        \7f159,
 +#define YYRECOVERING(\7f160,
 +#define YYBACKUP(\7f161,
 +#define YYTERROR      \7f178,
 +#define YYERRCODE     \7f179,
 +# define YYLLOC_DEFAULT(\7f190,
 +#   define YYLEX      \7f201,
 +#   define YYLEX      \7f203,
 +#   define YYLEX      \7f207,
 +#   define YYLEX      \7f209,
 +# define YYLEX        \7f213,
 +#  define YYFPRINTF \7f226,
 +# define YYDPRINTF(\7f229,
 +int yydebug;\7f238,
 +# define YYDPRINTF(\7f240,
 +# define YYINITDEPTH \7f245,
 +# undef YYMAXDEPTH\7f256,
 +# define YYMAXDEPTH \7f260,
 +#  define yymemcpy \7f265,
 +yymemcpy \7f272,
 +#   define yystrlen \7f294,
 +yystrlen \7f299,
 +#   define yystpcpy \7f317,
 +yystpcpy \7f323,
 +#  define YYPARSE_PARAM_ARG \7f351,
 +#  define YYPARSE_PARAM_DECL\7f352,
 +#  define YYPARSE_PARAM_ARG \7f354,
 +#  define YYPARSE_PARAM_DECL \7f355,
 +# define YYPARSE_PARAM_ARG\7f358,
 +# define YYPARSE_PARAM_DECL\7f359,
 +int yyparse \7f365,
 +int yyparse \7f367,
 +#define YY_DECL_NON_LSP_VARIABLES     \7f374,
 +# define YY_DECL_VARIABLES    \7f385,
 +# define YY_DECL_VARIABLES    \7f391,
 +yyparse \7f403,
 +# define YYPOPSTACK \7f445,
 +# define YYPOPSTACK \7f447,
 +# undef YYSTACK_RELOCATE\7f548,
 +  *++yyvsp \7fyyvsp\ 1746,
 +  *++yylsp \7fyylsp\ 1748,
 +  yyn \7f755,
 +  yystate \7f757,
 +    yystate \7f761,
 +  goto yynewstate;\7f763,
 +  goto yyerrlab1;\7f823,
 +  yyerrstatus \7f846,
 +  goto yyerrhandle;\7f848,
 +  yyn \7f861,
 +  yystate \7f875,
 +  yyn \7f895,
 +  yyn \7f903,
 +  YYDPRINTF \7f917,
 +  *++yyvsp \7fyyvsp\ 1919,
 +  *++yylsp \7fyylsp\ 1921,
 +  yystate \7f924,
 +  goto yynewstate;\7f925,
 +  yyresult \7f932,
 +  goto yyreturn;\7f933,
 +  yyresult \7f939,
 +  goto yyreturn;\7f940,
 +  yyerror \7f946,
 +  yyresult \7f947,
 +\f
 +y-src/cccp.y,1582
 +typedef unsigned char U_CHAR;\7f38,1201
 +struct arglist \7f41,1301
 +#define NULL \7f51,1468
 +#define GENERIC_PTR \7f56,1578
 +#define GENERIC_PTR \7f58,1611
 +#define NULL_PTR \7f63,1670
 +int yylex \7f66,1712
 +void yyerror \7f67,1726
 +int expression_value;\7f68,1743
 +static jmp_buf parse_return_error;\7f70,1766
 +static int keyword_parsing \7f73,1865
 +extern unsigned char is_idstart[\7fis_idstart\ 176,1944
 +extern unsigned char is_idstart[], is_idchar[\7fis_idchar\ 176,1944
 +extern unsigned char is_idstart[], is_idchar[], is_hor_space[\7fis_hor_space\ 176,1944
 +extern char *xmalloc \7fxmalloc\ 178,2009
 +extern int pedantic;\7f81,2062
 +extern int traditional;\7f84,2114
 +#define CHAR_TYPE_SIZE \7f87,2162
 +#define INT_TYPE_SIZE \7f91,2229
 +#define LONG_TYPE_SIZE \7f95,2296
 +#define WCHAR_TYPE_SIZE \7f99,2365
 +#define possible_sum_sign(\7f104,2556
 +static void integer_overflow \7f106,2632
 +static long left_shift \7f107,2665
 +static long right_shift \7f108,2692
 +  struct constant \7f112,2733
 +  struct name \7f113,2789
 +start \7f143,3226
 +exp1  \7f148,3330
 +exp   \7f156,3505
 +exp   \7f185,4295
 +keywords \7f306,7835
 +static char *lexptr;\7flexptr\ 1332,8579
 +parse_number \7f341,8842
 +struct token \7f437,11038
 +static struct token tokentab2[\7ftokentab2\ 1442,11088
 +yylex \7f459,11367
 +parse_escape \7f740,17718
 +yyerror \7f836,19599
 +integer_overflow \7f844,19690
 +left_shift \7f851,19804
 +right_shift \7f873,20194
 +parse_c_expression \7f893,20732
 +extern int yydebug;\7f919,21416
 +main \7f923,21483
 +unsigned char is_idchar[\7fis_idchar\ 1948,21901
 +unsigned char is_idstart[\7fis_idstart\ 1950,21996
 +char is_hor_space[\7fis_hor_space\ 1953,22160
 +initialize_random_junk \7f958,22259
 +error \7f988,22915
 +warning \7f993,22963
 +lookup \7f999,23033
 +\f
 +tex-src/nonewline.tex,0
 +\f
 +php-src/sendmail.php,0
 +\f
 +a-src/empty.zz,0
index 1f5a34272e3dc7322018361a1e2cfbf1f1d9efde,0000000000000000000000000000000000000000..5f84aa9a0c66ff43dae1b19fd18af266b6f486de
mode 100644,000000..100644
--- /dev/null
@@@ -1,4709 -1,0 +1,4709 @@@
- perl-src/htlmify-cystic,1443
 +\f
 +ada-src/etags-test-for.ada,1969
 +   type LL_Task_Procedure_Access \7fLL_Task_Procedure_Access/t\ 11,0
 +   function Body_Required\7fBody_Required/f\ 13,78
 +   type Type_Specific_Data \7fType_Specific_Data/t\ 111,280
 +   function "abs"\7fabs/f\ 119,504
 +   type Barrier_Function_Pointer \7fBarrier_Function_Pointer/t\ 121,577
 +   function "="\7f=/f\ 127,722
 +   type usfreelock_ptr \7fusfreelock_ptr/t\ 130,803
 +   function p \7fp/f\ 133,891
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 137,1054
 +function p \7fp/f\ 139,1094
 +package Pkg1 \7fPkg1/s\ 144,1203
 +  type Private_T \7fPrivate_T/t\ 146,1220
 +  package Inner1 \7fInner1/s\ 148,1250
 +    procedure Private_T;\7fPrivate_T/p\ 149,1270
 +  package Inner2 \7fInner2/s\ 152,1310
 +    task Private_T;\7fPrivate_T/k\ 153,1330
 +  type Public_T \7fPublic_T/t\ 156,1365
 +  procedure Pkg1_Proc1;\7fPkg1_Proc1/p\ 162,1450
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 164,1475
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 166,1514
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 168,1553
 +  package Pkg1_Pkg1 \7fPkg1_Pkg1/s\ 171,1622
 +    procedure Pkg1_Pkg1_Proc1;\7fPkg1_Pkg1_Proc1/p\ 172,1645
 +  task type Task_Type \7fTask_Type/k\ 175,1694
 +  type Private_T \7fPrivate_T/t\ 182,1786
 +package body Pkg1 \7fPkg1/b\ 189,1882
 +  procedure Pkg1_Proc1 \7fPkg1_Proc1/p\ 191,1904
 +  package body Inner1 \7fInner1/b\ 196,1956
 +    procedure Private_T \7fPrivate_T/p\ 197,1981
 +  package body Inner2 \7fInner2/b\ 1103,2054
 +    task body Private_T \7fPrivate_T/b\ 1104,2079
 +  task body Task_Type \7fTask_Type/b\ 1112,2181
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 1126,2367
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 1132,2445
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 1134,2496
 +  package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1140,2596
 +package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1146,2663
 +  procedure Pkg1_Pkg1_Proc1 \7fPkg1_Pkg1_Proc1/p\ 1147,2689
 +function  Pkg1_Func1 \7fPkg1_Func1/f\ 1155,2778
 +package Truc \7fTruc/s\ 1162,2887
 +package Truc.Bidule \7fTruc.Bidule/s\ 1166,2929
 +  protected Bidule \7fBidule/t\ 1168,2953
 +  protected type Machin_T \7fMachin_T/t\ 1172,3007
 +package body Truc.Bidule \7fTruc.Bidule/b\ 1178,3087
 +  protected body Bidule \7fBidule/b\ 1179,3115
 +  protected Machin_T \7fMachin_T/t\ 1186,3207
 +\f
 +ada-src/2ataspri.adb,2190
 +package body System.Task_Primitives \7fSystem.Task_Primitives/b\ 164,2603
 +   package RTE \7fRTE/s\ 169,2712
 +   package TSL \7fTSL/s\ 170,2759
 +   function To_void_ptr \7fTo_void_ptr/f\ 186,3287
 +   function To_TCB_Ptr \7fTo_TCB_Ptr/f\ 189,3366
 +   function pthread_mutexattr_setprotocol\7fpthread_mutexattr_setprotocol/f\ 192,3444
 +   function pthread_mutexattr_setprio_ceiling\7fpthread_mutexattr_setprio_ceiling/f\ 199,3728
 +   procedure Abort_Wrapper\7fAbort_Wrapper/p\ 1115,4302
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 1122,4526
 +   procedure Initialize_LL_Tasks \7fInitialize_LL_Tasks/p\ 1131,4830
 +   function Self \7fSelf/f\ 1160,5586
 +   procedure Initialize_Lock\7fInitialize_Lock/p\ 1174,5958
 +   procedure Finalize_Lock \7fFinalize_Lock/p\ 1210,6927
 +   procedure Write_Lock \7fWrite_Lock/p\ 1226,7338
 +   procedure Read_Lock \7fRead_Lock/p\ 1239,7700
 +   procedure Unlock \7fUnlock/p\ 1246,7850
 +   procedure Initialize_Cond \7fInitialize_Cond/p\ 1258,8160
 +   procedure Finalize_Cond \7fFinalize_Cond/p\ 1286,8979
 +   procedure Cond_Wait \7fCond_Wait/p\ 1300,9303
 +   procedure Cond_Timed_Wait\7fCond_Timed_Wait/p\ 1312,9661
 +   procedure Cond_Signal \7fCond_Signal/p\ 1343,10510
 +   procedure Set_Priority\7fSet_Priority/p\ 1355,10836
 +   procedure Set_Own_Priority \7fSet_Own_Priority/p\ 1372,11243
 +   function Get_Priority \7fGet_Priority/f\ 1385,11598
 +   function Get_Own_Priority \7fGet_Own_Priority/f\ 1398,12023
 +   procedure Create_LL_Task\7fCreate_LL_Task/p\ 1412,12438
 +      function To_Start_Addr \7fTo_Start_Addr/f\ 1426,12873
 +   procedure Exit_LL_Task \7fExit_LL_Task/p\ 1491,14995
 +   procedure Abort_Task \7fAbort_Task/p\ 1500,15158
 +   procedure Test_Abort \7fTest_Abort/p\ 1518,15716
 +   procedure Install_Abort_Handler \7fInstall_Abort_Handler/p\ 1527,15878
 +   procedure Abort_Wrapper\7fAbort_Wrapper/p\ 1557,16939
 +      function Address_To_Call_State \7fAddress_To_Call_State/f\ 1562,17062
 +   procedure Install_Error_Handler \7fInstall_Error_Handler/p\ 1573,17351
 +   procedure LL_Assert \7fLL_Assert/p\ 1599,18146
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 1608,18299
 +   procedure Initialize_TAS_Cell \7fInitialize_TAS_Cell/p\ 1630,19010
 +   procedure Finalize_TAS_Cell \7fFinalize_TAS_Cell/p\ 1635,19129
 +   procedure Clear \7fClear/p\ 1640,19236
 +   procedure Test_And_Set \7fTest_And_Set/p\ 1645,19330
 +   function  Is_Set \7fIs_Set/f\ 1659,19676
 +\f
 +ada-src/2ataspri.ads,2313
 +package System.Task_Primitives \7fSystem.Task_Primitives/s\ 158,3169
 +   type LL_Task_Procedure_Access \7fLL_Task_Procedure_Access/t\ 162,3253
 +   type Pre_Call_State \7fPre_Call_State/t\ 164,3331
 +   type Task_Storage_Size \7fTask_Storage_Size/t\ 166,3378
 +   type Machine_Exceptions \7fMachine_Exceptions/t\ 168,3433
 +   type Error_Information \7fError_Information/t\ 170,3499
 +   type Lock \7fLock/t\ 172,3569
 +   type Condition_Variable \7fCondition_Variable/t\ 173,3594
 +   type Task_Control_Block \7fTask_Control_Block/t\ 181,3955
 +   type TCB_Ptr \7fTCB_Ptr/t\ 189,4241
 +   function Address_To_TCB_Ptr \7fAddress_To_TCB_Ptr/f\ 193,4333
 +   procedure Initialize_LL_Tasks \7fInitialize_LL_Tasks/p\ 196,4425
 +   function Self \7fSelf/f\ 1100,4602
 +   procedure Initialize_Lock \7fInitialize_Lock/p\ 1103,4707
 +   procedure Finalize_Lock \7fFinalize_Lock/p\ 1107,4879
 +   procedure Write_Lock \7fWrite_Lock/p\ 1111,5034
 +   procedure Read_Lock \7fRead_Lock/p\ 1118,5428
 +   procedure Unlock \7fUnlock/p\ 1128,5995
 +   procedure Initialize_Cond \7fInitialize_Cond/p\ 1135,6300
 +   procedure Finalize_Cond \7fFinalize_Cond/p\ 1138,6413
 +   procedure Cond_Wait \7fCond_Wait/p\ 1142,6591
 +   procedure Cond_Timed_Wait\7fCond_Timed_Wait/p\ 1155,7396
 +   procedure Cond_Signal \7fCond_Signal/p\ 1164,7812
 +   procedure Set_Priority \7fSet_Priority/p\ 1169,8040
 +   procedure Set_Own_Priority \7fSet_Own_Priority/p\ 1173,8200
 +   function Get_Priority \7fGet_Priority/f\ 1177,8348
 +   function Get_Own_Priority \7fGet_Own_Priority/f\ 1181,8504
 +   procedure Create_LL_Task\7fCreate_LL_Task/p\ 1185,8647
 +   procedure Exit_LL_Task;\7fExit_LL_Task/p\ 1198,9282
 +   procedure Abort_Task \7fAbort_Task/p\ 1203,9516
 +   procedure Test_Abort;\7fTest_Abort/p\ 1210,9878
 +   type Abort_Handler_Pointer \7fAbort_Handler_Pointer/t\ 1217,10233
 +   procedure Install_Abort_Handler \7fInstall_Abort_Handler/p\ 1219,10312
 +   procedure Install_Error_Handler \7fInstall_Error_Handler/p\ 1226,10741
 +   procedure LL_Assert \7fLL_Assert/p\ 1231,10983
 +   type Proc \7fProc/t\ 1238,11240
 +   type TAS_Cell \7fTAS_Cell/t\ 1242,11328
 +   procedure Initialize_TAS_Cell \7fInitialize_TAS_Cell/p\ 1249,11670
 +   procedure Finalize_TAS_Cell \7fFinalize_TAS_Cell/p\ 1255,11941
 +   procedure Clear \7fClear/p\ 1260,12157
 +   procedure Test_And_Set \7fTest_And_Set/p\ 1267,12462
 +   function  Is_Set \7fIs_Set/f\ 1275,12877
 +   type Lock \7fLock/t\ 1283,13155
 +   type Condition_Variable \7fCondition_Variable/t\ 1288,13267
 +   type TAS_Cell \7fTAS_Cell/t\ 1293,13389
 +\f
 +ada-src/waroquiers.ada,1503
 +package Pkg1 \7fPkg1/s\ 13,89
 +  type Private_T \7fPrivate_T/t\ 15,106
 +  package Inner1 \7fInner1/s\ 17,136
 +    procedure Private_T;\7fPrivate_T/p\ 18,156
 +  package Inner2 \7fInner2/s\ 111,196
 +    task Private_T;\7fPrivate_T/k\ 112,216
 +  type Public_T \7fPublic_T/t\ 115,251
 +  procedure Pkg1_Proc1;\7fPkg1_Proc1/p\ 121,336
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 123,361
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 125,400
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 127,439
 +  package Pkg1_Pkg1 \7fPkg1_Pkg1/s\ 130,508
 +    procedure Pkg1_Pkg1_Proc1;\7fPkg1_Pkg1_Proc1/p\ 131,531
 +  task type Task_Type \7fTask_Type/k\ 134,580
 +  type Private_T \7fPrivate_T/t\ 140,671
 +package body Pkg1 \7fPkg1/b\ 146,766
 +  procedure Pkg1_Proc1 \7fPkg1_Proc1/p\ 148,788
 +  package body Inner1 \7fInner1/b\ 153,840
 +    procedure Private_T \7fPrivate_T/p\ 154,865
 +  package body Inner2 \7fInner2/b\ 160,938
 +    task body Private_T \7fPrivate_T/b\ 161,963
 +  task body Task_Type \7fTask_Type/b\ 168,1064
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 182,1250
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 188,1328
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 190,1379
 +  package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 196,1479
 +package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1100,1544
 +  procedure Pkg1_Pkg1_Proc1 \7fPkg1_Pkg1_Proc1/p\ 1101,1570
 +function  Pkg1_Func1 \7fPkg1_Func1/f\ 1107,1657
 +package Truc \7fTruc/s\ 1112,1764
 +package Truc.Bidule \7fTruc.Bidule/s\ 1116,1816
 +  protected Bidule \7fBidule/t\ 1125,1964
 +  protected type Machin_T \7fMachin_T/t\ 1131,2046
 +package body Truc.Bidule \7fTruc.Bidule/b\ 1138,2153
 +  protected body Bidule \7fBidule/b\ 1139,2181
 +  protected body Machin_T \7fMachin_T/b\ 1146,2281
 +\f
 +c-src/abbrev.c,1432
 +Lisp_Object Vabbrev_table_name_list;\7f43,1424
 +Lisp_Object Vglobal_abbrev_table;\7f48,1569
 +Lisp_Object Vfundamental_mode_abbrev_table;\7f52,1680
 +int abbrevs_changed;\7f56,1781
 +int abbrev_all_caps;\7f58,1803
 +Lisp_Object Vabbrev_start_location;\7f63,1952
 +Lisp_Object Vabbrev_start_location_buffer;\7f66,2041
 +Lisp_Object Vlast_abbrev;\7f70,2150
 +Lisp_Object Vlast_abbrev_text;\7f75,2319
 +int last_abbrev_point;\7f79,2409
 +Lisp_Object Vpre_abbrev_expand_hook,\7f83,2482
 +Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;\7f83,2482
 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,\7fmake-abbrev-table\ 185,2546
 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,\7fclear-abbrev-table\ 192,2738
 +DEFUN ("define-abbrev", Fdefine_abbrev,\7fdefine-abbrev\ 1107,3119
 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,\7fdefine-global-abbrev\ 1149,4438
 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,\7fdefine-mode-abbrev\ 1160,4809
 +DEFUN ("abbrev-symbol", Fabbrev_symbol,\7fabbrev-symbol\ 1174,5277
 +DEFUN ("abbrev-expansion", Fabbrev_expansion,\7fabbrev-expansion\ 1202,6241
 +DEFUN ("expand-abbrev", Fexpand_abbrev,\7fexpand-abbrev\ 1218,6756
 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,\7funexpand-abbrev\ 1389,11677
 +write_abbrev \7f426,12884
 +describe_abbrev \7f445,13319
 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,\7finsert-abbrev-table-description\ 1466,13834
 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,\7fdefine-abbrev-table\ 1506,14990
 +syms_of_abbrev \7f540,16067
 +\f
 +c-src/torture.c,197
 +(*tag1 \7ftag1\ 118,452
 +#define notag2 \7f26,553
 +(*tag2 \7ftag2\ 129,630
 +(*tag3 \7ftag3\ 139,772
 +#define notag4 \7f45,861
 +(*tag4 \7ftag4\ 148,955
 +tag5 \7f57,1081
 +tag6 \7f66,1208
 +int pp1(\7f74,1317
 +pp2\7f87,1419
 +pp3(\7f100,1518
 +\f
 +c-src/getopt.h,275
 +#define _GETOPT_H \7f19,794
 +struct option\7f73,2790
 +  const char *name;\7fname\ 176,2819
 +  char *name;\7fname\ 178,2845
 +  int has_arg;\7f82,3002
 +  int *flag;\7fflag\ 183,3017
 +  int val;\7f84,3030
 +#define       no_argument     \7f89,3117
 +#define required_argument     \7f90,3140
 +#define optional_argument     \7f91,3168
 +\f
 +c-src/etags.c,12045
 +char pot_etags_version[\7fpot_etags_version\ 181,3470
 +#  undef DEBUG\7f84,3552
 +#  define DEBUG \7f85,3567
 +#  define DEBUG \7f87,3594
 +#  define NDEBUG      \7f88,3617
 +# define _GNU_SOURCE \7f94,3705
 +# undef MSDOS\7f100,3876
 +# undef  WINDOWSNT\7f101,3890
 +# define WINDOWSNT\7f102,3909
 +# undef MSDOS\7f106,3968
 +# define MSDOS \7f107,3982
 +# define MSDOS \7f110,4032
 +# define MAXPATHLEN \7f115,4111
 +# undef HAVE_NTGUI\7f116,4141
 +# undef  DOS_NT\7f117,4160
 +# define DOS_NT\7f118,4176
 +# undef  assert       \7f135,4482
 +# define assert(\7f136,4541
 +# undef  CTAGS\7f146,4857
 +# define CTAGS \7f147,4872
 +# define CTAGS \7f149,4898
 +#define streq(\7f152,4927
 +#define strcaseeq(\7f153,4996
 +#define strneq(\7f154,5075
 +#define strncaseeq(\7f155,5151
 +#define CHARS \7f157,5238
 +#define CHAR(\7f158,5278
 +#define       iswhite(\7f159,5329
 +#define notinname(\7f160,5394
 +#define       begtoken(\7f161,5469
 +#define       intoken(\7f162,5542
 +#define       endtoken(\7f163,5614
 +#define ISALNUM(\7f165,5684
 +#define ISALPHA(\7f166,5722
 +#define ISDIGIT(\7f167,5760
 +#define ISLOWER(\7f168,5798
 +#define lowcase(\7f170,5837
 +#define xnew(\7f179,6015
 +#define xrnew(\7f180,6083
 +typedef void Lang_function \7f182,6164
 +  const char *suffix;\7fsuffix\ 1186,6219
 +  const char *command;\7fcommand\ 1187,6294
 +} compressor;\7f188,6365
 +  const char *name;\7fname\ 1192,6397
 +  const char *help;\7fhelp\ 1193,6449
 +  Lang_function *function;\7ffunction\ 1194,6508
 +  const char **suffixes;\7fsuffixes\ 1195,6556
 +  const char **filenames;\7ffilenames\ 1196,6633
 +  const char **interpreters;\7finterpreters\ 1197,6702
 +  bool metasource;\7f198,6771
 +} language;\7f199,6835
 +typedef struct fdesc\7f201,6848
 +  struct fdesc *next;\7fnext\ 1203,6871
 +  char *infname;\7finfname\ 1204,6920
 +  char *infabsname;\7finfabsname\ 1205,6973
 +  char *infabsdir;\7finfabsdir\ 1206,7038
 +  char *taggedfname;\7ftaggedfname\ 1207,7091
 +  language *lang;\7flang\ 1208,7149
 +  char *prop;\7fprop\ 1209,7191
 +  bool usecharno;\7f210,7249
 +  bool written;\7f211,7311
 +} fdesc;\7f212,7366
 +typedef struct node_st\7f214,7376
 +  struct node_st *left,\7fleft\ 1216,7428
 +  struct node_st *left, *right;\7fright\ 1216,7428
 +  fdesc *fdp;\7ffdp\ 1217,7486
 +  char *name;\7fname\ 1218,7548
 +  char *regex;\7fregex\ 1219,7580
 +  bool valid;\7f220,7617
 +  bool is_func;\7f221,7670
 +  bool been_warned;\7f222,7733
 +  int lno;\7f223,7801
 +  long cno;\7f224,7842
 +} node;\7f225,7894
 +  long size;\7f236,8208
 +  int len;\7f237,8221
 +  char *buffer;\7fbuffer\ 1238,8232
 +} linebuffer;\7f239,8248
 +    at_language,\7f245,8344
 +    at_regexp,\7f246,8393
 +    at_filename,\7f247,8437
 +    at_stdin,\7f248,8473
 +    at_end    \7f249,8516
 +  } arg_type;\7f250,8557
 +  language *lang;\7flang\ 1251,8593
 +  char *what;\7fwhat\ 1252,8656
 +} argument;\7f253,8698
 +typedef struct regexp\7f256,8758
 +  struct regexp *p_next;\7fp_next\ 1258,8782
 +  language *lang;\7flang\ 1259,8837
 +  char *pattern;\7fpattern\ 1260,8897
 +  char *name;\7fname\ 1261,8940
 +  struct re_pattern_buffer *pat;\7fpat\ 1262,8971
 +  struct re_registers regs;\7f263,9031
 +  bool error_signaled;\7f264,9078
 +  bool force_explicit_name;\7f265,9141
 +  bool ignore_case;\7f266,9206
 +  bool multi_line;\7f267,9259
 +} regexp;\7f268,9325
 +static void error \7f311,10780
 +# undef STDIN\7f408,15073
 +#define STDIN \7f411,15095
 +static compressor compressors[\7fcompressors\ 1457,17664
 +static const char *Ada_suffixes \7fAda_suffixes\ 1473,17907
 +static const char Ada_help \7f475,17977
 +static const char *Asm_suffixes \7fAsm_suffixes\ 1493,18580
 +static const char Asm_help \7f504,18976
 +static const char *default_C_suffixes \7fdefault_C_suffixes\ 1512,19312
 +static const char default_C_help \7f515,19413
 +static const char default_C_help \7f523,19850
 +static const char *Cplusplus_suffixes \7fCplusplus_suffixes\ 1535,20460
 +static const char Cplusplus_help \7f540,20658
 +static const char *Cjava_suffixes \7fCjava_suffixes\ 1549,21113
 +static char Cjava_help \7f551,21172
 +static const char *Cobol_suffixes \7fCobol_suffixes\ 1556,21337
 +static char Cobol_help \7f558,21402
 +static const char *Cstar_suffixes \7fCstar_suffixes\ 1562,21543
 +static const char *Erlang_suffixes \7fErlang_suffixes\ 1565,21607
 +static const char Erlang_help \7f567,21673
 +const char *Forth_suffixes \7fForth_suffixes\ 1571,21799
 +static const char Forth_help \7f573,21857
 +static const char *Fortran_suffixes \7fFortran_suffixes\ 1577,22008
 +static const char Fortran_help \7f579,22085
 +static const char *HTML_suffixes \7fHTML_suffixes\ 1582,22190
 +static const char HTML_help \7f584,22264
 +static const char *Lisp_suffixes \7fLisp_suffixes\ 1589,22452
 +static const char Lisp_help \7f591,22556
 +static const char *Lua_suffixes \7fLua_suffixes\ 1598,22871
 +static const char Lua_help \7f600,22934
 +static const char *Makefile_filenames \7fMakefile_filenames\ 1603,23010
 +static const char Makefile_help \7f605,23133
 +static const char *Objc_suffixes \7fObjc_suffixes\ 1609,23277
 +static const char Objc_help \7f613,23399
 +static const char *Pascal_suffixes \7fPascal_suffixes\ 1619,23714
 +static const char Pascal_help \7f621,23778
 +static const char *Perl_suffixes \7fPerl_suffixes\ 1626,23966
 +static const char *Perl_interpreters \7fPerl_interpreters\ 1628,24028
 +static const char Perl_help \7f630,24100
 +static const char *PHP_suffixes \7fPHP_suffixes\ 1637,24451
 +static const char PHP_help \7f639,24523
 +static const char *plain_C_suffixes \7fplain_C_suffixes\ 1643,24678
 +static const char *PS_suffixes \7fPS_suffixes\ 1647,24762
 +static const char PS_help \7f649,24848
 +static const char *Prolog_suffixes \7fProlog_suffixes\ 1652,24931
 +static const char Prolog_help \7f654,24993
 +static const char *Python_suffixes \7fPython_suffixes\ 1658,25107
 +static const char Python_help \7f660,25165
 +static const char *Scheme_suffixes \7fScheme_suffixes\ 1665,25347
 +static const char Scheme_help \7f667,25460
 +static const char *TeX_suffixes \7fTeX_suffixes\ 1672,25683
 +static const char TeX_help \7f674,25781
 +static const char *Texinfo_suffixes \7fTexinfo_suffixes\ 1686,26316
 +static const char Texinfo_help \7f688,26395
 +static const char *Yacc_suffixes \7fYacc_suffixes\ 1691,26492
 +static const char Yacc_help \7f693,26606
 +static const char auto_help \7f699,26856
 +static const char none_help \7f703,27020
 +static const char no_lang_help \7f707,27143
 +static language lang_names \7f718,27355
 +print_language_names \7f753,29532
 +# define EMACS_NAME \7f786,30755
 +# define VERSION \7f789,30811
 +print_version \7f792,30869
 +# define PRINT_UNDOCUMENTED_OPTIONS_HELP \7f804,31173
 +print_help \7f808,31250
 +main \7f981,37438
 +get_compressor_from_suffix \7f1319,46217
 +get_language_from_langname \7f1355,47158
 +get_language_from_interpreter \7f1377,47545
 +get_language_from_filename \7f1399,47976
 +process_file_name \7f1433,48834
 +process_file \7f1555,51665
 +init \7f1632,54150
 +find_entries \7f1656,54901
 +make_tag \7f1814,59707
 +pfnote \7f1856,60942
 +free_tree \7f1917,62744
 +free_fdesc \7f1935,63029
 +add_node \7f1955,63472
 +invalidate_nodes \7f2035,65537
 +static int number_len \7f2068,66193
 +total_size_of_entries \7f2087,66694
 +put_entries \7f2107,67154
 +#define C_EXT \7f2193,68995
 +#define C_PLAIN \7f2194,69037
 +#define C_PLPL        \7f2195,69070
 +#define C_STAR        \7f2196,69104
 +#define C_JAVA        \7f2197,69137
 +#define C_AUTO \7f2198,69172
 +#define YACC  \7f2199,69242
 +enum sym_type\7f2204,69312
 +  st_none,\7f2206,69328
 +  st_C_objprot,\7f2207,69339
 +  st_C_objprot, st_C_objimpl,\7f2207,69339
 +  st_C_objprot, st_C_objimpl, st_C_objend,\7f2207,69339
 +  st_C_gnumacro,\7f2208,69382
 +  st_C_ignore,\7f2209,69399
 +  st_C_ignore, st_C_attribute,\7f2209,69399
 +  st_C_javastruct,\7f2210,69430
 +  st_C_operator,\7f2211,69449
 +  st_C_class,\7f2212,69466
 +  st_C_class, st_C_template,\7f2212,69466
 +  st_C_struct,\7f2213,69495
 +  st_C_struct, st_C_extern,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum, st_C_define,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum, st_C_define, st_C_typedef\7f2213,69495
 +struct C_stab_entry \7f2271,71278
 +struct C_stab_entry { const char *name;\7fname\ 12271,71278
 +struct C_stab_entry { const char *name; int c_ext;\7f2271,71278
 +struct C_stab_entry { const char *name; int c_ext; enum sym_type type;\7f2271,71278
 +hash \7f2275,71409
 +in_word_set \7f2321,72937
 +      TOTAL_KEYWORDS \7f2325,73018
 +      MIN_WORD_LENGTH \7f2326,73045
 +      MAX_WORD_LENGTH \7f2327,73072
 +      MIN_HASH_VALUE \7f2328,73100
 +      MAX_HASH_VALUE \7f2329,73126
 +C_symtype \7f2387,74985
 +static bool inattribute;\7f2400,75234
 +  fvnone,\7f2408,75435
 +  fdefunkey,\7f2409,75466
 +  fdefunname,\7f2410,75512
 +  foperator,\7f2411,75556
 +  fvnameseen,\7f2412,75613
 +  fstartlist,\7f2413,75666
 +  finlist,\7f2414,75722
 +  flistseen,\7f2415,75765
 +  fignore,\7f2416,75813
 +  vignore     \7f2417,75856
 +} fvdef;\7f2418,75901
 +static bool fvextern;\7f2420,75911
 +  tnone,\7f2428,76089
 +  tkeyseen,\7f2429,76119
 +  ttypeseen,\7f2430,76160
 +  tinbody,\7f2431,76199
 +  tend,\7f2432,76238
 +  tignore     \7f2433,76279
 +} typdef;\7f2434,76320
 +  snone,\7f2443,76499
 +  skeyseen,\7f2445,76575
 +  stagseen,\7f2446,76620
 +  scolonseen  \7f2447,76661
 +} structdef;\7f2448,76715
 +static const char *objtag \7fobjtag\ 12453,76809
 +  dnone,\7f2460,76942
 +  dsharpseen,\7f2461,76972
 +  ddefineseen,\7f2462,77025
 +  dignorerest \7f2463,77070
 +} definedef;\7f2464,77112
 +  onone,\7f2472,77267
 +  oprotocol,\7f2473,77297
 +  oimplementation,\7f2474,77347
 +  otagseen,\7f2475,77395
 +  oparenseen,\7f2476,77431
 +  ocatseen,\7f2477,77486
 +  oinbody,\7f2478,77525
 +  omethodsign,\7f2479,77568
 +  omethodtag,\7f2480,77626
 +  omethodcolon,\7f2481,77666
 +  omethodparm,\7f2482,77709
 +  oignore     \7f2483,77755
 +} objdef;\7f2484,77787
 +static struct tok\7f2491,77944
 +  char *line;\7fline\ 12493,77964
 +  int offset;\7f2494,78014
 +  int length;\7f2495,78067
 +  bool valid;\7f2502,78352
 +  bool named;\7f2505,78487
 +  int lineno;\7f2506,78528
 +  long linepos;\7f2507,78576
 +} token;\7f2508,78626
 +  char **cname;\7fcname\ 12519,78950
 +  int *bracelev;\7fbracelev\ 12520,78993
 +  int nl;\7f2521,79042
 +  int size;\7f2522,79096
 +} cstack;\7f2523,79136
 +#define nestlev       \7f2525,79264
 +#define instruct      \7f2527,79369
 +pushclass_above \7f2531,79489
 +popclass_above \7f2550,79948
 +write_classname \7f2564,80162
 +consider_token \7f2613,81341
 +  long linepos;\7f2922,88499
 +  linebuffer lb;\7f2923,88515
 +} lbs[\7flbs\ 12924,88532
 +#define current_lb_is_new \7f2926,88543
 +#define switch_line_buffers(\7f2927,88588
 +#define curlb \7f2929,88641
 +#define newlb \7f2930,88672
 +#define curlinepos \7f2931,88703
 +#define newlinepos \7f2932,88744
 +#define plainc \7f2934,88786
 +#define cplpl \7f2935,88830
 +#define cjava \7f2936,88861
 +#define CNL_SAVE_DEFINEDEF(\7f2938,88905
 +#define CNL(\7f2947,89117
 +make_C_tag \7f2960,89375
 +C_entries \7f2986,90194
 +default_C_entries \7f3833,110156
 +plain_C_entries \7f3840,110276
 +Cplusplus_entries \7f3847,110364
 +Cjava_entries \7f3854,110460
 +Cstar_entries \7f3861,110550
 +Yacc_entries \7f3868,110642
 +#define LOOP_ON_INPUT_LINES(\7f3875,110720
 +#define LOOKING_AT(\7f3884,111056
 +#define LOOKING_AT_NOCASE(\7f3891,111461
 +just_read_file \7f3901,111861
 +F_takeprec \7f3914,112039
 +F_getit \7f3937,112366
 +Fortran_functions \7f3961,112840
 +Ada_getit \7f4052,114669
 +Ada_funcs \7f4115,116044
 +Asm_labels \7f4228,118582
 +Perl_functions \7f4261,119549
 +Python_functions \7f4357,122057
 +PHP_functions \7f4387,122684
 +Cobol_paragraphs \7f4466,124471
 +Makefile_targets \7f4494,125029
 +Pascal_functions \7f4529,125950
 +L_getit \7f4709,130318
 +Lisp_functions \7f4725,130664
 +Lua_functions \7f4785,131850
 +PS_functions \7f4811,132385
 +Forth_words \7f4841,133053
 +Scheme_functions \7f4877,134092
 +static linebuffer *TEX_toktab \7fTEX_toktab\ 14908,134781
 +static const char *TEX_defenv \7fTEX_defenv\ 14912,134974
 +static char TEX_esc \7f4920,135261
 +static char TEX_opgrp \7f4921,135289
 +static char TEX_clgrp \7f4922,135318
 +TeX_commands \7f4928,135395
 +#define TEX_LESC \7f4986,136652
 +#define TEX_SESC \7f4987,136674
 +TEX_mode \7f4992,136804
 +TEX_decode_env \7f5026,137509
 +Texinfo_nodes \7f5071,138554
 +HTML_labels \7f5094,139013
 +Prolog_functions \7f5219,142347
 +prolog_skip_comment \7f5255,143128
 +prolog_pr \7f5281,143736
 +prolog_atom \7f5319,144628
 +Erlang_functions \7f5379,145666
 +erlang_func \7f5438,146965
 +erlang_attribute \7f5476,147642
 +erlang_atom \7f5496,148061
 +scan_separators \7f5534,149080
 +analyze_regex \7f5586,150460
 +add_regex \7f5654,152050
 +substitute \7f5767,154797
 +free_regexps \7f5814,155837
 +regex_tag_multiline \7f5836,156291
 +nocase_tail \7f5913,158263
 +get_tag \7f5928,158519
 +readline_internal \7f5959,159455
 +readline \7f6037,161296
 +savestr \7f6230,167243
 +savenstr \7f6240,167473
 +skip_spaces \7f6249,167679
 +skip_non_spaces \7f6258,167833
 +skip_name \7f6267,167983
 +fatal \7f6277,168156
 +pfatal \7f6284,168253
 +suggest_asking_for_help \7f6291,168332
 +error \7f6300,168554
 +concat \7f6313,168846
 +etags_getcwd \7f6329,169259
 +relative_filename \7f6350,169725
 +absolute_filename \7f6389,170751
 +absolute_dirname \7f6453,172416
 +filename_is_absolute \7f6472,172845
 +canonicalize_filename \7f6484,173096
 +# define ISUPPER(\7f6491,173235
 +linebuffer_init \7f6514,173656
 +linebuffer_setlen \7f6524,173887
 +xmalloc \7f6536,174148
 +xrealloc \7f6545,174314
 +\f
 +c-src/exit.c,99
 +    size_t n;\7f28,967
 +    void EXFUN((*fn[\7ffn\ 129,981
 +  } __libc_atexit;\7f30,1017
 +DEFUN(exit,\7f38,1258
 +\f
 +c-src/exit.strange_suffix,99
 +    size_t n;\7f28,967
 +    void EXFUN((*fn[\7ffn\ 129,981
 +  } __libc_atexit;\7f30,1017
 +DEFUN(exit,\7f38,1258
 +\f
 +c-src/sysdep.h,491
 +#define       ENTRY(\7f21,870
 +#define       PSEUDO(\7f26,977
 +    movl $SYS_##syscall_nam\7f$SYS_##syscall_na\ 131,1137
 +    movl $SYS_##syscall_name, %eax;\7feax\ 131,1137
 +    int $0x80;\7f32,1185
 +    test %eax,\7feax\ 133,1215
 +    test %eax, %eax;\7feax\ 133,1215
 +    jl syscall_error;\7f34,1250
 +#define       XCHG_0  \7f47,1567
 +#define       XCHG_1  \7f48,1611
 +#define       XCHG_2  \7f49,1653
 +#define       XCHG_3  \7f50,1696
 +#define       XCHG_4  \7f51,1739
 +#define       XCHG_5  \7f52,1782
 +#define       r0      \7f54,1826
 +#define       r1      \7f55,1880
 +#define scratch \7f56,1937
 +#define MOVE(\7f57,2006
 +\f
 +c-src/tab.c,196
 +static int            count_words(\7f15,263
 +static char           *get_word(\7fget_word\ 135,553
 +void                  tab_free(\7f59,966
 +char                  **tab_fill(\7ftab_fill\ 170,1129
 +int                   tab_delete_first(\7f91,1638
 +int                   tab_count_words(\7f103,1820
 +\f
 +c-src/dostorture.c,198
 +(*tag1 \7ftag1\ 118,468
 +#define notag2 \7f26,577
 +(*tag2 \7ftag2\ 129,657
 +(*tag3 \7ftag3\ 139,809
 +#define notag4 \7f45,904
 +(*tag4 \7ftag4\ 148,1001
 +tag5 \7f57,1136
 +tag6 \7f66,1272
 +int pp1(\7f74,1389
 +pp2\7f87,1504
 +pp3(\7f100,1616
 +\f
 +c-src/emacs/src/gmalloc.c,4207
 +#define USE_PTHREAD\7f25,1002
 +#undef get_current_dir_name\7f33,1126
 +#undef malloc\7f64,2110
 +#undef realloc\7f65,2124
 +#undef calloc\7f66,2139
 +#undef free\7f67,2153
 +#define malloc \7f68,2165
 +#define realloc \7f69,2188
 +#define calloc \7f70,2213
 +#define aligned_alloc \7f71,2236
 +#define free \7f72,2273
 +#define DUMPED \7f80,2472
 +#define ALLOCATED_BEFORE_DUMPING(\7f81,2507
 +extern void *malloc \7fmalloc\ 194,2718
 +#define INT_BIT       \7f124,3934
 +#define BLOCKLOG      \7f125,3977
 +#define BLOCKSIZE     \7f126,4018
 +#define BLOCKIFY(\7f127,4052
 +#define HEAP  \7f131,4215
 +#define FINAL_FREE_BLOCKS     \7f135,4391
 +      int type;\7f145,4676
 +              size_t nfree;\7f150,4720
 +              size_t first;\7f151,4777
 +            } frag;\7f152,4834
 +          ptrdiff_t size;\7f156,5055
 +        } info;\7f157,5076
 +      } busy;\7f158,5087
 +      size_t size;\7f163,5215
 +      size_t next;\7f164,5272
 +      size_t prev;\7f165,5321
 +      } free;\7f166,5374
 +  } malloc_info;\7f167,5388
 +#define BLOCK(\7f176,5620
 +#define ADDRESS(\7f177,5682
 +struct list\7f186,5939
 +    struct list *next;\7fnext\ 1188,5955
 +    struct list *prev;\7fprev\ 1189,5978
 +struct alignlist\7f196,6153
 +    struct alignlist *next;\7fnext\ 1198,6174
 +    void *aligned;\7faligned\ 1199,6202
 +    void *exact;\7fexact\ 1200,6270
 +#define LOCK(\7f223,7064
 +#define UNLOCK(\7f228,7195
 +#define LOCK_ALIGNED_BLOCKS(\7f233,7329
 +#define UNLOCK_ALIGNED_BLOCKS(\7f238,7484
 +#define LOCK(\7f244,7649
 +#define UNLOCK(\7f245,7664
 +#define LOCK_ALIGNED_BLOCKS(\7f246,7681
 +#define UNLOCK_ALIGNED_BLOCKS(\7f247,7711
 +enum mcheck_status\7f283,9092
 +    MCHECK_DISABLED \7f285,9115
 +    MCHECK_OK,\7f286,9187
 +    MCHECK_FREE,\7f287,9226
 +    MCHECK_HEAD,\7f288,9270
 +    MCHECK_TAIL       \7f289,9334
 +struct mstats\7f308,10153
 +    size_t bytes_total;\7f310,10171
 +    size_t chunks_used;\7f311,10225
 +    size_t bytes_used;\7f312,10285
 +    size_t chunks_free;\7f313,10351
 +    size_t bytes_free;\7f314,10406
 +char *_heapbase;\7f_heapbase\ 1355,11829
 +malloc_info *_heapinfo;\7f_heapinfo\ 1358,11927
 +static size_t heapsize;\7f361,11983
 +size_t _heapindex;\7f364,12047
 +size_t _heaplimit;\7f367,12109
 +struct list _fraghead[\7f_fraghead\ 1370,12171
 +size_t _chunks_used;\7f373,12229
 +size_t _bytes_used;\7f374,12250
 +size_t _chunks_free;\7f375,12270
 +size_t _bytes_free;\7f376,12291
 +int __malloc_initialized;\7f379,12340
 +size_t __malloc_extra_blocks;\7f381,12367
 +static int state_protected_p;\7f400,12912
 +static size_t last_state_size;\7f401,12942
 +static malloc_info *last_heapinfo;\7flast_heapinfo\ 1402,12973
 +protect_malloc_state \7f405,13014
 +#define PROTECT_MALLOC_STATE(\7f426,13627
 +#define PROTECT_MALLOC_STATE(\7f429,13697
 +align \7f435,13794
 +get_contiguous_space \7f466,14616
 +register_heapinfo \7f497,15325
 +pthread_mutex_t _malloc_mutex \7f517,15879
 +pthread_mutex_t _aligned_blocks_mutex \7f518,15938
 +int _malloc_thread_enabled_p;\7f519,16005
 +malloc_atfork_handler_prepare \7f522,16048
 +malloc_atfork_handler_parent \7f529,16139
 +malloc_atfork_handler_child \7f536,16233
 +malloc_enable_thread \7f544,16375
 +malloc_initialize_1 \7f563,16961
 +__malloc_initialize \7f594,17793
 +static int morecore_recursing;\7f604,17926
 +morecore_nolock \7f609,18066
 +_malloc_internal_nolock \7f722,21584
 +_malloc_internal \7f920,28102
 +malloc \7f932,28247
 +_malloc \7f961,29140
 +_free \7f967,29196
 +_realloc \7f973,29240
 +struct alignlist *_aligned_blocks \7f_aligned_blocks\ 11004,30345
 +_free_internal_nolock \7f1009,30474
 +_free_internal \7f1255,38476
 +free \7f1265,38603
 +weak_alias \7f1277,38799
 +#define min(\7f1306,39813
 +_realloc_internal_nolock \7f1319,40309
 +_realloc_internal \7f1435,43563
 +realloc \7f1447,43726
 +calloc \7f1478,44894
 +#define       __sbrk  \7f1513,46042
 +__default_morecore \7f1525,46511
 +aligned_alloc \7f1557,47522
 +memalign \7f1647,49704
 +posix_memalign \7f1656,49909
 +static size_t pagesize;\7f1703,51317
 +valloc \7f1706,51349
 +#undef malloc\7f1715,51490
 +#undef realloc\7f1716,51504
 +#undef calloc\7f1717,51519
 +#undef aligned_alloc\7f1718,51533
 +#undef free\7f1719,51554
 +hybrid_malloc \7f1736,52083
 +hybrid_calloc \7f1744,52188
 +hybrid_free \7f1752,52319
 +hybrid_aligned_alloc \7f1765,52626
 +hybrid_realloc \7f1780,52984
 +hybrid_get_current_dir_name \7f1811,53797
 +#define MAGICWORD     \7f1854,55206
 +#define MAGICFREE     \7f1855,55261
 +#define MAGICBYTE     \7f1856,55316
 +#define MALLOCFLOOD   \7f1857,55348
 +#define FREEFLOOD     \7f1858,55382
 +struct hdr\7f1860,55415
 +    size_t size;\7f1862,55430
 +    size_t magic;\7f1863,55484
 +checkhdr \7f1867,55581
 +freehook \7f1891,56022
 +mallochook \7f1927,56804
 +reallochook \7f1944,57143
 +mabort \7f1978,57901
 +static int mcheck_used \7f2012,58586
 +mcheck \7f2015,58619
 +mprobe \7f2035,59138
 +\f
 +c-src/emacs/src/regex.h,4485
 +#define _REGEX_H \7f21,836
 +typedef unsigned long reg_syntax_t;\7f43,1577
 +#define RE_BACKSLASH_ESCAPE_IN_LISTS \7f47,1749
 +#define RE_BK_PLUS_QM \7f52,1969
 +#define RE_CHAR_CLASSES \7f58,2298
 +#define RE_CONTEXT_INDEP_ANCHORS \7f72,3032
 +#define RE_CONTEXT_INDEP_OPS \7f80,3458
 +#define RE_CONTEXT_INVALID_OPS \7f84,3658
 +#define RE_DOT_NEWLINE \7f88,3801
 +#define RE_DOT_NOT_NULL \7f92,3937
 +#define RE_HAT_LISTS_NOT_NEWLINE \7f96,4082
 +#define RE_INTERVALS \7f101,4292
 +#define RE_LIMITED_OPS \7f105,4441
 +#define RE_NEWLINE_ALT \7f109,4583
 +#define RE_NO_BK_BRACES \7f114,4773
 +#define RE_NO_BK_PARENS \7f118,4964
 +#define RE_NO_BK_REFS \7f122,5120
 +#define RE_NO_BK_VBAR \7f126,5316
 +#define RE_NO_EMPTY_RANGES \7f132,5610
 +#define RE_UNMATCHED_RIGHT_PAREN_ORD \7f136,5766
 +#define RE_NO_POSIX_BACKTRACKING \7f140,5937
 +#define RE_NO_GNU_OPS \7f144,6133
 +#define RE_FRUGAL \7f147,6253
 +#define RE_SHY_GROUPS \7f150,6360
 +#define RE_NO_NEWLINE_ANCHOR \7f153,6468
 +#define RE_DEBUG \7f161,6884
 +#define RE_SYNTAX_EMACS       \7f183,7684
 +#define RE_SYNTAX_AWK \7f186,7780
 +#define RE_SYNTAX_GNU_AWK     \7f193,8084
 +#define RE_SYNTAX_POSIX_AWK \7f197,8255
 +#define RE_SYNTAX_GREP        \7f201,8393
 +#define RE_SYNTAX_EGREP       \7f206,8549
 +#define RE_SYNTAX_POSIX_EGREP \7f212,8765
 +#define RE_SYNTAX_ED \7f216,8910
 +#define RE_SYNTAX_SED \7f218,8954
 +#define _RE_SYNTAX_POSIX_COMMON       \7f221,9072
 +#define RE_SYNTAX_POSIX_BASIC \7f225,9215
 +#define RE_SYNTAX_POSIX_MINIMAL_BASIC \7f231,9508
 +#define RE_SYNTAX_POSIX_EXTENDED      \7f234,9598
 +#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED      \7f242,9967
 +# undef RE_DUP_MAX\7f253,10454
 +#define RE_DUP_MAX \7f256,10540
 +#define REG_EXTENDED \7f263,10762
 +#define REG_ICASE \7f267,10886
 +#define REG_NEWLINE \7f272,11070
 +#define REG_NOSUB \7f276,11248
 +#define REG_NOTBOL \7f286,11614
 +#define REG_NOTEOL \7f289,11688
 +  REG_ENOSYS \7f297,11859
 +  REG_NOERROR \7f300,11941
 +  REG_NOMATCH,\7f301,11976
 +  REG_BADPAT,\7f305,12123
 +  REG_ECOLLATE,\7f306,12162
 +  REG_ECTYPE,\7f307,12203
 +  REG_EESCAPE,\7f308,12255
 +  REG_ESUBREG,\7f309,12298
 +  REG_EBRACK,\7f310,12345
 +  REG_EPAREN,\7f311,12391
 +  REG_EBRACE,\7f312,12436
 +  REG_BADBR,\7f313,12472
 +  REG_ERANGE,\7f314,12519
 +  REG_ESPACE,\7f315,12560
 +  REG_BADRPT,\7f316,12601
 +  REG_EEND,\7f319,12693
 +  REG_ESIZE,\7f320,12728
 +  REG_ERPAREN,\7f321,12790
 +  REG_ERANGEX \7f322,12859
 +} reg_errcode_t;\7f323,12911
 +# define RE_TRANSLATE_TYPE \7f332,13273
 +struct re_pattern_buffer\7f335,13315
 +  unsigned char *buffer;\7fbuffer\ 1341,13538
 +  size_t allocated;\7f344,13614
 +  size_t used;\7f347,13686
 +  reg_syntax_t syntax;\7f350,13769
 +  char *fastmap;\7ffastmap\ 1355,13975
 +  RE_TRANSLATE_TYPE translate;\7f361,14241
 +  size_t re_nsub;\7f364,14329
 +  unsigned can_be_null \7f370,14624
 +#define REGS_UNALLOCATED \7f376,14889
 +#define REGS_REALLOCATE \7f377,14916
 +#define REGS_FIXED \7f378,14942
 +  unsigned regs_allocated \7f379,14963
 +  unsigned fastmap_accurate \7f383,15136
 +  unsigned no_sub \7f387,15267
 +  unsigned not_bol \7f391,15398
 +  unsigned not_eol \7f394,15475
 +  unsigned used_syntax \7f398,15655
 +  unsigned multibyte \7f403,15805
 +  unsigned target_multibyte \7f407,15941
 +  int charset_unibyte;\7f410,16032
 +typedef struct re_pattern_buffer regex_t;\7f416,16098
 +typedef ssize_t regoff_t;\7f423,16492
 +struct re_registers\7f428,16652
 +  unsigned num_regs;\7f430,16674
 +  regoff_t *start;\7fstart\ 1431,16695
 +  regoff_t *end;\7fend\ 1432,16714
 +# define RE_NREGS \7f440,16942
 +  regoff_t rm_so;\7f449,17159
 +  regoff_t rm_eo;\7f450,17239
 +} regmatch_t;\7f451,17317
 +#  define _Restrict_ \7f540,20886
 +#  define _Restrict_ \7f542,20979
 +#  define _Restrict_\7f544,21018
 +#  define _Restrict_arr_ \7f555,21418
 +#  define _Restrict_arr_\7f557,21461
 +#  define CHAR_CLASS_MAX_LENGTH \7f593,22470
 +#  define CHAR_CLASS_MAX_LENGTH \7f597,22648
 +typedef wctype_t re_wctype_t;\7f599,22692
 +typedef wchar_t re_wchar_t;\7f600,22722
 +# define re_wctype \7f601,22750
 +# define re_iswctype \7f602,22776
 +# define re_wctype_to_bit(\7f603,22806
 +# define CHAR_CLASS_MAX_LENGTH \7f605,22844
 +# define btowc(\7f606,22906
 +typedef enum { RECC_ERROR \7f609,22953
 +             RECC_ALNUM,\7f610,22984
 +             RECC_ALNUM, RECC_ALPHA,\7f610,22984
 +             RECC_ALNUM, RECC_ALPHA, RECC_WORD,\7f610,22984
 +             RECC_GRAPH,\7f611,23027
 +             RECC_GRAPH, RECC_PRINT,\7f611,23027
 +             RECC_LOWER,\7f612,23059
 +             RECC_LOWER, RECC_UPPER,\7f612,23059
 +             RECC_PUNCT,\7f613,23091
 +             RECC_PUNCT, RECC_CNTRL,\7f613,23091
 +             RECC_DIGIT,\7f614,23123
 +             RECC_DIGIT, RECC_XDIGIT,\7f614,23123
 +             RECC_BLANK,\7f615,23156
 +             RECC_BLANK, RECC_SPACE,\7f615,23156
 +             RECC_MULTIBYTE,\7f616,23188
 +             RECC_MULTIBYTE, RECC_NONASCII,\7f616,23188
 +             RECC_ASCII,\7f617,23227
 +             RECC_ASCII, RECC_UNIBYTE\7f617,23227
 +} re_wctype_t;\7f618,23260
 +typedef int re_wchar_t;\7f623,23387
 +\f
 +c-src/emacs/src/keyboard.c,13949
 +volatile int interrupt_input_blocked;\7f76,1808
 +volatile bool pending_signals;\7f80,1944
 +#define KBD_BUFFER_SIZE \7f82,1976
 +KBOARD *initial_kboard;\7finitial_kboard\ 184,2006
 +KBOARD *current_kboard;\7fcurrent_kboard\ 185,2030
 +static KBOARD *all_kboards;\7fall_kboards\ 186,2054
 +static bool single_kboard;\7f89,2154
 +#define NUM_RECENT_KEYS \7f91,2182
 +static int recent_keys_index;\7f94,2269
 +static int total_keys;\7f97,2357
 +static Lisp_Object recent_keys;\7f100,2443
 +Lisp_Object this_command_keys;\7f107,2777
 +ptrdiff_t this_command_key_count;\7f108,2808
 +static bool this_command_key_count_reset;\7f112,2922
 +static Lisp_Object raw_keybuf;\7f116,3074
 +static int raw_keybuf_count;\7f117,3105
 +#define GROW_RAW_KEYBUF       \7f119,3135
 +static ptrdiff_t this_single_command_key_start;\7f125,3350
 +static ptrdiff_t before_command_key_count;\7f129,3498
 +static ptrdiff_t before_command_echo_length;\7f130,3541
 +sigjmp_buf return_to_command_loop;\7f135,3677
 +static Lisp_Object recover_top_level_message;\7f138,3791
 +static Lisp_Object regular_top_level_message;\7f143,3930
 +static sys_jmp_buf getcjmp;\7f147,4031
 +bool waiting_for_input;\7f150,4095
 +static bool echoing;\7f154,4186
 +static struct kboard *ok_to_echo_at_next_pause;\7fok_to_echo_at_next_pause\ 1159,4328
 +struct kboard *echo_kboard;\7fecho_kboard\ 1166,4632
 +Lisp_Object echo_message_buffer;\7f171,4744
 +bool immediate_quit;\7f174,4837
 +int quit_char;\7f192,5623
 +EMACS_INT command_loop_level;\7f195,5680
 +Lisp_Object unread_switch_frame;\7f204,6108
 +static ptrdiff_t last_non_minibuf_size;\7f207,6216
 +uintmax_t num_input_events;\7f210,6334
 +static EMACS_INT last_auto_save;\7f214,6428
 +static ptrdiff_t last_point_position;\7f217,6523
 +Lisp_Object internal_last_event_frame;\7f228,7028
 +static Lisp_Object read_key_sequence_cmd;\7f232,7168
 +static Lisp_Object read_key_sequence_remapped;\7f233,7210
 +static FILE *dribble;\7fdribble\ 1236,7310
 +bool input_pending;\7f239,7368
 +static bool input_was_pending;\7f287,10022
 +static struct input_event kbd_buffer[\7fkbd_buffer\ 1291,10107
 +static struct input_event *kbd_fetch_ptr;\7fkbd_fetch_ptr\ 1297,10386
 +static struct input_event * volatile kbd_store_ptr;\7f302,10601
 +unsigned timers_run;\7f320,11296
 +struct timespec *input_available_clear_time;\7finput_available_clear_time\ 1324,11408
 +bool interrupt_input;\7f328,11573
 +bool interrupts_deferred;\7f331,11671
 +static struct timespec timer_idleness_start_time;\7f335,11746
 +static struct timespec timer_last_idleness_start_time;\7f340,11916
 +#define READABLE_EVENTS_DO_TIMERS_NOW \7f346,12046
 +#define READABLE_EVENTS_FILTER_EVENTS \7f347,12094
 +#define READABLE_EVENTS_IGNORE_SQUEEZABLES    \7f348,12142
 +kset_echo_string \7f392,14088
 +kset_kbd_queue \7f397,14184
 +kset_keyboard_translate_table \7f402,14276
 +kset_last_prefix_arg \7f407,14399
 +kset_last_repeatable_command \7f412,14504
 +kset_local_function_key_map \7f417,14625
 +kset_overriding_terminal_local_map \7f422,14744
 +kset_real_last_command \7f427,14877
 +kset_system_key_syms \7f432,14986
 +echo_add_key \7f443,15249
 +echo_char \7f527,17527
 +echo_dash \7f541,17813
 +echo_now \7f586,19140
 +cancel_echoing \7f635,20614
 +echo_length \7f648,20922
 +echo_truncate \7f660,21253
 +add_command_key \7f672,21582
 +recursive_edit_1 \7f697,22406
 +record_auto_save \7f742,23848
 +force_auto_save_soon \7f751,24016
 +DEFUN ("recursive-edit", Frecursive_edit,\7frecursive-edit\ 1759,24137
 +recursive_edit_unwind \7f804,25747
 +any_kboard_state \7f817,26013
 +single_kboard_state \7f838,26665
 +not_single_kboard_state \7f848,26803
 +struct kboard_stack\7f858,27065
 +  KBOARD *kboard;\7fkboard\ 1860,27087
 +  struct kboard_stack *next;\7fnext\ 1861,27105
 +static struct kboard_stack *kboard_stack;\7fkboard_stack\ 1864,27138
 +push_kboard \7f867,27186
 +pop_kboard \7f879,27375
 +temporarily_switch_to_single_kboard \7f914,28263
 +record_single_kboard_state \7f943,29437
 +restore_kboard_configuration \7f952,29621
 +cmd_error \7f970,30077
 +cmd_error_internal \7f1024,31510
 +DEFUN ("command-error-default-function", Fcommand_error_default_function,\7fcommand-error-default-function\ 11043,32030
 +command_loop \7f1094,33916
 +command_loop_2 \7f1134,35135
 +top_level_2 \7f1146,35339
 +top_level_1 \7f1152,35417
 +DEFUN ("top-level", Ftop_level,\7ftop-level\ 11164,35787
 +user_error \7f1183,36288
 +DEFUN ("exit-recursive-edit", Fexit_recursive_edit,\7fexit-recursive-edit\ 11189,36429
 +DEFUN ("abort-recursive-edit", Fabort_recursive_edit,\7fabort-recursive-edit\ 11201,36819
 +tracking_off \7f1216,37281
 +DEFUN ("internal--track-mouse", Ftrack_mouse,\7ftrack-mouse\ 11234,37816
 +bool ignore_mouse_drag_p;\7f1256,38392
 +some_mouse_moved \7f1259,38441
 +Lisp_Object last_undo_boundary;\7f1287,39032
 +command_loop_1 \7f1294,39273
 +read_menu_command \7f1649,50889
 +adjust_point_for_property \7f1678,51617
 +safe_run_hooks_1 \7f1831,57339
 +safe_run_hooks_error \7f1841,57569
 +safe_run_hook_funcall \7f1878,58576
 +safe_run_hooks \7f1893,59058
 +int poll_suppress_count;\7f1908,59397
 +static struct atimer *poll_timer;\7fpoll_timer\ 11915,59487
 +poll_for_input_1 \7f1919,59589
 +poll_for_input \7f1930,59789
 +start_polling \7f1942,60053
 +input_polling_used \7f1979,61091
 +stop_polling \7f1994,61390
 +set_poll_suppress_count \7f2009,61759
 +bind_polling_period \7f2029,62141
 +make_ctrl_char \7f2048,62492
 +show_help_echo \7f2113,64455
 +static Lisp_Object help_form_saved_window_configs;\7f2156,65638
 +read_char_help_form_unwind \7f2158,65701
 +#define STOP_POLLING  \7f2166,65959
 +#define RESUME_POLLING        \7f2170,66084
 +read_event_from_main_queue \7f2175,66229
 +read_decoded_event_from_main_queue \7f2249,68417
 +#define MAX_ENCODED_BYTES \7f2254,68664
 +echo_keystrokes_p \7f2342,71556
 +read_char \7f2376,72848
 +record_menu_key \7f3225,98949
 +help_char_p \7f3258,99674
 +record_char \7f3273,99953
 +save_getcjmp \7f3412,104235
 +restore_getcjmp \7f3418,104326
 +readable_events \7f3430,104697
 +int stop_character EXTERNALLY_VISIBLE;\7f3497,106437
 +event_to_kboard \7f3500,106493
 +kbd_buffer_nr_stored \7f3522,107142
 +kbd_buffer_store_event \7f3534,107483
 +kbd_buffer_store_event_hold \7f3550,108025
 +kbd_buffer_unget_event \7f3684,111617
 +#define INPUT_EVENT_POS_MAX \7f3698,112018
 +#define INPUT_EVENT_POS_MIN \7f3701,112147
 +position_to_Time \7f3706,112287
 +Time_to_position \7f3716,112514
 +gen_help_event \7f3738,113171
 +kbd_buffer_store_help_event \7f3756,113611
 +discard_mouse_events \7f3773,113976
 +kbd_buffer_events_waiting \7f3803,114711
 +clear_event \7f3823,115068
 +kbd_buffer_get_event \7f3836,115408
 +process_special_events \7f4258,127881
 +swallow_events \7f4322,129705
 +timer_start_idle \7f4339,130098
 +timer_stop_idle \7f4355,130576
 +timer_resume_idle \7f4363,130720
 +struct input_event last_timer_event EXTERNALLY_VISIBLE;\7f4372,130912
 +Lisp_Object pending_funcalls;\7f4377,131172
 +decode_timer \7f4381,131293
 +timer_check_2 \7f4414,132246
 +timer_check \7f4572,136817
 +DEFUN ("current-idle-time", Fcurrent_idle_time,\7fcurrent-idle-time\ 14607,137662
 +static Lisp_Object accent_key_syms;\7f4625,138239
 +static Lisp_Object func_key_syms;\7f4626,138275
 +static Lisp_Object mouse_syms;\7f4627,138309
 +static Lisp_Object wheel_syms;\7f4628,138340
 +static Lisp_Object drag_n_drop_syms;\7f4629,138371
 +static const int lispy_accent_codes[\7flispy_accent_codes\ 14634,138516
 +static const char *const lispy_accent_keys[\7flispy_accent_keys\ 14741,139878
 +#define FUNCTION_KEY_OFFSET \7f4766,140314
 +const char *const lispy_function_keys[\7flispy_function_keys\ 14768,140347
 +static const char *const lispy_multimedia_keys[\7flispy_multimedia_keys\ 14962,148901
 +static const char *const lispy_kana_keys[\7flispy_kana_keys\ 15026,150135
 +#define FUNCTION_KEY_OFFSET \7f5061,151751
 +static const char *const lispy_function_keys[\7flispy_function_keys\ 15065,151894
 +#define ISO_FUNCTION_KEY_OFFSET \7f5149,154429
 +static const char *const iso_lispy_function_keys[\7fiso_lispy_function_keys\ 15151,154469
 +static Lisp_Object Vlispy_mouse_stem;\7f5172,155328
 +static const char *const lispy_wheel_names[\7flispy_wheel_names\ 15174,155367
 +static const char *const lispy_drag_n_drop_names[\7flispy_drag_n_drop_names\ 15181,155619
 +static short const scroll_bar_parts[\7fscroll_bar_parts\ 15189,155885
 +static Lisp_Object button_down_location;\7f5210,156910
 +static int last_mouse_button;\7f5215,157065
 +static int last_mouse_x;\7f5216,157095
 +static int last_mouse_y;\7f5217,157120
 +static Time button_down_time;\7f5218,157145
 +static int double_click_count;\7f5222,157229
 +make_lispy_position \7f5228,157390
 +toolkit_menubar_in_use \7f5456,163953
 +make_scroll_bar_position \7f5469,164321
 +make_lispy_event \7f5485,164967
 +make_lispy_movement \7f6104,183531
 +make_lispy_switch_frame \7f6131,184262
 +make_lispy_focus_in \7f6137,184369
 +make_lispy_focus_out \7f6145,184495
 +parse_modifiers_uncached \7f6163,184945
 +#define SINGLE_LETTER_MOD(\7f6185,185465
 +#undef SINGLE_LETTER_MOD\7f6212,185906
 +#define MULTI_LETTER_MOD(\7f6214,185932
 +#undef MULTI_LETTER_MOD\7f6231,186400
 +apply_modifiers_uncached \7f6273,187574
 +static const char *const modifier_names[\7fmodifier_names\ 16319,189193
 +#define NUM_MOD_NAMES \7f6325,189399
 +static Lisp_Object modifier_symbols;\7f6327,189449
 +lispy_modifier_list \7f6331,189586
 +#define KEY_TO_CHAR(\7f6353,190252
 +parse_modifiers \7f6356,190328
 +DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,\7fevent-symbol-parse-modifiers\ 16399,191517
 +apply_modifiers \7f6422,192391
 +reorder_modifiers \7f6491,194720
 +modify_event_symbol \7f6536,196528
 +DEFUN ("event-convert-list", Fevent_convert_list,\7fevent-convert-list\ 16628,199244
 +parse_solitary_modifier \7f6695,201135
 +#define SINGLE_LETTER_MOD(\7f6701,201258
 +#define MULTI_LETTER_MOD(\7f6705,201343
 +#undef SINGLE_LETTER_MOD\7f6763,202641
 +#undef MULTI_LETTER_MOD\7f6764,202666
 +lucid_event_type_list_p \7f6775,202889
 +get_input_pending \7f6814,203960
 +record_asynch_buffer_change \7f6834,204579
 +gobble_input \7f6872,205702
 +tty_read_avail_input \7f6967,208310
 +handle_async_input \7f7149,214039
 +process_pending_signals \7f7165,214359
 +unblock_input_to \7f7177,214645
 +unblock_input \7f7200,215277
 +totally_unblock_input \7f7209,215445
 +handle_input_available_signal \7f7217,215529
 +deliver_input_available_signal \7f7226,215700
 +struct user_signal_info\7f7235,215865
 +  int sig;\7f7238,215915
 +  char *name;\7fname\ 17241,215956
 +  int npending;\7f7244,216007
 +  struct user_signal_info *next;\7fnext\ 17246,216024
 +static struct user_signal_info *user_signals \7fuser_signals\ 17250,216090
 +add_user_signal \7f7253,216149
 +handle_user_signal \7f7275,216598
 +deliver_user_signal \7f7316,217558
 +find_user_signal_name \7f7322,217659
 +store_user_signal_events \7f7334,217841
 +static Lisp_Object menu_bar_one_keymap_changed_items;\7f7363,218416
 +static Lisp_Object menu_bar_items_vector;\7f7368,218630
 +static int menu_bar_items_index;\7f7369,218672
 +static const char *separator_names[\7fseparator_names\ 17372,218707
 +menu_separator_name_p \7f7393,219148
 +menu_bar_items \7f7426,219852
 +Lisp_Object item_properties;\7f7568,224603
 +menu_bar_item \7f7571,224645
 +menu_item_eval_property_1 \7f7647,227175
 +eval_dyn \7f7658,227465
 +menu_item_eval_property \7f7666,227675
 +parse_menu_item \7f7686,228341
 +static Lisp_Object tool_bar_items_vector;\7f7965,236336
 +static Lisp_Object tool_bar_item_properties;\7f7970,236510
 +static int ntool_bar_items;\7f7974,236606
 +tool_bar_items \7f7990,237083
 +process_tool_bar_item \7f8075,239892
 +#define PROP(\7f8112,240969
 +set_prop \7f8114,241038
 +parse_tool_bar_item \7f8167,242453
 +#undef PROP\7f8379,248844
 +init_tool_bar_items \7f8387,248969
 +append_tool_bar_item \7f8401,249261
 +read_char_x_menu_prompt \7f8443,250771
 +read_char_minibuf_menu_prompt \7f8503,252445
 +#define PUSH_C_STR(\7f8527,253014
 +follow_key \7f8726,258553
 +active_maps \7f8733,258695
 +typedef struct keyremap\7f8742,259021
 +  Lisp_Object parent;\7f8745,259107
 +  Lisp_Object map;\7f8748,259224
 +  int start,\7f8753,259446
 +  int start, end;\7f8753,259446
 +} keyremap;\7f8754,259464
 +access_keymap_keyremap \7f8764,259808
 +keyremap_step \7f8811,261450
 +test_undefined \7f8867,262934
 +read_key_sequence \7f8916,264861
 +read_key_sequence_vs \7f9826,295821
 +DEFUN ("read-key-sequence", Fread_key_sequence,\7fread-key-sequence\ 19885,297294
 +DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,\7fread-key-sequence-vector\ 19938,299982
 +detect_input_pending \7f9950,300488
 +detect_input_pending_ignore_squeezables \7f9959,300654
 +detect_input_pending_run_timers \7f9967,300870
 +clear_input_pending \7f9985,301362
 +requeued_events_pending_p \7f9997,301732
 +DEFUN ("input-pending-p", Finput_pending_p,\7finput-pending-p\ 110002,301813
 +DEFUN ("recent-keys", Frecent_keys,\7frecent-keys\ 110024,302596
 +DEFUN ("this-command-keys", Fthis_command_keys,\7fthis-command-keys\ 110055,303517
 +DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,\7fthis-command-keys-vector\ 110068,303958
 +DEFUN ("this-single-command-keys", Fthis_single_command_keys,\7fthis-single-command-keys\ 110080,304380
 +DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,\7fthis-single-command-raw-keys\ 110096,304955
 +DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,\7freset-this-command-lengths\ 110109,305495
 +DEFUN ("clear-this-command-keys", Fclear_this_command_keys,\7fclear-this-command-keys\ 110136,306510
 +DEFUN ("recursion-depth", Frecursion_depth,\7frecursion-depth\ 110158,307069
 +DEFUN ("open-dribble-file", Fopen_dribble_file,\7fopen-dribble-file\ 110169,307406
 +DEFUN ("discard-input", Fdiscard_input,\7fdiscard-input\ 110203,308447
 +DEFUN ("suspend-emacs", Fsuspend_emacs,\7fsuspend-emacs\ 110225,308949
 +stuff_buffered_input \7f10285,311045
 +set_waiting_for_input \7f10323,312016
 +clear_waiting_for_input \7f10337,312390
 +handle_interrupt_signal \7f10351,312754
 +deliver_interrupt_signal \7f10378,313642
 +static int volatile force_quit_count;\7f10387,313932
 +handle_interrupt \7f10401,314414
 +quit_throw_to_read_char \7f10541,318711
 +DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,\7fset-input-interrupt-mode\ 110562,319288
 +DEFUN ("set-output-flow-control", Fset_output_flow_control,\7fset-output-flow-control\ 110609,320516
 +DEFUN ("set-input-meta-mode", Fset_input_meta_mode,\7fset-input-meta-mode\ 110643,321432
 +DEFUN ("set-quit-char", Fset_quit_char,\7fset-quit-char\ 110694,322706
 +DEFUN ("set-input-mode", Fset_input_mode,\7fset-input-mode\ 110729,323570
 +DEFUN ("current-input-mode", Fcurrent_input_mode,\7fcurrent-input-mode\ 110750,324459
 +DEFUN ("posn-at-x-y", Fposn_at_x_y,\7fposn-at-x-y\ 110787,325837
 +DEFUN ("posn-at-point", Fposn_at_point,\7fposn-at-point\ 110824,327060
 +init_kboard \7f10861,328214
 +allocate_kboard \7f10893,329284
 +wipe_kboard \7f10909,329637
 +delete_kboard \7f10917,329751
 +init_keyboard \7f10942,330281
 +struct event_head\7f11021,332696
 +  short var;\7f11023,332716
 +  short kind;\7f11024,332729
 +static const struct event_head head_table[\7fhead_table\ 111027,332747
 +syms_of_keyboard \7f11045,333577
 +keys_of_keyboard \7f11841,367115
 +mark_kboards \7f11916,370434
 +\f
 +c-src/emacs/src/lisp.h,25767
 +#define EMACS_LISP_H\7f22,800
 +#define DECLARE_GDB_SYM(\7f47,1421
 +# define DEFINE_GDB_SYMBOL_BEGIN(\7f49,1508
 +# define DEFINE_GDB_SYMBOL_END(\7f50,1578
 +# define DEFINE_GDB_SYMBOL_BEGIN(\7f52,1625
 +# define DEFINE_GDB_SYMBOL_END(\7f53,1702
 +#undef min\7f57,1790
 +#undef max\7f58,1801
 +#define max(\7f59,1812
 +#define min(\7f60,1854
 +#define ARRAYELTS(\7f63,1936
 +#define GCTYPEBITS \7f67,2079
 +DEFINE_GDB_SYMBOL_BEGIN \7fGCTYPEBITS\ 166,2037
 +# define NONPOINTER_BITS \7f78,2567
 +# define NONPOINTER_BITS \7f80,2600
 +typedef int EMACS_INT;\7f91,3023
 +typedef unsigned int EMACS_UINT;\7f92,3046
 +#  define EMACS_INT_MAX \7f93,3079
 +#  define pI \7f94,3111
 +typedef long int EMACS_INT;\7f96,3203
 +typedef unsigned long EMACS_UINT;\7f97,3231
 +#  define EMACS_INT_MAX \7f98,3265
 +#  define pI \7f99,3298
 +typedef long long int EMACS_INT;\7f103,3477
 +typedef unsigned long long int EMACS_UINT;\7f104,3510
 +#  define EMACS_INT_MAX \7f105,3553
 +#  define pI \7f106,3587
 +enum {  BOOL_VECTOR_BITS_PER_CHAR \7f114,3804
 +#define BOOL_VECTOR_BITS_PER_CHAR \7f115,3840
 +typedef size_t bits_word;\7f123,4165
 +# define BITS_WORD_MAX \7f124,4191
 +enum { BITS_PER_BITS_WORD \7f125,4223
 +typedef unsigned char bits_word;\7f127,4290
 +# define BITS_WORD_MAX \7f128,4323
 +enum { BITS_PER_BITS_WORD \7f129,4386
 +    BITS_PER_CHAR \7f136,4570
 +    BITS_PER_SHORT \7f137,4605
 +    BITS_PER_LONG \7f138,4657
 +    BITS_PER_EMACS_INT \7f139,4712
 +typedef intmax_t printmax_t;\7f148,5089
 +typedef uintmax_t uprintmax_t;\7f149,5118
 +# define pMd \7f150,5149
 +# define pMu \7f151,5170
 +typedef EMACS_INT printmax_t;\7f153,5197
 +typedef EMACS_UINT uprintmax_t;\7f154,5227
 +# define pMd \7f155,5259
 +# define pMu \7f156,5278
 +# define pD \7f165,5664
 +# define pD \7f167,5709
 +# define pD \7f169,5756
 +# define pD \7f171,5779
 +# define eassert(\7f200,7062
 +# define eassume(\7f201,7140
 +# define eassert(\7f208,7319
 +# define eassume(\7f212,7450
 +enum Lisp_Bits\7f239,8519
 +#define GCALIGNMENT \7f243,8647
 +    VALBITS \7f246,8742
 +    INTTYPEBITS \7f249,8838
 +    FIXNUM_BITS \7f252,8945
 +#define VAL_MAX \7f263,9327
 +#define USE_LSB_TAG \7f271,9777
 +DEFINE_GDB_SYMBOL_BEGIN \7fUSE_LSB_TAG\ 1270,9733
 +# define alignas(\7f281,10077
 +# define GCALIGNED \7f288,10227
 +# define GCALIGNED \7f290,10292
 +# define lisp_h_XLI(\7f327,11642
 +# define lisp_h_XIL(\7f328,11673
 +# define lisp_h_XLI(\7f330,11724
 +# define lisp_h_XIL(\7f331,11751
 +#define lisp_h_CHECK_LIST_CONS(\7f333,11785
 +#define lisp_h_CHECK_NUMBER(\7f334,11856
 +#define lisp_h_CHECK_SYMBOL(\7f335,11927
 +#define lisp_h_CHECK_TYPE(\7f336,11996
 +#define lisp_h_CONSP(\7f338,12107
 +#define lisp_h_EQ(\7f339,12156
 +#define lisp_h_FLOATP(\7f340,12201
 +#define lisp_h_INTEGERP(\7f341,12252
 +#define lisp_h_MARKERP(\7f342,12333
 +#define lisp_h_MISCP(\7f343,12408
 +#define lisp_h_NILP(\7f344,12457
 +#define lisp_h_SET_SYMBOL_VAL(\7f345,12493
 +#define lisp_h_SYMBOL_CONSTANT_P(\7f347,12607
 +#define lisp_h_SYMBOL_VAL(\7f348,12671
 +#define lisp_h_SYMBOLP(\7f350,12772
 +#define lisp_h_VECTORLIKEP(\7f351,12825
 +#define lisp_h_XCAR(\7f352,12886
 +#define lisp_h_XCDR(\7f353,12924
 +#define lisp_h_XCONS(\7f354,12964
 +#define lisp_h_XHASH(\7f356,13059
 +#define lisp_h_XPNTR(\7f357,13093
 +# define lisp_h_check_cons_list(\7f360,13221
 +# define lisp_h_make_number(\7f363,13289
 +# define lisp_h_XFASTINT(\7f365,13392
 +# define lisp_h_XINT(\7f366,13429
 +# define lisp_h_XSYMBOL(\7f367,13478
 +# define lisp_h_XTYPE(\7f371,13631
 +# define lisp_h_XUNTAG(\7f372,13696
 +# define XLI(\7f381,14086
 +# define XIL(\7f382,14117
 +# define CHECK_LIST_CONS(\7f383,14148
 +# define CHECK_NUMBER(\7f384,14209
 +# define CHECK_SYMBOL(\7f385,14258
 +# define CHECK_TYPE(\7f386,14307
 +# define CONSP(\7f387,14382
 +# define EQ(\7f388,14417
 +# define FLOATP(\7f389,14452
 +# define INTEGERP(\7f390,14489
 +# define MARKERP(\7f391,14530
 +# define MISCP(\7f392,14569
 +# define NILP(\7f393,14604
 +# define SET_SYMBOL_VAL(\7f394,14637
 +# define SYMBOL_CONSTANT_P(\7f395,14700
 +# define SYMBOL_VAL(\7f396,14763
 +# define SYMBOLP(\7f397,14812
 +# define VECTORLIKEP(\7f398,14851
 +# define XCAR(\7f399,14898
 +# define XCDR(\7f400,14931
 +# define XCONS(\7f401,14964
 +# define XHASH(\7f402,14999
 +# define XPNTR(\7f403,15034
 +#  define check_cons_list(\7f405,15097
 +#  define make_number(\7f408,15176
 +#  define XFASTINT(\7f409,15224
 +#  define XINT(\7f410,15266
 +#  define XSYMBOL(\7f411,15300
 +#  define XTYPE(\7f412,15340
 +#  define XUNTAG(\7f413,15376
 +#define LISP_MACRO_DEFUN(\7f421,15672
 +#define LISP_MACRO_DEFUN_VOID(\7f425,15845
 +#define INTMASK \7f437,16289
 +#define case_Lisp_Int \7f438,16342
 +#define ENUM_BF(\7f445,16681
 +#define ENUM_BF(\7f447,16722
 +enum Lisp_Type\7f451,16763
 +    Lisp_Symbol \7f454,16851
 +    Lisp_Misc \7f458,16993
 +    Lisp_Int0 \7f461,17067
 +    Lisp_Int1 \7f462,17086
 +    Lisp_String \7f466,17264
 +    Lisp_Vectorlike \7f472,17543
 +    Lisp_Cons \7f475,17632
 +    Lisp_Float \7f477,17670
 +enum Lisp_Misc_Type\7f485,18016
 +    Lisp_Misc_Free \7f487,18040
 +    Lisp_Misc_Marker,\7f488,18069
 +    Lisp_Misc_Overlay,\7f489,18091
 +    Lisp_Misc_Save_Value,\7f490,18114
 +    Lisp_Misc_Finalizer,\7f491,18140
 +    Lisp_Misc_Float,\7f494,18275
 +    Lisp_Misc_Limit\7f496,18359
 +enum Lisp_Fwd_Type\7f502,18543
 +    Lisp_Fwd_Int,\7f504,18566
 +    Lisp_Fwd_Bool,\7f505,18619
 +    Lisp_Fwd_Obj,\7f506,18670
 +    Lisp_Fwd_Buffer_Obj,\7f507,18729
 +    Lisp_Fwd_Kboard_Obj       \7f508,18800
 +typedef struct { EMACS_INT i;\7f567,21781
 +typedef struct { EMACS_INT i; } Lisp_Object;\7f567,21781
 +#define LISP_INITIALLY(\7f569,21827
 +#undef CHECK_LISP_OBJECT_TYPE\7f571,21858
 +enum CHECK_LISP_OBJECT_TYPE \7f572,21888
 +enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE \7f572,21888
 +typedef EMACS_INT Lisp_Object;\7f577,22064
 +#define LISP_INITIALLY(\7f578,22095
 +enum CHECK_LISP_OBJECT_TYPE \7f579,22125
 +enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE \7f579,22125
 +#define LISP_INITIALLY_ZERO \7f582,22226
 +enum symbol_interned\7f639,24199
 +  SYMBOL_UNINTERNED \7f641,24222
 +  SYMBOL_INTERNED \7f642,24247
 +  SYMBOL_INTERNED_IN_INITIAL_OBARRAY \7f643,24270
 +enum symbol_redirect\7f646,24315
 +  SYMBOL_PLAINVAL \7f648,24338
 +  SYMBOL_VARALIAS \7f649,24362
 +  SYMBOL_LOCALIZED \7f650,24386
 +  SYMBOL_FORWARDED \7f651,24410
 +struct Lisp_Symbol\7f654,24437
 +  bool_bf gcmarkbit \7f656,24458
 +  ENUM_BF \7f663,24793
 +    Lisp_Object value;\7f687,25631
 +    struct Lisp_Symbol *alias;\7falias\ 1688,25654
 +    struct Lisp_Buffer_Local_Value *blv;\7fblv\ 1689,25685
 +    union Lisp_Fwd *fwd;\7ffwd\ 1690,25726
 +  } val;\7f691,25751
 +  Lisp_Object function;\7f694,25823
 +  Lisp_Object plist;\7f697,25885
 +  struct Lisp_Symbol *next;\7fnext\ 1700,25974
 +#define EXFUN(\7f707,26252
 +#define DEFUN_ARGS_MANY       \7f712,26446
 +#define DEFUN_ARGS_UNEVALLED  \7f713,26498
 +#define DEFUN_ARGS_0  \7f714,26541
 +#define DEFUN_ARGS_1  \7f715,26569
 +#define DEFUN_ARGS_2  \7f716,26604
 +#define DEFUN_ARGS_3  \7f717,26652
 +#define DEFUN_ARGS_4  \7f718,26713
 +#define DEFUN_ARGS_5  \7f719,26787
 +#define DEFUN_ARGS_6  \7f721,26880
 +#define DEFUN_ARGS_7  \7f723,26986
 +#define DEFUN_ARGS_8  \7f725,27105
 +#define TAG_PTR(\7f729,27296
 +#define TAG_SYMOFFSET(\7f734,27543
 +#define XLI_BUILTIN_LISPSYM(\7f741,27842
 +#define DEFINE_LISP_SYMBOL(\7f746,28101
 +# define DEFINE_NON_NIL_Q_SYMBOL_MACROS \7f755,28572
 +LISP_MACRO_DEFUN \7f762,28777
 +# define ARRAY_MARK_FLAG \7f768,29024
 +# define PSEUDOVECTOR_FLAG \7f774,29267
 +enum pvec_type\7f780,29568
 +  PVEC_NORMAL_VECTOR,\7f782,29585
 +  PVEC_FREE,\7f783,29607
 +  PVEC_PROCESS,\7f784,29620
 +  PVEC_FRAME,\7f785,29636
 +  PVEC_WINDOW,\7f786,29650
 +  PVEC_BOOL_VECTOR,\7f787,29665
 +  PVEC_BUFFER,\7f788,29685
 +  PVEC_HASH_TABLE,\7f789,29700
 +  PVEC_TERMINAL,\7f790,29719
 +  PVEC_WINDOW_CONFIGURATION,\7f791,29736
 +  PVEC_SUBR,\7f792,29765
 +  PVEC_OTHER,\7f793,29778
 +  PVEC_COMPILED,\7f795,29856
 +  PVEC_CHAR_TABLE,\7f796,29873
 +  PVEC_SUB_CHAR_TABLE,\7f797,29892
 +  PVEC_FONT \7f798,29915
 +enum More_Lisp_Bits\7f801,29991
 +    PSEUDOVECTOR_SIZE_BITS \7f808,30382
 +    PSEUDOVECTOR_SIZE_MASK \7f809,30415
 +    PSEUDOVECTOR_REST_BITS \7f813,30625
 +    PSEUDOVECTOR_REST_MASK \7f814,30658
 +    PSEUDOVECTOR_AREA_BITS \7f818,30823
 +    PVEC_TYPE_MASK \7f819,30901
 +# define VALMASK \7f829,31302
 +DEFINE_GDB_SYMBOL_BEGIN \7fVALMASK\ 1828,31257
 +#define MOST_POSITIVE_FIXNUM \7f834,31532
 +#define MOST_NEGATIVE_FIXNUM \7f835,31592
 +XINT \7f874,32684
 +XFASTINT \7f889,33035
 +XSYMBOL \7f899,33263
 +XTYPE \7f910,33481
 +XUNTAG \7f918,33661
 +LISP_MACRO_DEFUN \7f927,33857
 +LISP_MACRO_DEFUN \7f940,34242
 +#define FIXNUM_OVERFLOW_P(\7f958,34855
 +LISP_MACRO_DEFUN \7fFIXNUM_OVERFLOW_P\ 1952,34632
 +LISP_MACRO_DEFUN \7f970,35171
 +XSTRING \7f980,35391
 +#define SYMBOL_INDEX(\7f988,35575
 +XFLOAT \7f991,35636
 +XPROCESS \7f1000,35778
 +XWINDOW \7f1007,35895
 +XTERMINAL \7f1014,36012
 +XSUBR \7f1021,36134
 +XBUFFER \7f1028,36245
 +XCHAR_TABLE \7f1035,36369
 +XSUB_CHAR_TABLE \7f1042,36506
 +XBOOL_VECTOR \7f1049,36648
 +make_lisp_ptr \7f1058,36827
 +make_lisp_symbol \7f1066,37013
 +builtin_lisp_symbol \7f1074,37197
 +#define XSETINT(\7f1079,37279
 +#define XSETFASTINT(\7f1080,37325
 +#define XSETCONS(\7f1081,37375
 +#define XSETVECTOR(\7f1082,37435
 +#define XSETSTRING(\7f1083,37503
 +#define XSETSYMBOL(\7f1084,37567
 +#define XSETFLOAT(\7f1085,37621
 +#define XSETMISC(\7f1086,37683
 +#define XSETPVECTYPE(\7f1090,37772
 +#define XSETPVECTYPESIZE(\7f1092,37888
 +#define XSETPSEUDOVECTOR(\7f1099,38185
 +#define XSETTYPED_PSEUDOVECTOR(\7f1105,38369
 +#define XSETWINDOW_CONFIGURATION(\7f1110,38579
 +#define XSETPROCESS(\7f1112,38675
 +#define XSETWINDOW(\7f1113,38741
 +#define XSETTERMINAL(\7f1114,38805
 +#define XSETSUBR(\7f1115,38873
 +#define XSETCOMPILED(\7f1116,38933
 +#define XSETBUFFER(\7f1117,39001
 +#define XSETCHAR_TABLE(\7f1118,39065
 +#define XSETBOOL_VECTOR(\7f1119,39137
 +#define XSETSUB_CHAR_TABLE(\7f1120,39211
 +XINTPTR \7f1128,39581
 +make_pointer_integer \7f1134,39661
 +LISP_MACRO_DEFUN_VOID \7f1143,39826
 +typedef struct interval *INTERVAL;\7fINTERVAL\ 11149,39987
 +      Lisp_Object cdr;\7f1159,40162
 +      struct Lisp_Cons *chain;\7fchain\ 11162,40236
 +xcar_addr \7f1174,40760
 +xcdr_addr \7f1179,40837
 +LISP_MACRO_DEFUN \7f1185,40931
 +XSETCDR \7f1198,41307
 +CAR \7f1205,41457
 +CDR \7f1212,41591
 +CAR_SAFE \7f1221,41791
 +CDR_SAFE \7f1226,41877
 +STRING_MULTIBYTE \7f1243,42250
 +#define STRING_BYTES_BOUND \7f1261,43057
 +#define STRING_SET_UNIBYTE(\7f1265,43201
 +#define STRING_SET_MULTIBYTE(\7f1275,43516
 +SDATA \7f1286,43830
 +SSDATA \7f1291,43908
 +SREF \7f1297,44037
 +SSET \7f1302,44128
 +SCHARS \7f1307,44242
 +STRING_BYTES \7f1316,44415
 +SBYTES \7f1326,44595
 +STRING_SET_CHARS \7f1331,44681
 +struct vectorlike_header\7f1343,45232
 +    ptrdiff_t size;\7f1364,46383
 +struct Lisp_Vector\7f1369,46482
 +    struct vectorlike_header header;\7f1371,46505
 +    Lisp_Object contents[\7fcontents\ 11372,46542
 +    ALIGNOF_STRUCT_LISP_VECTOR\7f1378,46681
 +struct Lisp_Bool_Vector\7f1384,46864
 +    struct vectorlike_header header;\7f1388,47012
 +    EMACS_INT size;\7f1390,47086
 +    bits_word data[\7fdata\ 11395,47319
 +bool_vector_size \7f1399,47385
 +bool_vector_data \7f1407,47523
 +bool_vector_uchar_data \7f1413,47617
 +bool_vector_words \7f1421,47803
 +bool_vector_bytes \7f1428,47998
 +bool_vector_bitref \7f1437,48238
 +bool_vector_ref \7f1445,48478
 +bool_vector_set \7f1453,48618
 +    header_size \7f1471,49047
 +    bool_header_size \7f1472,49106
 +    word_size \7f1473,49171
 +AREF \7f1479,49284
 +aref_addr \7f1485,49391
 +ASIZE \7f1491,49501
 +ASET \7f1497,49583
 +gc_aset \7f1504,49742
 +enum { NIL_IS_ZERO \7f1515,50269
 +memclear \7f1520,50464
 +#define VECSIZE(\7f1531,50762
 +#define PSEUDOVECSIZE(\7f1538,51047
 +#define UNSIGNED_CMP(\7f1546,51480
 +#define ASCII_CHAR_P(\7f1552,51734
 +enum CHARTAB_SIZE_BITS\7f1565,52489
 +    CHARTAB_SIZE_BITS_0 \7f1567,52516
 +    CHARTAB_SIZE_BITS_1 \7f1568,52545
 +    CHARTAB_SIZE_BITS_2 \7f1569,52574
 +    CHARTAB_SIZE_BITS_3 \7f1570,52603
 +struct Lisp_Char_Table\7f1575,52672
 +    struct vectorlike_header header;\7f1581,52928
 +    Lisp_Object defalt;\7f1585,53078
 +    Lisp_Object parent;\7f1590,53280
 +    Lisp_Object purpose;\7f1594,53398
 +    Lisp_Object ascii;\7f1598,53564
 +    Lisp_Object contents[\7fcontents\ 11600,53588
 +    Lisp_Object extras[\7fextras\ 11603,53699
 +struct Lisp_Sub_Char_Table\7f1606,53752
 +    struct vectorlike_header header;\7f1610,53918
 +    int depth;\7f1618,54341
 +    int min_char;\7f1621,54417
 +    Lisp_Object contents[\7fcontents\ 11624,54492
 +CHAR_TABLE_REF_ASCII \7f1628,54566
 +CHAR_TABLE_REF \7f1648,55113
 +CHAR_TABLE_SET \7f1658,55402
 +struct Lisp_Subr\7f1670,55786
 +    struct vectorlike_header header;\7f1672,55807
 +      Lisp_Object (*a0)\7fa0\ 11674,55856
 +      Lisp_Object (*a1)\7fa1\ 11675,55888
 +      Lisp_Object (*a2)\7fa2\ 11676,55927
 +      Lisp_Object (*a3)\7fa3\ 11677,55979
 +      Lisp_Object (*a4)\7fa4\ 11678,56044
 +      Lisp_Object (*a5)\7fa5\ 11679,56122
 +      Lisp_Object (*a6)\7fa6\ 11680,56213
 +      Lisp_Object (*a7)\7fa7\ 11681,56317
 +      Lisp_Object (*a8)\7fa8\ 11682,56434
 +      Lisp_Object (*aUNEVALLED)\7faUNEVALLED\ 11683,56564
 +      Lisp_Object (*aMANY)\7faMANY\ 11684,56616
 +    } function;\7f1685,56671
 +    short min_args,\7f1686,56687
 +    short min_args, max_args;\7f1686,56687
 +    const char *symbol_name;\7fsymbol_name\ 11687,56717
 +    const char *intspec;\7fintspec\ 11688,56746
 +    const char *doc;\7fdoc\ 11689,56771
 +enum char_table_specials\7f1692,56798
 +    CHAR_TABLE_STANDARD_SLOTS \7f1697,56993
 +    SUB_CHAR_TABLE_OFFSET \7f1701,57214
 +CHAR_TABLE_EXTRA_SLOTS \7f1707,57377
 +LISP_MACRO_DEFUN \7f1723,57921
 +SYMBOL_BLV \7f1732,58181
 +SYMBOL_FWD \7f1738,58316
 +LISP_MACRO_DEFUN_VOID \7f1744,58428
 +SET_SYMBOL_BLV \7f1754,58691
 +SET_SYMBOL_FWD \7f1760,58850
 +SYMBOL_NAME \7f1767,59001
 +SYMBOL_INTERNED_P \7f1775,59130
 +SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P \7f1783,59299
 +#define DEFSYM(\7f1796,59809
 +LISP_MACRO_DEFUN \7fDEFSYM\ 11792,59630
 +struct hash_table_test\7f1805,60062
 +  Lisp_Object name;\7f1808,60139
 +  Lisp_Object user_hash_function;\7f1811,60206
 +  Lisp_Object user_cmp_function;\7f1814,60297
 +  bool (*cmpfn)\7fcmpfn\ 11817,60372
 +  EMACS_UINT (*hashfn)\7fhashfn\ 11820,60486
 +struct Lisp_Hash_Table\7f1823,60555
 +  struct vectorlike_header header;\7f1826,60649
 +  Lisp_Object weak;\7f1830,60783
 +  Lisp_Object rehash_size;\7f1835,61007
 +  Lisp_Object rehash_threshold;\7f1839,61129
 +  Lisp_Object hash;\7f1843,61260
 +  Lisp_Object next;\7f1848,61490
 +  Lisp_Object next_free;\7f1851,61560
 +  Lisp_Object index;\7f1856,61771
 +  ptrdiff_t count;\7f1863,62041
 +  Lisp_Object key_and_value;\7f1868,62240
 +  struct hash_table_test test;\7f1871,62314
 +  struct Lisp_Hash_Table *next_weak;\7fnext_weak\ 11875,62457
 +XHASH_TABLE \7f1880,62531
 +#define XSET_HASH_TABLE(\7f1885,62602
 +HASH_TABLE_P \7f1889,62703
 +HASH_KEY \7f1896,62860
 +HASH_VALUE \7f1903,63040
 +HASH_NEXT \7f1911,63254
 +HASH_HASH \7f1918,63431
 +HASH_INDEX \7f1926,63677
 +HASH_TABLE_SIZE \7f1933,63826
 +enum DEFAULT_HASH_SIZE \7f1940,63956
 +enum DEFAULT_HASH_SIZE { DEFAULT_HASH_SIZE \7f1940,63956
 +static double const DEFAULT_REHASH_THRESHOLD \7f1946,64176
 +static double const DEFAULT_REHASH_SIZE \7f1950,64299
 +sxhash_combine \7f1956,64465
 +SXHASH_REDUCE \7f1964,64648
 +struct Lisp_Misc_Any  \7f1971,64806
 +  ENUM_BF \7f1973,64866
 +struct Lisp_Marker\7f1978,64980
 +  ENUM_BF \7f1980,65001
 +struct Lisp_Overlay\7f2021,66841
 +    ENUM_BF \7f2034,67349
 +    SAVE_UNUSED,\7f2047,67644
 +    SAVE_INTEGER,\7f2048,67661
 +    SAVE_FUNCPOINTER,\7f2049,67679
 +    SAVE_POINTER,\7f2050,67701
 +    SAVE_OBJECT\7f2051,67719
 +enum { SAVE_SLOT_BITS \7f2055,67804
 +enum { SAVE_VALUE_SLOTS \7f2058,67901
 +enum { SAVE_TYPE_BITS \7f2062,68009
 +enum Lisp_Save_Type\7f2064,68075
 +    SAVE_TYPE_INT_INT \7f2066,68099
 +    SAVE_TYPE_INT_INT_INT\7f2067,68172
 +    SAVE_TYPE_OBJ_OBJ \7f2069,68262
 +    SAVE_TYPE_OBJ_OBJ_OBJ \7f2070,68333
 +    SAVE_TYPE_OBJ_OBJ_OBJ_OBJ\7f2071,68414
 +    SAVE_TYPE_PTR_INT \7f2073,68509
 +    SAVE_TYPE_PTR_OBJ \7f2074,68582
 +    SAVE_TYPE_PTR_PTR \7f2075,68654
 +    SAVE_TYPE_FUNCPTR_PTR_OBJ\7f2076,68727
 +    SAVE_TYPE_MEMORY \7f2080,68885
 +typedef void (*voidfuncptr)\7fvoidfuncptr\ 12108,69839
 +struct Lisp_Save_Value\7f2110,69876
 +    ENUM_BF \7f2112,69903
 +      void *pointer;\7fpointer\ 12125,70558
 +      voidfuncptr funcpointer;\7f2126,70579
 +      ptrdiff_t integer;\7f2127,70610
 +      Lisp_Object object;\7f2128,70635
 +    } data[\7fdata\ 12129,70661
 +save_type \7f2134,70755
 +XSAVE_POINTER \7f2143,70985
 +set_save_pointer \7f2149,71147
 +XSAVE_FUNCPOINTER \7f2155,71329
 +XSAVE_INTEGER \7f2164,71549
 +set_save_integer \7f2170,71711
 +XSAVE_OBJECT \7f2179,71932
 +struct Lisp_Finalizer\7f2186,72109
 +    struct Lisp_Misc_Any base;\7f2188,72135
 +    struct Lisp_Finalizer *prev;\7fprev\ 12191,72223
 +    struct Lisp_Finalizer *next;\7fnext\ 12192,72256
 +    Lisp_Object function;\7f2197,72493
 +struct Lisp_Free\7f2201,72584
 +    ENUM_BF \7f2203,72605
 +union Lisp_Misc\7f2212,72885
 +    struct Lisp_Misc_Any u_any;\7f2214,72905
 +    struct Lisp_Free u_free;\7f2215,72976
 +    struct Lisp_Marker u_marker;\7f2216,73005
 +    struct Lisp_Overlay u_overlay;\7f2217,73038
 +    struct Lisp_Save_Value u_save_value;\7f2218,73073
 +    struct Lisp_Finalizer u_finalizer;\7f2219,73114
 +XMISC \7f2223,73184
 +XMISCANY \7f2229,73273
 +XMISCTYPE \7f2236,73382
 +XMARKER \7f2242,73470
 +XOVERLAY \7f2249,73585
 +XSAVE_VALUE \7f2256,73706
 +XFINALIZER \7f2263,73835
 +struct Lisp_Intfwd\7f2274,74120
 +    enum Lisp_Fwd_Type type;\7f2276,74143
 +    EMACS_INT *intvar;\7fintvar\ 12277,74193
 +struct Lisp_Boolfwd\7f2284,74414
 +    enum Lisp_Fwd_Type type;\7f2286,74438
 +    bool *boolvar;\7fboolvar\ 12287,74489
 +struct Lisp_Objfwd\7f2294,74705
 +    enum Lisp_Fwd_Type type;\7f2296,74728
 +    Lisp_Object *objvar;\7fobjvar\ 12297,74778
 +struct Lisp_Buffer_Objfwd\7f2302,74937
 +    enum Lisp_Fwd_Type type;\7f2304,74967
 +    int offset;\7f2305,75024
 +    Lisp_Object predicate;\7f2307,75116
 +struct Lisp_Buffer_Local_Value\7f2334,76473
 +    bool_bf local_if_set \7f2338,76618
 +    bool_bf frame_local \7f2341,76800
 +    bool_bf found \7f2344,76942
 +    union Lisp_Fwd *fwd;\7ffwd\ 12346,77044
 +    Lisp_Object where;\7f2348,77187
 +    Lisp_Object defcell;\7f2351,77313
 +    Lisp_Object valcell;\7f2357,77617
 +struct Lisp_Kboard_Objfwd\7f2362,77732
 +    enum Lisp_Fwd_Type type;\7f2364,77762
 +    int offset;\7f2365,77819
 +union Lisp_Fwd\7f2368,77841
 +    struct Lisp_Intfwd u_intfwd;\7f2370,77860
 +    struct Lisp_Boolfwd u_boolfwd;\7f2371,77893
 +    struct Lisp_Objfwd u_objfwd;\7f2372,77928
 +    struct Lisp_Buffer_Objfwd u_buffer_objfwd;\7f2373,77961
 +    struct Lisp_Kboard_Objfwd u_kboard_objfwd;\7f2374,78008
 +XFWDTYPE \7f2378,78087
 +XBUFFER_OBJFWD \7f2384,78183
 +struct Lisp_Float\7f2391,78319
 +      double data;\7f2395,78357
 +      struct Lisp_Float *chain;\7fchain\ 12396,78376
 +    } u;\7f2397,78408
 +XFLOAT_DATA \7f2401,78437
 +    IEEE_FLOATING_POINT\7f2415,78946
 +#define _UCHAR_T\7f2423,79269
 +typedef unsigned char UCHAR;\7f2424,79286
 +enum Lisp_Compiled\7f2429,79369
 +    COMPILED_ARGLIST \7f2431,79392
 +    COMPILED_BYTECODE \7f2432,79418
 +    COMPILED_CONSTANTS \7f2433,79445
 +    COMPILED_STACK_DEPTH \7f2434,79473
 +    COMPILED_DOC_STRING \7f2435,79503
 +    COMPILED_INTERACTIVE \7f2436,79532
 +enum char_bits\7f2443,79834
 +    CHAR_ALT \7f2445,79853
 +    CHAR_SUPER \7f2446,79879
 +    CHAR_HYPER \7f2447,79907
 +    CHAR_SHIFT \7f2448,79935
 +    CHAR_CTL \7f2449,79963
 +    CHAR_META \7f2450,79989
 +    CHAR_MODIFIER_MASK \7f2452,80017
 +    CHARACTERBITS \7f2457,80212
 +LISP_MACRO_DEFUN \7f2462,80270
 +NATNUMP \7f2470,80412
 +RANGED_INTEGERP \7f2476,80493
 +#define TYPE_RANGED_INTEGERP(\7f2481,80615
 +LISP_MACRO_DEFUN \7f2486,80800
 +VECTORP \7f2500,81273
 +OVERLAYP \7f2505,81376
 +SAVE_VALUEP \7f2510,81475
 +FINALIZERP \7f2516,81581
 +AUTOLOADP \7f2522,81685
 +BUFFER_OBJFWDP \7f2528,81776
 +PSEUDOVECTOR_TYPEP \7f2534,81874
 +PSEUDOVECTORP \7f2542,82127
 +WINDOW_CONFIGURATIONP \7f2558,82479
 +PROCESSP \7f2564,82589
 +WINDOWP \7f2570,82673
 +TERMINALP \7f2576,82755
 +SUBRP \7f2582,82841
 +COMPILEDP \7f2588,82919
 +BUFFERP \7f2594,83005
 +CHAR_TABLE_P \7f2600,83087
 +SUB_CHAR_TABLE_P \7f2606,83178
 +BOOL_VECTOR_P \7f2612,83277
 +FRAMEP \7f2618,83370
 +IMAGEP \7f2625,83487
 +ARRAYP \7f2632,83592
 +CHECK_LIST \7f2638,83711
 +LISP_MACRO_DEFUN_VOID \7f2643,83792
 +CHECK_STRING_CAR \7f2653,84089
 +CHECK_CONS \7f2658,84193
 +CHECK_VECTOR \7f2663,84273
 +CHECK_BOOL_VECTOR \7f2668,84359
 +CHECK_VECTOR_OR_STRING \7f2674,84536
 +CHECK_ARRAY \7f2683,84710
 +CHECK_BUFFER \7f2688,84818
 +CHECK_WINDOW \7f2693,84904
 +CHECK_PROCESS \7f2699,85010
 +CHECK_NATNUM \7f2705,85106
 +#define CHECK_RANGED_INTEGER(\7f2710,85183
 +#define CHECK_TYPE_RANGED_INTEGER(\7f2721,85566
 +#define CHECK_NUMBER_COERCE_MARKER(\7f2729,85836
 +XFLOATINT \7f2738,86089
 +CHECK_NUMBER_OR_FLOAT \7f2744,86160
 +#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(\7f2749,86259
 +CHECK_NUMBER_CAR \7f2760,86669
 +CHECK_NUMBER_CDR \7f2768,86791
 +#define DEFUN(\7f2803,88386
 +#define DEFUN(\7f2812,88854
 +FUNCTIONP \7f2822,89209
 +enum maxargs\7f2831,89404
 +    MANY \7f2833,89421
 +    UNEVALLED \7f2834,89436
 +#define CALLMANY(\7f2838,89539
 +#define CALLN(\7f2844,89892
 +#define DEFVAR_LISP(\7f2869,91097
 +#define DEFVAR_LISP_NOPRO(\7f2874,91269
 +#define DEFVAR_BOOL(\7f2879,91451
 +#define DEFVAR_INT(\7f2884,91624
 +#define DEFVAR_BUFFER_DEFAULTS(\7f2890,91795
 +#define DEFVAR_KBOARD(\7f2896,91999
 +typedef jmp_buf sys_jmp_buf;\7f2906,92323
 +# define sys_setjmp(\7f2907,92352
 +# define sys_longjmp(\7f2908,92387
 +typedef sigjmp_buf sys_jmp_buf;\7f2910,92459
 +# define sys_setjmp(\7f2911,92491
 +# define sys_longjmp(\7f2912,92531
 +typedef jmp_buf sys_jmp_buf;\7f2916,92690
 +# define sys_setjmp(\7f2917,92719
 +# define sys_longjmp(\7f2918,92753
 +enum specbind_tag \7f2943,93805
 +  SPECPDL_UNWIND,\7f2944,93825
 +  SPECPDL_UNWIND_PTR,\7f2945,93894
 +  SPECPDL_UNWIND_INT,\7f2946,93945
 +  SPECPDL_UNWIND_VOID,\7f2947,93993
 +  SPECPDL_BACKTRACE,\7f2948,94047
 +  SPECPDL_LET,\7f2949,94105
 +  SPECPDL_LET_LOCAL,\7f2951,94235
 +  SPECPDL_LET_DEFAULT \7f2952,94292
 +union specbinding\7f2955,94364
 +    ENUM_BF \7f2957,94386
 +      ENUM_BF \7f2959,94443
 +      ENUM_BF \7f2964,94573
 +      ENUM_BF \7f2969,94696
 +      ENUM_BF \7f2974,94814
 +      ENUM_BF \7f2978,94919
 +      ENUM_BF \7f2983,95094
 +enum handlertype \7f3021,96410
 +enum handlertype { CATCHER,\7f3021,96410
 +enum handlertype { CATCHER, CONDITION_CASE \7f3021,96410
 +struct handler\7f3023,96457
 +  enum handlertype type;\7f3025,96474
 +  Lisp_Object tag_or_ch;\7f3026,96499
 +  Lisp_Object val;\7f3027,96524
 +  struct handler *next;\7fnext\ 13028,96543
 +  struct handler *nextfree;\7fnextfree\ 13029,96567
 +  Lisp_Object *bytecode_top;\7fbytecode_top\ 13036,96925
 +  int bytecode_dest;\7f3037,96954
 +  struct gcpro *gcpro;\7fgcpro\ 13042,97191
 +  sys_jmp_buf jmp;\7f3044,97221
 +  EMACS_INT lisp_eval_depth;\7f3045,97240
 +  ptrdiff_t pdlcount;\7f3046,97269
 +  int poll_suppress_count;\7f3047,97291
 +  int interrupt_input_blocked;\7f3048,97318
 +  struct byte_stack *byte_stack;\7fbyte_stack\ 13049,97349
 +#define PUSH_HANDLER(\7f3053,97446
 +#define QUIT  \7f3101,99223
 +#define QUITP \7f3112,99473
 +struct gcpro\7f3132,100316
 +  struct gcpro *next;\7fnext\ 13134,100331
 +  volatile Lisp_Object *var;\7fvar\ 13137,100400
 +  ptrdiff_t nvars;\7f3140,100482
 +  const char *name;\7fname\ 13144,100567
 +  int lineno;\7f3147,100623
 +  int idx;\7f3150,100684
 +  int level;\7f3153,100720
 +#define GC_USE_GCPROS_AS_BEFORE       \7f3171,101297
 +#define GC_MAKE_GCPROS_NOOPS  \7f3172,101332
 +#define GC_MARK_STACK_CHECK_GCPROS    \7f3173,101364
 +#define GC_USE_GCPROS_CHECK_ZOMBIES   \7f3174,101401
 +#define GC_MARK_STACK \7f3177,101462
 +#define BYTE_MARK_STACK \7f3181,101562
 +#define GCPRO1(\7f3190,101833
 +#define GCPRO2(\7f3191,101873
 +#define GCPRO3(\7f3192,101939
 +#define GCPRO4(\7f3194,102034
 +#define GCPRO5(\7f3196,102154
 +#define GCPRO6(\7f3198,102299
 +#define GCPRO7(\7f3201,102474
 +#define UNGCPRO \7f3202,102553
 +#define GCPRO1(\7f3208,102653
 +#define GCPRO2(\7f3212,102775
 +#define GCPRO3(\7f3217,102967
 +#define GCPRO4(\7f3223,103229
 +#define GCPRO5(\7f3230,103560
 +#define GCPRO6(\7f3238,103961
 +#define GCPRO7(\7f3247,104431
 +#define UNGCPRO \7f3257,104971
 +#define GCPRO1(\7f3263,105065
 +#define GCPRO2(\7f3269,105299
 +#define GCPRO3(\7f3278,105717
 +#define GCPRO4(\7f3289,106274
 +#define GCPRO5(\7f3302,106972
 +#define GCPRO6(\7f3317,107812
 +#define GCPRO7(\7f3334,108793
 +#define UNGCPRO       \7f3353,109916
 +#define RETURN_UNGCPRO(\7f3363,110183
 +vcopy \7f3384,110657
 +set_hash_key_slot \7f3393,110932
 +set_hash_value_slot \7f3399,111071
 +set_symbol_function \7f3408,111306
 +set_symbol_plist \7f3414,111421
 +set_symbol_next \7f3420,111524
 +blv_found \7f3428,111697
 +set_overlay_plist \7f3437,111880
 +string_intervals \7f3445,112031
 +set_string_intervals \7f3453,112153
 +set_char_table_defalt \7f3462,112355
 +set_char_table_purpose \7f3467,112467
 +set_char_table_extras \7f3475,112636
 +set_char_table_contents \7f3482,112845
 +set_sub_char_table_contents \7f3489,113040
 +enum Arith_Comparison \7f3497,113303
 +  ARITH_EQUAL,\7f3498,113327
 +  ARITH_NOTEQUAL,\7f3499,113342
 +  ARITH_LESS,\7f3500,113360
 +  ARITH_GRTR,\7f3501,113374
 +  ARITH_LESS_OR_EQUAL,\7f3502,113388
 +  ARITH_GRTR_OR_EQUAL\7f3503,113411
 +#define INTEGER_TO_CONS(\7f3511,113762
 +#define CONS_TO_INTEGER(\7f3529,114625
 +enum { NEXT_ALMOST_PRIME_LIMIT \7f3573,116329
 +extern EMACS_INT next_almost_prime \7f3574,116368
 +enum constype \7f3739,123820
 +enum constype {CONSTYPE_HEAP,\7fCONSTYPE_HEAP\ 13739,123820
 +enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}\7fCONSTYPE_PURE\ 13739,123820
 +list2i \7f3745,124010
 +list3i \7f3751,124119
 +list4i \7f3757,124258
 +extern Lisp_Object make_formatted_string \7f3767,124634
 +build_pure_c_string \7f3792,125662
 +build_string \7f3801,125867
 +make_uninit_vector \7f3820,126438
 +make_uninit_sub_char_table \7f3833,126657
 +#define ALLOCATE_PSEUDOVECTOR(\7f3850,127201
 +#define ALLOCATE_ZEROED_PSEUDOVECTOR(\7f3858,127537
 +INLINE void \7f3890,128943
 +extern void *r_alloc \7fr_alloc\ 13895,129064
 +#define FLOAT_TO_STRING_BUFSIZE \7f3927,130527
 +intern \7f3968,132134
 +intern_c_string \7f3974,132222
 +extern _Noreturn void error \7f4034,135601
 +fast_string_match_ignore_case \7f4136,140089
 +INLINE void fixup_locale \7f4241,143854
 +INLINE void synchronize_system_messages_locale \7f4242,143889
 +INLINE void synchronize_system_time_locale \7f4243,143946
 +#define IS_DAEMON \7f4257,144419
 +#define DAEMON_RUNNING \7f4258,144459
 +#define IS_DAEMON \7f4261,144558
 +#define DAEMON_RUNNING \7f4262,144603
 +# define WAIT_READING_MAX \7f4281,145422
 +# define WAIT_READING_MAX \7f4283,145494
 +extern _Noreturn void emacs_abort \7f4374,148386
 +egetenv \7f4532,152809
 +#define eabs(\7f4545,153305
 +#define make_fixnum_or_float(\7f4550,153438
 +enum MAX_ALLOCA \7f4556,153689
 +enum MAX_ALLOCA { MAX_ALLOCA \7f4556,153689
 +extern void *record_xmalloc \7frecord_xmalloc\ 14558,153734
 +#define USE_SAFE_ALLOCA       \7f4560,153800
 +#define AVAIL_ALLOCA(\7f4564,153933
 +#define SAFE_ALLOCA(\7f4568,154044
 +#define SAFE_NALLOCA(\7f4576,154385
 +#define SAFE_ALLOCA_STRING(\7f4590,154861
 +#define SAFE_FREE(\7f4598,155113
 +#define SAFE_ALLOCA_LISP(\7f4625,155691
 +# define USE_STACK_LISP_OBJECTS \7f4652,156813
 +# undef USE_STACK_LISP_OBJECTS\7f4658,156979
 +# define USE_STACK_LISP_OBJECTS \7f4659,157010
 +enum { defined_GC_CHECK_STRING_BYTES \7f4663,157085
 +enum { defined_GC_CHECK_STRING_BYTES \7f4665,157138
 +union Aligned_Cons\7f4670,157272
 +  struct Lisp_Cons s;\7f4672,157293
 +  double d;\7f4673,157315
 +  double d; intmax_t i;\7f4673,157315
 +  double d; intmax_t i; void *p;\7fp\ 14673,157315
 +union Aligned_String\7f4676,157352
 +  struct Lisp_String s;\7f4678,157375
 +  double d;\7f4679,157399
 +  double d; intmax_t i;\7f4679,157399
 +  double d; intmax_t i; void *p;\7fp\ 14679,157399
 +    USE_STACK_CONS \7f4689,157707
 +    USE_STACK_STRING \7f4691,157813
 +#define STACK_CONS(\7f4699,158150
 +#define AUTO_CONS_EXPR(\7f4701,158247
 +#define AUTO_CONS(\7f4709,158610
 +#define AUTO_LIST1(\7f4710,158681
 +#define AUTO_LIST2(\7f4712,158789
 +#define AUTO_LIST3(\7f4716,158944
 +#define AUTO_LIST4(\7f4720,159119
 +# define verify_ascii(\7f4732,159510
 +#define AUTO_STRING(\7f4740,159818
 +#define FOR_EACH_TAIL(\7f4752,160282
 +#define FOR_EACH_ALIST_VALUE(\7f4766,160773
 +maybe_gc \7f4774,161060
 +functionp \7f4784,161299
 +\f
 +c-src/machsyscalls.c,23
 +#define       SYSCALL(\7f6,113
 +\f
 +c-src/machsyscalls.h,159
 +SYSCALL (mach_msg_trap,\7f1,0
 +SYSCALL (mach_reply_port,\7f13,314
 +SYSCALL (mach_thread_self,\7f18,377
 +SYSCALL (mach_task_self,\7f23,441
 +SYSCALL (mach_host_self,\7f28,503
 +\f
 +c-src/h.h,2394
 +   ELEM_I/\7fELEM_I\ 13,15
 +} Fails_t;\7f5,85
 +typedef void Lang_function \7f6,96
 +typedef struct tpcmd\7f8,147
 +#define ggg \7f10,170
 +  } arg;\7f13,198
 +tpcmd;\7f15,209
 +typedef struct foobar2_ \7f16,216
 +    fu   int (*funcptr)\7ffuncptr\ 117,242
 +    long foo;\7f18,279
 +    char bar;\7f19,293
 +} foobar2;\7f20,307
 +    DEVICE_SWP,\7f23,333
 +    DEVICE_LAST\7f24,349
 +} bsp_DevId;\7f25,365
 +  struct constant_args \7f27,394
 +    unsigned int burst;\7f28,419
 +  } constant;\7f29,443
 +} args;\7f30,457
 +typedef int *regset;\7fregset\ 131,465
 +typedef int INT;\7f32,486
 +typedef union abc\7f33,503
 +  int def;\7f35,523
 +} ghi1;\7f36,534
 +typedef union abc \7f37,542
 +  int def;\7f38,562
 +} ghi2;\7f39,573
 +typedef struct a \7f40,581
 +} b;\7f41,600
 +#define c(\7f42,605
 +typedef struct an_extern_linkage *an_extern_linkage_ptr;\7fan_extern_linkage_ptr\ 143,619
 +typedef struct an_extern_linkage \7f44,676
 +              kind;\7f46,733
 +              is_explicit;\7f49,812
 +  a_byte_boolean is_curly_brace_form;\7f54,1009
 +} an_extern_linkage;\7f56,1054
 +typedef struct pollfd   pfdset[\7fpfdset\ 157,1075
 +typedef union rtunion_def\7f58,1119
 +    int rtint;\7f60,1149
 +    char *rtstr;\7frtstr\ 161,1164
 +    struct rtx_def *rtx;\7frtx\ 162,1181
 +  } womboid \7f63,1206
 +typedef union rtunion_def\7f64,1220
 +  int rtint;\7f68,1250
 +  char *rtstr;\7frtstr\ 169,1263
 +  struct rtx_def *rtxp;\7frtxp\ 170,1278
 +  struct rtx_def rtxnp;\7f71,1302
 +womboid\7f75,1330
 +enum {dog,\7fdog\ 181,1416
 +enum {dog, cat}\7fcat\ 181,1416
 +enum {dog, cat} animals;\7f81,1416
 +typedef void (_CALLBACK_ *signal_handler)\7fsignal_handler\ 182,1441
 +typedef void (_CALLBACK_ *signal_handler1)\7fsignal_handler1\ 183,1489
 +/* comment */ #define ANSIC\7f84,1538
 + #define ANSIC\7f85,1566
 +typedef void (proc)\7f87,1588
 +typedef void OperatorFun(\7f88,1612
 +typedef int f(\7f89,1648
 +struct my_struct \7f91,1691
 +typedef struct my_struct my_typedef;\7f93,1713
 +typedef RETSIGTYPE (*signal_handler_t)\7fsignal_handler_t\ 194,1750
 +  Date 04 May 87 235311 PDT \7f96,1802
 +typedef unsigned char unchar;\7f99,1880
 +typedef int X,\7f100,1910
 +typedef int X, Y,\7f100,1910
 +typedef int X, Y, Z;\7f100,1910
 +typedef mio mao;\7f101,1931
 +typedef struct a \7f103,1966
 +typedef struct a { } b;\7f103,1966
 +typedef struct b\7f104,1990
 +} c;\7f106,2009
 +int extvar;\7f109,2053
 +#define tag1\7f110,2065
 +#define aaaaaa \7f111,2078
 +#define bbbbbb\\7fbbbbbb\ 1113,2102
 +#define cccccccccc\7f115,2125
 +#define enter_critical_section        \7f116,2144
 +#define exit_critical_to_previous     \7f117,2199
 +#define UNDEFINED\7f118,2259
 +struct re_pattern_buffer \7f119,2277
 +struct re_pattern_buffer { unsigned char *buffer;\7fbuffer\ 1119,2277
 +\f
 +cp-src/c.C,2849
 +template <typename ipc3dIslandHierarchy,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType, unsigned numOfChannels,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType, unsigned numOfChannels, typename ipc3dLinkControl,\7f1,0
 +class CMultiChannelCSC19_3D\7f2,151
 +        ipc3dLinkControlSetup setup;\7f5,190
 +        ipc3dCSC19<\7fipc3dCSC19\ 16,227
 +        ipc3dCSC19<ipc3dIslandHierarchy,ipcMultiChannel<ipc3dChannelType,numOfChannels>,ipcMultiChannel<ipc3dChannelType,numOfChannels>,ipc3dLinkControl> mcCSC;\7f6,227
 +        advTimer cscInitTime;\7f7,388
 +        advTimer cscSegmentationTime;\7f8,418
 +        advTimer outputTime;\7f9,456
 +        void execute(\7f11,493
 +int main \7f25,1026
 +double base \7f26,1088
 +typedef struct s1 \7f32,1251
 +   int counter;\7f33,1271
 +} t1;\7f34,1287
 +struct s2 \7f35,1293
 +   int counter;\7f36,1305
 +typedef struct s2 t2;\7f38,1324
 +class A \7f39,1346
 +  enum { rosso,\7f40,1356
 +  enum { rosso, giallo,\7f40,1356
 +  enum { rosso, giallo, verde \7f40,1356
 +  enum { rosso, giallo, verde } colori;\7f40,1356
 +const A& A::operator+(\7foperator+\ 143,1431
 +void operator+(\7f44,1467
 +void operator -(\7foperator -\ 145,1495
 +void operator int(\7foperator int\ 146,1524
 +A<int>* f(\7f48,1556
 +int f(\7f49,1571
 +int A<int>::f(\7ff\ 150,1590
 +A<float,B<int> > A<B<float>,int>::f(\7ff\ 151,1618
 +template <class C, int n> class AT \7f52,1668
 +template <class C, int n> class AT { C t[\7ft\ 152,1668
 +class AU \7f53,1716
 +class AU { T x;\7f53,1716
 +class B<\7fB\ 154,1735
 +class B<int> { void f(\7f54,1735
 +const A::B::T& abt \7f55,1766
 +class A \7f56,1792
 +class A { class B \7f56,1792
 +class A \7f57,1827
 +  A operator+(\7f59,1861
 +is_muldiv_operation(\7f61,1888
 +domain foo \7f68,1956
 +     void f(\7f69,1969
 +void A::A(\7fA\ 172,1990
 +struct A \7f73,2005
 +struct B \7f74,2023
 +void B::B(\7fB\ 175,2042
 +void BE_Node::BE_Node(\7fBE_Node\ 176,2057
 +class BE_Node \7f77,2084
 +struct foo \7f79,2103
 +  int x;\7f80,2116
 +class test \7f86,2157
 +  int f(\7f87,2170
 +  int ff(\7f89,2232
 +  int g(\7f90,2255
 +class AST_Root \7f92,2279
 +AST_ConcreteType::AST_ConcreteType(\7f99,2394
 +AST_Array::AST_Array(\7f107,2533
 +     void f(\7f115,2734
 +struct A \7f117,2754
 +A::~A(\7f~A\ 1120,2778
 +struct B \7f122,2790
 +    ~B(\7f123,2801
 +enum {dog,\7fdog\ 1126,2818
 +enum {dog, cat}\7fcat\ 1126,2818
 +enum {dog, cat} animals;\7f126,2818
 +struct {int teats;\7f127,2843
 +struct {int teats;} cow;\7f127,2843
 +class Boo \7f129,2869
 +    enum {dog,\7fdog\ 1130,2881
 +    enum {dog, cat}\7fcat\ 1130,2881
 +    enum {dog, cat} animals;\7f130,2881
 +    struct {int treats;\7f131,2910
 +    struct {int treats;} cow;\7f131,2910
 +    int i,\7f132,2940
 +    int i,a,\7f132,2940
 +    int i,a,b;\7f132,2940
 +    foo(\7f133,2955
 +    Boo(\7f137,2996
 +Boo::Boo(\7f141,3071
 +typedef int should_see_this_one_enclosed_in_extern_C;\7f149,3156
 +typedef int (*should_see_this_function_pointer)\7fshould_see_this_function_pointer\ 1153,3229
 +typedef int should_see_this_array_type[\7fshould_see_this_array_type\ 1156,3311
 +\f
 +cp-src/x.cc,63
 +class XX\7f1,0
 +XX::foo(\7ffoo\ 19,60
 +XX::bar(\7fbar\ 115,95
 +main(\7f21,126
 +\f
 +cp-src/burton.cpp,124
 +::dummy::dummy test::dummy1(\7fdummy1\ 11,0
 +::dummy::dummy test::dummy2(\7fdummy2\ 16,64
 +::dummy::dummy test::dummy3(\7fdummy3\ 111,143
 +\f
 +cp-src/functions.cpp,778
 +void Date::setDate \7fsetDate\ 15,148
 +void Date::plus \7fplus\ 132,939
 +void Date::minus \7fminus\ 142,1229
 +void Date::shift \7fshift\ 152,1407
 +Date & Date::operator = \7foperator =\ 162,1628
 +Date & Date::operator += \7foperator +=\ 169,1789
 +Date & Date::operator -= \7foperator -=\ 178,1939
 +Date & Date::operator ++ \7foperator ++\ 187,2080
 +Date & Date::operator -- \7foperator --\ 196,2216
 +int Date::operator - \7foperator -\ 1104,2331
 +int Date::operator < \7foperator <\ 1112,2483
 +int Date::operator > \7foperator >\ 1116,2557
 +int Date::operator == \7foperator ==\ 1120,2631
 +ostream& operator << \7foperator <<\ 1124,2707
 +istream& operator >> \7foperator >>\ 1133,2943
 +bool isLeap \7f159,3543
 +bool isHoliday \7f163,3629
 +void asort(\7f173,3865
 +void ReadVacation \7f186,4064
 +void Debug \7f201,4523
 +int WorkingDays(\7f211,4867
 +Date StartDay(\7f226,5129
 +\f
 +cp-src/MDiagArray2.h,482
 +#define octave_MDiagArray2_h \7f29,870
 +#undef LTGT\7f35,967
 +#define LTGT\7f39,1031
 +#define LTGT \7f42,1051
 +class MDiagArray2 \7f78,2022
 +  MDiagArray2 \7f82,2077
 +  MDiagArray2 \7f86,2154
 +  MDiagArray2 \7f87,2198
 +  MDiagArray2 \7f88,2254
 +  MDiagArray2 \7f89,2329
 +  MDiagArray2 \7f90,2387
 +  MDiagArray2 \7f91,2450
 +  ~MDiagArray2 \7f93,2515
 +  MDiagArray2<T>& operator = \7foperator =\ 195,2542
 +  operator MArray2<T> \7foperator MArray2<T>\ 1101,2667
 +#undef LTGT\7f144,3874
 +#define INSTANTIATE_MDIAGARRAY_FRIENDS(\7f146,3887
 +\f
 +cp-src/Range.h,381
 +#define octave_Range_h \7f24,765
 +Range\7f35,891
 +  Range \7f39,909
 +  Range \7f42,995
 +  Range \7f46,1130
 +  Range \7f50,1248
 +  double base \7f54,1376
 +  double limit \7f55,1425
 +  double inc \7f56,1475
 +  int nelem \7f57,1523
 +  void set_base \7f68,1728
 +  void set_limit \7f69,1774
 +  void set_inc \7f70,1821
 +  double rng_base;\7f79,2023
 +  double rng_limit;\7f80,2042
 +  double rng_inc;\7f81,2062
 +  int rng_nelem;\7f83,2081
 +\f
 +cp-src/screen.cpp,228
 +unsigned char cursor_x,\7f15,548
 +unsigned char cursor_x, cursor_y;\7f15,548
 +static union REGS regs;\7f16,582
 +void goto_xy(\7f18,607
 +void hide_cursor(\7f27,774
 +void cursor_position(\7f32,836
 +void clear_screen(\7f41,997
 +void write_xyc(\7f55,1247
 +\f
 +cp-src/screen.hpp,414
 +#define __COLORS\7f9,401
 +enum COLORS \7f11,419
 +    BLACK,\7f12,433
 +    BLUE,\7f13,471
 +    GREEN,\7f14,481
 +    CYAN,\7f15,492
 +    RED,\7f16,502
 +    MAGENTA,\7f17,511
 +    BROWN,\7f18,524
 +    LIGHTGRAY,\7f19,535
 +    DARKGRAY,\7f20,550
 +    LIGHTBLUE,\7f21,589
 +    LIGHTGREEN,\7f22,604
 +    LIGHTCYAN,\7f23,620
 +    LIGHTRED,\7f24,635
 +    LIGHTMAGENTA,\7f25,649
 +    YELLOW,\7f26,667
 +    WHITE\7f27,679
 +#define SCREEN_FP(\7f31,700
 +#define SCREEN_START \7f33,795
 +\f
 +cp-src/conway.cpp,288
 +#define max(\7f12,357
 +#define min(\7f13,393
 +const int num_rows \7f15,430
 +const int num_columns \7f16,470
 +class site *field_of_play[\7ffield_of_play\ 118,499
 +int site::total_surrounding(\7ftotal_surrounding\ 120,550
 +void display(\7f37,958
 +void glider(\7f50,1239
 +void traffic_light(\7f59,1478
 +void main(\7f67,1633
 +\f
 +cp-src/conway.hpp,271
 +class site:\7fsite\ 15,235
 +    char x,\7f7,269
 +    char x, y,\7f7,269
 +    char x, y, alive,\7f7,269
 +    char x, y, alive, next_alive;\7f7,269
 +    site(\7f10,344
 +    char read(\7f12,410
 +    void set(\7f13,444
 +    void clear(\7f14,478
 +    void compute_next_state(\7f15,514
 +    void step(\7f22,717
 +\f
 +cp-src/clheir.cpp,359
 +const int max_num_generic_objects \7f9,298
 +generic_object * object_registry[\7fobject_registry\ 110,340
 +void init_registry(\7f12,400
 +void step_everybody(\7f19,527
 +void discrete_location::clear_neighbors(\7fclear_neighbors\ 131,852
 +generic_object::generic_object(\7fgeneric_object\ 136,981
 +generic_object::~generic_object(\7f~generic_object\ 148,1255
 +void agent::move(\7fmove\ 153,1353
 +\f
 +cp-src/clheir.hpp,682
 +class generic_object\7f13,520
 +    int where_in_registry;\7f15,547
 +    virtual void compute_next_state(\7f21,843
 +    virtual void step(\7f22,889
 +const int max_num_directions \7f31,1220
 +class location:\7flocation\ 133,1290
 +    location(\7f43,1643
 +class irregular_location:\7firregular_location\ 147,1687
 +    double x,\7f49,1735
 +    double x, y,\7f49,1735
 +    double x, y, z;\7f49,1735
 +    irregular_location(\7f51,1763
 +class discrete_location:\7fdiscrete_location\ 156,1890
 +    int x,\7f58,1937
 +    int x, y,\7f58,1937
 +    int x, y, z;\7f58,1937
 +    class location *neighbors[\7fneighbors\ 159,1954
 +    discrete_location(\7f62,2045
 +    void assign_neighbor(\7f66,2185
 +class agent:\7fagent\ 175,2509
 +    location *where;\7fwhere\ 177,2550
 +\f
 +cp-src/fail.C,330
 +struct A \7f7,263
 +         struct B \7f8,274
 +                 struct C \7f9,289
 +                         int x;\7f10,305
 +                         C(\7f11,318
 +                         operator int(\7foperator int\ 112,342
 +                 typedef C T;\7f14,389
 +         typedef B T2;\7f16,414
 +class A \7f23,453
 +      class B \7f24,463
 +              class C \7f25,474
 +              int f(\7f26,488
 +int A::B::f(\7ff\ 131,521
 +main(\7f37,571
 +      class D \7f41,622
 +              D(\7f43,659
 +              int x;\7f44,694
 +\f
 +el-src/TAGTEST.EL,148
 +(foo::defmumble bletch \7f1,0
 +(defalias 'pending-delete-mode \7fpending-delete-mode\ 15,102
 +(defalias (quote explicitly-quoted-pending-delete-mode)\7f8,175
 +\f
 +el-src/emacs/lisp/progmodes/etags.el,5069
 +(defvar tags-file-name \7f34,1034
 +(defgroup etags \7f43,1498
 +(defcustom tags-case-fold-search \7f47,1566
 +(defcustom tags-table-list \7f59,2051
 +(defcustom tags-compression-info-list\7f69,2449
 +(defcustom tags-add-tables \7f88,3231
 +(defcustom tags-revert-without-query \7f98,3627
 +(defvar tags-table-computed-list \7f103,3778
 +(defvar tags-table-computed-list-for \7f112,4262
 +(defvar tags-table-list-pointer \7f117,4510
 +(defvar tags-table-list-started-at \7f121,4701
 +(defvar tags-table-set-list \7f124,4821
 +(defcustom find-tag-hook \7f129,5000
 +(defcustom find-tag-default-function \7f137,5263
 +(define-obsolete-variable-alias 'find-tag-marker-ring-length\7ffind-tag-marker-ring-length\ 1145,5602
 +(defcustom tags-tag-face \7f148,5699
 +(defcustom tags-apropos-verbose \7f154,5834
 +(defcustom tags-apropos-additional-actions \7f160,5998
 +(defvaralias 'find-tag-marker-ring \7ffind-tag-marker-ring\ 1183,6917
 +(defvar default-tags-table-function \7f189,7097
 +(defvar tags-location-ring \7f194,7323
 +(defvar tags-table-files \7f201,7599
 +(defvar tags-completion-table \7f206,7766
 +(defvar tags-included-tables \7f209,7858
 +(defvar next-file-list \7f212,7953
 +(defvar tags-table-format-functions \7f217,8059
 +(defvar file-of-tag-function \7f224,8440
 +(defvar tags-table-files-function \7f228,8634
 +(defvar tags-completion-table-function \7f230,8745
 +(defvar snarf-tag-function \7f232,8840
 +(defvar goto-tag-location-function \7f236,9049
 +(defvar find-tag-regexp-search-function \7f239,9222
 +(defvar find-tag-regexp-tag-order \7f241,9343
 +(defvar find-tag-regexp-next-line-after-failure-p \7f243,9452
 +(defvar find-tag-search-function \7f245,9572
 +(defvar find-tag-tag-order \7f247,9679
 +(defvar find-tag-next-line-after-failure-p \7f249,9774
 +(defvar list-tags-function \7f251,9880
 +(defvar tags-apropos-function \7f253,9968
 +(defvar tags-included-tables-function \7f255,10062
 +(defvar verify-tags-table-function \7f257,10181
 +(defun initialize-new-tags-table \7f260,10292
 +(defun tags-table-mode \7f276,10980
 +(defun visit-tags-table \7f285,11245
 +(defun tags-table-check-computed-list \7f321,12783
 +(defun tags-table-extend-computed-list \7f360,14654
 +(defun tags-expand-table-name \7f400,16367
 +(defun tags-table-list-member \7f409,16710
 +(defun tags-verify-table \7f421,17182
 +(defun tags-table-including \7f470,19302
 +(defun tags-next-table \7f522,21346
 +(defun visit-tags-table-buffer \7f543,22203
 +(defun tags-reset-tags-tables \7f712,28513
 +(defun file-of-tag \7f731,29170
 +(defun tags-table-files \7f740,29519
 +(defun tags-included-tables \7f749,29869
 +(defun tags-completion-table \7f755,30115
 +(defun tags-lazy-completion-table \7f783,31309
 +(defun tags-completion-at-point-function \7f799,31944
 +(defun find-tag-tag \7f818,32694
 +(defvar last-tag \7f837,33367
 +(defun find-tag-interactive \7f840,33426
 +(defvar find-tag-history \7f852,33841
 +(defun find-tag-noselect \7f860,34011
 +(defun find-tag \7f932,37125
 +(defun find-tag-other-window \7f959,38341
 +(defun find-tag-other-frame \7f1000,40269
 +(defun find-tag-regexp \7f1025,41443
 +(defalias 'pop-tag-mark \7fpop-tag-mark\ 11049,42605
 +(defvar tag-lines-already-matched \7f1052,42656
 +(defun find-tag-in-order \7f1055,42763
 +(defun tag-find-file-of-tag-noselect \7f1167,47109
 +(defun tag-find-file-of-tag \7f1200,48955
 +(defun etags-recognize-tags-table \7f1208,49181
 +(defun etags-verify-tags-table \7f1241,50812
 +(defun etags-file-of-tag \7f1246,51010
 +(defun etags-tags-completion-table \7f1256,51345
 +(defun etags-snarf-tag \7f1286,52551
 +(defun etags-goto-tag-location \7f1324,54120
 +(defun etags-list-tags \7f1388,56563
 +(defmacro tags-with-face \7f1423,57838
 +(defun etags-tags-apropos-additional \7f1431,58171
 +(defun etags-tags-apropos \7f1465,59408
 +(defun etags-tags-table-files \7f1527,61617
 +(defun etags-tags-included-tables \7f1542,62053
 +(defun tags-recognize-empty-tags-table \7f1559,62593
 +(defun tag-exact-file-name-match-p \7f1587,63739
 +(defun tag-file-name-match-p \7f1596,64132
 +(defun tag-exact-match-p \7f1609,64688
 +(defun tag-implicit-name-match-p \7f1620,65256
 +(defun tag-symbol-match-p \7f1633,65856
 +(defun tag-word-match-p \7f1643,66292
 +(defun tag-partial-file-name-match-p \7f1652,66690
 +(defun tag-any-match-p \7f1662,67134
 +(defun tag-re-match-p \7f1667,67318
 +(defcustom tags-loop-revert-buffers \7f1675,67567
 +(defun next-file \7f1685,67976
 +(defvar tags-loop-operate \7f1760,70890
 +(defvar tags-loop-scan\7f1763,70984
 +(defun tags-loop-eval \7f1771,71313
 +(defun tags-loop-continue \7f1782,71642
 +(defun tags-search \7f1850,73948
 +(defun tags-query-replace \7f1871,74774
 +(defun tags-complete-tags-table-file \7f1896,75998
 +(defun list-tags \7f1906,76377
 +(defun tags-apropos \7f1934,77330
 +(define-button-type 'tags-select-tags-table\7ftags-select-tags-table\ 11957,78156
 +(defun select-tags-table \7f1964,78395
 +(defvar select-tags-table-mode-map \7f2019,80522
 +(define-derived-mode select-tags-table-mode \7f2030,80905
 +(defun select-tags-table-select \7f2034,81089
 +(defun select-tags-table-quit \7f2043,81455
 +(defun complete-tag \7f2049,81610
 +(defconst etags--xref-limit \7f2074,82551
 +(defvar etags-xref-find-definitions-tag-order \7f2076,82586
 +(defun etags-xref-find \7f2082,82876
 +(defun etags--xref-find-definitions \7f2096,83405
 +(defclass xref-etags-location \7f2129,85119
 +(defun xref-make-etags-location \7f2135,85342
 +(cl-defmethod xref-location-marker \7f2139,85497
 +(cl-defmethod xref-location-line \7f2146,85741
 +\f
 +erl-src/gs_dialog.erl,98
 +-define(VERSION\7f2,32
 +behaviour_info(\7f51,2177
 +show(\7f124,5458
 +dialog_loop(\7f219,9529
 +test(\7f252,10806
 +\f
 +f-src/entry.for,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +f-src/entry.strange_suffix,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +f-src/entry.strange,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +forth-src/test-forth.fth,408
 +: a-forth-word \7f20,301
 +99 constant a-forth-constant!\7f22,343
 +55 value a-forth-value?\7f23,373
 +create :a-forth-dictionary-entry\7f24,397
 +defer #a-defer-word\7f27,460
 +: (another-forth-word)\7f(another-forth-word\ 129,481
 +   9   field   >field1\7f36,582
 +   5   field   >field2\7f37,605
 +constant (a-forth-constant\7f(a-forth-constant\ 138,628
 +2000 buffer: #some-storage\7f41,657
 +code assemby-code-word \7f43,685
 +: a-forth-word \7f50,870
 +\f
 +go-src/test.go,48
 +package main\7f1,0
 +func say(\7f5,28
 +func main(\7f9,72
 +\f
 +go-src/test1.go,172
 +package main\7f1,0
 +type plus \7f5,28
 +type str \7f9,65
 +type intNumber \7f13,99
 +func (s str) PrintAdd(\7f17,136
 +func (n intNumber) PrintAdd(\7f21,189
 +func test(\7f25,248
 +func main(\7f29,285
 +\f
 +html-src/softwarelibero.html,200
 +Cos'è il software libero?\7f4,38
 +Licenze d'uso di un programma\7flicenze\ 165,2500
 +Sfatiamo alcuni miti\7f138,6118
 +Il movimento open source\7foss\ 1191,8037
 +Impatto pratico del software libero\7fimpatto\ 1231,10066
 +\f
 +html-src/index.shtml,104
 +&nbsp;\7f8,281
 +In evidenza\7f15,447
 +Comunicati e iniziative\7f32,976
 +Ultime notizie dall'associazione\7f63,2030
 +\f
 +html-src/algrthms.html,467
 +Tutorial on Convolutional Coding with Viterbi Decoding--Description of the Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and Quantizing Algorithms\7f7,277
 +Description\7falgorithms\ 110,481
 +Generating the Data\7fgenalgorithm\ 148,1995
 +Convolutionally\7fconalgorithm\ 155,2512
 +Next\7fstatetable\ 1262,11587
 +Output\7foutputtable\ 1350,13915
 +Mapping the Channel Symbols\7fmapping\ 1433,16213
 +Adding Noise to the\7faddnoise\ 1439,16607
 +Quantizing the Received\7fquantizing\ 1469,19100
 +\f
 +html-src/software.html,439
 +Francesco Potortì Software Page\7f9,280
 +Software that I wrote for supporting my research activity\7fsimulation\ 136,1398
 +MTG\7fmtg\ 141,1482
 +Fracas\7ffracas\ 165,2624
 +GaliLEO\7fgalileo\ 1101,4232
 +Leasqr\7fleasqr\ 1114,4677
 +Free software that I wrote for the GNU project or for my personal or work\7fgnu\ 1142,6065
 +Etags\7fetags\ 1148,6180
 +checkiso\7f161,6729
 +cgrep\7f178,7547
 +debian-bug.el\7fdebian-bug\ 1190,7979
 +tcpdump\7f205,8564
 +Links to interesting software\7flinks\ 1216,8891
 +\f
 +lua-src/allegro.lua,400
 +local function get_layer_by_name \7f7,175
 +local function count_layers \7f33,621
 +function GetLayerByName \7f54,980
 +function GetUniqueLayerName \7f65,1204
 +function SelectLayer \7f76,1415
 +function NewLayer \7f86,1773
 +function NewLayerSet \7f144,3226
 +function RemoveLayer \7f170,3750
 +function MoveLayerTop \7f211,4767
 +function MoveLayerBottom \7f223,5079
 +function MoveLayerBefore \7f236,5457
 +function MoveLayerAfter \7f258,6090
 +\f
 +lua-src/test.lua,442
 +function Rectangle.getPos \7f2,15
 +function Rectangle.getPos \7fgetPos\ 12,15
 +function Circle.getPos \7f6,61
 +function Circle.getPos \7fgetPos\ 16,61
 +function Cube.data.getFoo \7f10,102
 +function Cube.data.getFoo \7fgetFoo\ 110,102
 +function Square.something:Bar \7f14,148
 +function Square.something:Bar \7fBar\ 114,148
 +   function test.me_22a(\7f22,241
 +   function test.me_22a(\7fme_22a\ 122,241
 +   local function test.me22b \7f25,297
 +   local function test.me22b \7fme22b\ 125,297
 +\f
 +make-src/Makefile,2175
 +LATEST=\7f1,0
 +RELEASELIST=\7f2,10
 +ADASRC=\7f4,104
 +ASRC=\7f5,171
 +CSRC=\7f6,197
 +CPSRC=\7f10,423
 +ELSRC=\7f13,614
 +ERLSRC=\7f14,661
 +FORTHSRC=\7f15,702
 +FSRC=\7f16,726
 +HTMLSRC=\7f17,776
 +JAVASRC=\7f18,844
 +LUASRC=\7f19,907
 +MAKESRC=\7f20,926
 +OBJCSRC=\7f21,943
 +OBJCPPSRC=\7f22,999
 +PASSRC=\7f23,1035
 +PERLSRC=\7f24,1053
 +PHPSRC=\7f25,1108
 +PSSRC=\7f26,1156
 +PROLSRC=\7f27,1173
 +PYTSRC=\7f28,1210
 +TEXSRC=\7f29,1227
 +YSRC=\7f30,1282
 +SRCS=\7f31,1325
 +NONSRCS=\7f35,1577
 +VHDLFLAGS=\7f37,1624
 +COBOLFLAGS=\7f38,1827
 +POSTSCRIPTFLAGS=\7f39,1889
 +TCLFLAGS=\7f40,1943
 +GETOPTOBJS=\7f42,2002
 +RXINCLUDE=\7f43,2034
 +REGEXOBJS=\7f44,2056
 +CHECKOBJS=\7f46,2075
 +CHECKFLAGS=\7f47,2105
 +OBJS=\7f48,2145
 +CPPFLAGS=\7f49,2190
 +LDFLAGS=\7f50,2259
 +WARNINGS=\7f51,2282
 +CFLAGS=\7f52,2466
 +FASTCFLAGS=\7f55,2530
 +FASTCFLAGSWARN=\7f56,2591
 +FILTER=\7f58,2641
 +REGEX=\7f59,2695
 +xx=\7f60,2741
 +MAKE:\7fMAKE\ 162,2790
 +RUN=\7f63,2825
 +RUN=\7f64,2865
 +OPTIONS=\7f65,2870
 +ARGS=\7f66,2922
 +infiles \7f68,2940
 +quiettest:\7fquiettest\ 170,3002
 +test:\7ftest\ 179,3409
 +${CHECKOBJS}:\7f${CHECKOBJS}\ 188,3805
 +checker:\7fchecker\ 190,3849
 +standalone:\7fstandalone\ 196,4062
 +prof:\7fprof\ 1101,4168
 +fastetags:\7ffastetags\ 1104,4198
 +fastctags:\7ffastctags\ 1108,4322
 +staticetags:\7fstaticetags\ 1112,4446
 +rsynctofly:\7frsynctofly\ 1116,4608
 +rsyncfromfly:\7frsyncfromfly\ 1119,4698
 +web ftp publish:\7fweb ftp publish\ 1122,4794
 +release distrib:\7frelease distrib\ 1129,5115
 +tags:\7ftags\ 1134,5255
 +clean:\7fclean\ 1136,5267
 +srclist:\7fsrclist\ 1139,5302
 +regexfile:\7fregexfile\ 1143,5391
 +/home/www/pub/etags.c.gz:\7f/home/www/pub/etags.c.gz\ 1149,5566
 +/home/www/pub/software/unix/etags.tar.gz:\7f/home/www/pub/software/unix/etags.tar.gz\ 1156,5825
 +regex.o:\7fregex.o\ 1159,6031
 +getopt.o:\7fgetopt.o\ 1162,6086
 +getopt1.o:\7fgetopt1.o\ 1165,6147
 +etags:\7fetags\ 1168,6210
 +ctags:\7fctags\ 1171,6299
 +man manpage:\7fman manpage\ 1174,6396
 +etags.1.man:\7fetags.1.man\ 1176,6422
 +maintaining.info:\7fmaintaining.info\ 1179,6475
 +TAGS:\7fTAGS\ 1182,6557
 +%ediff:\7f%ediff\ 1185,6587
 +oediff:\7foediff\ 1188,6677
 +%cdiff:\7f%cdiff\ 1191,6764
 +xdiff:\7fxdiff\ 1194,6854
 +ETAGS:\7fETAGS\ 1197,6942
 +ETAGS%:\7fETAGS%\ 1200,7012
 +ETAGS13 ETAGS14 ETAGS15:\7fETAGS13 ETAGS14 ETAGS15\ 1203,7084
 +ETAGS12:\7fETAGS12\ 1206,7216
 +OTAGS:\7fOTAGS\ 1209,7304
 +CTAGS:\7fCTAGS\ 1212,7369
 +CTAGS%:\7fCTAGS%\ 1215,7443
 +CTAGS13 CTAGS14 CTAGS15:\7fCTAGS13 CTAGS14 CTAGS15\ 1218,7545
 +EXTAGS:\7fEXTAGS\ 1221,7680
 +.PRECIOUS:\7f.PRECIOUS\ 1224,7838
 +FRC:\7fFRC\ 1226,7894
 +\f
 +objc-src/Subprocess.h,98
 +#define Subprocess \7f41,1217
 +#define BUFFERSIZE \7f43,1267
 +@interface Subprocess:\7fSubprocess\ 145,1292
 +\f
 +objc-src/Subprocess.m,446
 +#define       PTY_TEMPLATE \7f20,494
 +#define       PTY_LENGTH \7f21,528
 +@interface Subprocess(Private)\7f32,737
 +- childDidExit\7f39,851
 +- fdHandler:\7ffdHandler\ 167,1589
 +showError \7f98,2360
 +fdHandler \7f112,2785
 +getptys \7f119,2907
 +- init:\7finit\ 1183,4815
 +    andStdErr:\7finit\ 1197,5147
 +- send:(const char *)string withNewline:\7fsend\ 1300,7436
 +- send:\7fsend\ 1308,7599
 +- terminateInput\7f314,7689
 +- terminate:\7fterminate\ 1321,7810
 +- setDelegate:\7fsetDelegate\ 1332,7961
 +- delegate\7f338,8031
 +\f
 +objc-src/PackInsp.h,109
 +#define NUMSTATS      \7f36,1101
 +#define TYPESTOSTAT   \7f37,1120
 +@interface PackageInspector:\7fPackageInspector\ 139,1172
 +\f
 +objc-src/PackInsp.m,1322
 +static const char RCSid[\7fRCSid\ 130,1032
 +#define VERSION       \7f34,1116
 +#   define DEBUG \7f37,1155
 +#define LISTCONTENTS  \7f39,1181
 +#define OPENBUTTON    \7f47,1352
 +#define LISTCONTENTSBUTTON    \7f48,1449
 +#define LISTDESCRIPTIONBUTTON \7f49,1562
 +#define STATE_UNINSTALLED     \7f52,1687
 +#define STATE_INSTALLED       \7f53,1807
 +#define STATE_COMPRESSD       \7f54,1948
 +#define SIZEFORMAT    \7f57,2152
 +#define KBYTES        \7f58,2362
 +#define MBYTES        \7f59,2473
 +#define LOCALIZE(\7f61,2585
 +#define LOCALIZE_ARCH(\7f62,2668
 ++new\7fnew\ 167,2802
 +-showInfo:\7fshowInfo\ 193,3417
 +-revert:\7frevert\ 1107,3737
 +-ok:\7fok\ 1136,4297
 +-load\7fload\ 1143,4424
 +#define LOOKUP(\7f156,4826
 +#undef LOOKUP\7f176,5694
 +-loadKeyValuesFrom:(const char *)type inTable:\7floadKeyValuesFrom\ 1186,5852
 +-loadContentsOf:(const char *)type inTable:\7floadContentsOf\ 1238,7079
 +-loadImage\7floadImage\ 1257,7552
 +#define STAT_EQ(\7f275,7940
 +-(BOOL)shouldLoad\7f280,8116
 +-toggleDescription\7ftoggleDescription\ 1301,8626
 +-(const char *)getPath:(char *)buf forType:\7fgetPath\ 1317,8899
 +-setRevertButtonTitle\7fsetRevertButtonTitle\ 1333,9320
 +-(const char *)formatSize:(const char *)size inBuf:\7fformatSize\ 1344,9525
 +#define WORKING       \7f368,10045
 +-(void)getArchs\7f370,10100
 +-(void)addArchs:\7faddArchs\ 1385,10520
 +-subprocess:(Subprocess *)sender output:\7fsubprocess\ 1428,11351
 +-subprocessDone:\7fsubprocessDone\ 1436,11484
 +static void openInWorkspace(\7f446,11634
 +-open:\7fopen\ 1464,12063
 +\f
 +objcpp-src/SimpleCalc.H,41
 +@interface SimpleCalc:\7fSimpleCalc\ 114,400
 +\f
 +objcpp-src/SimpleCalc.M,445
 +- init\7f52,1747
 +- appendToDisplay:\7fappendToDisplay\ 160,1933
 +- registerAction:\7fregisterAction\ 170,2210
 +- decimalKey:\7fdecimalKey\ 177,2348
 +- numberKeys:\7fnumberKeys\ 191,2661
 +- equalsKey:\7fequalsKey\ 1112,3192
 +- operationKeys:\7foperationKeys\ 1131,3680
 +- clearKey:\7fclearKey\ 1153,4301
 +- clearAllKey:\7fclearAllKey\ 1160,4410
 +- appDidInit:\7fappDidInit\ 1168,4591
 +- windowWillClose:\7fwindowWillClose\ 1178,4882
 +- infoPanel:\7finfoPanel\ 1186,5132
 +- helpPanel:\7fhelpPanel\ 1198,5482
 +\f
 +pas-src/common.pas,1875
 +procedure InitializeStringPackage;\7f26,527
 +function newtextstring;\7f34,874
 +procedure disposetextstring;\7f52,1404
 +function ConcatT;\7f78,2066
 +function AppendTextString;\7f112,3238
 +function CopyTextString;\7f132,3947
 +procedure CONVERT_CHARSTRING_TO_VALUE;\7f151,4505
 +procedure append_string;\7f172,5166
 +function To_Upper;\7f186,5462
 +function To_Lower;\7f194,5617
 +function EmptyNmStr(\7f209,6213
 +function chartonmstr;\7f219,6436
 +function LowerCaseNmStr;\7f230,6682
 +function concatenatenamestrings;\7f242,7007
 +procedure writenamestring;\7f263,7517
 +function IsControlChar;\7f277,7928
 +function namestringequal;\7f283,8079
 +function NameStringLess;\7f302,8539
 +function IsControlCharName(\7f343,9710
 +function SubString;\7f358,10208
 +function SkipChars;\7f379,10791
 +function RemoveUnderlineControl;\7f397,11311
 +procedure First100Chars;\7f427,12162
 +procedure SkipSpaces;\7f462,13298
 +function SkipBlanks;\7f477,13782
 +function stripname;\7f505,14595
 +function Locate;\7f522,15039
 +function NameHasChar;\7f543,15581
 +function integertonmstr;\7f561,16134
 +function NmStrToInteger;\7f585,16901
 +function AddNullToNmStr;\7f600,17317
 +function ValToNmStr;\7f611,17585
 +function ChangeFileType;\7f625,18037
 +function StripPath;\7f647,18734
 +function ReprOfChar;\7f675,19343
 +procedure ExtractCommentInfo;\7f702,20749
 +procedure INSERT_TREE_NODE;\7f784,24053
 +function GetNameList;\7f920,27926
 +procedure DisposeANameList(\7f925,28010
 +procedure DisposeNameList;\7f938,28340
 +function GetNewNameListNode;\7f943,28409
 +function insertname;\7f972,29051
 +procedure InitNameList;\7f988,29471
 +procedure InitNameStringPool;\7f998,29767
 +procedure NewNameString;\7f1004,29867
 +procedure ReleaseNameString;\7f1022,30232
 +procedure SDTrefStringToRec \7f1045,30741
 +procedure SDTrefSkipSpaces;\7f1059,31092
 +function SDTrefIsEnd \7f1070,31323
 +function SDTrefGetInteger \7f1082,31529
 +procedure SDTrefRecToString \7f1303,37546
 +function NmStrToErrStr;\7f1497,42305
 +function ErrStrToNmStr;\7f1509,42557
 +function GetTextRef;\7f1529,43112
 +\f
 +php-src/lce_functions.php,2864
 +  define("LCE_FUNCTIONS"\7fLCE_FUNCTIONS\ 14,38
 +  define("LCE_UNKNOWN"\7fLCE_UNKNOWN\ 19,145
 +  define("LCE_WS"\7fLCE_WS\ 111,194
 +  define("LCE_COMMENT"\7fLCE_COMMENT\ 113,244
 +  define("LCE_COMMENT_USER"\7fLCE_COMMENT_USER\ 115,303
 +  define("LCE_COMMENT_TOOL"\7fLCE_COMMENT_TOOL\ 117,366
 +  define("LCE_MSGID"\7fLCE_MSGID\ 119,430
 +  define("LCE_MSGSTR"\7fLCE_MSGSTR\ 121,488
 +  define("LCE_TEXT"\7fLCE_TEXT\ 123,541
 +  define("STATE_ABORT"\7fSTATE_ABORT\ 125,567
 +  define("STATE_OK"\7fSTATE_OK\ 126,595
 +  define("STATE_LOOP"\7fSTATE_LOOP\ 127,620
 +  class POEntryAD \7f29,648
 +      function validate(\7f31,683
 +      function checkQuotation(\7f59,1384
 +  class CommentAD \7f70,1639
 +      var $prefix;\7f72,1674
 +      function CommentAD(\7f73,1693
 +      function validate(\7f83,1944
 +  class POEntry \7f105,2410
 +      var $msgid;\7f107,2454
 +      var $msgstr;\7f108,2472
 +      var $user_comment;\7f109,2491
 +      var $sys_comment;\7f110,2516
 +      var $unk_comment;\7f111,2540
 +      var $msgid_lc \7f113,2565
 +      var $msgstr_lc \7f114,2590
 +      var $user_comment_lc \7f115,2616
 +      var $sys_comment_lc \7f116,2648
 +      var $unk_comment_lc \7f117,2679
 +      function POEntry(\7f119,2711
 +      function lineCount(\7f135,3255
 +      function serializeToVars(\7f141,3365
 +      function write(\7f151,3800
 +  class POReader \7f163,4178
 +      var $msgid;\7f165,4223
 +      var $msgstr;\7f166,4241
 +      var $user_comment;\7f167,4260
 +      var $sys_comment;\7f168,4285
 +      var $unk_comment;\7f169,4309
 +      var $state;\7f170,4333
 +      var $ignore_ws;\7f171,4351
 +      var $po_entries;\7f172,4373
 +      var $poe_num;\7f173,4396
 +      var $filename;\7f174,4416
 +      var $domain;\7f175,4437
 +      function gettext(\7f177,4457
 +      function parseFromVars(\7f189,4705
 +      function serializeToVars(\7f215,5331
 +      function POReader(\7f229,5613
 +      function read(\7f243,5983
 +      function write(\7f259,6307
 +      function isComment(\7f277,6645
 +      function comment(\7f284,6822
 +      function msgid(\7f304,7247
 +      function msgstr(\7f320,7574
 +      function start(\7f340,8232
 +      function createPOEntries(\7f360,8644
 +      function stripLine(\7f394,9472
 +      function printClassification(\7f421,10056
 +      function classifyLine(\7f432,10301
 +  function getTextDomains(\7f471,11094
 +  class PORManager \7f498,11756
 +      var     $por_a;\7f500,11803
 +      function PORManager(\7f502,11822
 +      function addPOReader(\7f507,11896
 +      function &getPOReader(\7fgetPOReader\ 1512,11992
 +      function getDomainNames(\7f517,12081
 +  function &loadPORManager(\7floadPORManager\ 1523,12174
 +  function fileJoin(\7f536,12436
 +      function lce_bindtextdomain(\7f557,12839
 +      function lce_textdomain(\7f614,14530
 +      function lce_gettext(\7f620,14641
 +      function lce_dgettext(\7f626,14767
 +      function lce(\7f634,14966
 +      function lce_bindtextdomain(\7f651,15488
 +      function lce_textdomain(\7f656,15592
 +      function lce_gettext(\7f661,15674
 +      function lce_dgettext(\7f666,15755
 +      function lce(\7f670,15855
 +  function lce_geteditcode(\7f676,15898
 +\f
 +php-src/ptest.php,135
 +define("TEST"\7fTEST\ 11,0
 +test \7f4,26
 +      var $member;\7f8,71
 +      var $memassign=\7f9,85
 +      var $memassign_space \7f10,110
 +      var $test\7f12,176
 +foo(\7f16,200
 +\f
- sub read_toc \7fmain::read_toc\ 1165,3917
++perl-src/htlmify-cystic,1197
 +my @section_name;\7fsection_name\ 112,236
 +my @appendix_name;\7fappendix_name\ 113,254
 +my @section_toc;\7fsection_toc\ 115,274
 +my @appendix_toc;\7fappendix_toc\ 116,291
 +my $new_tag \7fnew_tag\ 118,310
 +my $appendix;\7fappendix\ 124,409
 +my $section;\7fsection\ 125,423
 +my $subsection;\7fsubsection\ 126,436
 +my $subsubsection;\7fsubsubsection\ 127,452
 +my $this_file_toc \7fthis_file_toc\ 129,472
 +my %file_tocs;\7ffile_tocs\ 130,496
 +my @output_files \7foutput_files\ 132,512
 +my $file_index \7ffile_index\ 133,535
 +my $output_file;\7foutput_file\ 135,556
 +my $line;\7fline\ 137,574
 +my $subsection_marker;\7fsubsection_marker\ 1161,3883
 +my $new;\7fnew\ 1163,3907
- sub finish_subsubsections \7fmain::finish_subsubsections\ 1302,7805
- sub finish_subsections \7fmain::finish_subsections\ 1309,7987
- sub finish_sections \7fmain::finish_sections\ 1320,8310
- sub finish_appendices \7fmain::finish_appendices\ 1331,8599
- sub section_url_base \7fmain::section_url_base\ 1337,8724
- sub section_url_name \7fmain::section_url_name\ 1342,8922
- sub section_url \7fmain::section_url\ 1355,9284
++sub read_toc \7f165,3917
 +        my $entry \7fentry\ 1218,5621
 +        my $entry \7fentry\ 1234,6077
 +            my $entry \7fentry\ 1245,6351
 +        my $entry \7fentry\ 1252,6536
 +        my $entry \7fentry\ 1268,7010
 +            my $entry \7fentry\ 1276,7204
 +        my $entry \7fentry\ 1281,7328
 +      my $entry \7fentry\ 1296,7698
- sub section_href \7fmain::section_href\ 1364,9452
- sub section_name \7fmain::section_name\ 1368,9551
- sub toc_line \7fmain::toc_line\ 1372,9655
- sub file_end \7fmain::file_end\ 1375,9750
++sub finish_subsubsections \7f302,7805
++sub finish_subsections \7f309,7987
++sub finish_sections \7f320,8310
++sub finish_appendices \7f331,8599
++sub section_url_base \7f337,8724
++sub section_url_name \7f342,8922
++sub section_url \7f355,9284
 +  my $name \7fname\ 1357,9336
- perl-src/yagrip.pl,258
- sub getopt \7fmain::getopt\ 17,156
++sub section_href \7f364,9452
++sub section_name \7f368,9551
++sub toc_line \7f372,9655
++sub file_end \7f375,9750
 +\f
- sub usage \7fmain::usage\ 138,856
++perl-src/yagrip.pl,233
++sub getopt \7f7,156
 +      local($_,$flag,$opt,$f,$r,@temp)\7f($_,$flag,$opt,$f,$r,@temp\ 18,169
- perl-src/kai-test.pl,244
- sub f1 \7fmain::f1\ 12,16
- sub main::f2 \7f6,50
++sub usage \7f38,856
 +      local($prog,$_,@list)\7f($prog,$_,@list\ 139,868
 +      local($string,$flag,@string,@temp,@last)\7f($string,$flag,@string,@temp,@last\ 140,897
 +\f
- sub f3 \7fFoo::f3\ 112,104
- sub Bar::f4 \7f16,138
++perl-src/kai-test.pl,203
++sub f1 \7f2,16
++sub main::f2 \7ff2\ 16,50
 +package Foo;\7f10,90
- sub f5 \7fBar::f5\ 122,191
++sub f3 \7f12,104
++sub Bar::f4 \7ff4\ 116,138
 +package Bar;\7f20,177
- sub f6 \7fFoo::Bar::f6\ 128,244
++sub f5 \7f22,191
 +package Foo::Bar;\7f26,225
- sub f7 \7fmain::f7\ 134,293
++sub f6 \7f28,244
 +package main;\7f32,278
++sub f7 \7f34,293
 +\f
 +ps-src/rfc1245.ps,2478
 +/FMversion \7f12,311
 +/FrameDict \7f17,500
 +/FMVERSION \7f47,1307
 +/FMLOCAL \7f56,1494
 +/FMDOCUMENT \7f73,1766
 +/FMBEGINPAGE \7f95,2279
 +/FMENDPAGE \7f109,2516
 +/FMDEFINEFONT \7f115,2582
 +/FMNORMALIZEGRAPHICS \7f126,2725
 +/FMBEGINEPSF \7f142,2955
 +/FMENDEPSF \7f153,3207
 +/setmanualfeed \7f158,3283
 +/max \7f163,3386
 +/min \7f164,3426
 +/inch \7f165,3466
 +/pagedimen \7f166,3485
 +/setpapername \7f172,3629
 +/papersize \7f190,4214
 +/manualpapersize \7f211,4789
 +/desperatepapersize \7f230,5211
 +/savematrix \7f239,5370
 +/restorematrix \7f242,5425
 +/dmatrix \7f245,5475
 +/dpi \7f246,5495
 +/freq \7f248,5583
 +/sangle \7f249,5658
 +/DiacriticEncoding \7f250,5717
 +/.notdef \7f251,5738
 +/.notdef \7f252,5801
 +/.notdef \7f253,5864
 +/.notdef \7f254,5927
 +/.notdef \7f255,5990
 +/numbersign \7f256,6051
 +/parenright \7f257,6115
 +/two \7f258,6184
 +/less \7f259,6251
 +/L \7f260,6320
 +/bracketright \7f261,6389
 +/i \7f262,6459
 +/braceright \7f263,6529
 +/Ntilde \7f264,6598
 +/atilde \7f265,6668
 +/iacute \7f266,6733
 +/ocircumflex \7f267,6797
 +/udieresis \7f268,6858
 +/paragraph \7f269,6919
 +/dieresis \7f270,6983
 +/yen \7f271,7050
 +/ordfeminine \7f272,7109
 +/exclamdown \7f273,7171
 +/guillemotleft \7f274,7230
 +/Otilde \7f275,7296
 +/quoteleft \7f276,7357
 +/fraction \7f277,7420
 +/periodcentered \7f278,7490
 +/Acircumflex \7f279,7549
 +/Icircumflex \7f280,7610
 +/Uacute \7f281,7680
 +/breve \7f282,7746
 +/ReEncode \7f284,7814
 +/graymode \7f300,8020
 +/setpattern \7f310,8184
 +/grayness \7f331,8725
 +/normalize \7f394,9873
 +/dnormalize \7f397,9942
 +/lnormalize \7f400,10014
 +/H \7f403,10104
 +/Z \7f406,10147
 +/X \7f409,10176
 +/V \7f412,10219
 +/N \7f415,10260
 +/M \7f418,10286
 +/E \7f419,10315
 +/D \7f420,10336
 +/O \7f421,10358
 +/L \7f423,10394
 +/Y \7f430,10489
 +/R \7f439,10588
 +/RR \7f450,10696
 +/C \7f467,10959
 +/U \7f473,11004
 +/F \7f477,11039
 +/T \7f481,11084
 +/RF \7f484,11115
 +/TF \7f488,11164
 +/P \7f495,11219
 +/PF \7f499,11270
 +/S \7f506,11344
 +/SF \7f510,11384
 +/B \7f517,11446
 +/BF \7f521,11505
 +/W \7f538,11714
 +/G \7f573,12382
 +/A \7f582,12525
 +/BEGINPRINTCODE \7f606,12918
 +/ENDPRINTCODE \7f615,13131
 +/gn \7f620,13259
 +/cfs \7f631,13384
 +/ic \7f636,13473
 +/ms \7f658,14285
 +/ip \7f668,14395
 +/wh \7f678,14492
 +/bl \7f684,14607
 +/s1 \7f690,14722
 +/fl \7f691,14739
 +/hx \7f698,14887
 +/wbytes \7f709,15055
 +/BEGINBITMAPBWc \7f713,15147
 +/BEGINBITMAPGRAYc \7f716,15198
 +/BEGINBITMAP2BITc \7f719,15251
 +/COMMONBITMAPc \7f722,15304
 +/BEGINBITMAPBW \7f739,15660
 +/BEGINBITMAPGRAY \7f742,15709
 +/BEGINBITMAP2BIT \7f745,15760
 +/COMMONBITMAP \7f748,15811
 +/Fmcc \7f765,16156
 +/ngrayt \7f773,16371
 +/nredt \7f774,16393
 +/nbluet \7f775,16414
 +/ngreent \7f776,16436
 +/colorsetup \7f787,16603
 +/fakecolorsetup \7f814,17370
 +/BITMAPCOLOR \7f826,17636
 +/BITMAPCOLORc \7f839,17926
 +/BITMAPGRAY \7f855,18275
 +/BITMAPGRAYc \7f858,18335
 +/ENDBITMAP \7f861,18397
 +/fillprocs \7f868,18497
 +\f
 +prol-src/ordsets.prolog,525
 +is_ordset(\7f47,1310
 +list_to_ord_set(\7f63,1688
 +ord_add_element(\7f71,1867
 +ord_del_element(\7f85,2344
 +ord_disjoint(\7f100,2783
 +ord_intersect(\7f108,2953
 +ord_intersection(\7f126,3552
 +ord_intersection3(\7f130,3691
 +ord_intersection(\7f150,4531
 +ord_intersection4(\7f154,4703
 +ord_intersection(\7f176,5664
 +ord_intersection2(\7f181,5812
 +ord_member(\7f200,6318
 +ord_seteq(\7f216,6683
 +ord_setproduct(\7f225,6971
 +ord_subset(\7f240,7377
 +ord_subtract(\7f257,7861
 +ord_symdiff(\7f265,8054
 +ord_union(\7f288,8887
 +ord_union4(\7f303,9352
 +ord_union(\7f324,10171
 +ord_union_all(\7f329,10313
 +\f
 +prol-src/natded.prolog,2319
 +expandmng(\7f100,2879
 +normalize(\7f116,3359
 +fresh_vars(\7f125,3716
 +subst(\7f138,4134
 +normalize_fresh(\7f159,4660
 +reduce_subterm(\7f171,5112
 +reduce(\7f185,5559
 +free_var(\7f196,5903
 +free_for(\7f209,6246
 +compile_lex(\7f231,6875
 +consult_lex:-\7fconsult_lex\ 1248,7384
 +lex(\7f259,7754
 +expandsyn(\7f267,8068
 +bas_syn(\7f292,8897
 +compile_empty:-\7fcompile_empty\ 1310,9376
 +complete(\7f328,10055
 +add_active(\7f340,10527
 +parse(\7f353,10949
 +derived_analyses(\7f364,11341
 +build(\7f378,11965
 +buildact(\7f392,12521
 +mapsyn(\7f412,13542
 +add_edge(\7f434,14278
 +findcats(\7f447,14758
 +normalize_tree(\7f465,15478
 +normalize_trees(\7f475,15856
 +expandmng_tree(\7f486,16248
 +expandmng_trees(\7f496,16614
 +cat(\7f511,17013
 +subtree(\7f644,21266
 +hypothetical_mem(\7f653,21565
 +make_coor(\7f667,22130
 +start_up:-\7fstart_up\ 1688,23013
 +tokenizeatom(\7f710,23921
 +tokenize(\7f720,24348
 +isoperator(\7f752,25377
 +isoptab(\7f756,25431
 +specialsymbol(\7f765,25756
 +sstab(\7f771,25861
 +parse_cgi(\7f787,26347
 +keyvalseq(\7f792,26510
 +andkeyvalseq(\7f796,26609
 +keyval(\7f799,26688
 +valseq(\7f807,26920
 +plusvalseq(\7f810,27007
 +val(\7f816,27109
 +argvals(\7f824,27426
 +commaargvals(\7f828,27503
 +atomval(\7f833,27578
 +atom(\7f836,27640
 +action(\7f846,28004
 +keyvalcgi(\7f864,28649
 +keyvalscgi(\7f865,28670
 +outsyn(\7f868,28726
 +act(\7f876,29060
 +actout(\7f901,29906
 +texttreelist(\7f912,30089
 +htmltreelist(\7f918,30190
 +fitchtreelist(\7f924,30304
 +pp_html_table_tree(\7f938,30759
 +pp_html_tree(\7f949,31113
 +pp_html_trees(\7f988,32381
 +pp_html_table_fitch_tree(\7f999,32769
 +pp_html_fitch_tree(\7f1017,33672
 +removeexp(\7f1129,39002
 +splitexp(\7f1142,39490
 +pp_exp(\7f1155,39990
 +map_word(\7f1168,40249
 +pp_exps(\7f1180,40474
 +pp_tree(\7f1188,40777
 +pp_trees(\7f1216,41807
 +pp_word_list(\7f1225,42128
 +pp_word(\7f1231,42262
 +pp_word_list_rest(\7f1238,42569
 +pp_cat(\7f1248,42929
 +pp_syn(\7f1255,43196
 +pp_syn_paren(\7f1276,43899
 +pp_paren(\7f1293,44377
 +pp_syn_back(\7f1300,44661
 +pp_bas_cat(\7f1311,45001
 +writecat(\7f1322,45409
 +writesubs(\7f1351,46455
 +writesups(\7f1361,46757
 +writelistsubs(\7f1371,47090
 +pp_lam(\7f1380,47408
 +pp_lam_bracket(\7f1398,48022
 +pp_lam_paren(\7f1407,48338
 +pp_rule(\7f1429,49238
 +member(\7f1447,49866
 +append_list(\7f1451,49919
 +append(\7f1456,50010
 +at_least_one_member(\7f1460,50076
 +numbervars(\7f1464,50171
 +reverse(\7f1467,50209
 +select(\7f1471,50290
 +select_last(\7f1475,50357
 +cat_atoms(\7f1479,50436
 +writelist(\7f1485,50524
 +write_lex_cat(\7f1492,50676
 +writebreaklex(\7f1500,50988
 +write_lex(\7f1513,51265
 +writebreak(\7f1521,51541
 +tt:-\7ftt\ 11531,51713
 +mt:-\7fmt\ 11534,51784
 +cmt:-\7fcmt\ 11537,51878
 +\f
 +pyt-src/server.py,1438
 +class Controls:\7fControls\ 117,358
 +    def __init__(\7f18,374
 +    def __repr__(\7f24,590
 +    def __str__(\7f34,871
 +class Server:\7fServer\ 137,934
 +    def __init__(\7f38,948
 +    def dump(\7f73,2198
 +    def __repr__(\7f125,3896
 +    def __str__(\7f128,3945
 +class User:\7fUser\ 1131,4014
 +    def __init__(\7f132,4026
 +    def __repr__(\7f172,5445
 +    def __str__(\7f206,6883
 +def flag2str(\7f223,7212
 +class LabeledEntry(\7f232,7442
 +    def bind(\7f234,7525
 +    def focus_set(\7f236,7584
 +    def __init__(\7f238,7629
 +def ButtonBar(\7f245,7909
 +def helpwin(\7f255,8280
 +class ListEdit(\7f267,8707
 +    def __init__(\7f269,8808
 +    def handleList(\7f303,10042
 +    def handleNew(\7f306,10094
 +    def editItem(\7f314,10426
 +    def deleteItem(\7f320,10596
 +def ConfirmQuit(\7f326,10760
 +class ControlEdit(\7f375,12377
 +    def PostControls(\7f376,12403
 +    def GatherControls(\7f421,13530
 +class ServerEdit(\7f512,16264
 +    def __init__(\7f513,16289
 +    def post(\7f525,16629
 +    def gather(\7f543,17191
 +    def nosave(\7f547,17304
 +    def save(\7f551,17408
 +    def refreshPort(\7f556,17509
 +    def createWidgets(\7f561,17663
 +    def edituser(\7f631,20708
 +class UserEdit(\7f645,20921
 +    def __init__(\7f646,20944
 +    def post(\7f658,21283
 +    def gather(\7f676,21841
 +    def nosave(\7f680,21950
 +    def save(\7f684,22052
 +    def createWidgets(\7f689,22151
 +class Configure(\7f760,24879
 +    def __init__(\7f761,24916
 +    def MakeDispose(\7f772,25211
 +    def MakeSitelist(\7f786,25706
 +    def editsite(\7f794,25949
 +    def save(\7f797,26022
 +    def nosave(\7f807,26310
 +\f
 +ruby-src/test.rb,637
 +module ModuleExample\7f1,0
 +    class ClassExample\7f2,21
 +        def instance_method\7f3,44
 +        def ClassExample.class_method\7fclass_method\ 16,121
 +        def instance_method_exclamation!\7f9,206
 +        def instance_method_question?\7f12,310
 +        def instance_method_equals=\7finstance_method_equals=\ 115,408
 +        def `(\7f18,502
 +        def +(\7f21,592
 +        def [](\7f24,640
 +        def []=(\7f[]=\ 127,690
 +        def <<(\7f30,752
 +        def ==(\7f==\ 133,802
 +        def <=(\7f<=\ 136,872
 +        def <=>(\7f<=>\ 139,943
 +        def ===(\7f===\ 142,990
 +    def module_instance_method\7f46,1051
 +    def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 +\f
 +ruby-src/test1.ru,935
 +class A\7f1,0
 + def a(\7f2,8
 + def b(\7f5,38
 +module A\7f9,57
 +  class B\7f10,66
 +    ABC \7f11,76
 +    Def_ \7f12,88
 +    Xyzzy \7f13,106
 +    def foo!\7f15,121
 +    def self._bar?(\7f_bar?\ 118,143
 +      def qux=(\7fqux=\ 122,194
 +    attr_reader :foo\7ffoo\ 126,233
 +    attr_reader :read1 \7fread1\ 127,254
 +    attr_reader :read1 , :read2;\7fread2\ 127,254
 +    attr_reader :read1 , :read2; attr_writer :write1,\7fwrite1=\ 127,254
 +    attr_reader :read1 , :read2; attr_writer :write1, :write2\7fwrite2=\ 127,254
 +    attr_writer :bar,\7fbar=\ 128,316
 +                :baz,\7fbaz=\ 129,338
 +                :more\7fmore=\ 130,360
 +    attr_accessor :tee\7ftee\ 131,382
 +    attr_accessor :tee\7ftee=\ 131,382
 +    alias_method :qux,\7fqux\ 132,405
 +    alias_method :xyz,\7fxyz\ 133,456
 +                 :tee ; attr_reader :subtle\7fsubtle\ 134,479
 +    attr_reader(:foo1,\7ffoo1\ 135,523
 +    attr_reader(:foo1, :bar1,\7fbar1\ 135,523
 +                :qux1)\7fqux1\ 136,563
 +    alias_method ( :foo2,\7ffoo2\ 137,586
 +A::Constant \7fConstant\ 142,655
 +\f
 +tex-src/testenv.tex,52
 +\newcommand{\nm}\7f\nm\ 14,77
 +\section{blah}\7fblah\ 18,139
 +\f
 +tex-src/gzip.texi,303
 +@node Top,\7f62,2139
 +@node Copying,\7f80,2652
 +@node Overview,\7f83,2705
 +@node Sample,\7f166,7272
 +@node Invoking gzip,\7fInvoking gzip\ 1210,8828
 +@node Advanced usage,\7fAdvanced usage\ 1357,13495
 +@node Environment,\7f420,15207
 +@node Tapes,\7f437,15768
 +@node Problems,\7f460,16767
 +@node Concept Index,\7fConcept Index\ 1473,17287
 +\f
 +tex-src/texinfo.tex,30627
 +\def\texinfoversion{\7f\texinfoversion\ 126,1027
 +\def\tie{\7f\tie\ 149,1518
 +\def\gloggingall{\7f\gloggingall\ 172,2268
 +\def\loggingall{\7f\loggingall\ 173,2337
 +\def\onepageout#1{\7f\onepageout\ 199,3274
 +\def\croppageout#1{\7f\croppageout\ 1115,4024
 +\def\cropmarks{\7f\cropmarks\ 1142,5084
 +\def\pagebody#1{\7f\pagebody\ 1144,5131
 +\def\ewtop{\7f\ewtop\ 1157,5586
 +\def\nstop{\7f\nstop\ 1158,5650
 +\def\ewbot{\7f\ewbot\ 1160,5733
 +\def\nsbot{\7f\nsbot\ 1161,5797
 +\def\parsearg #1{\7f\parsearg\ 1170,6096
 +\def\parseargx{\7f\parseargx\ 1172,6174
 +\def\parseargline{\7f\parseargline\ 1182,6414
 +\def\flushcr{\7f\flushcr\ 1186,6535
 +\newif\ifENV \ENVfalse \def\inENV{\7f\inENV\ 1190,6734
 +\def\ENVcheck{\7f\ENVcheck\ 1191,6798
 +\outer\def\begin{\7f\begin\ 1198,7045
 +\def\beginxxx #1{\7f\beginxxx\ 1200,7083
 +\def\end{\7f\end\ 1208,7338
 +\def\endxxx #1{\7f\endxxx\ 1210,7366
 +\def\errorE#1{\7f\errorE\ 1216,7555
 +\def\singlespace{\7f\singlespace\ 1222,7749
 +\def\@{\7f\@\ 1232,7972
 +\def\`{\7f\`\ 1236,8072
 +\def\'{\7f\'\ 1237,8084
 +\def\mylbrace {\7f\mylbrace\ 1241,8132
 +\def\myrbrace {\7f\myrbrace\ 1242,8165
 +\def\:{\7f\:\ 1247,8279
 +\def\*{\7f\*\ 1250,8333
 +\def\.{\7f\.\ 1253,8409
 +\def\w#1{\7f\w\ 1258,8640
 +\def\group{\7f\group\ 1268,9123
 +  \def\Egroup{\7f\Egroup\ 1273,9287
 +\def\need{\7f\need\ 1289,9729
 +\def\needx#1{\7f\needx\ 1300,10006
 +\def\dots{\7f\dots\ 1339,11392
 +\def\page{\7f\page\ 1343,11456
 +\def\exdent{\7f\exdent\ 1353,11783
 +\def\exdentyyy #1{\7f\exdentyyy\ 1354,11816
 +\def\nofillexdent{\7f\nofillexdent\ 1357,11960
 +\def\nofillexdentyyy #1{\7f\nofillexdentyyy\ 1358,12005
 +\def\include{\7f\include\ 1365,12189
 +\def\includezzz #1{\7f\includezzz\ 1366,12224
 +\def\thisfile{\7f\thisfile\ 1369,12275
 +\def\center{\7f\center\ 1373,12338
 +\def\centerzzz #1{\7f\centerzzz\ 1374,12371
 +\def\sp{\7f\sp\ 1380,12513
 +\def\spxxx #1{\7f\spxxx\ 1381,12538
 +\def\comment{\7f\comment\ 1387,12712
 +\def\commentxxx #1{\7f\commentxxx\ 1390,12809
 +\def\ignoresections{\7f\ignoresections\ 1396,12978
 +\let\chapter=\relax\7f=\relax\ 1397,13000
 +\let\section=\relax\7f=\relax\ 1406,13245
 +\let\subsection=\relax\7f=\relax\ 1409,13306
 +\let\subsubsection=\relax\7f=\relax\ 1410,13329
 +\let\appendix=\relax\7f=\relax\ 1411,13355
 +\let\appendixsec=\relax\7fsec=\relax\ 1412,13376
 +\let\appendixsection=\relax\7fsection=\relax\ 1413,13400
 +\let\appendixsubsec=\relax\7fsubsec=\relax\ 1414,13428
 +\let\appendixsubsection=\relax\7fsubsection=\relax\ 1415,13455
 +\let\appendixsubsubsec=\relax\7fsubsubsec=\relax\ 1416,13486
 +\let\appendixsubsubsection=\relax\7fsubsubsection=\relax\ 1417,13516
 +\def\ignore{\7f\ignore\ 1423,13618
 +\long\def\ignorexxx #1\end ignore{\7f\ignorexxx\ 1427,13758
 +\def\direntry{\7f\direntry\ 1429,13817
 +\long\def\direntryxxx #1\end direntry{\7f\direntryxxx\ 1430,13856
 +\def\ifset{\7f\ifset\ 1434,13966
 +\def\ifsetxxx #1{\7f\ifsetxxx\ 1436,14024
 +\def\Eifset{\7f\Eifset\ 1440,14151
 +\def\ifsetfail{\7f\ifsetfail\ 1441,14165
 +\long\def\ifsetfailxxx #1\end ifset{\7f\ifsetfailxxx\ 1442,14221
 +\def\ifclear{\7f\ifclear\ 1444,14282
 +\def\ifclearxxx #1{\7f\ifclearxxx\ 1446,14344
 +\def\Eifclear{\7f\Eifclear\ 1450,14475
 +\def\ifclearfail{\7f\ifclearfail\ 1451,14491
 +\long\def\ifclearfailxxx #1\end ifclear{\7f\ifclearfailxxx\ 1452,14551
 +\def\set{\7f\set\ 1456,14702
 +\def\setxxx #1{\7f\setxxx\ 1457,14729
 +\def\clear{\7f\clear\ 1460,14791
 +\def\clearxxx #1{\7f\clearxxx\ 1461,14822
 +\def\iftex{\7f\iftex\ 1466,14939
 +\def\Eiftex{\7f\Eiftex\ 1467,14952
 +\def\ifinfo{\7f\ifinfo\ 1468,14966
 +\long\def\ifinfoxxx #1\end ifinfo{\7f\ifinfoxxx\ 1469,15016
 +\long\def\menu #1\end menu{\7f\menu\ 1471,15075
 +\def\asis#1{\7f\asis\ 1472,15104
 +\def\math#1{\7f\math\ 1485,15647
 +\def\node{\7f\node\ 1487,15691
 +\def\nodezzz#1{\7f\nodezzz\ 1488,15729
 +\def\nodexxx[#1,#2]{\7f\nodexxx[\ 1489,15760
 +\def\donoderef{\7f\donoderef\ 1492,15822
 +\def\unnumbnoderef{\7f\unnumbnoderef\ 1496,15943
 +\def\appendixnoderef{\7f\appendixnoderef\ 1500,16074
 +\expandafter\expandafter\expandafter\appendixsetref{\7fsetref\ 1501,16120
 +\let\refill=\relax\7fill=\relax\ 1504,16209
 +\def\setfilename{\7f\setfilename\ 1509,16423
 +\outer\def\bye{\7f\bye\ 1518,16669
 +\def\inforef #1{\7f\inforef\ 1520,16725
 +\def\inforefzzz #1,#2,#3,#4**{\7f\inforefzzz\ 1521,16763
 +\def\losespace #1{\7f\losespace\ 1523,16860
 +\def\sf{\7f\sf\ 1532,17064
 +\font\defbf=cmbx10 scaled \magstep1 %was 1314\7fbf=cmbx10\ 1558,17859
 +\font\deftt=cmtt10 scaled \magstep1\7ftt=cmtt10\ 1559,17905
 +\def\df{\7f\df\ 1560,17941
 +\def\resetmathfonts{\7f\resetmathfonts\ 1635,20535
 +\def\textfonts{\7f\textfonts\ 1648,21124
 +\def\chapfonts{\7f\chapfonts\ 1653,21339
 +\def\secfonts{\7f\secfonts\ 1658,21555
 +\def\subsecfonts{\7f\subsecfonts\ 1663,21760
 +\def\indexfonts{\7f\indexfonts\ 1668,21977
 +\def\smartitalicx{\7f\smartitalicx\ 1691,22709
 +\def\smartitalic#1{\7f\smartitalic\ 1692,22785
 +\let\cite=\smartitalic\7f=\smartitalic\ 1698,22930
 +\def\b#1{\7f\b\ 1700,22954
 +\def\t#1{\7f\t\ 1703,22989
 +\def\samp #1{\7f\samp\ 1706,23141
 +\def\key #1{\7f\key\ 1707,23174
 +\def\ctrl #1{\7f\ctrl\ 1708,23235
 +\def\tclose#1{\7f\tclose\ 1716,23437
 +\def\ {\7f\\ 1720,23603
 +\def\xkey{\7f\xkey\ 1728,23872
 +\def\kbdfoo#1#2#3\par{\7f\kbdfoo\ 1729,23888
 +\def\dmn#1{\7f\dmn\ 1738,24189
 +\def\kbd#1{\7f\kbd\ 1740,24216
 +\def\l#1{\7f\l\ 1742,24273
 +\def\r#1{\7f\r\ 1744,24302
 +\def\sc#1{\7f\sc\ 1746,24370
 +\def\ii#1{\7f\ii\ 1747,24413
 +\def\titlefont#1{\7f\titlefont\ 1755,24646
 +\def\titlepage{\7f\titlepage\ 1761,24749
 +   \def\subtitlefont{\7f\subtitlefont\ 1766,24976
 +   \def\authorfont{\7f\authorfont\ 1768,25060
 +   \def\title{\7f\title\ 1774,25270
 +   \def\titlezzz##1{\7f\titlezzz\ 1775,25305
 +   \def\subtitle{\7f\subtitle\ 1783,25620
 +   \def\subtitlezzz##1{\7f\subtitlezzz\ 1784,25661
 +   \def\author{\7f\author\ 1787,25779
 +   \def\authorzzz##1{\7f\authorzzz\ 1788,25816
 +   \def\page{\7f\page\ 1794,26107
 +\def\Etitlepage{\7f\Etitlepage\ 1804,26276
 +\def\finishtitlepage{\7f\finishtitlepage\ 1817,26664
 +\def\evenheading{\7f\evenheading\ 1846,27672
 +\def\oddheading{\7f\oddheading\ 1847,27715
 +\def\everyheading{\7f\everyheading\ 1848,27756
 +\def\evenfooting{\7f\evenfooting\ 1850,27802
 +\def\oddfooting{\7f\oddfooting\ 1851,27845
 +\def\everyfooting{\7f\everyfooting\ 1852,27886
 +\def\headings #1 {\7f\headings\ 1893,29578
 +\def\HEADINGSoff{\7f\HEADINGSoff\ 1895,29627
 +\def\HEADINGSdouble{\7f\HEADINGSdouble\ 1904,30054
 +\def\HEADINGSsingle{\7f\HEADINGSsingle\ 1914,30374
 +\def\HEADINGSon{\7f\HEADINGSon\ 1922,30595
 +\def\HEADINGSafter{\7f\HEADINGSafter\ 1924,30629
 +\def\HEADINGSdoublex{\7f\HEADINGSdoublex\ 1926,30724
 +\def\HEADINGSsingleafter{\7f\HEADINGSsingleafter\ 1933,30912
 +\def\HEADINGSsinglex{\7f\HEADINGSsinglex\ 1934,30973
 +\def\today{\7f\today\ 1943,31248
 +\def\thistitle{\7f\thistitle\ 1958,31793
 +\def\settitle{\7f\settitle\ 1959,31818
 +\def\settitlezzz #1{\7f\settitlezzz\ 1960,31855
 +\def\internalBitem{\7f\internalBitem\ 1992,32785
 +\def\internalBitemx{\7f\internalBitemx\ 1993,32835
 +\def\internalBxitem "#1"{\7f\internalBxitem\ 1995,32880
 +\def\internalBxitemx "#1"{\7f\internalBxitemx\ 1996,32960
 +\def\internalBkitem{\7f\internalBkitem\ 1998,33035
 +\def\internalBkitemx{\7f\internalBkitemx\ 1999,33087
 +\def\kitemzzz #1{\7f\kitemzzz\ 11001,33134
 +\def\xitemzzz #1{\7f\xitemzzz\ 11004,33236
 +\def\itemzzz #1{\7f\itemzzz\ 11007,33339
 +\def\item{\7f\item\ 11037,34410
 +\def\itemx{\7f\itemx\ 11038,34461
 +\def\kitem{\7f\kitem\ 11039,34514
 +\def\kitemx{\7f\kitemx\ 11040,34567
 +\def\xitem{\7f\xitem\ 11041,34622
 +\def\xitemx{\7f\xitemx\ 11042,34675
 +\def\description{\7f\description\ 11045,34785
 +\def\table{\7f\table\ 11047,34835
 +\def\ftable{\7f\ftable\ 11052,34979
 +\def\Eftable{\7f\Eftable\ 11056,35125
 +\def\vtable{\7f\vtable\ 11059,35194
 +\def\Evtable{\7f\Evtable\ 11063,35340
 +\def\dontindex #1{\7f\dontindex\ 11066,35409
 +\def\fnitemindex #1{\7f\fnitemindex\ 11067,35429
 +\def\vritemindex #1{\7f\vritemindex\ 11068,35474
 +\def\tablez #1#2#3#4#5#6{\7f\tablez\ 11074,35623
 +\def\Edescription{\7f\Edescription\ 11077,35681
 +\def\itemfont{\7f\itemfont\ 11082,35883
 +\def\Etable{\7f\Etable\ 11090,36109
 +\def\itemize{\7f\itemize\ 11103,36433
 +\def\itemizezzz #1{\7f\itemizezzz\ 11105,36469
 +\def\itemizey #1#2{\7f\itemizey\ 11110,36564
 +\def#2{\7f1119,36810
 +\def\itemcontents{\7f\itemcontents\ 11120,36851
 +\def\bullet{\7f\bullet\ 11123,36899
 +\def\minus{\7f\minus\ 11124,36926
 +\def\frenchspacing{\7f\frenchspacing\ 11128,37034
 +\def\splitoff#1#2\endmark{\7f\splitoff\ 11134,37259
 +\def\enumerate{\7f\enumerate\ 11140,37489
 +\def\enumeratezzz #1{\7f\enumeratezzz\ 11141,37528
 +\def\enumeratey #1 #2\endenumeratey{\7f\enumeratey\ 11142,37581
 +  \def\thearg{\7f\thearg\ 11146,37728
 +  \ifx\thearg\empty \def\thearg{\7f\thearg\ 11147,37747
 +\def\numericenumerate{\7f\numericenumerate\ 11184,39081
 +\def\lowercaseenumerate{\7f\lowercaseenumerate\ 11190,39211
 +\def\uppercaseenumerate{\7f\uppercaseenumerate\ 11203,39558
 +\def\startenumeration#1{\7f\startenumeration\ 11219,40048
 +\def\alphaenumerate{\7f\alphaenumerate\ 11227,40230
 +\def\capsenumerate{\7f\capsenumerate\ 11228,40265
 +\def\Ealphaenumerate{\7f\Ealphaenumerate\ 11229,40299
 +\def\Ecapsenumerate{\7f\Ecapsenumerate\ 11230,40333
 +\def\itemizeitem{\7f\itemizeitem\ 11234,40413
 +\def\newindex #1{\7f\newindex\ 11259,41270
 +\def\defindex{\7f\defindex\ 11268,41559
 +\def\newcodeindex #1{\7f\newcodeindex\ 11272,41667
 +\def\defcodeindex{\7f\defcodeindex\ 11279,41927
 +\def\synindex #1 #2 {\7f\synindex\ 11283,42107
 +\def\syncodeindex #1 #2 {\7f\syncodeindex\ 11292,42447
 +\def\doindex#1{\7f\doindex\ 11309,43126
 +\def\singleindexer #1{\7f\singleindexer\ 11310,43185
 +\def\docodeindex#1{\7f\docodeindex\ 11313,43297
 +\def\singlecodeindexer #1{\7f\singlecodeindexer\ 11314,43364
 +\def\indexdummies{\7f\indexdummies\ 11316,43422
 +\def\_{\7f\_\ 11317,43442
 +\def\w{\7f\w\ 11318,43470
 +\def\bf{\7f\bf\ 11319,43497
 +\def\rm{\7f\rm\ 11320,43526
 +\def\sl{\7f\sl\ 11321,43555
 +\def\sf{\7f\sf\ 11322,43584
 +\def\tt{\7f\tt\ 11323,43612
 +\def\gtr{\7f\gtr\ 11324,43640
 +\def\less{\7f\less\ 11325,43670
 +\def\hat{\7f\hat\ 11326,43702
 +\def\char{\7f\char\ 11327,43732
 +\def\TeX{\7f\TeX\ 11328,43764
 +\def\dots{\7f\dots\ 11329,43794
 +\def\copyright{\7f\copyright\ 11330,43827
 +\def\tclose##1{\7f\tclose\ 11331,43870
 +\def\code##1{\7f\code\ 11332,43915
 +\def\samp##1{\7f\samp\ 11333,43956
 +\def\t##1{\7f\t\ 11334,43997
 +\def\r##1{\7f\r\ 11335,44032
 +\def\i##1{\7f\i\ 11336,44067
 +\def\b##1{\7f\b\ 11337,44102
 +\def\cite##1{\7f\cite\ 11338,44137
 +\def\key##1{\7f\key\ 11339,44178
 +\def\file##1{\7f\file\ 11340,44217
 +\def\var##1{\7f\var\ 11341,44258
 +\def\kbd##1{\7f\kbd\ 11342,44297
 +\def\indexdummyfont#1{\7f\indexdummyfont\ 11347,44453
 +\def\indexdummytex{\7f\indexdummytex\ 11348,44479
 +\def\indexdummydots{\7f\indexdummydots\ 11349,44503
 +\def\indexnofonts{\7f\indexnofonts\ 11351,44529
 +\let\w=\indexdummyfont\7fdummyfont\ 11352,44549
 +\let\t=\indexdummyfont\7fdummyfont\ 11353,44572
 +\let\r=\indexdummyfont\7fdummyfont\ 11354,44595
 +\let\i=\indexdummyfont\7fdummyfont\ 11355,44618
 +\let\b=\indexdummyfont\7fdummyfont\ 11356,44641
 +\let\emph=\indexdummyfont\7fdummyfont\ 11357,44664
 +\let\strong=\indexdummyfont\7fdummyfont\ 11358,44690
 +\let\cite=\indexdummyfont\7f=\indexdummyfont\ 11359,44718
 +\let\sc=\indexdummyfont\7fdummyfont\ 11360,44744
 +\let\tclose=\indexdummyfont\7fdummyfont\ 11364,44916
 +\let\code=\indexdummyfont\7fdummyfont\ 11365,44944
 +\let\file=\indexdummyfont\7fdummyfont\ 11366,44970
 +\let\samp=\indexdummyfont\7fdummyfont\ 11367,44996
 +\let\kbd=\indexdummyfont\7fdummyfont\ 11368,45022
 +\let\key=\indexdummyfont\7fdummyfont\ 11369,45047
 +\let\var=\indexdummyfont\7fdummyfont\ 11370,45072
 +\let\TeX=\indexdummytex\7fdummytex\ 11371,45097
 +\let\dots=\indexdummydots\7fdummydots\ 11372,45121
 +\let\indexbackslash=0  %overridden during \printindex.\7fbackslash=0\ 11382,45373
 +\def\doind #1#2{\7f\doind\ 11384,45429
 +{\indexdummies % Must do this here, since \bf, etc expand at this stage\7fdummies\ 11386,45472
 +\def\rawbackslashxx{\7f\rawbackslashxx\ 11389,45612
 +{\indexnofonts\7fnofonts\ 11394,45874
 +\def\dosubind #1#2#3{\7f\dosubind\ 11405,46185
 +{\indexdummies % Must do this here, since \bf, etc expand at this stage\7fdummies\ 11407,46233
 +\def\rawbackslashxx{\7f\rawbackslashxx\ 11410,46337
 +{\indexnofonts\7fnofonts\ 11414,46491
 +\def\findex {\7f\findex\ 11443,47422
 +\def\kindex {\7f\kindex\ 11444,47445
 +\def\cindex {\7f\cindex\ 11445,47468
 +\def\vindex {\7f\vindex\ 11446,47491
 +\def\tindex {\7f\tindex\ 11447,47514
 +\def\pindex {\7f\pindex\ 11448,47537
 +\def\cindexsub {\7f\cindexsub\ 11450,47561
 +\def\printindex{\7f\printindex\ 11462,47888
 +\def\doprintindex#1{\7f\doprintindex\ 11464,47929
 +  \def\indexbackslash{\7f\indexbackslash\ 11481,48414
 +  \indexfonts\rm \tolerance=9500 \advance\baselineskip -1pt\7ffonts\rm\ 11482,48453
 +\def\initial #1{\7f\initial\ 11517,49525
 +\def\entry #1#2{\7f\entry\ 11523,49732
 +  \null\nobreak\indexdotfill % Have leaders before the page number.\7fdotfill\ 11540,50379
 +\def\indexdotfill{\7f\indexdotfill\ 11549,50707
 +\def\primary #1{\7f\primary\ 11552,50813
 +\def\secondary #1#2{\7f\secondary\ 11556,50895
 +\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par\7fdotfill\ 11559,50977
 +\newbox\partialpage\7fialpage\ 11566,51150
 +\def\begindoublecolumns{\7f\begindoublecolumns\ 11572,51308
 +  \output={\global\setbox\partialpage=\7fialpage=\ 11573,51344
 +\def\enddoublecolumns{\7f\enddoublecolumns\ 11577,51532
 +\def\doublecolumnout{\7f\doublecolumnout\ 11580,51617
 +  \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage\7fialpage\ 11581,51686
 +\def\pagesofar{\7f\pagesofar\ 11584,51864
 +\def\balancecolumns{\7f\balancecolumns\ 11588,52101
 +  \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpage\7fialpage\ 11594,52272
 +     \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage\7fialpage\ 11600,52533
 +\newcount \appendixno  \appendixno = `\@\7fno\ 11627,53438
 +\def\appendixletter{\7f\appendixletter\ 11628,53479
 +\def\opencontents{\7f\opencontents\ 11632,53582
 +\def\thischapter{\7f\thischapter\ 11637,53763
 +\def\seccheck#1{\7f\seccheck\ 11638,53801
 +\def\chapternofonts{\7f\chapternofonts\ 11643,53905
 +\def\result{\7f\result\ 11646,53980
 +\def\equiv{\7f\equiv\ 11647,54015
 +\def\expansion{\7f\expansion\ 11648,54048
 +\def\print{\7f\print\ 11649,54089
 +\def\TeX{\7f\TeX\ 11650,54122
 +\def\dots{\7f\dots\ 11651,54151
 +\def\copyright{\7f\copyright\ 11652,54182
 +\def\tt{\7f\tt\ 11653,54223
 +\def\bf{\7f\bf\ 11654,54250
 +\def\w{\7f\w\ 11655,54278
 +\def\less{\7f\less\ 11656,54303
 +\def\gtr{\7f\gtr\ 11657,54334
 +\def\hat{\7f\hat\ 11658,54363
 +\def\char{\7f\char\ 11659,54392
 +\def\tclose##1{\7f\tclose\ 11660,54423
 +\def\code##1{\7f\code\ 11661,54467
 +\def\samp##1{\7f\samp\ 11662,54507
 +\def\r##1{\7f\r\ 11663,54547
 +\def\b##1{\7f\b\ 11664,54581
 +\def\key##1{\7f\key\ 11665,54615
 +\def\file##1{\7f\file\ 11666,54653
 +\def\kbd##1{\7f\kbd\ 11667,54693
 +\def\i##1{\7f\i\ 11669,54801
 +\def\cite##1{\7f\cite\ 11670,54835
 +\def\var##1{\7f\var\ 11671,54875
 +\def\emph##1{\7f\emph\ 11672,54913
 +\def\dfn##1{\7f\dfn\ 11673,54953
 +\def\thischaptername{\7f\thischaptername\ 11676,54994
 +\outer\def\chapter{\7f\chapter\ 11677,55033
 +\def\chapterzzz #1{\7f\chapterzzz\ 11678,55074
 +{\chapternofonts%\7fnofonts%\ 11687,55470
 +\global\let\section = \numberedsec\7f=\ 11692,55623
 +\global\let\subsection = \numberedsubsec\7f=\ 11693,55658
 +\global\let\subsubsection = \numberedsubsubsec\7f=\ 11694,55699
 +\outer\def\appendix{\7f\appendix\ 11697,55750
 +\def\appendixzzz #1{\7f\appendixzzz\ 11698,55793
 +\global\advance \appendixno by 1 \message{\7fno\ 11700,55870
 +\chapmacro {#1}{Appendix \appendixletter}\7fletter\ 11701,55939
 +\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}\7fletter:\ 11704,56032
 +{\chapternofonts%\7fnofonts%\ 11705,56104
 +  {#1}{Appendix \appendixletter}\7fletter\ 11707,56160
 +\appendixnoderef %\7fnoderef\ 11710,56260
 +\global\let\section = \appendixsec\7f=\ 11711,56279
 +\global\let\subsection = \appendixsubsec\7f=\ 11712,56314
 +\global\let\subsubsection = \appendixsubsubsec\7f=\ 11713,56355
 +\outer\def\top{\7f\top\ 11716,56406
 +\outer\def\unnumbered{\7f\unnumbered\ 11717,56446
 +\def\unnumberedzzz #1{\7f\unnumberedzzz\ 11718,56493
 +{\chapternofonts%\7fnofonts%\ 11722,56656
 +\global\let\section = \unnumberedsec\7f=\ 11727,56806
 +\global\let\subsection = \unnumberedsubsec\7f=\ 11728,56843
 +\global\let\subsubsection = \unnumberedsubsubsec\7f=\ 11729,56886
 +\outer\def\numberedsec{\7f\numberedsec\ 11732,56939
 +\def\seczzz #1{\7f\seczzz\ 11733,56980
 +{\chapternofonts%\7fnofonts%\ 11736,57136
 +\outer\def\appendixsection{\7f\appendixsection\ 11745,57322
 +\outer\def\appendixsec{\7f\appendixsec\ 11746,57379
 +\def\appendixsectionzzz #1{\7f\appendixsectionzzz\ 11747,57432
 +\gdef\thissection{#1}\secheading {#1}{\appendixletter}\7fletter\ 11749,57544
 +{\chapternofonts%\7fnofonts%\ 11750,57612
 +{#1}{\appendixletter}\7fletter\ 11752,57668
 +\appendixnoderef %\7fnoderef\ 11755,57768
 +\outer\def\unnumberedsec{\7f\unnumberedsec\ 11759,57808
 +\def\unnumberedseczzz #1{\7f\unnumberedseczzz\ 11760,57861
 +{\chapternofonts%\7fnofonts%\ 11762,57956
 +\outer\def\numberedsubsec{\7f\numberedsubsec\ 11770,58124
 +\def\numberedsubseczzz #1{\7f\numberedsubseczzz\ 11771,58179
 +{\chapternofonts%\7fnofonts%\ 11774,58358
 +\outer\def\appendixsubsec{\7f\appendixsubsec\ 11783,58562
 +\def\appendixsubseczzz #1{\7f\appendixsubseczzz\ 11784,58617
 +\subsecheading {#1}{\appendixletter}\7fletter\ 11786,58739
 +{\chapternofonts%\7fnofonts%\ 11787,58804
 +{#1}{\appendixletter}\7fletter\ 11789,58863
 +\appendixnoderef %\7fnoderef\ 11792,58978
 +\outer\def\unnumberedsubsec{\7f\unnumberedsubsec\ 11796,59018
 +\def\unnumberedsubseczzz #1{\7f\unnumberedsubseczzz\ 11797,59077
 +{\chapternofonts%\7fnofonts%\ 11799,59178
 +\outer\def\numberedsubsubsec{\7f\numberedsubsubsec\ 11807,59349
 +\def\numberedsubsubseczzz #1{\7f\numberedsubsubseczzz\ 11808,59410
 +{\chapternofonts%\7fnofonts%\ 11812,59607
 +\outer\def\appendixsubsubsec{\7f\appendixsubsubsec\ 11823,59840
 +\def\appendixsubsubseczzz #1{\7f\appendixsubsubseczzz\ 11824,59901
 +  {\appendixletter}\7fletter\ 11827,60040
 +{\chapternofonts%\7fnofonts%\ 11828,60106
 +  {\appendixletter}\7fletter\ 11830,60171
 +\appendixnoderef %\7fnoderef\ 11834,60305
 +\outer\def\unnumberedsubsubsec{\7f\unnumberedsubsubsec\ 11838,60345
 +\def\unnumberedsubsubseczzz #1{\7f\unnumberedsubsubseczzz\ 11839,60410
 +{\chapternofonts%\7fnofonts%\ 11841,60517
 +\def\infotop{\7f\infotop\ 11851,60846
 +\def\infounnumbered{\7f\infounnumbered\ 11852,60884
 +\def\infounnumberedsec{\7f\infounnumberedsec\ 11853,60929
 +\def\infounnumberedsubsec{\7f\infounnumberedsubsec\ 11854,60980
 +\def\infounnumberedsubsubsec{\7f\infounnumberedsubsubsec\ 11855,61037
 +\def\infoappendix{\7f\infoappendix\ 11857,61101
 +\def\infoappendixsec{\7f\infoappendixsec\ 11858,61142
 +\def\infoappendixsubsec{\7f\infoappendixsubsec\ 11859,61189
 +\def\infoappendixsubsubsec{\7f\infoappendixsubsubsec\ 11860,61242
 +\def\infochapter{\7f\infochapter\ 11862,61302
 +\def\infosection{\7f\infosection\ 11863,61341
 +\def\infosubsection{\7f\infosubsection\ 11864,61380
 +\def\infosubsubsection{\7f\infosubsubsection\ 11865,61425
 +\global\let\section = \numberedsec\7f=\ 11870,61662
 +\global\let\subsection = \numberedsubsec\7f=\ 11871,61697
 +\global\let\subsubsection = \numberedsubsubsec\7f=\ 11872,61738
 +\def\majorheading{\7f\majorheading\ 11886,62245
 +\def\majorheadingzzz #1{\7f\majorheadingzzz\ 11887,62290
 +\def\chapheading{\7f\chapheading\ 11893,62523
 +\def\chapheadingzzz #1{\7f\chapheadingzzz\ 11894,62566
 +\def\heading{\7f\heading\ 11899,62761
 +\def\subheading{\7f\subheading\ 11901,62798
 +\def\subsubheading{\7f\subsubheading\ 11903,62841
 +\def\dobreak#1#2{\7f\dobreak\ 11910,63118
 +\def\setchapterstyle #1 {\7f\setchapterstyle\ 11912,63196
 +\def\chapbreak{\7f\chapbreak\ 11919,63451
 +\def\chappager{\7f\chappager\ 11920,63501
 +\def\chapoddpage{\7f\chapoddpage\ 11921,63539
 +\def\setchapternewpage #1 {\7f\setchapternewpage\ 11923,63618
 +\def\CHAPPAGoff{\7f\CHAPPAGoff\ 11925,63675
 +\def\CHAPPAGon{\7f\CHAPPAGon\ 11929,63769
 +\global\def\HEADINGSon{\7f\HEADINGSon\ 11932,63860
 +\def\CHAPPAGodd{\7f\CHAPPAGodd\ 11934,63902
 +\global\def\HEADINGSon{\7f\HEADINGSon\ 11937,63998
 +\def\CHAPFplain{\7f\CHAPFplain\ 11941,64052
 +\def\chfplain #1#2{\7f\chfplain\ 11945,64144
 +\def\unnchfplain #1{\7f\unnchfplain\ 11956,64367
 +\def\unnchfopen #1{\7f\unnchfopen\ 11964,64596
 +\def\chfopen #1#2{\7f\chfopen\ 11970,64804
 +\def\CHAPFopen{\7f\CHAPFopen\ 11975,64948
 +\def\subsecheadingbreak{\7f\subsecheadingbreak\ 11982,65166
 +\def\secheadingbreak{\7f\secheadingbreak\ 11985,65295
 +\def\secheading #1#2#3{\7f\secheading\ 11993,65577
 +\def\plainsecheading #1{\7f\plainsecheading\ 11994,65633
 +\def\secheadingi #1{\7f\secheadingi\ 11995,65676
 +\def\subsecheading #1#2#3#4{\7f\subsecheading\ 12006,66044
 +\def\subsecheadingi #1{\7f\subsecheadingi\ 12007,66111
 +\def\subsubsecfonts{\7f\subsubsecfonts\ 12014,66408
 +\def\subsubsecheading #1#2#3#4#5{\7f\subsubsecheading\ 12017,66531
 +\def\subsubsecheadingi #1{\7f\subsubsecheadingi\ 12018,66609
 +\def\startcontents#1{\7f\startcontents\ 12032,67081
 +   \unnumbchapmacro{#1}\def\thischapter{\7f\thischapter\ 12040,67354
 +\outer\def\contents{\7f\contents\ 12049,67713
 +\outer\def\summarycontents{\7f\summarycontents\ 12057,67857
 +      \def\secentry ##1##2##3##4{\7f\secentry\ 12067,68228
 +      \def\unnumbsecentry ##1##2{\7f\unnumbsecentry\ 12068,68263
 +      \def\subsecentry ##1##2##3##4##5{\7f\subsecentry\ 12069,68298
 +      \def\unnumbsubsecentry ##1##2{\7f\unnumbsubsecentry\ 12070,68339
 +      \def\subsubsecentry ##1##2##3##4##5##6{\7f\subsubsecentry\ 12071,68377
 +      \def\unnumbsubsubsecentry ##1##2{\7f\unnumbsubsubsecentry\ 12072,68424
 +\def\chapentry#1#2#3{\7f\chapentry\ 12085,68858
 +\def\shortchapentry#1#2#3{\7f\shortchapentry\ 12088,68975
 +    {#2\labelspace #1}\7fspace\ 12091,69085
 +\def\unnumbchapentry#1#2{\7f\unnumbchapentry\ 12094,69139
 +\def\shortunnumberedentry#1#2{\7f\shortunnumberedentry\ 12095,69186
 +\def\secentry#1#2#3#4{\7f\secentry\ 12102,69350
 +\def\unnumbsecentry#1#2{\7f\unnumbsecentry\ 12103,69409
 +\def\subsecentry#1#2#3#4#5{\7f\subsecentry\ 12106,69470
 +\def\unnumbsubsecentry#1#2{\7f\unnumbsubsecentry\ 12107,69540
 +\def\subsubsecentry#1#2#3#4#5#6{\7f\subsubsecentry\ 12110,69614
 +  \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}\7fspace\ 12111,69648
 +\def\unnumbsubsubsecentry#1#2{\7f\unnumbsubsubsecentry\ 12112,69699
 +\def\dochapentry#1#2{\7f\dochapentry\ 12123,70073
 +\def\dosecentry#1#2{\7f\dosecentry\ 12138,70678
 +\def\dosubsecentry#1#2{\7f\dosubsecentry\ 12145,70856
 +\def\dosubsubsecentry#1#2{\7f\dosubsubsecentry\ 12152,71041
 +\def\labelspace{\7f\labelspace\ 12160,71292
 +\def\dopageno#1{\7f\dopageno\ 12162,71327
 +\def\doshortpageno#1{\7f\doshortpageno\ 12163,71353
 +\def\chapentryfonts{\7f\chapentryfonts\ 12165,71385
 +\def\secentryfonts{\7f\secentryfonts\ 12166,71420
 +\def\point{\7f\point\ 12192,72379
 +\def\result{\7f\result\ 12194,72400
 +\def\expansion{\7f\expansion\ 12195,72473
 +\def\print{\7f\print\ 12196,72544
 +\def\equiv{\7f\equiv\ 12198,72611
 +\def\error{\7f\error\ 12218,73384
 +\def\tex{\7f\tex\ 12224,73613
 +\def\@{\7f\@\ 12242,73996
 +\gdef\sepspaces{\def {\ }}}\7f\\ 12265,74728
 +\def\aboveenvbreak{\7f\aboveenvbreak\ 12268,74810
 +\def\afterenvbreak{\7f\afterenvbreak\ 12272,74976
 +\def\ctl{\7f\ctl\ 12286,75487
 +\def\ctr{\7f\ctr\ 12287,75559
 +\def\cbl{\7f\cbl\ 12288,75598
 +\def\cbr{\7f\cbr\ 12289,75638
 +\def\carttop{\7f\carttop\ 12290,75677
 +\def\cartbot{\7f\cartbot\ 12293,75785
 +\long\def\cartouche{\7f\cartouche\ 12299,75925
 +\def\Ecartouche{\7f\Ecartouche\ 12326,76713
 +\def\lisp{\7f\lisp\ 12338,76848
 +\def\Elisp{\7f\Elisp\ 12348,77195
 +\def\next##1{\7f\next\ 12360,77521
 +\def\Eexample{\7f\Eexample\ 12364,77563
 +\def\Esmallexample{\7f\Esmallexample\ 12367,77610
 +\def\smalllispx{\7f\smalllispx\ 12373,77788
 +\def\Esmalllisp{\7f\Esmalllisp\ 12383,78142
 +\obeyspaces \obeylines \ninett \indexfonts \rawbackslash\7ffonts\ 12396,78498
 +\def\next##1{\7f\next\ 12397,78555
 +\def\display{\7f\display\ 12401,78635
 +\def\Edisplay{\7f\Edisplay\ 12410,78954
 +\def\next##1{\7f\next\ 12422,79265
 +\def\format{\7f\format\ 12426,79368
 +\def\Eformat{\7f\Eformat\ 12434,79664
 +\def\next##1{\7f\next\ 12437,79753
 +\def\flushleft{\7f\flushleft\ 12441,79805
 +\def\Eflushleft{\7f\Eflushleft\ 12451,80176
 +\def\next##1{\7f\next\ 12454,80269
 +\def\flushright{\7f\flushright\ 12456,80291
 +\def\Eflushright{\7f\Eflushright\ 12466,80663
 +\def\next##1{\7f\next\ 12470,80794
 +\def\quotation{\7f\quotation\ 12474,80852
 +\def\Equotation{\7f\Equotation\ 12480,81044
 +\def\setdeffont #1 {\7f\setdeffont\ 12493,81442
 +\newskip\defbodyindent \defbodyindent=.4in\7fbodyindent\ 12495,81488
 +\newskip\defargsindent \defargsindent=50pt\7fargsindent\ 12496,81531
 +\newskip\deftypemargin \deftypemargin=12pt\7ftypemargin\ 12497,81574
 +\newskip\deflastargmargin \deflastargmargin=18pt\7flastargmargin\ 12498,81617
 +\def\activeparens{\7f\activeparens\ 12503,81815
 +\def\opnr{\7f\opnr\ 12529,83027
 +\def\lbrb{\7f\lbrb\ 12530,83092
 +\def\defname #1#2{\7f\defname\ 12536,83293
 +\advance\dimen2 by -\defbodyindent\7fbodyindent\ 12540,83411
 +\advance\dimen3 by -\defbodyindent\7fbodyindent\ 12542,83465
 +\setbox0=\hbox{\hskip \deflastargmargin{\7flastargmargin\ 12544,83519
 +\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations\7fargsindent\ 12546,83661
 +\parshape 2 0in \dimen0 \defargsindent \dimen1     %\7fargsindent\ 12547,83736
 +\rlap{\rightline{{\rm #2}\hskip \deftypemargin}\7ftypemargin\ 12554,84105
 +\advance\leftskip by -\defbodyindent\7fbodyindent\ 12557,84239
 +\exdentamount=\defbodyindent\7fbodyindent\ 12558,84276
 +\def\defparsebody #1#2#3{\7f\defparsebody\ 12568,84635
 +\def#1{\7f2572,84819
 +\def#2{\7f2573,84855
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12575,84927
 +\exdentamount=\defbodyindent\7fbodyindent\ 12576,85001
 +\def\defmethparsebody #1#2#3#4 {\7f\defmethparsebody\ 12581,85105
 +\def#1{\7f2585,85266
 +\def#2##1 {\7f2586,85302
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12588,85385
 +\exdentamount=\defbodyindent\7fbodyindent\ 12589,85459
 +\def\defopparsebody #1#2#3#4#5 {\7f\defopparsebody\ 12592,85544
 +\def#1{\7f2596,85705
 +\def#2##1 ##2 {\7f2597,85741
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12600,85841
 +\exdentamount=\defbodyindent\7fbodyindent\ 12601,85915
 +\def\defvarparsebody #1#2#3{\7f\defvarparsebody\ 12608,86186
 +\def#1{\7f2612,86373
 +\def#2{\7f2613,86409
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12615,86468
 +\exdentamount=\defbodyindent\7fbodyindent\ 12616,86542
 +\def\defvrparsebody #1#2#3#4 {\7f\defvrparsebody\ 12621,86633
 +\def#1{\7f2625,86792
 +\def#2##1 {\7f2626,86828
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12628,86898
 +\exdentamount=\defbodyindent\7fbodyindent\ 12629,86972
 +\def\defopvarparsebody #1#2#3#4#5 {\7f\defopvarparsebody\ 12632,87044
 +\def#1{\7f2636,87208
 +\def#2##1 ##2 {\7f2637,87244
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12640,87331
 +\exdentamount=\defbodyindent\7fbodyindent\ 12641,87405
 +\def\defunargs #1{\7f\defunargs\ 12664,88165
 +\def\deftypefunargs #1{\7f\deftypefunargs\ 12676,88547
 +\def\deffn{\7f\deffn\ 12690,88929
 +\def\deffnheader #1#2#3{\7f\deffnheader\ 12692,88986
 +\begingroup\defname {\7fname\ 12693,89034
 +\def\defun{\7f\defun\ 12699,89179
 +\def\defunheader #1#2{\7f\defunheader\ 12701,89232
 +\begingroup\defname {\7fname\ 12702,89307
 +\defunargs {\7funargs\ 12703,89343
 +\def\deftypefun{\7f\deftypefun\ 12709,89491
 +\def\deftypefunheader #1#2{\7f\deftypefunheader\ 12712,89613
 +\def\deftypefunheaderx #1#2 #3\relax{\7f\deftypefunheaderx\ 12714,89722
 +\begingroup\defname {\7fname\ 12716,89814
 +\deftypefunargs {\7ftypefunargs\ 12717,89860
 +\def\deftypefn{\7f\deftypefn\ 12723,90031
 +\def\deftypefnheader #1#2#3{\7f\deftypefnheader\ 12726,90180
 +\def\deftypefnheaderx #1#2#3 #4\relax{\7f\deftypefnheaderx\ 12728,90316
 +\begingroup\defname {\7fname\ 12730,90409
 +\deftypefunargs {\7ftypefunargs\ 12731,90449
 +\def\defmac{\7f\defmac\ 12737,90570
 +\def\defmacheader #1#2{\7f\defmacheader\ 12739,90627
 +\begingroup\defname {\7fname\ 12740,90703
 +\defunargs {\7funargs\ 12741,90736
 +\def\defspec{\7f\defspec\ 12747,90860
 +\def\defspecheader #1#2{\7f\defspecheader\ 12749,90921
 +\begingroup\defname {\7fname\ 12750,90998
 +\defunargs {\7funargs\ 12751,91038
 +\def\deffnx #1 {\7f\deffnx\ 12758,91233
 +\def\defunx #1 {\7f\defunx\ 12759,91290
 +\def\defmacx #1 {\7f\defmacx\ 12760,91347
 +\def\defspecx #1 {\7f\defspecx\ 12761,91406
 +\def\deftypefnx #1 {\7f\deftypefnx\ 12762,91467
 +\def\deftypeunx #1 {\7f\deftypeunx\ 12763,91532
 +\def\defop #1 {\7f\defop\ 12769,91678
 +\defopparsebody\Edefop\defopx\defopheader\defoptype}\7fopparsebody\Edefop\defopx\defopheader\defoptype\ 12770,91713
 +\def\defopheader #1#2#3{\7f\defopheader\ 12772,91767
 +\begingroup\defname {\7fname\ 12774,91856
 +\defunargs {\7funargs\ 12775,91902
 +\def\defmethod{\7f\defmethod\ 12780,91963
 +\def\defmethodheader #1#2#3{\7f\defmethodheader\ 12782,92036
 +\begingroup\defname {\7fname\ 12784,92124
 +\defunargs {\7funargs\ 12785,92164
 +\def\defcv #1 {\7f\defcv\ 12790,92238
 +\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}\7fopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype\ 12791,92273
 +\def\defcvarheader #1#2#3{\7f\defcvarheader\ 12793,92332
 +\begingroup\defname {\7fname\ 12795,92418
 +\defvarargs {\7fvarargs\ 12796,92464
 +\def\defivar{\7f\defivar\ 12801,92537
 +\def\defivarheader #1#2#3{\7f\defivarheader\ 12803,92600
 +\begingroup\defname {\7fname\ 12805,92686
 +\defvarargs {\7fvarargs\ 12806,92737
 +\def\defopx #1 {\7f\defopx\ 12812,92886
 +\def\defmethodx #1 {\7f\defmethodx\ 12813,92943
 +\def\defcvx #1 {\7f\defcvx\ 12814,93008
 +\def\defivarx #1 {\7f\defivarx\ 12815,93065
 +\def\defvarargs #1{\7f\defvarargs\ 12822,93336
 +\def\defvr{\7f\defvr\ 12828,93480
 +\def\defvrheader #1#2#3{\7f\defvrheader\ 12830,93535
 +\begingroup\defname {\7fname\ 12831,93583
 +\def\defvar{\7f\defvar\ 12835,93668
 +\def\defvarheader #1#2{\7f\defvarheader\ 12837,93728
 +\begingroup\defname {\7fname\ 12838,93799
 +\defvarargs {\7fvarargs\ 12839,93835
 +\def\defopt{\7f\defopt\ 12844,93901
 +\def\defoptheader #1#2{\7f\defoptheader\ 12846,93961
 +\begingroup\defname {\7fname\ 12847,94032
 +\defvarargs {\7fvarargs\ 12848,94071
 +\def\deftypevar{\7f\deftypevar\ 12853,94128
 +\def\deftypevarheader #1#2{\7f\deftypevarheader\ 12856,94244
 +\begingroup\defname {\7fname\ 12858,94327
 +\def\deftypevr{\7f\deftypevr\ 12865,94501
 +\def\deftypevrheader #1#2#3{\7f\deftypevrheader\ 12867,94572
 +\begingroup\defname {\7fname\ 12868,94624
 +\def\defvrx #1 {\7f\defvrx\ 12876,94861
 +\def\defvarx #1 {\7f\defvarx\ 12877,94918
 +\def\defoptx #1 {\7f\defoptx\ 12878,94977
 +\def\deftypevarx #1 {\7f\deftypevarx\ 12879,95036
 +\def\deftypevrx #1 {\7f\deftypevrx\ 12880,95103
 +\def\deftpargs #1{\7f\deftpargs\ 12885,95252
 +\def\deftp{\7f\deftp\ 12889,95332
 +\def\deftpheader #1#2#3{\7f\deftpheader\ 12891,95387
 +\begingroup\defname {\7fname\ 12892,95435
 +\def\deftpx #1 {\7f\deftpx\ 12897,95594
 +\def\setref#1{\7f\setref\ 12908,95915
 +\def\unnumbsetref#1{\7f\unnumbsetref\ 12913,96029
 +\def\appendixsetref#1{\7f\appendixsetref\ 12918,96136
 +\def\pxref#1{\7f\pxref\ 12929,96547
 +\def\xref#1{\7f\xref\ 12930,96583
 +\def\ref#1{\7f\ref\ 12931,96618
 +\def\xrefX[#1,#2,#3,#4,#5,#6]{\7f\xrefX[\ 12932,96648
 +\def\printedmanual{\7f\printedmanual\ 12933,96691
 +\def\printednodename{\7f\printednodename\ 12934,96729
 +\def\printednodename{\7f\printednodename\ 12939,96854
 +section ``\printednodename'' in \cite{\printedmanual}\7f\printedmanual\ 12954,97487
 +\refx{\7fx\ 12957,97565
 +\def\dosetq #1#2{\7f\dosetq\ 12965,97785
 +\def\internalsetq #1#2{\7f\internalsetq\ 12973,98043
 +\def\Ypagenumber{\7f\Ypagenumber\ 12977,98144
 +\def\Ytitle{\7f\Ytitle\ 12979,98170
 +\def\Ynothing{\7f\Ynothing\ 12981,98197
 +\def\Ysectionnumberandtype{\7f\Ysectionnumberandtype\ 12983,98214
 +\def\Yappendixletterandtype{\7f\Yappendixletterandtype\ 12992,98530
 +\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{\7fno\ 12993,98560
 +\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %\7fno.\the\secno\ 12994,98615
 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %\7fno.\the\secno.\the\subsecno\ 12996,98719
 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %\7fno.\the\secno.\the\subsecno.\the\subsubsecno\ 12998,98790
 +  \def\linenumber{\7f\linenumber\ 13009,99129
 +\def\refx#1#2{\7f\refx\ 13015,99313
 +\def\xrdef #1#2{\7f\xrdef\ 13037,99939
 +\def\readauxfile{\7f\readauxfile\ 13040,100024
 +\def\supereject{\7f\supereject\ 13110,101805
 +\footstrut\parindent=\defaultparindent\hang\textindent{\7faultparindent\hang\textindent\ 13131,102490
 +\def\openindices{\7f\openindices\ 13139,102676
 +\newdimen\defaultparindent \defaultparindent = 15pt\7faultparindent\ 13151,102901
 +\parindent = \defaultparindent\7faultparindent\ 13152,102953
 +\def\smallbook{\7f\smallbook\ 13175,103677
 +\global\def\Esmallexample{\7f\Esmallexample\ 13192,104104
 +\def\afourpaper{\7f\afourpaper\ 13196,104195
 +\def\finalout{\7f\finalout\ 13224,105003
 +\def\normaldoublequote{\7f\normaldoublequote\ 13235,105264
 +\def\normaltilde{\7f\normaltilde\ 13236,105290
 +\def\normalcaret{\7f\normalcaret\ 13237,105310
 +\def\normalunderscore{\7f\normalunderscore\ 13238,105330
 +\def\normalverticalbar{\7f\normalverticalbar\ 13239,105355
 +\def\normalless{\7f\normalless\ 13240,105381
 +\def\normalgreater{\7f\normalgreater\ 13241,105400
 +\def\normalplus{\7f\normalplus\ 13242,105422
 +\def\ifusingtt#1#2{\7f\ifusingtt\ 13253,105914
 +\def\activedoublequote{\7f\activedoublequote\ 13261,106242
 +\def~{\7f~\ 13264,106328
 +\def^{\7f^\ 13267,106389
 +\def_{\7f_\ 13270,106428
 +\def\_{\7f\_\ 13272,106502
 +\def\lvvmode{\7f\lvvmode\ 13279,106839
 +\def|{\7f|\ 13282,106889
 +\def<{\7f<\ 13285,106952
 +\def>{\7f>\ 13288,107009
 +\def+{\7f+\ 13290,107047
 +\def\turnoffactive{\7f\turnoffactive\ 13296,107208
 +\global\def={\7f=\ 13307,107494
 +\def\normalbackslash{\7f\normalbackslash\ 13321,107876
 +\f
 +c-src/c.c,76
 +T f(\7f1,0
 +}T i;\7f2,14
 +void bar(\7f5,69
 +int foobar(\7f6,94
 +interface_locate(\7f9,131
 +\f
 +c.c,1963
 +my_printf \7f135,
 +void fatala \7f138,
 +max \7f141,
 +struct bar \7f143,
 +  char z;\7f144,
 +  struct foo f;\7f145,
 +__attribute__ ((always_inline)) max \7f147,
 +struct foo\7f150,
 +  char a;\7f152,
 +  int x[\7fx\ 1153,
 +char stack[\7fstack\ 1155,
 +struct S \7f156,
 +struct S { short f[\7ff\ 1156,
 +  int *__ip;\7f__ip\ 1159,
 +  union wait *__up;\7f__up\ 1160,
 +} wait_status_ptr_t \7f161,
 +Some_Class  A \7f162,
 +typedef T1 T3 \7f163,
 +T3 z \7f164,
 +typedef int more_aligned_int \7f165,
 +struct S  __attribute__ ((vector_size (16))) foo;\7f166,
 +int foo \7f167,
 +char *__attribute__((aligned(8))) *f;\7ff\ 1168,
 +int i \7f169,
 +extern void foobar \7f170,
 +typedef struct cacheLRUEntry_s\7f172,
 +  U16 next;\7f174,
 +  U16 prev;\7f175,
 +__attribute__ ((packed)) cacheLRUEntry_t;\7f177,
 +struct foo \7f178,
 +  int x;\7f179,
 +  char a,\7f180,
 +  char a, b,\7f180,
 +  char a, b, c,\7f180,
 +  char a, b, c, d;\7f180,
 +     f1 \7f183,
 +void f2 \7f184,
 +int x \7f188,
 +struct foo \7f189,
 +struct foo { int x[\7fx\ 1189,
 +short array[\7farray\ 1190,
 +int f\7f193,
 +DEAFUN \7f196,
 +XDEFUN \7f203,
 +DEFUN ("x-get-selection-internal", Fx_get_selection_internal,\7fx-get-selection-internal\ 1206,
 +       Fx_get_selection_internal,\7fx-get-selection-internal\ 1212,
 +      Fy_get_selection_internal,\7fy-get-selection-internal\ 1216,
 +defun_func1(\7f218,
 +DEFUN_func2(\7f220,
 +typedef int bool;\7f222,
 +bool funcboo \7f223,
 +struct my_struct \7f226,
 +typedef struct my_struct my_typedef;\7f228,
 +int bla \7f229,
 +a(\7f234,
 +int func1\7f237,
 +static struct cca_control init_control \7f239,
 +static tpcmd rbtp \7f240,
 +static byte ring1 \7f241,
 +static byte ring2 \7f242,
 +request request \7f243,
 +int func2 \7f246,
 +  aaa;\7f249,
 +  bbb;\7f251,
 +struct sss1 \7f252,
 +struct sss2\7f253,
 +  struct ss3\7f255,
 +struct a b;\7f259,
 +struct aa *b;\7fb\ 1260,
 +  **b;\7fb\ 1262,
 +caccacacca \7f263,
 +a \7f267,
 +  typedef struct aa \7f269,
 +  typedef struct aa {} aaa;\7f269,
 +static void inita \7f271,
 +node *lasta \7flasta\ 1272,
 +b \7f273,
 +  typedef  int bb;\7f275,
 +static void initb \7f277,
 +node *lastb \7flastb\ 1278,
 +typedef enum { REG_ENOSYS \7f279,
 +typedef enum { REG_ENOSYS = -1, aa \7f279,
 +typedef enum { REG_ENOSYS = -1, aa } reg_errcode_t;\7f279,
 +\f
 +c-src/a/b/b.c,18
 +#define this \7f1,0
 +\f
 +../c/c.web,20
 +#define questo \7f34,
 +\f
 +y-src/parse.y,738
 +#define obstack_chunk_alloc \7f46,1116
 +#define obstack_chunk_free \7f47,1154
 +VOIDSTAR parse_hash;\7f63,1405
 +unsigned char fnin[\7ffnin\ 167,1524
 +#define YYSTYPE \7f71,1622
 +typedef struct node *YYSTYPE;\7fYYSTYPE\ 172,1653
 +YYSTYPE parse_return;\7f73,1683
 +char *instr;\7finstr\ 180,1795
 +int parse_error \7f81,1808
 +line:\7fline\ 186,1867
 +exp:\7fexp\ 194,1980
 +exp_list:\7fexp_list\ 1262,5647
 +range_exp:\7frange_exp\ 1268,5745
 +range_exp_list:\7frange_exp_list\ 1272,5775
 +cell:\7fcell\ 1278,5893
 +yyerror FUN1(\7f285,5940
 +make_list FUN2(\7f292,6020
 +#define ERROR \7f303,6220
 +yylex FUN0(\7f314,6397
 +parse_cell_or_range FUN2(\7f586,11763
 +#define CK_ABS_R(\7f670,13205
 +#define CK_REL_R(\7f674,13284
 +#define CK_ABS_C(\7f679,13413
 +#define CK_REL_C(\7f683,13492
 +#define MAYBEREL(\7f688,13621
 +str_to_col FUN1(\7f846,16822
 +\f
 +y-src/parse.c,520
 +#define YYBISON \7f4,64
 +# define      NE      \7f6,114
 +# define      LE      \7f7,130
 +# define      GE      \7f8,146
 +# define      NEG     \7f9,162
 +# define      L_CELL  \7f10,179
 +# define      L_RANGE \7f11,199
 +# define      L_VAR   \7f12,220
 +# define      L_CONST \7f13,239
 +# define      L_FN0   \7f14,260
 +# define      L_FN1   \7f15,279
 +# define      L_FN2   \7f16,298
 +# define      L_FN3   \7f17,317
 +# define      L_FN4   \7f18,336
 +# define      L_FNN   \7f19,355
 +# define      L_FN1R  \7f20,374
 +# define      L_FN2R  \7f21,394
 +# define      L_FN3R  \7f22,414
 +# define      L_FN4R  \7f23,434
 +# define      L_FNNR  \7f24,454
 +# define      L_LE    \7f25,474
 +# define      L_NE    \7f26,492
 +# define      L_GE    \7f27,510
 +\f
 +parse.y,1181
 +#define obstack_chunk_alloc \7f46,
 +#define obstack_chunk_free \7f47,
 +VOIDSTAR parse_hash;\7f63,
 +unsigned char fnin[\7ffnin\ 167,
 +#define YYSTYPE \7f71,
 +typedef struct node *YYSTYPE;\7fYYSTYPE\ 172,
 +YYSTYPE parse_return;\7f73,
 +char *instr;\7finstr\ 180,
 +int parse_error \7f81,
 +#define YYSTYPE \7f85,
 +# define YYDEBUG \7f88,
 +#define       YYFINAL \7f93,
 +#define       YYFLAG  \7f94,
 +#define       YYNTBASE        \7f95,
 +#define YYTRANSLATE(\7f98,
 +static const char yytranslate[\7fyytranslate\ 1101,
 +static const short yyprhs[\7fyyprhs\ 1134,
 +static const short yyrhs[\7fyyrhs\ 1142,
 +static const short yyrline[\7fyyrline\ 1171,
 +static const char *const yytname[\7fyytname\ 1185,
 +static const short yyr1[\7fyyr1\ 1197,
 +static const short yyr2[\7fyyr2\ 1207,
 +static const short yydefact[\7fyydefact\ 1219,
 +static const short yydefgoto[\7fyydefgoto\ 1237,
 +static const short yypact[\7fyypact\ 1242,
 +static const short yypgoto[\7fyypgoto\ 1260,
 +#define       YYLAST  \7f266,
 +static const short yytable[\7fyytable\ 1269,
 +static const short yycheck[\7fyycheck\ 1330,
 +yyerror FUN1(\7f285,
 +make_list FUN2(\7f292,
 +#define ERROR \7f303,
 +yylex FUN0(\7f314,
 +parse_cell_or_range FUN2(\7f586,
 +#define CK_ABS_R(\7f670,
 +#define CK_REL_R(\7f674,
 +#define CK_ABS_C(\7f679,
 +#define CK_REL_C(\7f683,
 +#define MAYBEREL(\7f688,
 +str_to_col FUN1(\7f846,
 +\f
 +/usr/share/bison/bison.simple,2168
 +# define YYSTD(\7f40,
 +# define YYSTD(\7f42,
 +#  define YYSTACK_ALLOC \7f50,
 +#  define YYSIZE_T \7f51,
 +#    define YYSTACK_ALLOC \7f55,
 +#    define YYSIZE_T \7f56,
 +#     define YYSTACK_ALLOC \7f59,
 +#  define YYSTACK_FREE(\7f67,
 +#   define YYSIZE_T \7f71,
 +#    define YYSIZE_T \7f75,
 +#  define YYSTACK_ALLOC \7f78,
 +#  define YYSTACK_FREE \7f79,
 +union yyalloc\7f83,
 +  short yyss;\7f85,
 +  YYSTYPE yyvs;\7f86,
 +  YYLTYPE yyls;\7f88,
 +# define YYSTACK_GAP_MAX \7f93,
 +#  define YYSTACK_BYTES(\7f98,
 +#  define YYSTACK_BYTES(\7f102,
 +# define YYSTACK_RELOCATE(\7f112,
 +# define YYSIZE_T \7f128,
 +# define YYSIZE_T \7f131,
 +#  define YYSIZE_T \7f136,
 +#   define YYSIZE_T \7f140,
 +# define YYSIZE_T \7f145,
 +#define yyerrok       \7f148,
 +#define yyclearin     \7f149,
 +#define YYEMPTY       \7f150,
 +#define YYEOF \7f151,
 +#define YYACCEPT      \7f152,
 +#define YYABORT \7f153,
 +#define YYERROR       \7f154,
 +#define YYFAIL        \7f158,
 +#define YYRECOVERING(\7f159,
 +#define YYBACKUP(\7f160,
 +#define YYTERROR      \7f177,
 +#define YYERRCODE     \7f178,
 +# define YYLLOC_DEFAULT(\7f189,
 +#   define YYLEX      \7f200,
 +#   define YYLEX      \7f202,
 +#   define YYLEX      \7f206,
 +#   define YYLEX      \7f208,
 +# define YYLEX        \7f212,
 +#  define YYFPRINTF \7f225,
 +# define YYDPRINTF(\7f228,
 +int yydebug;\7f237,
 +# define YYDPRINTF(\7f239,
 +# define YYINITDEPTH \7f244,
 +# undef YYMAXDEPTH\7f255,
 +# define YYMAXDEPTH \7f259,
 +#  define yymemcpy \7f264,
 +yymemcpy \7f271,
 +#   define yystrlen \7f293,
 +yystrlen \7f298,
 +#   define yystpcpy \7f316,
 +yystpcpy \7f322,
 +#  define YYPARSE_PARAM_ARG \7f351,
 +#  define YYPARSE_PARAM_DECL\7f352,
 +#  define YYPARSE_PARAM_ARG \7f354,
 +#  define YYPARSE_PARAM_DECL \7f355,
 +# define YYPARSE_PARAM_ARG\7f358,
 +# define YYPARSE_PARAM_DECL\7f359,
 +#define YY_DECL_NON_LSP_VARIABLES     \7f374,
 +# define YY_DECL_VARIABLES    \7f385,
 +# define YY_DECL_VARIABLES    \7f391,
 +yyparse \7f403,
 +# define YYPOPSTACK \7f445,
 +# define YYPOPSTACK \7f447,
 +# undef YYSTACK_RELOCATE\7f548,
 +  *++yyvsp \7fyyvsp\ 1746,
 +  *++yylsp \7fyylsp\ 1748,
 +  yyn \7f755,
 +  yystate \7f757,
 +    yystate \7f761,
 +  goto yynewstate;\7f763,
 +  goto yyerrlab1;\7f823,
 +  yyerrstatus \7f846,
 +  goto yyerrhandle;\7f848,
 +  yyn \7f861,
 +  yystate \7f875,
 +  yyn \7f895,
 +  yyn \7f903,
 +  *++yyvsp \7fyyvsp\ 1919,
 +  *++yylsp \7fyylsp\ 1921,
 +  yystate \7f924,
 +  goto yynewstate;\7f925,
 +  yyresult \7f932,
 +  goto yyreturn;\7f933,
 +  yyresult \7f939,
 +  goto yyreturn;\7f940,
 +  yyresult \7f947,
 +\f
 +y-src/atest.y,9
 +exp   \7f2,3
 +\f
 +y-src/cccp.c,303
 +#define YYBISON \7f4,63
 +# define      INT     \7f6,113
 +# define      CHAR    \7f7,130
 +# define      NAME    \7f8,148
 +# define      ERROR   \7f9,166
 +# define      OR      \7f10,185
 +# define      AND     \7f11,201
 +# define      EQUAL   \7f12,218
 +# define      NOTEQUAL        \7f13,237
 +# define      LEQ     \7f14,259
 +# define      GEQ     \7f15,276
 +# define      LSH     \7f16,293
 +# define      RSH     \7f17,310
 +# define      UNARY   \7f18,327
 +\f
 +cccp.y,2106
 +typedef unsigned char U_CHAR;\7f38,
 +struct arglist \7f41,
 +  struct arglist *next;\7fnext\ 142,
 +  U_CHAR *name;\7fname\ 143,
 +  int length;\7f44,
 +  int argno;\7f45,
 +#define NULL \7f51,
 +#define GENERIC_PTR \7f56,
 +#define GENERIC_PTR \7f58,
 +#define NULL_PTR \7f63,
 +int expression_value;\7f68,
 +static jmp_buf parse_return_error;\7f70,
 +static int keyword_parsing \7f73,
 +#define CHAR_TYPE_SIZE \7f87,
 +#define INT_TYPE_SIZE \7f91,
 +#define LONG_TYPE_SIZE \7f95,
 +#define WCHAR_TYPE_SIZE \7f99,
 +#define possible_sum_sign(\7f104,
 +  struct constant \7f113,
 +  struct constant {long value;\7f113,
 +  struct constant {long value; int unsignedp;\7f113,
 +  struct constant {long value; int unsignedp;} integer;\7f113,
 +  struct name \7f114,
 +  struct name {U_CHAR *address;\7faddress\ 1114,
 +  struct name {U_CHAR *address; int length;\7f114,
 +  struct name {U_CHAR *address; int length;} name;\7f114,
 +  struct arglist *keywords;\7fkeywords\ 1115,
 +  int voidval;\7f116,
 +  char *sval;\7fsval\ 1117,
 +} yystype;\7f118,
 +# define YYSTYPE \7f119,
 +# define YYDEBUG \7f122,
 +#define       YYFINAL \7f127,
 +#define       YYFLAG  \7f128,
 +#define       YYNTBASE        \7f129,
 +#define YYTRANSLATE(\7f132,
 +static const char yytranslate[\7fyytranslate\ 1135,
 +static const short yyprhs[\7fyyprhs\ 1167,
 +static const short yyrhs[\7fyyrhs\ 1174,
 +static const short yyrline[\7fyyrline\ 1195,
 +static const char *const yytname[\7fyytname\ 1208,
 +static const short yyr1[\7fyyr1\ 1219,
 +static const short yyr2[\7fyyr2\ 1228,
 +static const short yydefact[\7fyydefact\ 1239,
 +static const short yydefgoto[\7fyydefgoto\ 1251,
 +static const short yypact[\7fyypact\ 1256,
 +static const short yypgoto[\7fyypgoto\ 1268,
 +#define       YYLAST  \7f274,
 +static const short yytable[\7fyytable\ 1277,
 +static const short yycheck[\7fyycheck\ 1301,
 +static char *lexptr;\7flexptr\ 1332,
 +parse_number \7f341,
 +struct token \7f437,
 +  char *operator;\7foperator\ 1438,
 +  int token;\7f439,
 +static struct token tokentab2[\7ftokentab2\ 1442,
 +yylex \7f459,
 +parse_escape \7f740,
 +yyerror \7f836,
 +integer_overflow \7f844,
 +left_shift \7f851,
 +right_shift \7f873,
 +parse_c_expression \7f893,
 +main \7f923,
 +unsigned char is_idchar[\7fis_idchar\ 1948,
 +unsigned char is_idstart[\7fis_idstart\ 1950,
 +char is_hor_space[\7fis_hor_space\ 1953,
 +initialize_random_junk \7f958,
 +error \7f988,
 +warning \7f993,
 +lookup \7f999,
 +\f
 +/usr/share/bison/bison.simple,2168
 +# define YYSTD(\7f41,
 +# define YYSTD(\7f43,
 +#  define YYSTACK_ALLOC \7f51,
 +#  define YYSIZE_T \7f52,
 +#    define YYSTACK_ALLOC \7f56,
 +#    define YYSIZE_T \7f57,
 +#     define YYSTACK_ALLOC \7f60,
 +#  define YYSTACK_FREE(\7f68,
 +#   define YYSIZE_T \7f72,
 +#    define YYSIZE_T \7f76,
 +#  define YYSTACK_ALLOC \7f79,
 +#  define YYSTACK_FREE \7f80,
 +union yyalloc\7f84,
 +  short yyss;\7f86,
 +  YYSTYPE yyvs;\7f87,
 +  YYLTYPE yyls;\7f89,
 +# define YYSTACK_GAP_MAX \7f94,
 +#  define YYSTACK_BYTES(\7f99,
 +#  define YYSTACK_BYTES(\7f103,
 +# define YYSTACK_RELOCATE(\7f113,
 +# define YYSIZE_T \7f129,
 +# define YYSIZE_T \7f132,
 +#  define YYSIZE_T \7f137,
 +#   define YYSIZE_T \7f141,
 +# define YYSIZE_T \7f146,
 +#define yyerrok       \7f149,
 +#define yyclearin     \7f150,
 +#define YYEMPTY       \7f151,
 +#define YYEOF \7f152,
 +#define YYACCEPT      \7f153,
 +#define YYABORT \7f154,
 +#define YYERROR       \7f155,
 +#define YYFAIL        \7f159,
 +#define YYRECOVERING(\7f160,
 +#define YYBACKUP(\7f161,
 +#define YYTERROR      \7f178,
 +#define YYERRCODE     \7f179,
 +# define YYLLOC_DEFAULT(\7f190,
 +#   define YYLEX      \7f201,
 +#   define YYLEX      \7f203,
 +#   define YYLEX      \7f207,
 +#   define YYLEX      \7f209,
 +# define YYLEX        \7f213,
 +#  define YYFPRINTF \7f226,
 +# define YYDPRINTF(\7f229,
 +int yydebug;\7f238,
 +# define YYDPRINTF(\7f240,
 +# define YYINITDEPTH \7f245,
 +# undef YYMAXDEPTH\7f256,
 +# define YYMAXDEPTH \7f260,
 +#  define yymemcpy \7f265,
 +yymemcpy \7f272,
 +#   define yystrlen \7f294,
 +yystrlen \7f299,
 +#   define yystpcpy \7f317,
 +yystpcpy \7f323,
 +#  define YYPARSE_PARAM_ARG \7f351,
 +#  define YYPARSE_PARAM_DECL\7f352,
 +#  define YYPARSE_PARAM_ARG \7f354,
 +#  define YYPARSE_PARAM_DECL \7f355,
 +# define YYPARSE_PARAM_ARG\7f358,
 +# define YYPARSE_PARAM_DECL\7f359,
 +#define YY_DECL_NON_LSP_VARIABLES     \7f374,
 +# define YY_DECL_VARIABLES    \7f385,
 +# define YY_DECL_VARIABLES    \7f391,
 +yyparse \7f403,
 +# define YYPOPSTACK \7f445,
 +# define YYPOPSTACK \7f447,
 +# undef YYSTACK_RELOCATE\7f548,
 +  *++yyvsp \7fyyvsp\ 1746,
 +  *++yylsp \7fyylsp\ 1748,
 +  yyn \7f755,
 +  yystate \7f757,
 +    yystate \7f761,
 +  goto yynewstate;\7f763,
 +  goto yyerrlab1;\7f823,
 +  yyerrstatus \7f846,
 +  goto yyerrhandle;\7f848,
 +  yyn \7f861,
 +  yystate \7f875,
 +  yyn \7f895,
 +  yyn \7f903,
 +  *++yyvsp \7fyyvsp\ 1919,
 +  *++yylsp \7fyylsp\ 1921,
 +  yystate \7f924,
 +  goto yynewstate;\7f925,
 +  yyresult \7f932,
 +  goto yyreturn;\7f933,
 +  yyresult \7f939,
 +  goto yyreturn;\7f940,
 +  yyresult \7f947,
 +\f
 +y-src/cccp.y,1696
 +typedef unsigned char U_CHAR;\7f38,1201
 +struct arglist \7f41,1301
 +  struct arglist *next;\7fnext\ 142,1318
 +  U_CHAR *name;\7fname\ 143,1342
 +  int length;\7f44,1358
 +  int argno;\7f45,1372
 +#define NULL \7f51,1468
 +#define GENERIC_PTR \7f56,1578
 +#define GENERIC_PTR \7f58,1611
 +#define NULL_PTR \7f63,1670
 +int expression_value;\7f68,1743
 +static jmp_buf parse_return_error;\7f70,1766
 +static int keyword_parsing \7f73,1865
 +#define CHAR_TYPE_SIZE \7f87,2162
 +#define INT_TYPE_SIZE \7f91,2229
 +#define LONG_TYPE_SIZE \7f95,2296
 +#define WCHAR_TYPE_SIZE \7f99,2365
 +#define possible_sum_sign(\7f104,2556
 +  struct constant \7f112,2733
 +  struct constant {long value;\7f112,2733
 +  struct constant {long value; int unsignedp;\7f112,2733
 +  struct constant {long value; int unsignedp;} integer;\7f112,2733
 +  struct name \7f113,2789
 +  struct name {U_CHAR *address;\7faddress\ 1113,2789
 +  struct name {U_CHAR *address; int length;\7f113,2789
 +  struct name {U_CHAR *address; int length;} name;\7f113,2789
 +  struct arglist *keywords;\7fkeywords\ 1114,2840
 +  int voidval;\7f115,2868
 +  char *sval;\7fsval\ 1116,2883
 +start \7f143,3226
 +exp1  \7f148,3330
 +exp   \7f156,3505
 +exp   \7f185,4295
 +keywords \7f306,7835
 +static char *lexptr;\7flexptr\ 1332,8579
 +parse_number \7f341,8842
 +struct token \7f437,11038
 +  char *operator;\7foperator\ 1438,11053
 +  int token;\7f439,11071
 +static struct token tokentab2[\7ftokentab2\ 1442,11088
 +yylex \7f459,11367
 +parse_escape \7f740,17718
 +yyerror \7f836,19599
 +integer_overflow \7f844,19690
 +left_shift \7f851,19804
 +right_shift \7f873,20194
 +parse_c_expression \7f893,20732
 +main \7f923,21483
 +unsigned char is_idchar[\7fis_idchar\ 1948,21901
 +unsigned char is_idstart[\7fis_idstart\ 1950,21996
 +char is_hor_space[\7fis_hor_space\ 1953,22160
 +initialize_random_junk \7f958,22259
 +error \7f988,22915
 +warning \7f993,22963
 +lookup \7f999,23033
 +\f
 +tex-src/nonewline.tex,0
 +\f
 +php-src/sendmail.php,0
 +\f
 +c-src/fail.c,0
 +\f
 +a-src/empty.zz,0
index b8a3d9de6dbc0843c01a7736e2e2fe14038c7bcb,0000000000000000000000000000000000000000..12e2a6549cf28bd6e3a37bb93f9f2f5215c38ce0
mode 100644,000000..100644
--- /dev/null
@@@ -1,4475 -1,0 +1,4475 @@@
- perl-src/htlmify-cystic,1443
 +\f
 +ada-src/etags-test-for.ada,1969
 +   type LL_Task_Procedure_Access \7fLL_Task_Procedure_Access/t\ 11,0
 +   function Body_Required\7fBody_Required/f\ 13,78
 +   type Type_Specific_Data \7fType_Specific_Data/t\ 111,280
 +   function "abs"\7fabs/f\ 119,504
 +   type Barrier_Function_Pointer \7fBarrier_Function_Pointer/t\ 121,577
 +   function "="\7f=/f\ 127,722
 +   type usfreelock_ptr \7fusfreelock_ptr/t\ 130,803
 +   function p \7fp/f\ 133,891
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 137,1054
 +function p \7fp/f\ 139,1094
 +package Pkg1 \7fPkg1/s\ 144,1203
 +  type Private_T \7fPrivate_T/t\ 146,1220
 +  package Inner1 \7fInner1/s\ 148,1250
 +    procedure Private_T;\7fPrivate_T/p\ 149,1270
 +  package Inner2 \7fInner2/s\ 152,1310
 +    task Private_T;\7fPrivate_T/k\ 153,1330
 +  type Public_T \7fPublic_T/t\ 156,1365
 +  procedure Pkg1_Proc1;\7fPkg1_Proc1/p\ 162,1450
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 164,1475
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 166,1514
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 168,1553
 +  package Pkg1_Pkg1 \7fPkg1_Pkg1/s\ 171,1622
 +    procedure Pkg1_Pkg1_Proc1;\7fPkg1_Pkg1_Proc1/p\ 172,1645
 +  task type Task_Type \7fTask_Type/k\ 175,1694
 +  type Private_T \7fPrivate_T/t\ 182,1786
 +package body Pkg1 \7fPkg1/b\ 189,1882
 +  procedure Pkg1_Proc1 \7fPkg1_Proc1/p\ 191,1904
 +  package body Inner1 \7fInner1/b\ 196,1956
 +    procedure Private_T \7fPrivate_T/p\ 197,1981
 +  package body Inner2 \7fInner2/b\ 1103,2054
 +    task body Private_T \7fPrivate_T/b\ 1104,2079
 +  task body Task_Type \7fTask_Type/b\ 1112,2181
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 1126,2367
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 1132,2445
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 1134,2496
 +  package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1140,2596
 +package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1146,2663
 +  procedure Pkg1_Pkg1_Proc1 \7fPkg1_Pkg1_Proc1/p\ 1147,2689
 +function  Pkg1_Func1 \7fPkg1_Func1/f\ 1155,2778
 +package Truc \7fTruc/s\ 1162,2887
 +package Truc.Bidule \7fTruc.Bidule/s\ 1166,2929
 +  protected Bidule \7fBidule/t\ 1168,2953
 +  protected type Machin_T \7fMachin_T/t\ 1172,3007
 +package body Truc.Bidule \7fTruc.Bidule/b\ 1178,3087
 +  protected body Bidule \7fBidule/b\ 1179,3115
 +  protected Machin_T \7fMachin_T/t\ 1186,3207
 +\f
 +ada-src/2ataspri.adb,2190
 +package body System.Task_Primitives \7fSystem.Task_Primitives/b\ 164,2603
 +   package RTE \7fRTE/s\ 169,2712
 +   package TSL \7fTSL/s\ 170,2759
 +   function To_void_ptr \7fTo_void_ptr/f\ 186,3287
 +   function To_TCB_Ptr \7fTo_TCB_Ptr/f\ 189,3366
 +   function pthread_mutexattr_setprotocol\7fpthread_mutexattr_setprotocol/f\ 192,3444
 +   function pthread_mutexattr_setprio_ceiling\7fpthread_mutexattr_setprio_ceiling/f\ 199,3728
 +   procedure Abort_Wrapper\7fAbort_Wrapper/p\ 1115,4302
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 1122,4526
 +   procedure Initialize_LL_Tasks \7fInitialize_LL_Tasks/p\ 1131,4830
 +   function Self \7fSelf/f\ 1160,5586
 +   procedure Initialize_Lock\7fInitialize_Lock/p\ 1174,5958
 +   procedure Finalize_Lock \7fFinalize_Lock/p\ 1210,6927
 +   procedure Write_Lock \7fWrite_Lock/p\ 1226,7338
 +   procedure Read_Lock \7fRead_Lock/p\ 1239,7700
 +   procedure Unlock \7fUnlock/p\ 1246,7850
 +   procedure Initialize_Cond \7fInitialize_Cond/p\ 1258,8160
 +   procedure Finalize_Cond \7fFinalize_Cond/p\ 1286,8979
 +   procedure Cond_Wait \7fCond_Wait/p\ 1300,9303
 +   procedure Cond_Timed_Wait\7fCond_Timed_Wait/p\ 1312,9661
 +   procedure Cond_Signal \7fCond_Signal/p\ 1343,10510
 +   procedure Set_Priority\7fSet_Priority/p\ 1355,10836
 +   procedure Set_Own_Priority \7fSet_Own_Priority/p\ 1372,11243
 +   function Get_Priority \7fGet_Priority/f\ 1385,11598
 +   function Get_Own_Priority \7fGet_Own_Priority/f\ 1398,12023
 +   procedure Create_LL_Task\7fCreate_LL_Task/p\ 1412,12438
 +      function To_Start_Addr \7fTo_Start_Addr/f\ 1426,12873
 +   procedure Exit_LL_Task \7fExit_LL_Task/p\ 1491,14995
 +   procedure Abort_Task \7fAbort_Task/p\ 1500,15158
 +   procedure Test_Abort \7fTest_Abort/p\ 1518,15716
 +   procedure Install_Abort_Handler \7fInstall_Abort_Handler/p\ 1527,15878
 +   procedure Abort_Wrapper\7fAbort_Wrapper/p\ 1557,16939
 +      function Address_To_Call_State \7fAddress_To_Call_State/f\ 1562,17062
 +   procedure Install_Error_Handler \7fInstall_Error_Handler/p\ 1573,17351
 +   procedure LL_Assert \7fLL_Assert/p\ 1599,18146
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 1608,18299
 +   procedure Initialize_TAS_Cell \7fInitialize_TAS_Cell/p\ 1630,19010
 +   procedure Finalize_TAS_Cell \7fFinalize_TAS_Cell/p\ 1635,19129
 +   procedure Clear \7fClear/p\ 1640,19236
 +   procedure Test_And_Set \7fTest_And_Set/p\ 1645,19330
 +   function  Is_Set \7fIs_Set/f\ 1659,19676
 +\f
 +ada-src/2ataspri.ads,2313
 +package System.Task_Primitives \7fSystem.Task_Primitives/s\ 158,3169
 +   type LL_Task_Procedure_Access \7fLL_Task_Procedure_Access/t\ 162,3253
 +   type Pre_Call_State \7fPre_Call_State/t\ 164,3331
 +   type Task_Storage_Size \7fTask_Storage_Size/t\ 166,3378
 +   type Machine_Exceptions \7fMachine_Exceptions/t\ 168,3433
 +   type Error_Information \7fError_Information/t\ 170,3499
 +   type Lock \7fLock/t\ 172,3569
 +   type Condition_Variable \7fCondition_Variable/t\ 173,3594
 +   type Task_Control_Block \7fTask_Control_Block/t\ 181,3955
 +   type TCB_Ptr \7fTCB_Ptr/t\ 189,4241
 +   function Address_To_TCB_Ptr \7fAddress_To_TCB_Ptr/f\ 193,4333
 +   procedure Initialize_LL_Tasks \7fInitialize_LL_Tasks/p\ 196,4425
 +   function Self \7fSelf/f\ 1100,4602
 +   procedure Initialize_Lock \7fInitialize_Lock/p\ 1103,4707
 +   procedure Finalize_Lock \7fFinalize_Lock/p\ 1107,4879
 +   procedure Write_Lock \7fWrite_Lock/p\ 1111,5034
 +   procedure Read_Lock \7fRead_Lock/p\ 1118,5428
 +   procedure Unlock \7fUnlock/p\ 1128,5995
 +   procedure Initialize_Cond \7fInitialize_Cond/p\ 1135,6300
 +   procedure Finalize_Cond \7fFinalize_Cond/p\ 1138,6413
 +   procedure Cond_Wait \7fCond_Wait/p\ 1142,6591
 +   procedure Cond_Timed_Wait\7fCond_Timed_Wait/p\ 1155,7396
 +   procedure Cond_Signal \7fCond_Signal/p\ 1164,7812
 +   procedure Set_Priority \7fSet_Priority/p\ 1169,8040
 +   procedure Set_Own_Priority \7fSet_Own_Priority/p\ 1173,8200
 +   function Get_Priority \7fGet_Priority/f\ 1177,8348
 +   function Get_Own_Priority \7fGet_Own_Priority/f\ 1181,8504
 +   procedure Create_LL_Task\7fCreate_LL_Task/p\ 1185,8647
 +   procedure Exit_LL_Task;\7fExit_LL_Task/p\ 1198,9282
 +   procedure Abort_Task \7fAbort_Task/p\ 1203,9516
 +   procedure Test_Abort;\7fTest_Abort/p\ 1210,9878
 +   type Abort_Handler_Pointer \7fAbort_Handler_Pointer/t\ 1217,10233
 +   procedure Install_Abort_Handler \7fInstall_Abort_Handler/p\ 1219,10312
 +   procedure Install_Error_Handler \7fInstall_Error_Handler/p\ 1226,10741
 +   procedure LL_Assert \7fLL_Assert/p\ 1231,10983
 +   type Proc \7fProc/t\ 1238,11240
 +   type TAS_Cell \7fTAS_Cell/t\ 1242,11328
 +   procedure Initialize_TAS_Cell \7fInitialize_TAS_Cell/p\ 1249,11670
 +   procedure Finalize_TAS_Cell \7fFinalize_TAS_Cell/p\ 1255,11941
 +   procedure Clear \7fClear/p\ 1260,12157
 +   procedure Test_And_Set \7fTest_And_Set/p\ 1267,12462
 +   function  Is_Set \7fIs_Set/f\ 1275,12877
 +   type Lock \7fLock/t\ 1283,13155
 +   type Condition_Variable \7fCondition_Variable/t\ 1288,13267
 +   type TAS_Cell \7fTAS_Cell/t\ 1293,13389
 +\f
 +ada-src/waroquiers.ada,1503
 +package Pkg1 \7fPkg1/s\ 13,89
 +  type Private_T \7fPrivate_T/t\ 15,106
 +  package Inner1 \7fInner1/s\ 17,136
 +    procedure Private_T;\7fPrivate_T/p\ 18,156
 +  package Inner2 \7fInner2/s\ 111,196
 +    task Private_T;\7fPrivate_T/k\ 112,216
 +  type Public_T \7fPublic_T/t\ 115,251
 +  procedure Pkg1_Proc1;\7fPkg1_Proc1/p\ 121,336
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 123,361
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 125,400
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 127,439
 +  package Pkg1_Pkg1 \7fPkg1_Pkg1/s\ 130,508
 +    procedure Pkg1_Pkg1_Proc1;\7fPkg1_Pkg1_Proc1/p\ 131,531
 +  task type Task_Type \7fTask_Type/k\ 134,580
 +  type Private_T \7fPrivate_T/t\ 140,671
 +package body Pkg1 \7fPkg1/b\ 146,766
 +  procedure Pkg1_Proc1 \7fPkg1_Proc1/p\ 148,788
 +  package body Inner1 \7fInner1/b\ 153,840
 +    procedure Private_T \7fPrivate_T/p\ 154,865
 +  package body Inner2 \7fInner2/b\ 160,938
 +    task body Private_T \7fPrivate_T/b\ 161,963
 +  task body Task_Type \7fTask_Type/b\ 168,1064
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 182,1250
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 188,1328
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 190,1379
 +  package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 196,1479
 +package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1100,1544
 +  procedure Pkg1_Pkg1_Proc1 \7fPkg1_Pkg1_Proc1/p\ 1101,1570
 +function  Pkg1_Func1 \7fPkg1_Func1/f\ 1107,1657
 +package Truc \7fTruc/s\ 1112,1764
 +package Truc.Bidule \7fTruc.Bidule/s\ 1116,1816
 +  protected Bidule \7fBidule/t\ 1125,1964
 +  protected type Machin_T \7fMachin_T/t\ 1131,2046
 +package body Truc.Bidule \7fTruc.Bidule/b\ 1138,2153
 +  protected body Bidule \7fBidule/b\ 1139,2181
 +  protected body Machin_T \7fMachin_T/b\ 1146,2281
 +\f
 +c-src/abbrev.c,2634
 +Lisp_Object Vabbrev_table_name_list;\7f43,1424
 +Lisp_Object Vglobal_abbrev_table;\7f48,1569
 +Lisp_Object Vfundamental_mode_abbrev_table;\7f52,1680
 +int abbrevs_changed;\7f56,1781
 +int abbrev_all_caps;\7f58,1803
 +Lisp_Object Vabbrev_start_location;\7f63,1952
 +Lisp_Object Vabbrev_start_location_buffer;\7f66,2041
 +Lisp_Object Vlast_abbrev;\7f70,2150
 +Lisp_Object Vlast_abbrev_text;\7f75,2319
 +int last_abbrev_point;\7f79,2409
 +Lisp_Object Vpre_abbrev_expand_hook,\7f83,2482
 +Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;\7f83,2482
 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,\7fmake-abbrev-table\ 185,2546
 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,\7fclear-abbrev-table\ 192,2738
 +DEFUN ("define-abbrev", Fdefine_abbrev,\7fdefine-abbrev\ 1107,3119
 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,\7fdefine-global-abbrev\ 1149,4438
 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,\7fdefine-mode-abbrev\ 1160,4809
 +DEFUN ("abbrev-symbol", Fabbrev_symbol,\7fabbrev-symbol\ 1174,5277
 +DEFUN ("abbrev-expansion", Fabbrev_expansion,\7fabbrev-expansion\ 1202,6241
 +DEFUN ("expand-abbrev", Fexpand_abbrev,\7fexpand-abbrev\ 1218,6756
 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,\7funexpand-abbrev\ 1389,11677
 +write_abbrev \7f426,12884
 +describe_abbrev \7f445,13319
 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,\7finsert-abbrev-table-description\ 1466,13834
 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,\7fdefine-abbrev-table\ 1506,14990
 +syms_of_abbrev \7f540,16067
 +  DEFVAR_LISP ("abbrev-table-name-list"\7f542,16087
 +  DEFVAR_LISP ("global-abbrev-table"\7f548,16349
 +  DEFVAR_LISP ("fundamental-mode-abbrev-table"\7f555,16671
 +  DEFVAR_LISP ("last-abbrev"\7f561,17013
 +  DEFVAR_LISP ("last-abbrev-text"\7f564,17136
 +  DEFVAR_INT ("last-abbrev-location"\7f568,17294
 +  DEFVAR_LISP ("abbrev-start-location"\7f575,17493
 +  DEFVAR_LISP ("abbrev-start-location-buffer"\7f581,17770
 +  DEFVAR_PER_BUFFER ("local-abbrev-table"\7f586,18034
 +  DEFVAR_BOOL ("abbrevs-changed"\7f589,18177
 +  DEFVAR_BOOL ("abbrev-all-caps"\7f594,18380
 +  DEFVAR_LISP ("pre-abbrev-expand-hook"\7f598,18536
 +  DEFVAR_LISP ("abbrev-table-name-list",\7f\1\ 1542,16087
 +  DEFVAR_LISP ("global-abbrev-table",\7f\1\ 1548,16349
 +  DEFVAR_LISP ("fundamental-mode-abbrev-table",\7f\1\ 1555,16671
 +  DEFVAR_LISP ("last-abbrev",\7f\1\ 1561,17013
 +  DEFVAR_LISP ("last-abbrev-text",\7f\1\ 1564,17136
 +  DEFVAR_INT ("last-abbrev-location",\7f\1\ 1568,17294
 +  DEFVAR_LISP ("abbrev-start-location",\7f\1\ 1575,17493
 +  DEFVAR_LISP ("abbrev-start-location-buffer",\7f\1\ 1581,17770
 +  DEFVAR_PER_BUFFER ("local-abbrev-table",\7f\1\ 1586,18034
 +  DEFVAR_BOOL ("abbrevs-changed",\7f\1\ 1589,18177
 +  DEFVAR_BOOL ("abbrev-all-caps",\7f\1\ 1594,18380
 +  DEFVAR_LISP ("pre-abbrev-expand-hook",\7f\1\ 1598,18536
 +\f
 +c-src/torture.c,197
 +(*tag1 \7ftag1\ 118,452
 +#define notag2 \7f26,553
 +(*tag2 \7ftag2\ 129,630
 +(*tag3 \7ftag3\ 139,772
 +#define notag4 \7f45,861
 +(*tag4 \7ftag4\ 148,955
 +tag5 \7f57,1081
 +tag6 \7f66,1208
 +int pp1(\7f74,1317
 +pp2\7f87,1419
 +pp3(\7f100,1518
 +\f
 +c-src/getopt.h,147
 +#define _GETOPT_H \7f19,794
 +struct option\7f73,2790
 +#define       no_argument     \7f89,3117
 +#define required_argument     \7f90,3140
 +#define optional_argument     \7f91,3168
 +\f
 +c-src/etags.c,10045
 +char pot_etags_version[\7fpot_etags_version\ 181,3470
 +#  undef DEBUG\7f84,3552
 +#  define DEBUG \7f85,3567
 +#  define DEBUG \7f87,3594
 +#  define NDEBUG      \7f88,3617
 +# define _GNU_SOURCE \7f94,3705
 +# undef MSDOS\7f100,3876
 +# undef  WINDOWSNT\7f101,3890
 +# define WINDOWSNT\7f102,3909
 +# undef MSDOS\7f106,3968
 +# define MSDOS \7f107,3982
 +# define MSDOS \7f110,4032
 +# define MAXPATHLEN \7f115,4111
 +# undef HAVE_NTGUI\7f116,4141
 +# undef  DOS_NT\7f117,4160
 +# define DOS_NT\7f118,4176
 +# undef  assert       \7f135,4482
 +# define assert(\7f136,4541
 +# undef  CTAGS\7f146,4857
 +# define CTAGS \7f147,4872
 +# define CTAGS \7f149,4898
 +#define streq(\7f152,4927
 +#define strcaseeq(\7f153,4996
 +#define strneq(\7f154,5075
 +#define strncaseeq(\7f155,5151
 +#define CHARS \7f157,5238
 +#define CHAR(\7f158,5278
 +#define       iswhite(\7f159,5329
 +#define notinname(\7f160,5394
 +#define       begtoken(\7f161,5469
 +#define       intoken(\7f162,5542
 +#define       endtoken(\7f163,5614
 +#define ISALNUM(\7f165,5684
 +#define ISALPHA(\7f166,5722
 +#define ISDIGIT(\7f167,5760
 +#define ISLOWER(\7f168,5798
 +#define lowcase(\7f170,5837
 +#define xnew(\7f179,6015
 +#define xrnew(\7f180,6083
 +typedef void Lang_function \7f182,6164
 +} compressor;\7f188,6365
 +} language;\7f199,6835
 +typedef struct fdesc\7f201,6848
 +} fdesc;\7f212,7366
 +typedef struct node_st\7f214,7376
 +} node;\7f225,7894
 +} linebuffer;\7f239,8248
 +    at_language,\7f245,8344
 +    at_regexp,\7f246,8393
 +    at_filename,\7f247,8437
 +    at_stdin,\7f248,8473
 +    at_end    \7f249,8516
 +} argument;\7f253,8698
 +typedef struct regexp\7f256,8758
 +} regexp;\7f268,9325
 +static void error \7f311,10780
 +# undef STDIN\7f408,15073
 +#define STDIN \7f411,15095
 +static compressor compressors[\7fcompressors\ 1457,17664
 +static const char *Ada_suffixes \7fAda_suffixes\ 1473,17907
 +static const char Ada_help \7f475,17977
 +static const char *Asm_suffixes \7fAsm_suffixes\ 1493,18580
 +static const char Asm_help \7f504,18976
 +static const char *default_C_suffixes \7fdefault_C_suffixes\ 1512,19312
 +static const char default_C_help \7f515,19413
 +static const char default_C_help \7f523,19850
 +static const char *Cplusplus_suffixes \7fCplusplus_suffixes\ 1535,20460
 +static const char Cplusplus_help \7f540,20658
 +static const char *Cjava_suffixes \7fCjava_suffixes\ 1549,21113
 +static char Cjava_help \7f551,21172
 +static const char *Cobol_suffixes \7fCobol_suffixes\ 1556,21337
 +static char Cobol_help \7f558,21402
 +static const char *Cstar_suffixes \7fCstar_suffixes\ 1562,21543
 +static const char *Erlang_suffixes \7fErlang_suffixes\ 1565,21607
 +static const char Erlang_help \7f567,21673
 +const char *Forth_suffixes \7fForth_suffixes\ 1571,21799
 +static const char Forth_help \7f573,21857
 +static const char *Fortran_suffixes \7fFortran_suffixes\ 1577,22008
 +static const char Fortran_help \7f579,22085
 +static const char *HTML_suffixes \7fHTML_suffixes\ 1582,22190
 +static const char HTML_help \7f584,22264
 +static const char *Lisp_suffixes \7fLisp_suffixes\ 1589,22452
 +static const char Lisp_help \7f591,22556
 +static const char *Lua_suffixes \7fLua_suffixes\ 1598,22871
 +static const char Lua_help \7f600,22934
 +static const char *Makefile_filenames \7fMakefile_filenames\ 1603,23010
 +static const char Makefile_help \7f605,23133
 +static const char *Objc_suffixes \7fObjc_suffixes\ 1609,23277
 +static const char Objc_help \7f613,23399
 +static const char *Pascal_suffixes \7fPascal_suffixes\ 1619,23714
 +static const char Pascal_help \7f621,23778
 +static const char *Perl_suffixes \7fPerl_suffixes\ 1626,23966
 +static const char *Perl_interpreters \7fPerl_interpreters\ 1628,24028
 +static const char Perl_help \7f630,24100
 +static const char *PHP_suffixes \7fPHP_suffixes\ 1637,24451
 +static const char PHP_help \7f639,24523
 +static const char *plain_C_suffixes \7fplain_C_suffixes\ 1643,24678
 +static const char *PS_suffixes \7fPS_suffixes\ 1647,24762
 +static const char PS_help \7f649,24848
 +static const char *Prolog_suffixes \7fProlog_suffixes\ 1652,24931
 +static const char Prolog_help \7f654,24993
 +static const char *Python_suffixes \7fPython_suffixes\ 1658,25107
 +static const char Python_help \7f660,25165
 +static const char *Scheme_suffixes \7fScheme_suffixes\ 1665,25347
 +static const char Scheme_help \7f667,25460
 +static const char *TeX_suffixes \7fTeX_suffixes\ 1672,25683
 +static const char TeX_help \7f674,25781
 +static const char *Texinfo_suffixes \7fTexinfo_suffixes\ 1686,26316
 +static const char Texinfo_help \7f688,26395
 +static const char *Yacc_suffixes \7fYacc_suffixes\ 1691,26492
 +static const char Yacc_help \7f693,26606
 +static const char auto_help \7f699,26856
 +static const char none_help \7f703,27020
 +static const char no_lang_help \7f707,27143
 +static language lang_names \7f718,27355
 +print_language_names \7f753,29532
 +# define EMACS_NAME \7f786,30755
 +# define VERSION \7f789,30811
 +print_version \7f792,30869
 +# define PRINT_UNDOCUMENTED_OPTIONS_HELP \7f804,31173
 +print_help \7f808,31250
 +main \7f981,37438
 +get_compressor_from_suffix \7f1319,46217
 +get_language_from_langname \7f1355,47158
 +get_language_from_interpreter \7f1377,47545
 +get_language_from_filename \7f1399,47976
 +process_file_name \7f1433,48834
 +process_file \7f1555,51665
 +init \7f1632,54150
 +find_entries \7f1656,54901
 +make_tag \7f1814,59707
 +pfnote \7f1856,60942
 +free_tree \7f1917,62744
 +free_fdesc \7f1935,63029
 +add_node \7f1955,63472
 +invalidate_nodes \7f2035,65537
 +static int number_len \7f2068,66193
 +total_size_of_entries \7f2087,66694
 +put_entries \7f2107,67154
 +#define C_EXT \7f2193,68995
 +#define C_PLAIN \7f2194,69037
 +#define C_PLPL        \7f2195,69070
 +#define C_STAR        \7f2196,69104
 +#define C_JAVA        \7f2197,69137
 +#define C_AUTO \7f2198,69172
 +#define YACC  \7f2199,69242
 +enum sym_type\7f2204,69312
 +  st_none,\7f2206,69328
 +  st_C_objprot,\7f2207,69339
 +  st_C_objprot, st_C_objimpl,\7f2207,69339
 +  st_C_objprot, st_C_objimpl, st_C_objend,\7f2207,69339
 +  st_C_gnumacro,\7f2208,69382
 +  st_C_ignore,\7f2209,69399
 +  st_C_ignore, st_C_attribute,\7f2209,69399
 +  st_C_javastruct,\7f2210,69430
 +  st_C_operator,\7f2211,69449
 +  st_C_class,\7f2212,69466
 +  st_C_class, st_C_template,\7f2212,69466
 +  st_C_struct,\7f2213,69495
 +  st_C_struct, st_C_extern,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum, st_C_define,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum, st_C_define, st_C_typedef\7f2213,69495
 +struct C_stab_entry \7f2271,71278
 +hash \7f2275,71409
 +in_word_set \7f2321,72937
 +      TOTAL_KEYWORDS \7f2325,73018
 +      MIN_WORD_LENGTH \7f2326,73045
 +      MAX_WORD_LENGTH \7f2327,73072
 +      MIN_HASH_VALUE \7f2328,73100
 +      MAX_HASH_VALUE \7f2329,73126
 +C_symtype \7f2387,74985
 +static bool inattribute;\7f2400,75234
 +  fvnone,\7f2408,75435
 +  fdefunkey,\7f2409,75466
 +  fdefunname,\7f2410,75512
 +  foperator,\7f2411,75556
 +  fvnameseen,\7f2412,75613
 +  fstartlist,\7f2413,75666
 +  finlist,\7f2414,75722
 +  flistseen,\7f2415,75765
 +  fignore,\7f2416,75813
 +  vignore     \7f2417,75856
 +} fvdef;\7f2418,75901
 +static bool fvextern;\7f2420,75911
 +  tnone,\7f2428,76089
 +  tkeyseen,\7f2429,76119
 +  ttypeseen,\7f2430,76160
 +  tinbody,\7f2431,76199
 +  tend,\7f2432,76238
 +  tignore     \7f2433,76279
 +} typdef;\7f2434,76320
 +  snone,\7f2443,76499
 +  skeyseen,\7f2445,76575
 +  stagseen,\7f2446,76620
 +  scolonseen  \7f2447,76661
 +} structdef;\7f2448,76715
 +static const char *objtag \7fobjtag\ 12453,76809
 +  dnone,\7f2460,76942
 +  dsharpseen,\7f2461,76972
 +  ddefineseen,\7f2462,77025
 +  dignorerest \7f2463,77070
 +} definedef;\7f2464,77112
 +  onone,\7f2472,77267
 +  oprotocol,\7f2473,77297
 +  oimplementation,\7f2474,77347
 +  otagseen,\7f2475,77395
 +  oparenseen,\7f2476,77431
 +  ocatseen,\7f2477,77486
 +  oinbody,\7f2478,77525
 +  omethodsign,\7f2479,77568
 +  omethodtag,\7f2480,77626
 +  omethodcolon,\7f2481,77666
 +  omethodparm,\7f2482,77709
 +  oignore     \7f2483,77755
 +} objdef;\7f2484,77787
 +static struct tok\7f2491,77944
 +} token;\7f2508,78626
 +} cstack;\7f2523,79136
 +#define nestlev       \7f2525,79264
 +#define instruct      \7f2527,79369
 +pushclass_above \7f2531,79489
 +popclass_above \7f2550,79948
 +write_classname \7f2564,80162
 +consider_token \7f2613,81341
 +} lbs[\7flbs\ 12924,88532
 +#define current_lb_is_new \7f2926,88543
 +#define switch_line_buffers(\7f2927,88588
 +#define curlb \7f2929,88641
 +#define newlb \7f2930,88672
 +#define curlinepos \7f2931,88703
 +#define newlinepos \7f2932,88744
 +#define plainc \7f2934,88786
 +#define cplpl \7f2935,88830
 +#define cjava \7f2936,88861
 +#define CNL_SAVE_DEFINEDEF(\7f2938,88905
 +#define CNL(\7f2947,89117
 +make_C_tag \7f2960,89375
 +C_entries \7f2986,90194
 +default_C_entries \7f3833,110156
 +plain_C_entries \7f3840,110276
 +Cplusplus_entries \7f3847,110364
 +Cjava_entries \7f3854,110460
 +Cstar_entries \7f3861,110550
 +Yacc_entries \7f3868,110642
 +#define LOOP_ON_INPUT_LINES(\7f3875,110720
 +#define LOOKING_AT(\7f3884,111056
 +#define LOOKING_AT_NOCASE(\7f3891,111461
 +just_read_file \7f3901,111861
 +F_takeprec \7f3914,112039
 +F_getit \7f3937,112366
 +Fortran_functions \7f3961,112840
 +Ada_getit \7f4052,114669
 +Ada_funcs \7f4115,116044
 +Asm_labels \7f4228,118582
 +Perl_functions \7f4261,119549
 +Python_functions \7f4357,122057
 +PHP_functions \7f4387,122684
 +Cobol_paragraphs \7f4466,124471
 +Makefile_targets \7f4494,125029
 +Pascal_functions \7f4529,125950
 +L_getit \7f4709,130318
 +Lisp_functions \7f4725,130664
 +Lua_functions \7f4785,131850
 +PS_functions \7f4811,132385
 +Forth_words \7f4841,133053
 +Scheme_functions \7f4877,134092
 +static linebuffer *TEX_toktab \7fTEX_toktab\ 14908,134781
 +static const char *TEX_defenv \7fTEX_defenv\ 14912,134974
 +static char TEX_esc \7f4920,135261
 +static char TEX_opgrp \7f4921,135289
 +static char TEX_clgrp \7f4922,135318
 +TeX_commands \7f4928,135395
 +#define TEX_LESC \7f4986,136652
 +#define TEX_SESC \7f4987,136674
 +TEX_mode \7f4992,136804
 +TEX_decode_env \7f5026,137509
 +Texinfo_nodes \7f5071,138554
 +HTML_labels \7f5094,139013
 +Prolog_functions \7f5219,142347
 +prolog_skip_comment \7f5255,143128
 +prolog_pr \7f5281,143736
 +prolog_atom \7f5319,144628
 +Erlang_functions \7f5379,145666
 +erlang_func \7f5438,146965
 +erlang_attribute \7f5476,147642
 +erlang_atom \7f5496,148061
 +scan_separators \7f5534,149080
 +analyze_regex \7f5586,150460
 +add_regex \7f5654,152050
 +substitute \7f5767,154797
 +free_regexps \7f5814,155837
 +regex_tag_multiline \7f5836,156291
 +nocase_tail \7f5913,158263
 +get_tag \7f5928,158519
 +readline_internal \7f5959,159455
 +readline \7f6037,161296
 +savestr \7f6230,167243
 +savenstr \7f6240,167473
 +skip_spaces \7f6249,167679
 +skip_non_spaces \7f6258,167833
 +skip_name \7f6267,167983
 +fatal \7f6277,168156
 +pfatal \7f6284,168253
 +suggest_asking_for_help \7f6291,168332
 +error \7f6300,168554
 +concat \7f6313,168846
 +etags_getcwd \7f6329,169259
 +relative_filename \7f6350,169725
 +absolute_filename \7f6389,170751
 +absolute_dirname \7f6453,172416
 +filename_is_absolute \7f6472,172845
 +canonicalize_filename \7f6484,173096
 +# define ISUPPER(\7f6491,173235
 +linebuffer_init \7f6514,173656
 +linebuffer_setlen \7f6524,173887
 +xmalloc \7f6536,174148
 +xrealloc \7f6545,174314
 +\f
 +c-src/exit.c,47
 +  } __libc_atexit;\7f30,1017
 +DEFUN(exit,\7f38,1258
 +\f
 +c-src/exit.strange_suffix,47
 +  } __libc_atexit;\7f30,1017
 +DEFUN(exit,\7f38,1258
 +\f
 +c-src/sysdep.h,491
 +#define       ENTRY(\7f21,870
 +#define       PSEUDO(\7f26,977
 +    movl $SYS_##syscall_nam\7f$SYS_##syscall_na\ 131,1137
 +    movl $SYS_##syscall_name, %eax;\7feax\ 131,1137
 +    int $0x80;\7f32,1185
 +    test %eax,\7feax\ 133,1215
 +    test %eax, %eax;\7feax\ 133,1215
 +    jl syscall_error;\7f34,1250
 +#define       XCHG_0  \7f47,1567
 +#define       XCHG_1  \7f48,1611
 +#define       XCHG_2  \7f49,1653
 +#define       XCHG_3  \7f50,1696
 +#define       XCHG_4  \7f51,1739
 +#define       XCHG_5  \7f52,1782
 +#define       r0      \7f54,1826
 +#define       r1      \7f55,1880
 +#define scratch \7f56,1937
 +#define MOVE(\7f57,2006
 +\f
 +c-src/tab.c,196
 +static int            count_words(\7f15,263
 +static char           *get_word(\7fget_word\ 135,553
 +void                  tab_free(\7f59,966
 +char                  **tab_fill(\7ftab_fill\ 170,1129
 +int                   tab_delete_first(\7f91,1638
 +int                   tab_count_words(\7f103,1820
 +\f
 +c-src/dostorture.c,198
 +(*tag1 \7ftag1\ 118,468
 +#define notag2 \7f26,577
 +(*tag2 \7ftag2\ 129,657
 +(*tag3 \7ftag3\ 139,809
 +#define notag4 \7f45,904
 +(*tag4 \7ftag4\ 148,1001
 +tag5 \7f57,1136
 +tag6 \7f66,1272
 +int pp1(\7f74,1389
 +pp2\7f87,1504
 +pp3(\7f100,1616
 +\f
 +c-src/emacs/src/gmalloc.c,3539
 +#define USE_PTHREAD\7f25,1002
 +#undef get_current_dir_name\7f33,1126
 +#undef malloc\7f64,2110
 +#undef realloc\7f65,2124
 +#undef calloc\7f66,2139
 +#undef free\7f67,2153
 +#define malloc \7f68,2165
 +#define realloc \7f69,2188
 +#define calloc \7f70,2213
 +#define aligned_alloc \7f71,2236
 +#define free \7f72,2273
 +#define DUMPED \7f80,2472
 +#define ALLOCATED_BEFORE_DUMPING(\7f81,2507
 +extern void *malloc \7fmalloc\ 194,2718
 +#define INT_BIT       \7f124,3934
 +#define BLOCKLOG      \7f125,3977
 +#define BLOCKSIZE     \7f126,4018
 +#define BLOCKIFY(\7f127,4052
 +#define HEAP  \7f131,4215
 +#define FINAL_FREE_BLOCKS     \7f135,4391
 +  } malloc_info;\7f167,5388
 +#define BLOCK(\7f176,5620
 +#define ADDRESS(\7f177,5682
 +struct list\7f186,5939
 +struct alignlist\7f196,6153
 +#define LOCK(\7f223,7064
 +#define UNLOCK(\7f228,7195
 +#define LOCK_ALIGNED_BLOCKS(\7f233,7329
 +#define UNLOCK_ALIGNED_BLOCKS(\7f238,7484
 +#define LOCK(\7f244,7649
 +#define UNLOCK(\7f245,7664
 +#define LOCK_ALIGNED_BLOCKS(\7f246,7681
 +#define UNLOCK_ALIGNED_BLOCKS(\7f247,7711
 +enum mcheck_status\7f283,9092
 +    MCHECK_DISABLED \7f285,9115
 +    MCHECK_OK,\7f286,9187
 +    MCHECK_FREE,\7f287,9226
 +    MCHECK_HEAD,\7f288,9270
 +    MCHECK_TAIL       \7f289,9334
 +struct mstats\7f308,10153
 +char *_heapbase;\7f_heapbase\ 1355,11829
 +malloc_info *_heapinfo;\7f_heapinfo\ 1358,11927
 +static size_t heapsize;\7f361,11983
 +size_t _heapindex;\7f364,12047
 +size_t _heaplimit;\7f367,12109
 +struct list _fraghead[\7f_fraghead\ 1370,12171
 +size_t _chunks_used;\7f373,12229
 +size_t _bytes_used;\7f374,12250
 +size_t _chunks_free;\7f375,12270
 +size_t _bytes_free;\7f376,12291
 +int __malloc_initialized;\7f379,12340
 +size_t __malloc_extra_blocks;\7f381,12367
 +static int state_protected_p;\7f400,12912
 +static size_t last_state_size;\7f401,12942
 +static malloc_info *last_heapinfo;\7flast_heapinfo\ 1402,12973
 +protect_malloc_state \7f405,13014
 +#define PROTECT_MALLOC_STATE(\7f426,13627
 +#define PROTECT_MALLOC_STATE(\7f429,13697
 +align \7f435,13794
 +get_contiguous_space \7f466,14616
 +register_heapinfo \7f497,15325
 +pthread_mutex_t _malloc_mutex \7f517,15879
 +pthread_mutex_t _aligned_blocks_mutex \7f518,15938
 +int _malloc_thread_enabled_p;\7f519,16005
 +malloc_atfork_handler_prepare \7f522,16048
 +malloc_atfork_handler_parent \7f529,16139
 +malloc_atfork_handler_child \7f536,16233
 +malloc_enable_thread \7f544,16375
 +malloc_initialize_1 \7f563,16961
 +__malloc_initialize \7f594,17793
 +static int morecore_recursing;\7f604,17926
 +morecore_nolock \7f609,18066
 +_malloc_internal_nolock \7f722,21584
 +_malloc_internal \7f920,28102
 +malloc \7f932,28247
 +_malloc \7f961,29140
 +_free \7f967,29196
 +_realloc \7f973,29240
 +struct alignlist *_aligned_blocks \7f_aligned_blocks\ 11004,30345
 +_free_internal_nolock \7f1009,30474
 +_free_internal \7f1255,38476
 +free \7f1265,38603
 +weak_alias \7f1277,38799
 +#define min(\7f1306,39813
 +_realloc_internal_nolock \7f1319,40309
 +_realloc_internal \7f1435,43563
 +realloc \7f1447,43726
 +calloc \7f1478,44894
 +#define       __sbrk  \7f1513,46042
 +__default_morecore \7f1525,46511
 +aligned_alloc \7f1557,47522
 +memalign \7f1647,49704
 +posix_memalign \7f1656,49909
 +static size_t pagesize;\7f1703,51317
 +valloc \7f1706,51349
 +#undef malloc\7f1715,51490
 +#undef realloc\7f1716,51504
 +#undef calloc\7f1717,51519
 +#undef aligned_alloc\7f1718,51533
 +#undef free\7f1719,51554
 +hybrid_malloc \7f1736,52083
 +hybrid_calloc \7f1744,52188
 +hybrid_free \7f1752,52319
 +hybrid_aligned_alloc \7f1765,52626
 +hybrid_realloc \7f1780,52984
 +hybrid_get_current_dir_name \7f1811,53797
 +#define MAGICWORD     \7f1854,55206
 +#define MAGICFREE     \7f1855,55261
 +#define MAGICBYTE     \7f1856,55316
 +#define MALLOCFLOOD   \7f1857,55348
 +#define FREEFLOOD     \7f1858,55382
 +struct hdr\7f1860,55415
 +checkhdr \7f1867,55581
 +freehook \7f1891,56022
 +mallochook \7f1927,56804
 +reallochook \7f1944,57143
 +mabort \7f1978,57901
 +static int mcheck_used \7f2012,58586
 +mcheck \7f2015,58619
 +mprobe \7f2035,59138
 +\f
 +c-src/emacs/src/regex.h,3761
 +#define _REGEX_H \7f21,836
 +typedef unsigned long reg_syntax_t;\7f43,1577
 +#define RE_BACKSLASH_ESCAPE_IN_LISTS \7f47,1749
 +#define RE_BK_PLUS_QM \7f52,1969
 +#define RE_CHAR_CLASSES \7f58,2298
 +#define RE_CONTEXT_INDEP_ANCHORS \7f72,3032
 +#define RE_CONTEXT_INDEP_OPS \7f80,3458
 +#define RE_CONTEXT_INVALID_OPS \7f84,3658
 +#define RE_DOT_NEWLINE \7f88,3801
 +#define RE_DOT_NOT_NULL \7f92,3937
 +#define RE_HAT_LISTS_NOT_NEWLINE \7f96,4082
 +#define RE_INTERVALS \7f101,4292
 +#define RE_LIMITED_OPS \7f105,4441
 +#define RE_NEWLINE_ALT \7f109,4583
 +#define RE_NO_BK_BRACES \7f114,4773
 +#define RE_NO_BK_PARENS \7f118,4964
 +#define RE_NO_BK_REFS \7f122,5120
 +#define RE_NO_BK_VBAR \7f126,5316
 +#define RE_NO_EMPTY_RANGES \7f132,5610
 +#define RE_UNMATCHED_RIGHT_PAREN_ORD \7f136,5766
 +#define RE_NO_POSIX_BACKTRACKING \7f140,5937
 +#define RE_NO_GNU_OPS \7f144,6133
 +#define RE_FRUGAL \7f147,6253
 +#define RE_SHY_GROUPS \7f150,6360
 +#define RE_NO_NEWLINE_ANCHOR \7f153,6468
 +#define RE_DEBUG \7f161,6884
 +#define RE_SYNTAX_EMACS       \7f183,7684
 +#define RE_SYNTAX_AWK \7f186,7780
 +#define RE_SYNTAX_GNU_AWK     \7f193,8084
 +#define RE_SYNTAX_POSIX_AWK \7f197,8255
 +#define RE_SYNTAX_GREP        \7f201,8393
 +#define RE_SYNTAX_EGREP       \7f206,8549
 +#define RE_SYNTAX_POSIX_EGREP \7f212,8765
 +#define RE_SYNTAX_ED \7f216,8910
 +#define RE_SYNTAX_SED \7f218,8954
 +#define _RE_SYNTAX_POSIX_COMMON       \7f221,9072
 +#define RE_SYNTAX_POSIX_BASIC \7f225,9215
 +#define RE_SYNTAX_POSIX_MINIMAL_BASIC \7f231,9508
 +#define RE_SYNTAX_POSIX_EXTENDED      \7f234,9598
 +#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED      \7f242,9967
 +# undef RE_DUP_MAX\7f253,10454
 +#define RE_DUP_MAX \7f256,10540
 +#define REG_EXTENDED \7f263,10762
 +#define REG_ICASE \7f267,10886
 +#define REG_NEWLINE \7f272,11070
 +#define REG_NOSUB \7f276,11248
 +#define REG_NOTBOL \7f286,11614
 +#define REG_NOTEOL \7f289,11688
 +  REG_ENOSYS \7f297,11859
 +  REG_NOERROR \7f300,11941
 +  REG_NOMATCH,\7f301,11976
 +  REG_BADPAT,\7f305,12123
 +  REG_ECOLLATE,\7f306,12162
 +  REG_ECTYPE,\7f307,12203
 +  REG_EESCAPE,\7f308,12255
 +  REG_ESUBREG,\7f309,12298
 +  REG_EBRACK,\7f310,12345
 +  REG_EPAREN,\7f311,12391
 +  REG_EBRACE,\7f312,12436
 +  REG_BADBR,\7f313,12472
 +  REG_ERANGE,\7f314,12519
 +  REG_ESPACE,\7f315,12560
 +  REG_BADRPT,\7f316,12601
 +  REG_EEND,\7f319,12693
 +  REG_ESIZE,\7f320,12728
 +  REG_ERPAREN,\7f321,12790
 +  REG_ERANGEX \7f322,12859
 +} reg_errcode_t;\7f323,12911
 +# define RE_TRANSLATE_TYPE \7f332,13273
 +struct re_pattern_buffer\7f335,13315
 +#define REGS_UNALLOCATED \7f376,14889
 +#define REGS_REALLOCATE \7f377,14916
 +#define REGS_FIXED \7f378,14942
 +typedef struct re_pattern_buffer regex_t;\7f416,16098
 +typedef ssize_t regoff_t;\7f423,16492
 +struct re_registers\7f428,16652
 +# define RE_NREGS \7f440,16942
 +} regmatch_t;\7f451,17317
 +#  define _Restrict_ \7f540,20886
 +#  define _Restrict_ \7f542,20979
 +#  define _Restrict_\7f544,21018
 +#  define _Restrict_arr_ \7f555,21418
 +#  define _Restrict_arr_\7f557,21461
 +#  define CHAR_CLASS_MAX_LENGTH \7f593,22470
 +#  define CHAR_CLASS_MAX_LENGTH \7f597,22648
 +typedef wctype_t re_wctype_t;\7f599,22692
 +typedef wchar_t re_wchar_t;\7f600,22722
 +# define re_wctype \7f601,22750
 +# define re_iswctype \7f602,22776
 +# define re_wctype_to_bit(\7f603,22806
 +# define CHAR_CLASS_MAX_LENGTH \7f605,22844
 +# define btowc(\7f606,22906
 +typedef enum { RECC_ERROR \7f609,22953
 +             RECC_ALNUM,\7f610,22984
 +             RECC_ALNUM, RECC_ALPHA,\7f610,22984
 +             RECC_ALNUM, RECC_ALPHA, RECC_WORD,\7f610,22984
 +             RECC_GRAPH,\7f611,23027
 +             RECC_GRAPH, RECC_PRINT,\7f611,23027
 +             RECC_LOWER,\7f612,23059
 +             RECC_LOWER, RECC_UPPER,\7f612,23059
 +             RECC_PUNCT,\7f613,23091
 +             RECC_PUNCT, RECC_CNTRL,\7f613,23091
 +             RECC_DIGIT,\7f614,23123
 +             RECC_DIGIT, RECC_XDIGIT,\7f614,23123
 +             RECC_BLANK,\7f615,23156
 +             RECC_BLANK, RECC_SPACE,\7f615,23156
 +             RECC_MULTIBYTE,\7f616,23188
 +             RECC_MULTIBYTE, RECC_NONASCII,\7f616,23188
 +             RECC_ASCII,\7f617,23227
 +             RECC_ASCII, RECC_UNIBYTE\7f617,23227
 +} re_wctype_t;\7f618,23260
 +typedef int re_wchar_t;\7f623,23387
 +\f
 +c-src/emacs/src/keyboard.c,20957
 +volatile int interrupt_input_blocked;\7f76,1808
 +volatile bool pending_signals;\7f80,1944
 +#define KBD_BUFFER_SIZE \7f82,1976
 +KBOARD *initial_kboard;\7finitial_kboard\ 184,2006
 +KBOARD *current_kboard;\7fcurrent_kboard\ 185,2030
 +static KBOARD *all_kboards;\7fall_kboards\ 186,2054
 +static bool single_kboard;\7f89,2154
 +#define NUM_RECENT_KEYS \7f91,2182
 +static int recent_keys_index;\7f94,2269
 +static int total_keys;\7f97,2357
 +static Lisp_Object recent_keys;\7f100,2443
 +Lisp_Object this_command_keys;\7f107,2777
 +ptrdiff_t this_command_key_count;\7f108,2808
 +static bool this_command_key_count_reset;\7f112,2922
 +static Lisp_Object raw_keybuf;\7f116,3074
 +static int raw_keybuf_count;\7f117,3105
 +#define GROW_RAW_KEYBUF       \7f119,3135
 +static ptrdiff_t this_single_command_key_start;\7f125,3350
 +static ptrdiff_t before_command_key_count;\7f129,3498
 +static ptrdiff_t before_command_echo_length;\7f130,3541
 +sigjmp_buf return_to_command_loop;\7f135,3677
 +static Lisp_Object recover_top_level_message;\7f138,3791
 +static Lisp_Object regular_top_level_message;\7f143,3930
 +static sys_jmp_buf getcjmp;\7f147,4031
 +bool waiting_for_input;\7f150,4095
 +static bool echoing;\7f154,4186
 +static struct kboard *ok_to_echo_at_next_pause;\7fok_to_echo_at_next_pause\ 1159,4328
 +struct kboard *echo_kboard;\7fecho_kboard\ 1166,4632
 +Lisp_Object echo_message_buffer;\7f171,4744
 +bool immediate_quit;\7f174,4837
 +int quit_char;\7f192,5623
 +EMACS_INT command_loop_level;\7f195,5680
 +Lisp_Object unread_switch_frame;\7f204,6108
 +static ptrdiff_t last_non_minibuf_size;\7f207,6216
 +uintmax_t num_input_events;\7f210,6334
 +static EMACS_INT last_auto_save;\7f214,6428
 +static ptrdiff_t last_point_position;\7f217,6523
 +Lisp_Object internal_last_event_frame;\7f228,7028
 +static Lisp_Object read_key_sequence_cmd;\7f232,7168
 +static Lisp_Object read_key_sequence_remapped;\7f233,7210
 +static FILE *dribble;\7fdribble\ 1236,7310
 +bool input_pending;\7f239,7368
 +static bool input_was_pending;\7f287,10022
 +static struct input_event kbd_buffer[\7fkbd_buffer\ 1291,10107
 +static struct input_event *kbd_fetch_ptr;\7fkbd_fetch_ptr\ 1297,10386
 +static struct input_event * volatile kbd_store_ptr;\7f302,10601
 +unsigned timers_run;\7f320,11296
 +struct timespec *input_available_clear_time;\7finput_available_clear_time\ 1324,11408
 +bool interrupt_input;\7f328,11573
 +bool interrupts_deferred;\7f331,11671
 +static struct timespec timer_idleness_start_time;\7f335,11746
 +static struct timespec timer_last_idleness_start_time;\7f340,11916
 +#define READABLE_EVENTS_DO_TIMERS_NOW \7f346,12046
 +#define READABLE_EVENTS_FILTER_EVENTS \7f347,12094
 +#define READABLE_EVENTS_IGNORE_SQUEEZABLES    \7f348,12142
 +kset_echo_string \7f392,14088
 +kset_kbd_queue \7f397,14184
 +kset_keyboard_translate_table \7f402,14276
 +kset_last_prefix_arg \7f407,14399
 +kset_last_repeatable_command \7f412,14504
 +kset_local_function_key_map \7f417,14625
 +kset_overriding_terminal_local_map \7f422,14744
 +kset_real_last_command \7f427,14877
 +kset_system_key_syms \7f432,14986
 +echo_add_key \7f443,15249
 +echo_char \7f527,17527
 +echo_dash \7f541,17813
 +echo_now \7f586,19140
 +cancel_echoing \7f635,20614
 +echo_length \7f648,20922
 +echo_truncate \7f660,21253
 +add_command_key \7f672,21582
 +recursive_edit_1 \7f697,22406
 +record_auto_save \7f742,23848
 +force_auto_save_soon \7f751,24016
 +DEFUN ("recursive-edit", Frecursive_edit,\7frecursive-edit\ 1759,24137
 +recursive_edit_unwind \7f804,25747
 +any_kboard_state \7f817,26013
 +single_kboard_state \7f838,26665
 +not_single_kboard_state \7f848,26803
 +struct kboard_stack\7f858,27065
 +static struct kboard_stack *kboard_stack;\7fkboard_stack\ 1864,27138
 +push_kboard \7f867,27186
 +pop_kboard \7f879,27375
 +temporarily_switch_to_single_kboard \7f914,28263
 +record_single_kboard_state \7f943,29437
 +restore_kboard_configuration \7f952,29621
 +cmd_error \7f970,30077
 +cmd_error_internal \7f1024,31510
 +DEFUN ("command-error-default-function", Fcommand_error_default_function,\7fcommand-error-default-function\ 11043,32030
 +command_loop \7f1094,33916
 +command_loop_2 \7f1134,35135
 +top_level_2 \7f1146,35339
 +top_level_1 \7f1152,35417
 +DEFUN ("top-level", Ftop_level,\7ftop-level\ 11164,35787
 +user_error \7f1183,36288
 +DEFUN ("exit-recursive-edit", Fexit_recursive_edit,\7fexit-recursive-edit\ 11189,36429
 +DEFUN ("abort-recursive-edit", Fabort_recursive_edit,\7fabort-recursive-edit\ 11201,36819
 +tracking_off \7f1216,37281
 +DEFUN ("internal--track-mouse", Ftrack_mouse,\7ftrack-mouse\ 11234,37816
 +bool ignore_mouse_drag_p;\7f1256,38392
 +some_mouse_moved \7f1259,38441
 +Lisp_Object last_undo_boundary;\7f1287,39032
 +command_loop_1 \7f1294,39273
 +read_menu_command \7f1649,50889
 +adjust_point_for_property \7f1678,51617
 +safe_run_hooks_1 \7f1831,57339
 +safe_run_hooks_error \7f1841,57569
 +safe_run_hook_funcall \7f1878,58576
 +safe_run_hooks \7f1893,59058
 +int poll_suppress_count;\7f1908,59397
 +static struct atimer *poll_timer;\7fpoll_timer\ 11915,59487
 +poll_for_input_1 \7f1919,59589
 +poll_for_input \7f1930,59789
 +start_polling \7f1942,60053
 +input_polling_used \7f1979,61091
 +stop_polling \7f1994,61390
 +set_poll_suppress_count \7f2009,61759
 +bind_polling_period \7f2029,62141
 +make_ctrl_char \7f2048,62492
 +show_help_echo \7f2113,64455
 +static Lisp_Object help_form_saved_window_configs;\7f2156,65638
 +read_char_help_form_unwind \7f2158,65701
 +#define STOP_POLLING  \7f2166,65959
 +#define RESUME_POLLING        \7f2170,66084
 +read_event_from_main_queue \7f2175,66229
 +read_decoded_event_from_main_queue \7f2249,68417
 +#define MAX_ENCODED_BYTES \7f2254,68664
 +echo_keystrokes_p \7f2342,71556
 +read_char \7f2376,72848
 +record_menu_key \7f3225,98949
 +help_char_p \7f3258,99674
 +record_char \7f3273,99953
 +save_getcjmp \7f3412,104235
 +restore_getcjmp \7f3418,104326
 +readable_events \7f3430,104697
 +int stop_character EXTERNALLY_VISIBLE;\7f3497,106437
 +event_to_kboard \7f3500,106493
 +kbd_buffer_nr_stored \7f3522,107142
 +kbd_buffer_store_event \7f3534,107483
 +kbd_buffer_store_event_hold \7f3550,108025
 +kbd_buffer_unget_event \7f3684,111617
 +#define INPUT_EVENT_POS_MAX \7f3698,112018
 +#define INPUT_EVENT_POS_MIN \7f3701,112147
 +position_to_Time \7f3706,112287
 +Time_to_position \7f3716,112514
 +gen_help_event \7f3738,113171
 +kbd_buffer_store_help_event \7f3756,113611
 +discard_mouse_events \7f3773,113976
 +kbd_buffer_events_waiting \7f3803,114711
 +clear_event \7f3823,115068
 +kbd_buffer_get_event \7f3836,115408
 +process_special_events \7f4258,127881
 +swallow_events \7f4322,129705
 +timer_start_idle \7f4339,130098
 +timer_stop_idle \7f4355,130576
 +timer_resume_idle \7f4363,130720
 +struct input_event last_timer_event EXTERNALLY_VISIBLE;\7f4372,130912
 +Lisp_Object pending_funcalls;\7f4377,131172
 +decode_timer \7f4381,131293
 +timer_check_2 \7f4414,132246
 +timer_check \7f4572,136817
 +DEFUN ("current-idle-time", Fcurrent_idle_time,\7fcurrent-idle-time\ 14607,137662
 +static Lisp_Object accent_key_syms;\7f4625,138239
 +static Lisp_Object func_key_syms;\7f4626,138275
 +static Lisp_Object mouse_syms;\7f4627,138309
 +static Lisp_Object wheel_syms;\7f4628,138340
 +static Lisp_Object drag_n_drop_syms;\7f4629,138371
 +static const int lispy_accent_codes[\7flispy_accent_codes\ 14634,138516
 +static const char *const lispy_accent_keys[\7flispy_accent_keys\ 14741,139878
 +#define FUNCTION_KEY_OFFSET \7f4766,140314
 +const char *const lispy_function_keys[\7flispy_function_keys\ 14768,140347
 +static const char *const lispy_multimedia_keys[\7flispy_multimedia_keys\ 14962,148901
 +static const char *const lispy_kana_keys[\7flispy_kana_keys\ 15026,150135
 +#define FUNCTION_KEY_OFFSET \7f5061,151751
 +static const char *const lispy_function_keys[\7flispy_function_keys\ 15065,151894
 +#define ISO_FUNCTION_KEY_OFFSET \7f5149,154429
 +static const char *const iso_lispy_function_keys[\7fiso_lispy_function_keys\ 15151,154469
 +static Lisp_Object Vlispy_mouse_stem;\7f5172,155328
 +static const char *const lispy_wheel_names[\7flispy_wheel_names\ 15174,155367
 +static const char *const lispy_drag_n_drop_names[\7flispy_drag_n_drop_names\ 15181,155619
 +static short const scroll_bar_parts[\7fscroll_bar_parts\ 15189,155885
 +static Lisp_Object button_down_location;\7f5210,156910
 +static int last_mouse_button;\7f5215,157065
 +static int last_mouse_x;\7f5216,157095
 +static int last_mouse_y;\7f5217,157120
 +static Time button_down_time;\7f5218,157145
 +static int double_click_count;\7f5222,157229
 +make_lispy_position \7f5228,157390
 +toolkit_menubar_in_use \7f5456,163953
 +make_scroll_bar_position \7f5469,164321
 +make_lispy_event \7f5485,164967
 +make_lispy_movement \7f6104,183531
 +make_lispy_switch_frame \7f6131,184262
 +make_lispy_focus_in \7f6137,184369
 +make_lispy_focus_out \7f6145,184495
 +parse_modifiers_uncached \7f6163,184945
 +#define SINGLE_LETTER_MOD(\7f6185,185465
 +#undef SINGLE_LETTER_MOD\7f6212,185906
 +#define MULTI_LETTER_MOD(\7f6214,185932
 +#undef MULTI_LETTER_MOD\7f6231,186400
 +apply_modifiers_uncached \7f6273,187574
 +static const char *const modifier_names[\7fmodifier_names\ 16319,189193
 +#define NUM_MOD_NAMES \7f6325,189399
 +static Lisp_Object modifier_symbols;\7f6327,189449
 +lispy_modifier_list \7f6331,189586
 +#define KEY_TO_CHAR(\7f6353,190252
 +parse_modifiers \7f6356,190328
 +DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,\7fevent-symbol-parse-modifiers\ 16399,191517
 +apply_modifiers \7f6422,192391
 +reorder_modifiers \7f6491,194720
 +modify_event_symbol \7f6536,196528
 +DEFUN ("event-convert-list", Fevent_convert_list,\7fevent-convert-list\ 16628,199244
 +parse_solitary_modifier \7f6695,201135
 +#define SINGLE_LETTER_MOD(\7f6701,201258
 +#define MULTI_LETTER_MOD(\7f6705,201343
 +#undef SINGLE_LETTER_MOD\7f6763,202641
 +#undef MULTI_LETTER_MOD\7f6764,202666
 +lucid_event_type_list_p \7f6775,202889
 +get_input_pending \7f6814,203960
 +record_asynch_buffer_change \7f6834,204579
 +gobble_input \7f6872,205702
 +tty_read_avail_input \7f6967,208310
 +handle_async_input \7f7149,214039
 +process_pending_signals \7f7165,214359
 +unblock_input_to \7f7177,214645
 +unblock_input \7f7200,215277
 +totally_unblock_input \7f7209,215445
 +handle_input_available_signal \7f7217,215529
 +deliver_input_available_signal \7f7226,215700
 +struct user_signal_info\7f7235,215865
 +static struct user_signal_info *user_signals \7fuser_signals\ 17250,216090
 +add_user_signal \7f7253,216149
 +handle_user_signal \7f7275,216598
 +deliver_user_signal \7f7316,217558
 +find_user_signal_name \7f7322,217659
 +store_user_signal_events \7f7334,217841
 +static Lisp_Object menu_bar_one_keymap_changed_items;\7f7363,218416
 +static Lisp_Object menu_bar_items_vector;\7f7368,218630
 +static int menu_bar_items_index;\7f7369,218672
 +static const char *separator_names[\7fseparator_names\ 17372,218707
 +menu_separator_name_p \7f7393,219148
 +menu_bar_items \7f7426,219852
 +Lisp_Object item_properties;\7f7568,224603
 +menu_bar_item \7f7571,224645
 +menu_item_eval_property_1 \7f7647,227175
 +eval_dyn \7f7658,227465
 +menu_item_eval_property \7f7666,227675
 +parse_menu_item \7f7686,228341
 +static Lisp_Object tool_bar_items_vector;\7f7965,236336
 +static Lisp_Object tool_bar_item_properties;\7f7970,236510
 +static int ntool_bar_items;\7f7974,236606
 +tool_bar_items \7f7990,237083
 +process_tool_bar_item \7f8075,239892
 +#define PROP(\7f8112,240969
 +set_prop \7f8114,241038
 +parse_tool_bar_item \7f8167,242453
 +#undef PROP\7f8379,248844
 +init_tool_bar_items \7f8387,248969
 +append_tool_bar_item \7f8401,249261
 +read_char_x_menu_prompt \7f8443,250771
 +read_char_minibuf_menu_prompt \7f8503,252445
 +#define PUSH_C_STR(\7f8527,253014
 +follow_key \7f8726,258553
 +active_maps \7f8733,258695
 +typedef struct keyremap\7f8742,259021
 +} keyremap;\7f8754,259464
 +access_keymap_keyremap \7f8764,259808
 +keyremap_step \7f8811,261450
 +test_undefined \7f8867,262934
 +read_key_sequence \7f8916,264861
 +read_key_sequence_vs \7f9826,295821
 +DEFUN ("read-key-sequence", Fread_key_sequence,\7fread-key-sequence\ 19885,297294
 +DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,\7fread-key-sequence-vector\ 19938,299982
 +detect_input_pending \7f9950,300488
 +detect_input_pending_ignore_squeezables \7f9959,300654
 +detect_input_pending_run_timers \7f9967,300870
 +clear_input_pending \7f9985,301362
 +requeued_events_pending_p \7f9997,301732
 +DEFUN ("input-pending-p", Finput_pending_p,\7finput-pending-p\ 110002,301813
 +DEFUN ("recent-keys", Frecent_keys,\7frecent-keys\ 110024,302596
 +DEFUN ("this-command-keys", Fthis_command_keys,\7fthis-command-keys\ 110055,303517
 +DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,\7fthis-command-keys-vector\ 110068,303958
 +DEFUN ("this-single-command-keys", Fthis_single_command_keys,\7fthis-single-command-keys\ 110080,304380
 +DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,\7fthis-single-command-raw-keys\ 110096,304955
 +DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,\7freset-this-command-lengths\ 110109,305495
 +DEFUN ("clear-this-command-keys", Fclear_this_command_keys,\7fclear-this-command-keys\ 110136,306510
 +DEFUN ("recursion-depth", Frecursion_depth,\7frecursion-depth\ 110158,307069
 +DEFUN ("open-dribble-file", Fopen_dribble_file,\7fopen-dribble-file\ 110169,307406
 +DEFUN ("discard-input", Fdiscard_input,\7fdiscard-input\ 110203,308447
 +DEFUN ("suspend-emacs", Fsuspend_emacs,\7fsuspend-emacs\ 110225,308949
 +stuff_buffered_input \7f10285,311045
 +set_waiting_for_input \7f10323,312016
 +clear_waiting_for_input \7f10337,312390
 +handle_interrupt_signal \7f10351,312754
 +deliver_interrupt_signal \7f10378,313642
 +static int volatile force_quit_count;\7f10387,313932
 +handle_interrupt \7f10401,314414
 +quit_throw_to_read_char \7f10541,318711
 +DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,\7fset-input-interrupt-mode\ 110562,319288
 +DEFUN ("set-output-flow-control", Fset_output_flow_control,\7fset-output-flow-control\ 110609,320516
 +DEFUN ("set-input-meta-mode", Fset_input_meta_mode,\7fset-input-meta-mode\ 110643,321432
 +DEFUN ("set-quit-char", Fset_quit_char,\7fset-quit-char\ 110694,322706
 +DEFUN ("set-input-mode", Fset_input_mode,\7fset-input-mode\ 110729,323570
 +DEFUN ("current-input-mode", Fcurrent_input_mode,\7fcurrent-input-mode\ 110750,324459
 +DEFUN ("posn-at-x-y", Fposn_at_x_y,\7fposn-at-x-y\ 110787,325837
 +DEFUN ("posn-at-point", Fposn_at_point,\7fposn-at-point\ 110824,327060
 +init_kboard \7f10861,328214
 +allocate_kboard \7f10893,329284
 +wipe_kboard \7f10909,329637
 +delete_kboard \7f10917,329751
 +init_keyboard \7f10942,330281
 +struct event_head\7f11021,332696
 +static const struct event_head head_table[\7fhead_table\ 111027,332747
 +syms_of_keyboard \7f11045,333577
 +  DEFVAR_LISP ("internal--top-level-message"\7f11058,333972
 +  DEFVAR_LISP ("last-command-event"\7f11312,342173
 +  DEFVAR_LISP ("last-nonmenu-event"\7f11315,342297
 +  DEFVAR_LISP ("last-input-event"\7f11321,342636
 +  DEFVAR_LISP ("unread-command-events"\7f11324,342730
 +  DEFVAR_LISP ("unread-post-input-method-events"\7f11332,343190
 +  DEFVAR_LISP ("unread-input-method-events"\7f11338,343529
 +  DEFVAR_LISP ("meta-prefix-char"\7f11346,343898
 +  DEFVAR_KBOARD ("last-command"\7f11351,344106
 +  DEFVAR_KBOARD ("real-last-command"\7f11368,344787
 +  DEFVAR_KBOARD ("last-repeatable-command"\7f11372,344973
 +  DEFVAR_LISP ("this-command"\7f11378,345261
 +  DEFVAR_LISP ("real-this-command"\7f11384,345498
 +  DEFVAR_LISP ("this-command-keys-shift-translated"\7f11388,345680
 +  DEFVAR_LISP ("this-original-command"\7f11396,346123
 +  DEFVAR_INT ("auto-save-interval"\7f11403,346520
 +  DEFVAR_LISP ("auto-save-timeout"\7f11408,346734
 +  DEFVAR_LISP ("echo-keystrokes"\7f11415,347079
 +  DEFVAR_INT ("polling-period"\7f11421,347350
 +  DEFVAR_LISP ("double-click-time"\7f11428,347693
 +  DEFVAR_INT ("double-click-fuzz"\7f11435,348029
 +  DEFVAR_INT ("num-input-keys"\7f11446,348519
 +  DEFVAR_INT ("num-nonmacro-input-events"\7f11452,348794
 +  DEFVAR_LISP ("last-event-frame"\7f11457,349032
 +  DEFVAR_LISP ("tty-erase-char"\7f11463,349311
 +  DEFVAR_LISP ("help-char"\7f11466,349434
 +  DEFVAR_LISP ("help-event-list"\7f11472,349717
 +  DEFVAR_LISP ("help-form"\7f11477,349928
 +  DEFVAR_LISP ("prefix-help-command"\7f11483,350176
 +  DEFVAR_LISP ("top-level"\7f11489,350454
 +  DEFVAR_KBOARD ("keyboard-translate-table"\7f11495,350675
 +  DEFVAR_BOOL ("cannot-suspend"\7f11511,351488
 +  DEFVAR_BOOL ("menu-prompting"\7f11516,351715
 +  DEFVAR_LISP ("menu-prompt-more-char"\7f11526,352145
 +  DEFVAR_INT ("extra-keyboard-modifiers"\7f11531,352391
 +  DEFVAR_LISP ("deactivate-mark"\7f11545,353117
 +  DEFVAR_LISP ("pre-command-hook"\7f11553,353486
 +  DEFVAR_LISP ("post-command-hook"\7f11560,353841
 +  DEFVAR_LISP ("echo-area-clear-hook"\7f11568,354204
 +  DEFVAR_LISP ("lucid-menu-bar-dirty-flag"\7f11574,354419
 +  DEFVAR_LISP ("menu-bar-final-items"\7f11578,354622
 +  DEFVAR_LISP ("tool-bar-separator-image-expression"\7f11583,354872
 +  DEFVAR_KBOARD ("overriding-terminal-local-map"\7f11589,355230
 +  DEFVAR_LISP ("overriding-local-map"\7f11598,355652
 +  DEFVAR_LISP ("overriding-local-map-menu-flag"\7f11607,356103
 +  DEFVAR_LISP ("special-event-map"\7f11613,356442
 +  DEFVAR_LISP ("track-mouse"\7f11617,356630
 +  DEFVAR_KBOARD ("system-key-alist"\7f11620,356757
 +  DEFVAR_KBOARD ("local-function-key-map"\7f11629,357138
 +  DEFVAR_KBOARD ("input-decode-map"\7f11658,358597
 +  DEFVAR_LISP ("function-key-map"\7f11675,359385
 +  DEFVAR_LISP ("key-translation-map"\7f11683,359801
 +  DEFVAR_LISP ("deferred-action-list"\7f11689,360145
 +  DEFVAR_LISP ("deferred-action-function"\7f11694,360393
 +  DEFVAR_LISP ("delayed-warnings-list"\7f11700,360692
 +  DEFVAR_LISP ("timer-list"\7f11708,361100
 +  DEFVAR_LISP ("timer-idle-list"\7f11712,361252
 +  DEFVAR_LISP ("input-method-function"\7f11716,361415
 +  DEFVAR_LISP ("input-method-previous-message"\7f11737,362384
 +  DEFVAR_LISP ("show-help-function"\7f11744,362745
 +  DEFVAR_LISP ("disable-point-adjustment"\7f11749,362977
 +  DEFVAR_LISP ("global-disable-point-adjustment"\7f11761,363527
 +  DEFVAR_LISP ("minibuffer-message-timeout"\7f11770,363893
 +  DEFVAR_LISP ("throw-on-input"\7f11775,364171
 +  DEFVAR_LISP ("command-error-function"\7f11781,364422
 +  DEFVAR_LISP ("enable-disabled-menus-and-buttons"\7f11790,364909
 +  DEFVAR_LISP ("select-active-regions"\7f11798,365236
 +  DEFVAR_LISP ("saved-region-selection"\7f11807,365628
 +  DEFVAR_LISP ("selection-inhibit-update-commands"\7f11815,366013
 +  DEFVAR_LISP ("debug-on-event"\7f11825,366554
 +keys_of_keyboard \7f11841,367115
 +mark_kboards \7f11916,370434
 +  DEFVAR_LISP ("internal--top-level-message",\7f\1\ 111058,333972
 +  DEFVAR_LISP ("last-command-event",\7f\1\ 111312,342173
 +  DEFVAR_LISP ("last-nonmenu-event",\7f\1\ 111315,342297
 +  DEFVAR_LISP ("last-input-event",\7f\1\ 111321,342636
 +  DEFVAR_LISP ("unread-command-events",\7f\1\ 111324,342730
 +  DEFVAR_LISP ("unread-post-input-method-events",\7f\1\ 111332,343190
 +  DEFVAR_LISP ("unread-input-method-events",\7f\1\ 111338,343529
 +  DEFVAR_LISP ("meta-prefix-char",\7f\1\ 111346,343898
 +  DEFVAR_KBOARD ("last-command",\7f\1\ 111351,344106
 +  DEFVAR_KBOARD ("real-last-command",\7f\1\ 111368,344787
 +  DEFVAR_KBOARD ("last-repeatable-command",\7f\1\ 111372,344973
 +  DEFVAR_LISP ("this-command",\7f\1\ 111378,345261
 +  DEFVAR_LISP ("real-this-command",\7f\1\ 111384,345498
 +  DEFVAR_LISP ("this-command-keys-shift-translated",\7f\1\ 111388,345680
 +  DEFVAR_LISP ("this-original-command",\7f\1\ 111396,346123
 +  DEFVAR_INT ("auto-save-interval",\7f\1\ 111403,346520
 +  DEFVAR_LISP ("auto-save-timeout",\7f\1\ 111408,346734
 +  DEFVAR_LISP ("echo-keystrokes",\7f\1\ 111415,347079
 +  DEFVAR_INT ("polling-period",\7f\1\ 111421,347350
 +  DEFVAR_LISP ("double-click-time",\7f\1\ 111428,347693
 +  DEFVAR_INT ("double-click-fuzz",\7f\1\ 111435,348029
 +  DEFVAR_INT ("num-input-keys",\7f\1\ 111446,348519
 +  DEFVAR_INT ("num-nonmacro-input-events",\7f\1\ 111452,348794
 +  DEFVAR_LISP ("last-event-frame",\7f\1\ 111457,349032
 +  DEFVAR_LISP ("tty-erase-char",\7f\1\ 111463,349311
 +  DEFVAR_LISP ("help-char",\7f\1\ 111466,349434
 +  DEFVAR_LISP ("help-event-list",\7f\1\ 111472,349717
 +  DEFVAR_LISP ("help-form",\7f\1\ 111477,349928
 +  DEFVAR_LISP ("prefix-help-command",\7f\1\ 111483,350176
 +  DEFVAR_LISP ("top-level",\7f\1\ 111489,350454
 +  DEFVAR_KBOARD ("keyboard-translate-table",\7f\1\ 111495,350675
 +  DEFVAR_BOOL ("cannot-suspend",\7f\1\ 111511,351488
 +  DEFVAR_BOOL ("menu-prompting",\7f\1\ 111516,351715
 +  DEFVAR_LISP ("menu-prompt-more-char",\7f\1\ 111526,352145
 +  DEFVAR_INT ("extra-keyboard-modifiers",\7f\1\ 111531,352391
 +  DEFVAR_LISP ("deactivate-mark",\7f\1\ 111545,353117
 +  DEFVAR_LISP ("pre-command-hook",\7f\1\ 111553,353486
 +  DEFVAR_LISP ("post-command-hook",\7f\1\ 111560,353841
 +  DEFVAR_LISP ("echo-area-clear-hook",\7f\1\ 111568,354204
 +  DEFVAR_LISP ("lucid-menu-bar-dirty-flag",\7f\1\ 111574,354419
 +  DEFVAR_LISP ("menu-bar-final-items",\7f\1\ 111578,354622
 +  DEFVAR_LISP ("tool-bar-separator-image-expression",\7f\1\ 111583,354872
 +  DEFVAR_KBOARD ("overriding-terminal-local-map",\7f\1\ 111589,355230
 +  DEFVAR_LISP ("overriding-local-map",\7f\1\ 111598,355652
 +  DEFVAR_LISP ("overriding-local-map-menu-flag",\7f\1\ 111607,356103
 +  DEFVAR_LISP ("special-event-map",\7f\1\ 111613,356442
 +  DEFVAR_LISP ("track-mouse",\7f\1\ 111617,356630
 +  DEFVAR_KBOARD ("system-key-alist",\7f\1\ 111620,356757
 +  DEFVAR_KBOARD ("local-function-key-map",\7f\1\ 111629,357138
 +  DEFVAR_KBOARD ("input-decode-map",\7f\1\ 111658,358597
 +  DEFVAR_LISP ("function-key-map",\7f\1\ 111675,359385
 +  DEFVAR_LISP ("key-translation-map",\7f\1\ 111683,359801
 +  DEFVAR_LISP ("deferred-action-list",\7f\1\ 111689,360145
 +  DEFVAR_LISP ("deferred-action-function",\7f\1\ 111694,360393
 +  DEFVAR_LISP ("delayed-warnings-list",\7f\1\ 111700,360692
 +  DEFVAR_LISP ("timer-list",\7f\1\ 111708,361100
 +  DEFVAR_LISP ("timer-idle-list",\7f\1\ 111712,361252
 +  DEFVAR_LISP ("input-method-function",\7f\1\ 111716,361415
 +  DEFVAR_LISP ("input-method-previous-message",\7f\1\ 111737,362384
 +  DEFVAR_LISP ("show-help-function",\7f\1\ 111744,362745
 +  DEFVAR_LISP ("disable-point-adjustment",\7f\1\ 111749,362977
 +  DEFVAR_LISP ("global-disable-point-adjustment",\7f\1\ 111761,363527
 +  DEFVAR_LISP ("minibuffer-message-timeout",\7f\1\ 111770,363893
 +  DEFVAR_LISP ("throw-on-input",\7f\1\ 111775,364171
 +  DEFVAR_LISP ("command-error-function",\7f\1\ 111781,364422
 +  DEFVAR_LISP ("enable-disabled-menus-and-buttons",\7f\1\ 111790,364909
 +  DEFVAR_LISP ("select-active-regions",\7f\1\ 111798,365236
 +  DEFVAR_LISP ("saved-region-selection",\7f\1\ 111807,365628
 +  DEFVAR_LISP ("selection-inhibit-update-commands",\7f\1\ 111815,366013
 +  DEFVAR_LISP ("debug-on-event",\7f\1\ 111825,366554
 +\f
 +c-src/emacs/src/lisp.h,20567
 +#define EMACS_LISP_H\7f22,800
 +#define DECLARE_GDB_SYM(\7f47,1421
 +# define DEFINE_GDB_SYMBOL_BEGIN(\7f49,1508
 +# define DEFINE_GDB_SYMBOL_END(\7f50,1578
 +# define DEFINE_GDB_SYMBOL_BEGIN(\7f52,1625
 +# define DEFINE_GDB_SYMBOL_END(\7f53,1702
 +#undef min\7f57,1790
 +#undef max\7f58,1801
 +#define max(\7f59,1812
 +#define min(\7f60,1854
 +#define ARRAYELTS(\7f63,1936
 +#define GCTYPEBITS \7f67,2079
 +DEFINE_GDB_SYMBOL_BEGIN \7fGCTYPEBITS\ 166,2037
 +# define NONPOINTER_BITS \7f78,2567
 +# define NONPOINTER_BITS \7f80,2600
 +typedef int EMACS_INT;\7f91,3023
 +typedef unsigned int EMACS_UINT;\7f92,3046
 +#  define EMACS_INT_MAX \7f93,3079
 +#  define pI \7f94,3111
 +typedef long int EMACS_INT;\7f96,3203
 +typedef unsigned long EMACS_UINT;\7f97,3231
 +#  define EMACS_INT_MAX \7f98,3265
 +#  define pI \7f99,3298
 +typedef long long int EMACS_INT;\7f103,3477
 +typedef unsigned long long int EMACS_UINT;\7f104,3510
 +#  define EMACS_INT_MAX \7f105,3553
 +#  define pI \7f106,3587
 +enum {  BOOL_VECTOR_BITS_PER_CHAR \7f114,3804
 +#define BOOL_VECTOR_BITS_PER_CHAR \7f115,3840
 +typedef size_t bits_word;\7f123,4165
 +# define BITS_WORD_MAX \7f124,4191
 +enum { BITS_PER_BITS_WORD \7f125,4223
 +typedef unsigned char bits_word;\7f127,4290
 +# define BITS_WORD_MAX \7f128,4323
 +enum { BITS_PER_BITS_WORD \7f129,4386
 +    BITS_PER_CHAR \7f136,4570
 +    BITS_PER_SHORT \7f137,4605
 +    BITS_PER_LONG \7f138,4657
 +    BITS_PER_EMACS_INT \7f139,4712
 +typedef intmax_t printmax_t;\7f148,5089
 +typedef uintmax_t uprintmax_t;\7f149,5118
 +# define pMd \7f150,5149
 +# define pMu \7f151,5170
 +typedef EMACS_INT printmax_t;\7f153,5197
 +typedef EMACS_UINT uprintmax_t;\7f154,5227
 +# define pMd \7f155,5259
 +# define pMu \7f156,5278
 +# define pD \7f165,5664
 +# define pD \7f167,5709
 +# define pD \7f169,5756
 +# define pD \7f171,5779
 +# define eassert(\7f200,7062
 +# define eassume(\7f201,7140
 +# define eassert(\7f208,7319
 +# define eassume(\7f212,7450
 +enum Lisp_Bits\7f239,8519
 +#define GCALIGNMENT \7f243,8647
 +    VALBITS \7f246,8742
 +    INTTYPEBITS \7f249,8838
 +    FIXNUM_BITS \7f252,8945
 +#define VAL_MAX \7f263,9327
 +#define USE_LSB_TAG \7f271,9777
 +DEFINE_GDB_SYMBOL_BEGIN \7fUSE_LSB_TAG\ 1270,9733
 +# define alignas(\7f281,10077
 +# define GCALIGNED \7f288,10227
 +# define GCALIGNED \7f290,10292
 +# define lisp_h_XLI(\7f327,11642
 +# define lisp_h_XIL(\7f328,11673
 +# define lisp_h_XLI(\7f330,11724
 +# define lisp_h_XIL(\7f331,11751
 +#define lisp_h_CHECK_LIST_CONS(\7f333,11785
 +#define lisp_h_CHECK_NUMBER(\7f334,11856
 +#define lisp_h_CHECK_SYMBOL(\7f335,11927
 +#define lisp_h_CHECK_TYPE(\7f336,11996
 +#define lisp_h_CONSP(\7f338,12107
 +#define lisp_h_EQ(\7f339,12156
 +#define lisp_h_FLOATP(\7f340,12201
 +#define lisp_h_INTEGERP(\7f341,12252
 +#define lisp_h_MARKERP(\7f342,12333
 +#define lisp_h_MISCP(\7f343,12408
 +#define lisp_h_NILP(\7f344,12457
 +#define lisp_h_SET_SYMBOL_VAL(\7f345,12493
 +#define lisp_h_SYMBOL_CONSTANT_P(\7f347,12607
 +#define lisp_h_SYMBOL_VAL(\7f348,12671
 +#define lisp_h_SYMBOLP(\7f350,12772
 +#define lisp_h_VECTORLIKEP(\7f351,12825
 +#define lisp_h_XCAR(\7f352,12886
 +#define lisp_h_XCDR(\7f353,12924
 +#define lisp_h_XCONS(\7f354,12964
 +#define lisp_h_XHASH(\7f356,13059
 +#define lisp_h_XPNTR(\7f357,13093
 +# define lisp_h_check_cons_list(\7f360,13221
 +# define lisp_h_make_number(\7f363,13289
 +# define lisp_h_XFASTINT(\7f365,13392
 +# define lisp_h_XINT(\7f366,13429
 +# define lisp_h_XSYMBOL(\7f367,13478
 +# define lisp_h_XTYPE(\7f371,13631
 +# define lisp_h_XUNTAG(\7f372,13696
 +# define XLI(\7f381,14086
 +# define XIL(\7f382,14117
 +# define CHECK_LIST_CONS(\7f383,14148
 +# define CHECK_NUMBER(\7f384,14209
 +# define CHECK_SYMBOL(\7f385,14258
 +# define CHECK_TYPE(\7f386,14307
 +# define CONSP(\7f387,14382
 +# define EQ(\7f388,14417
 +# define FLOATP(\7f389,14452
 +# define INTEGERP(\7f390,14489
 +# define MARKERP(\7f391,14530
 +# define MISCP(\7f392,14569
 +# define NILP(\7f393,14604
 +# define SET_SYMBOL_VAL(\7f394,14637
 +# define SYMBOL_CONSTANT_P(\7f395,14700
 +# define SYMBOL_VAL(\7f396,14763
 +# define SYMBOLP(\7f397,14812
 +# define VECTORLIKEP(\7f398,14851
 +# define XCAR(\7f399,14898
 +# define XCDR(\7f400,14931
 +# define XCONS(\7f401,14964
 +# define XHASH(\7f402,14999
 +# define XPNTR(\7f403,15034
 +#  define check_cons_list(\7f405,15097
 +#  define make_number(\7f408,15176
 +#  define XFASTINT(\7f409,15224
 +#  define XINT(\7f410,15266
 +#  define XSYMBOL(\7f411,15300
 +#  define XTYPE(\7f412,15340
 +#  define XUNTAG(\7f413,15376
 +#define LISP_MACRO_DEFUN(\7f421,15672
 +#define LISP_MACRO_DEFUN_VOID(\7f425,15845
 +#define INTMASK \7f437,16289
 +#define case_Lisp_Int \7f438,16342
 +#define ENUM_BF(\7f445,16681
 +#define ENUM_BF(\7f447,16722
 +enum Lisp_Type\7f451,16763
 +    Lisp_Symbol \7f454,16851
 +    Lisp_Misc \7f458,16993
 +    Lisp_Int0 \7f461,17067
 +    Lisp_Int1 \7f462,17086
 +    Lisp_String \7f466,17264
 +    Lisp_Vectorlike \7f472,17543
 +    Lisp_Cons \7f475,17632
 +    Lisp_Float \7f477,17670
 +enum Lisp_Misc_Type\7f485,18016
 +    Lisp_Misc_Free \7f487,18040
 +    Lisp_Misc_Marker,\7f488,18069
 +    Lisp_Misc_Overlay,\7f489,18091
 +    Lisp_Misc_Save_Value,\7f490,18114
 +    Lisp_Misc_Finalizer,\7f491,18140
 +    Lisp_Misc_Float,\7f494,18275
 +    Lisp_Misc_Limit\7f496,18359
 +enum Lisp_Fwd_Type\7f502,18543
 +    Lisp_Fwd_Int,\7f504,18566
 +    Lisp_Fwd_Bool,\7f505,18619
 +    Lisp_Fwd_Obj,\7f506,18670
 +    Lisp_Fwd_Buffer_Obj,\7f507,18729
 +    Lisp_Fwd_Kboard_Obj       \7f508,18800
 +typedef struct { EMACS_INT i; } Lisp_Object;\7f567,21781
 +#define LISP_INITIALLY(\7f569,21827
 +#undef CHECK_LISP_OBJECT_TYPE\7f571,21858
 +enum CHECK_LISP_OBJECT_TYPE \7f572,21888
 +enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE \7f572,21888
 +typedef EMACS_INT Lisp_Object;\7f577,22064
 +#define LISP_INITIALLY(\7f578,22095
 +enum CHECK_LISP_OBJECT_TYPE \7f579,22125
 +enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE \7f579,22125
 +#define LISP_INITIALLY_ZERO \7f582,22226
 +enum symbol_interned\7f639,24199
 +  SYMBOL_UNINTERNED \7f641,24222
 +  SYMBOL_INTERNED \7f642,24247
 +  SYMBOL_INTERNED_IN_INITIAL_OBARRAY \7f643,24270
 +enum symbol_redirect\7f646,24315
 +  SYMBOL_PLAINVAL \7f648,24338
 +  SYMBOL_VARALIAS \7f649,24362
 +  SYMBOL_LOCALIZED \7f650,24386
 +  SYMBOL_FORWARDED \7f651,24410
 +struct Lisp_Symbol\7f654,24437
 +  ENUM_BF \7f663,24793
 +#define EXFUN(\7f707,26252
 +#define DEFUN_ARGS_MANY       \7f712,26446
 +#define DEFUN_ARGS_UNEVALLED  \7f713,26498
 +#define DEFUN_ARGS_0  \7f714,26541
 +#define DEFUN_ARGS_1  \7f715,26569
 +#define DEFUN_ARGS_2  \7f716,26604
 +#define DEFUN_ARGS_3  \7f717,26652
 +#define DEFUN_ARGS_4  \7f718,26713
 +#define DEFUN_ARGS_5  \7f719,26787
 +#define DEFUN_ARGS_6  \7f721,26880
 +#define DEFUN_ARGS_7  \7f723,26986
 +#define DEFUN_ARGS_8  \7f725,27105
 +#define TAG_PTR(\7f729,27296
 +#define TAG_SYMOFFSET(\7f734,27543
 +#define XLI_BUILTIN_LISPSYM(\7f741,27842
 +#define DEFINE_LISP_SYMBOL(\7f746,28101
 +# define DEFINE_NON_NIL_Q_SYMBOL_MACROS \7f755,28572
 +LISP_MACRO_DEFUN \7f762,28777
 +# define ARRAY_MARK_FLAG \7f768,29024
 +# define PSEUDOVECTOR_FLAG \7f774,29267
 +enum pvec_type\7f780,29568
 +  PVEC_NORMAL_VECTOR,\7f782,29585
 +  PVEC_FREE,\7f783,29607
 +  PVEC_PROCESS,\7f784,29620
 +  PVEC_FRAME,\7f785,29636
 +  PVEC_WINDOW,\7f786,29650
 +  PVEC_BOOL_VECTOR,\7f787,29665
 +  PVEC_BUFFER,\7f788,29685
 +  PVEC_HASH_TABLE,\7f789,29700
 +  PVEC_TERMINAL,\7f790,29719
 +  PVEC_WINDOW_CONFIGURATION,\7f791,29736
 +  PVEC_SUBR,\7f792,29765
 +  PVEC_OTHER,\7f793,29778
 +  PVEC_COMPILED,\7f795,29856
 +  PVEC_CHAR_TABLE,\7f796,29873
 +  PVEC_SUB_CHAR_TABLE,\7f797,29892
 +  PVEC_FONT \7f798,29915
 +enum More_Lisp_Bits\7f801,29991
 +    PSEUDOVECTOR_SIZE_BITS \7f808,30382
 +    PSEUDOVECTOR_SIZE_MASK \7f809,30415
 +    PSEUDOVECTOR_REST_BITS \7f813,30625
 +    PSEUDOVECTOR_REST_MASK \7f814,30658
 +    PSEUDOVECTOR_AREA_BITS \7f818,30823
 +    PVEC_TYPE_MASK \7f819,30901
 +# define VALMASK \7f829,31302
 +DEFINE_GDB_SYMBOL_BEGIN \7fVALMASK\ 1828,31257
 +#define MOST_POSITIVE_FIXNUM \7f834,31532
 +#define MOST_NEGATIVE_FIXNUM \7f835,31592
 +XINT \7f874,32684
 +XFASTINT \7f889,33035
 +XSYMBOL \7f899,33263
 +XTYPE \7f910,33481
 +XUNTAG \7f918,33661
 +LISP_MACRO_DEFUN \7f927,33857
 +LISP_MACRO_DEFUN \7f940,34242
 +#define FIXNUM_OVERFLOW_P(\7f958,34855
 +LISP_MACRO_DEFUN \7fFIXNUM_OVERFLOW_P\ 1952,34632
 +LISP_MACRO_DEFUN \7f970,35171
 +XSTRING \7f980,35391
 +#define SYMBOL_INDEX(\7f988,35575
 +XFLOAT \7f991,35636
 +XPROCESS \7f1000,35778
 +XWINDOW \7f1007,35895
 +XTERMINAL \7f1014,36012
 +XSUBR \7f1021,36134
 +XBUFFER \7f1028,36245
 +XCHAR_TABLE \7f1035,36369
 +XSUB_CHAR_TABLE \7f1042,36506
 +XBOOL_VECTOR \7f1049,36648
 +make_lisp_ptr \7f1058,36827
 +make_lisp_symbol \7f1066,37013
 +builtin_lisp_symbol \7f1074,37197
 +#define XSETINT(\7f1079,37279
 +#define XSETFASTINT(\7f1080,37325
 +#define XSETCONS(\7f1081,37375
 +#define XSETVECTOR(\7f1082,37435
 +#define XSETSTRING(\7f1083,37503
 +#define XSETSYMBOL(\7f1084,37567
 +#define XSETFLOAT(\7f1085,37621
 +#define XSETMISC(\7f1086,37683
 +#define XSETPVECTYPE(\7f1090,37772
 +#define XSETPVECTYPESIZE(\7f1092,37888
 +#define XSETPSEUDOVECTOR(\7f1099,38185
 +#define XSETTYPED_PSEUDOVECTOR(\7f1105,38369
 +#define XSETWINDOW_CONFIGURATION(\7f1110,38579
 +#define XSETPROCESS(\7f1112,38675
 +#define XSETWINDOW(\7f1113,38741
 +#define XSETTERMINAL(\7f1114,38805
 +#define XSETSUBR(\7f1115,38873
 +#define XSETCOMPILED(\7f1116,38933
 +#define XSETBUFFER(\7f1117,39001
 +#define XSETCHAR_TABLE(\7f1118,39065
 +#define XSETBOOL_VECTOR(\7f1119,39137
 +#define XSETSUB_CHAR_TABLE(\7f1120,39211
 +XINTPTR \7f1128,39581
 +make_pointer_integer \7f1134,39661
 +LISP_MACRO_DEFUN_VOID \7f1143,39826
 +typedef struct interval *INTERVAL;\7fINTERVAL\ 11149,39987
 +xcar_addr \7f1174,40760
 +xcdr_addr \7f1179,40837
 +LISP_MACRO_DEFUN \7f1185,40931
 +XSETCDR \7f1198,41307
 +CAR \7f1205,41457
 +CDR \7f1212,41591
 +CAR_SAFE \7f1221,41791
 +CDR_SAFE \7f1226,41877
 +STRING_MULTIBYTE \7f1243,42250
 +#define STRING_BYTES_BOUND \7f1261,43057
 +#define STRING_SET_UNIBYTE(\7f1265,43201
 +#define STRING_SET_MULTIBYTE(\7f1275,43516
 +SDATA \7f1286,43830
 +SSDATA \7f1291,43908
 +SREF \7f1297,44037
 +SSET \7f1302,44128
 +SCHARS \7f1307,44242
 +STRING_BYTES \7f1316,44415
 +SBYTES \7f1326,44595
 +STRING_SET_CHARS \7f1331,44681
 +struct vectorlike_header\7f1343,45232
 +struct Lisp_Vector\7f1369,46482
 +    ALIGNOF_STRUCT_LISP_VECTOR\7f1378,46681
 +struct Lisp_Bool_Vector\7f1384,46864
 +bool_vector_size \7f1399,47385
 +bool_vector_data \7f1407,47523
 +bool_vector_uchar_data \7f1413,47617
 +bool_vector_words \7f1421,47803
 +bool_vector_bytes \7f1428,47998
 +bool_vector_bitref \7f1437,48238
 +bool_vector_ref \7f1445,48478
 +bool_vector_set \7f1453,48618
 +    header_size \7f1471,49047
 +    bool_header_size \7f1472,49106
 +    word_size \7f1473,49171
 +AREF \7f1479,49284
 +aref_addr \7f1485,49391
 +ASIZE \7f1491,49501
 +ASET \7f1497,49583
 +gc_aset \7f1504,49742
 +enum { NIL_IS_ZERO \7f1515,50269
 +memclear \7f1520,50464
 +#define VECSIZE(\7f1531,50762
 +#define PSEUDOVECSIZE(\7f1538,51047
 +#define UNSIGNED_CMP(\7f1546,51480
 +#define ASCII_CHAR_P(\7f1552,51734
 +enum CHARTAB_SIZE_BITS\7f1565,52489
 +    CHARTAB_SIZE_BITS_0 \7f1567,52516
 +    CHARTAB_SIZE_BITS_1 \7f1568,52545
 +    CHARTAB_SIZE_BITS_2 \7f1569,52574
 +    CHARTAB_SIZE_BITS_3 \7f1570,52603
 +struct Lisp_Char_Table\7f1575,52672
 +struct Lisp_Sub_Char_Table\7f1606,53752
 +CHAR_TABLE_REF_ASCII \7f1628,54566
 +CHAR_TABLE_REF \7f1648,55113
 +CHAR_TABLE_SET \7f1658,55402
 +struct Lisp_Subr\7f1670,55786
 +enum char_table_specials\7f1692,56798
 +    CHAR_TABLE_STANDARD_SLOTS \7f1697,56993
 +    SUB_CHAR_TABLE_OFFSET \7f1701,57214
 +CHAR_TABLE_EXTRA_SLOTS \7f1707,57377
 +LISP_MACRO_DEFUN \7f1723,57921
 +SYMBOL_BLV \7f1732,58181
 +SYMBOL_FWD \7f1738,58316
 +LISP_MACRO_DEFUN_VOID \7f1744,58428
 +SET_SYMBOL_BLV \7f1754,58691
 +SET_SYMBOL_FWD \7f1760,58850
 +SYMBOL_NAME \7f1767,59001
 +SYMBOL_INTERNED_P \7f1775,59130
 +SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P \7f1783,59299
 +#define DEFSYM(\7f1796,59809
 +LISP_MACRO_DEFUN \7fDEFSYM\ 11792,59630
 +struct hash_table_test\7f1805,60062
 +struct Lisp_Hash_Table\7f1823,60555
 +XHASH_TABLE \7f1880,62531
 +#define XSET_HASH_TABLE(\7f1885,62602
 +HASH_TABLE_P \7f1889,62703
 +HASH_KEY \7f1896,62860
 +HASH_VALUE \7f1903,63040
 +HASH_NEXT \7f1911,63254
 +HASH_HASH \7f1918,63431
 +HASH_INDEX \7f1926,63677
 +HASH_TABLE_SIZE \7f1933,63826
 +enum DEFAULT_HASH_SIZE \7f1940,63956
 +enum DEFAULT_HASH_SIZE { DEFAULT_HASH_SIZE \7f1940,63956
 +static double const DEFAULT_REHASH_THRESHOLD \7f1946,64176
 +static double const DEFAULT_REHASH_SIZE \7f1950,64299
 +sxhash_combine \7f1956,64465
 +SXHASH_REDUCE \7f1964,64648
 +struct Lisp_Misc_Any  \7f1971,64806
 +  ENUM_BF \7f1973,64866
 +struct Lisp_Marker\7f1978,64980
 +  ENUM_BF \7f1980,65001
 +struct Lisp_Overlay\7f2021,66841
 +    ENUM_BF \7f2034,67349
 +    SAVE_UNUSED,\7f2047,67644
 +    SAVE_INTEGER,\7f2048,67661
 +    SAVE_FUNCPOINTER,\7f2049,67679
 +    SAVE_POINTER,\7f2050,67701
 +    SAVE_OBJECT\7f2051,67719
 +enum { SAVE_SLOT_BITS \7f2055,67804
 +enum { SAVE_VALUE_SLOTS \7f2058,67901
 +enum { SAVE_TYPE_BITS \7f2062,68009
 +enum Lisp_Save_Type\7f2064,68075
 +    SAVE_TYPE_INT_INT \7f2066,68099
 +    SAVE_TYPE_INT_INT_INT\7f2067,68172
 +    SAVE_TYPE_OBJ_OBJ \7f2069,68262
 +    SAVE_TYPE_OBJ_OBJ_OBJ \7f2070,68333
 +    SAVE_TYPE_OBJ_OBJ_OBJ_OBJ\7f2071,68414
 +    SAVE_TYPE_PTR_INT \7f2073,68509
 +    SAVE_TYPE_PTR_OBJ \7f2074,68582
 +    SAVE_TYPE_PTR_PTR \7f2075,68654
 +    SAVE_TYPE_FUNCPTR_PTR_OBJ\7f2076,68727
 +    SAVE_TYPE_MEMORY \7f2080,68885
 +typedef void (*voidfuncptr)\7fvoidfuncptr\ 12108,69839
 +struct Lisp_Save_Value\7f2110,69876
 +    ENUM_BF \7f2112,69903
 +save_type \7f2134,70755
 +XSAVE_POINTER \7f2143,70985
 +set_save_pointer \7f2149,71147
 +XSAVE_FUNCPOINTER \7f2155,71329
 +XSAVE_INTEGER \7f2164,71549
 +set_save_integer \7f2170,71711
 +XSAVE_OBJECT \7f2179,71932
 +struct Lisp_Finalizer\7f2186,72109
 +struct Lisp_Free\7f2201,72584
 +    ENUM_BF \7f2203,72605
 +union Lisp_Misc\7f2212,72885
 +XMISC \7f2223,73184
 +XMISCANY \7f2229,73273
 +XMISCTYPE \7f2236,73382
 +XMARKER \7f2242,73470
 +XOVERLAY \7f2249,73585
 +XSAVE_VALUE \7f2256,73706
 +XFINALIZER \7f2263,73835
 +struct Lisp_Intfwd\7f2274,74120
 +struct Lisp_Boolfwd\7f2284,74414
 +struct Lisp_Objfwd\7f2294,74705
 +struct Lisp_Buffer_Objfwd\7f2302,74937
 +struct Lisp_Buffer_Local_Value\7f2334,76473
 +struct Lisp_Kboard_Objfwd\7f2362,77732
 +union Lisp_Fwd\7f2368,77841
 +XFWDTYPE \7f2378,78087
 +XBUFFER_OBJFWD \7f2384,78183
 +struct Lisp_Float\7f2391,78319
 +XFLOAT_DATA \7f2401,78437
 +    IEEE_FLOATING_POINT\7f2415,78946
 +#define _UCHAR_T\7f2423,79269
 +typedef unsigned char UCHAR;\7f2424,79286
 +enum Lisp_Compiled\7f2429,79369
 +    COMPILED_ARGLIST \7f2431,79392
 +    COMPILED_BYTECODE \7f2432,79418
 +    COMPILED_CONSTANTS \7f2433,79445
 +    COMPILED_STACK_DEPTH \7f2434,79473
 +    COMPILED_DOC_STRING \7f2435,79503
 +    COMPILED_INTERACTIVE \7f2436,79532
 +enum char_bits\7f2443,79834
 +    CHAR_ALT \7f2445,79853
 +    CHAR_SUPER \7f2446,79879
 +    CHAR_HYPER \7f2447,79907
 +    CHAR_SHIFT \7f2448,79935
 +    CHAR_CTL \7f2449,79963
 +    CHAR_META \7f2450,79989
 +    CHAR_MODIFIER_MASK \7f2452,80017
 +    CHARACTERBITS \7f2457,80212
 +LISP_MACRO_DEFUN \7f2462,80270
 +NATNUMP \7f2470,80412
 +RANGED_INTEGERP \7f2476,80493
 +#define TYPE_RANGED_INTEGERP(\7f2481,80615
 +LISP_MACRO_DEFUN \7f2486,80800
 +VECTORP \7f2500,81273
 +OVERLAYP \7f2505,81376
 +SAVE_VALUEP \7f2510,81475
 +FINALIZERP \7f2516,81581
 +AUTOLOADP \7f2522,81685
 +BUFFER_OBJFWDP \7f2528,81776
 +PSEUDOVECTOR_TYPEP \7f2534,81874
 +PSEUDOVECTORP \7f2542,82127
 +WINDOW_CONFIGURATIONP \7f2558,82479
 +PROCESSP \7f2564,82589
 +WINDOWP \7f2570,82673
 +TERMINALP \7f2576,82755
 +SUBRP \7f2582,82841
 +COMPILEDP \7f2588,82919
 +BUFFERP \7f2594,83005
 +CHAR_TABLE_P \7f2600,83087
 +SUB_CHAR_TABLE_P \7f2606,83178
 +BOOL_VECTOR_P \7f2612,83277
 +FRAMEP \7f2618,83370
 +IMAGEP \7f2625,83487
 +ARRAYP \7f2632,83592
 +CHECK_LIST \7f2638,83711
 +LISP_MACRO_DEFUN_VOID \7f2643,83792
 +CHECK_STRING_CAR \7f2653,84089
 +CHECK_CONS \7f2658,84193
 +CHECK_VECTOR \7f2663,84273
 +CHECK_BOOL_VECTOR \7f2668,84359
 +CHECK_VECTOR_OR_STRING \7f2674,84536
 +CHECK_ARRAY \7f2683,84710
 +CHECK_BUFFER \7f2688,84818
 +CHECK_WINDOW \7f2693,84904
 +CHECK_PROCESS \7f2699,85010
 +CHECK_NATNUM \7f2705,85106
 +#define CHECK_RANGED_INTEGER(\7f2710,85183
 +#define CHECK_TYPE_RANGED_INTEGER(\7f2721,85566
 +#define CHECK_NUMBER_COERCE_MARKER(\7f2729,85836
 +XFLOATINT \7f2738,86089
 +CHECK_NUMBER_OR_FLOAT \7f2744,86160
 +#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(\7f2749,86259
 +CHECK_NUMBER_CAR \7f2760,86669
 +CHECK_NUMBER_CDR \7f2768,86791
 +#define DEFUN(\7f2803,88386
 +#define DEFUN(\7f2812,88854
 +FUNCTIONP \7f2822,89209
 +enum maxargs\7f2831,89404
 +    MANY \7f2833,89421
 +    UNEVALLED \7f2834,89436
 +#define CALLMANY(\7f2838,89539
 +#define CALLN(\7f2844,89892
 +#define DEFVAR_LISP(\7f2869,91097
 +#define DEFVAR_LISP_NOPRO(\7f2874,91269
 +#define DEFVAR_BOOL(\7f2879,91451
 +#define DEFVAR_INT(\7f2884,91624
 +#define DEFVAR_BUFFER_DEFAULTS(\7f2890,91795
 +#define DEFVAR_KBOARD(\7f2896,91999
 +typedef jmp_buf sys_jmp_buf;\7f2906,92323
 +# define sys_setjmp(\7f2907,92352
 +# define sys_longjmp(\7f2908,92387
 +typedef sigjmp_buf sys_jmp_buf;\7f2910,92459
 +# define sys_setjmp(\7f2911,92491
 +# define sys_longjmp(\7f2912,92531
 +typedef jmp_buf sys_jmp_buf;\7f2916,92690
 +# define sys_setjmp(\7f2917,92719
 +# define sys_longjmp(\7f2918,92753
 +enum specbind_tag \7f2943,93805
 +  SPECPDL_UNWIND,\7f2944,93825
 +  SPECPDL_UNWIND_PTR,\7f2945,93894
 +  SPECPDL_UNWIND_INT,\7f2946,93945
 +  SPECPDL_UNWIND_VOID,\7f2947,93993
 +  SPECPDL_BACKTRACE,\7f2948,94047
 +  SPECPDL_LET,\7f2949,94105
 +  SPECPDL_LET_LOCAL,\7f2951,94235
 +  SPECPDL_LET_DEFAULT \7f2952,94292
 +union specbinding\7f2955,94364
 +    ENUM_BF \7f2957,94386
 +      ENUM_BF \7f2959,94443
 +      ENUM_BF \7f2964,94573
 +      ENUM_BF \7f2969,94696
 +      ENUM_BF \7f2974,94814
 +      ENUM_BF \7f2978,94919
 +      ENUM_BF \7f2983,95094
 +enum handlertype \7f3021,96410
 +enum handlertype { CATCHER,\7f3021,96410
 +enum handlertype { CATCHER, CONDITION_CASE \7f3021,96410
 +struct handler\7f3023,96457
 +#define PUSH_HANDLER(\7f3053,97446
 +#define QUIT  \7f3101,99223
 +#define QUITP \7f3112,99473
 +struct gcpro\7f3132,100316
 +#define GC_USE_GCPROS_AS_BEFORE       \7f3171,101297
 +#define GC_MAKE_GCPROS_NOOPS  \7f3172,101332
 +#define GC_MARK_STACK_CHECK_GCPROS    \7f3173,101364
 +#define GC_USE_GCPROS_CHECK_ZOMBIES   \7f3174,101401
 +#define GC_MARK_STACK \7f3177,101462
 +#define BYTE_MARK_STACK \7f3181,101562
 +#define GCPRO1(\7f3190,101833
 +#define GCPRO2(\7f3191,101873
 +#define GCPRO3(\7f3192,101939
 +#define GCPRO4(\7f3194,102034
 +#define GCPRO5(\7f3196,102154
 +#define GCPRO6(\7f3198,102299
 +#define GCPRO7(\7f3201,102474
 +#define UNGCPRO \7f3202,102553
 +#define GCPRO1(\7f3208,102653
 +#define GCPRO2(\7f3212,102775
 +#define GCPRO3(\7f3217,102967
 +#define GCPRO4(\7f3223,103229
 +#define GCPRO5(\7f3230,103560
 +#define GCPRO6(\7f3238,103961
 +#define GCPRO7(\7f3247,104431
 +#define UNGCPRO \7f3257,104971
 +#define GCPRO1(\7f3263,105065
 +#define GCPRO2(\7f3269,105299
 +#define GCPRO3(\7f3278,105717
 +#define GCPRO4(\7f3289,106274
 +#define GCPRO5(\7f3302,106972
 +#define GCPRO6(\7f3317,107812
 +#define GCPRO7(\7f3334,108793
 +#define UNGCPRO       \7f3353,109916
 +#define RETURN_UNGCPRO(\7f3363,110183
 +vcopy \7f3384,110657
 +set_hash_key_slot \7f3393,110932
 +set_hash_value_slot \7f3399,111071
 +set_symbol_function \7f3408,111306
 +set_symbol_plist \7f3414,111421
 +set_symbol_next \7f3420,111524
 +blv_found \7f3428,111697
 +set_overlay_plist \7f3437,111880
 +string_intervals \7f3445,112031
 +set_string_intervals \7f3453,112153
 +set_char_table_defalt \7f3462,112355
 +set_char_table_purpose \7f3467,112467
 +set_char_table_extras \7f3475,112636
 +set_char_table_contents \7f3482,112845
 +set_sub_char_table_contents \7f3489,113040
 +enum Arith_Comparison \7f3497,113303
 +  ARITH_EQUAL,\7f3498,113327
 +  ARITH_NOTEQUAL,\7f3499,113342
 +  ARITH_LESS,\7f3500,113360
 +  ARITH_GRTR,\7f3501,113374
 +  ARITH_LESS_OR_EQUAL,\7f3502,113388
 +  ARITH_GRTR_OR_EQUAL\7f3503,113411
 +#define INTEGER_TO_CONS(\7f3511,113762
 +#define CONS_TO_INTEGER(\7f3529,114625
 +enum { NEXT_ALMOST_PRIME_LIMIT \7f3573,116329
 +extern EMACS_INT next_almost_prime \7f3574,116368
 +enum constype \7f3739,123820
 +enum constype {CONSTYPE_HEAP,\7fCONSTYPE_HEAP\ 13739,123820
 +enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}\7fCONSTYPE_PURE\ 13739,123820
 +list2i \7f3745,124010
 +list3i \7f3751,124119
 +list4i \7f3757,124258
 +extern Lisp_Object make_formatted_string \7f3767,124634
 +build_pure_c_string \7f3792,125662
 +build_string \7f3801,125867
 +make_uninit_vector \7f3820,126438
 +make_uninit_sub_char_table \7f3833,126657
 +#define ALLOCATE_PSEUDOVECTOR(\7f3850,127201
 +#define ALLOCATE_ZEROED_PSEUDOVECTOR(\7f3858,127537
 +INLINE void \7f3890,128943
 +extern void *r_alloc \7fr_alloc\ 13895,129064
 +#define FLOAT_TO_STRING_BUFSIZE \7f3927,130527
 +intern \7f3968,132134
 +intern_c_string \7f3974,132222
 +extern _Noreturn void error \7f4034,135601
 +fast_string_match_ignore_case \7f4136,140089
 +INLINE void fixup_locale \7f4241,143854
 +INLINE void synchronize_system_messages_locale \7f4242,143889
 +INLINE void synchronize_system_time_locale \7f4243,143946
 +#define IS_DAEMON \7f4257,144419
 +#define DAEMON_RUNNING \7f4258,144459
 +#define IS_DAEMON \7f4261,144558
 +#define DAEMON_RUNNING \7f4262,144603
 +# define WAIT_READING_MAX \7f4281,145422
 +# define WAIT_READING_MAX \7f4283,145494
 +extern _Noreturn void emacs_abort \7f4374,148386
 +egetenv \7f4532,152809
 +#define eabs(\7f4545,153305
 +#define make_fixnum_or_float(\7f4550,153438
 +enum MAX_ALLOCA \7f4556,153689
 +enum MAX_ALLOCA { MAX_ALLOCA \7f4556,153689
 +extern void *record_xmalloc \7frecord_xmalloc\ 14558,153734
 +#define USE_SAFE_ALLOCA       \7f4560,153800
 +#define AVAIL_ALLOCA(\7f4564,153933
 +#define SAFE_ALLOCA(\7f4568,154044
 +#define SAFE_NALLOCA(\7f4576,154385
 +#define SAFE_ALLOCA_STRING(\7f4590,154861
 +#define SAFE_FREE(\7f4598,155113
 +#define SAFE_ALLOCA_LISP(\7f4625,155691
 +# define USE_STACK_LISP_OBJECTS \7f4652,156813
 +# undef USE_STACK_LISP_OBJECTS\7f4658,156979
 +# define USE_STACK_LISP_OBJECTS \7f4659,157010
 +enum { defined_GC_CHECK_STRING_BYTES \7f4663,157085
 +enum { defined_GC_CHECK_STRING_BYTES \7f4665,157138
 +union Aligned_Cons\7f4670,157272
 +union Aligned_String\7f4676,157352
 +    USE_STACK_CONS \7f4689,157707
 +    USE_STACK_STRING \7f4691,157813
 +#define STACK_CONS(\7f4699,158150
 +#define AUTO_CONS_EXPR(\7f4701,158247
 +#define AUTO_CONS(\7f4709,158610
 +#define AUTO_LIST1(\7f4710,158681
 +#define AUTO_LIST2(\7f4712,158789
 +#define AUTO_LIST3(\7f4716,158944
 +#define AUTO_LIST4(\7f4720,159119
 +# define verify_ascii(\7f4732,159510
 +#define AUTO_STRING(\7f4740,159818
 +#define FOR_EACH_TAIL(\7f4752,160282
 +#define FOR_EACH_ALIST_VALUE(\7f4766,160773
 +maybe_gc \7f4774,161060
 +functionp \7f4784,161299
 +\f
 +c-src/machsyscalls.c,23
 +#define       SYSCALL(\7f6,113
 +\f
 +c-src/machsyscalls.h,159
 +SYSCALL (mach_msg_trap,\7f1,0
 +SYSCALL (mach_reply_port,\7f13,314
 +SYSCALL (mach_thread_self,\7f18,377
 +SYSCALL (mach_task_self,\7f23,441
 +SYSCALL (mach_host_self,\7f28,503
 +\f
 +c-src/h.h,1850
 +   ELEM_I/\7fELEM_I\ 13,15
 +} Fails_t;\7f5,85
 +typedef void Lang_function \7f6,96
 +typedef struct tpcmd\7f8,147
 +#define ggg \7f10,170
 +tpcmd;\7f15,209
 +typedef struct foobar2_ \7f16,216
 +} foobar2;\7f20,307
 +    DEVICE_SWP,\7f23,333
 +    DEVICE_LAST\7f24,349
 +} bsp_DevId;\7f25,365
 +  struct constant_args \7f27,394
 +} args;\7f30,457
 +typedef int *regset;\7fregset\ 131,465
 +typedef int INT;\7f32,486
 +typedef union abc\7f33,503
 +} ghi1;\7f36,534
 +typedef union abc \7f37,542
 +} ghi2;\7f39,573
 +typedef struct a \7f40,581
 +} b;\7f41,600
 +#define c(\7f42,605
 +typedef struct an_extern_linkage *an_extern_linkage_ptr;\7fan_extern_linkage_ptr\ 143,619
 +typedef struct an_extern_linkage \7f44,676
 +} an_extern_linkage;\7f56,1054
 +typedef struct pollfd   pfdset[\7fpfdset\ 157,1075
 +typedef union rtunion_def\7f58,1119
 +  } womboid \7f63,1206
 +typedef union rtunion_def\7f64,1220
 +womboid\7f75,1330
 +enum {dog,\7fdog\ 181,1416
 +enum {dog, cat}\7fcat\ 181,1416
 +enum {dog, cat} animals;\7f81,1416
 +typedef void (_CALLBACK_ *signal_handler)\7fsignal_handler\ 182,1441
 +typedef void (_CALLBACK_ *signal_handler1)\7fsignal_handler1\ 183,1489
 +/* comment */ #define ANSIC\7f84,1538
 + #define ANSIC\7f85,1566
 +typedef void (proc)\7f87,1588
 +typedef void OperatorFun(\7f88,1612
 +typedef int f(\7f89,1648
 +struct my_struct \7f91,1691
 +typedef struct my_struct my_typedef;\7f93,1713
 +typedef RETSIGTYPE (*signal_handler_t)\7fsignal_handler_t\ 194,1750
 +  Date 04 May 87 235311 PDT \7f96,1802
 +typedef unsigned char unchar;\7f99,1880
 +typedef int X,\7f100,1910
 +typedef int X, Y,\7f100,1910
 +typedef int X, Y, Z;\7f100,1910
 +typedef mio mao;\7f101,1931
 +typedef struct a \7f103,1966
 +typedef struct a { } b;\7f103,1966
 +typedef struct b\7f104,1990
 +} c;\7f106,2009
 +int extvar;\7f109,2053
 +#define tag1\7f110,2065
 +#define aaaaaa \7f111,2078
 +#define bbbbbb\\7fbbbbbb\ 1113,2102
 +#define cccccccccc\7f115,2125
 +#define enter_critical_section        \7f116,2144
 +#define exit_critical_to_previous     \7f117,2199
 +#define UNDEFINED\7f118,2259
 +struct re_pattern_buffer \7f119,2277
 +\f
 +cp-src/c.C,2094
 +template <typename ipc3dIslandHierarchy,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType, unsigned numOfChannels,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType, unsigned numOfChannels, typename ipc3dLinkControl,\7f1,0
 +class CMultiChannelCSC19_3D\7f2,151
 +        void execute(\7f11,493
 +int main \7f25,1026
 +double base \7f26,1088
 +typedef struct s1 \7f32,1251
 +} t1;\7f34,1287
 +struct s2 \7f35,1293
 +typedef struct s2 t2;\7f38,1324
 +class A \7f39,1346
 +  enum { rosso,\7f40,1356
 +  enum { rosso, giallo,\7f40,1356
 +  enum { rosso, giallo, verde \7f40,1356
 +const A& A::operator+(\7foperator+\ 143,1431
 +void operator+(\7f44,1467
 +void operator -(\7foperator -\ 145,1495
 +void operator int(\7foperator int\ 146,1524
 +A<int>* f(\7f48,1556
 +int f(\7f49,1571
 +int A<int>::f(\7ff\ 150,1590
 +A<float,B<int> > A<B<float>,int>::f(\7ff\ 151,1618
 +template <class C, int n> class AT \7f52,1668
 +class AU \7f53,1716
 +class B<\7fB\ 154,1735
 +class B<int> { void f(\7f54,1735
 +const A::B::T& abt \7f55,1766
 +class A \7f56,1792
 +class A { class B \7f56,1792
 +class A \7f57,1827
 +  A operator+(\7f59,1861
 +is_muldiv_operation(\7f61,1888
 +domain foo \7f68,1956
 +     void f(\7f69,1969
 +void A::A(\7fA\ 172,1990
 +struct A \7f73,2005
 +struct B \7f74,2023
 +void B::B(\7fB\ 175,2042
 +void BE_Node::BE_Node(\7fBE_Node\ 176,2057
 +class BE_Node \7f77,2084
 +struct foo \7f79,2103
 +class test \7f86,2157
 +  int f(\7f87,2170
 +  int ff(\7f89,2232
 +  int g(\7f90,2255
 +class AST_Root \7f92,2279
 +AST_ConcreteType::AST_ConcreteType(\7f99,2394
 +AST_Array::AST_Array(\7f107,2533
 +     void f(\7f115,2734
 +struct A \7f117,2754
 +A::~A(\7f~A\ 1120,2778
 +struct B \7f122,2790
 +    ~B(\7f123,2801
 +enum {dog,\7fdog\ 1126,2818
 +enum {dog, cat}\7fcat\ 1126,2818
 +enum {dog, cat} animals;\7f126,2818
 +struct {int teats;} cow;\7f127,2843
 +class Boo \7f129,2869
 +    enum {dog,\7fdog\ 1130,2881
 +    enum {dog, cat}\7fcat\ 1130,2881
 +    foo(\7f133,2955
 +    Boo(\7f137,2996
 +Boo::Boo(\7f141,3071
 +typedef int should_see_this_one_enclosed_in_extern_C;\7f149,3156
 +typedef int (*should_see_this_function_pointer)\7fshould_see_this_function_pointer\ 1153,3229
 +typedef int should_see_this_array_type[\7fshould_see_this_array_type\ 1156,3311
 +\f
 +cp-src/x.cc,63
 +class XX\7f1,0
 +XX::foo(\7ffoo\ 19,60
 +XX::bar(\7fbar\ 115,95
 +main(\7f21,126
 +\f
 +cp-src/burton.cpp,124
 +::dummy::dummy test::dummy1(\7fdummy1\ 11,0
 +::dummy::dummy test::dummy2(\7fdummy2\ 16,64
 +::dummy::dummy test::dummy3(\7fdummy3\ 111,143
 +\f
 +cp-src/functions.cpp,778
 +void Date::setDate \7fsetDate\ 15,148
 +void Date::plus \7fplus\ 132,939
 +void Date::minus \7fminus\ 142,1229
 +void Date::shift \7fshift\ 152,1407
 +Date & Date::operator = \7foperator =\ 162,1628
 +Date & Date::operator += \7foperator +=\ 169,1789
 +Date & Date::operator -= \7foperator -=\ 178,1939
 +Date & Date::operator ++ \7foperator ++\ 187,2080
 +Date & Date::operator -- \7foperator --\ 196,2216
 +int Date::operator - \7foperator -\ 1104,2331
 +int Date::operator < \7foperator <\ 1112,2483
 +int Date::operator > \7foperator >\ 1116,2557
 +int Date::operator == \7foperator ==\ 1120,2631
 +ostream& operator << \7foperator <<\ 1124,2707
 +istream& operator >> \7foperator >>\ 1133,2943
 +bool isLeap \7f159,3543
 +bool isHoliday \7f163,3629
 +void asort(\7f173,3865
 +void ReadVacation \7f186,4064
 +void Debug \7f201,4523
 +int WorkingDays(\7f211,4867
 +Date StartDay(\7f226,5129
 +\f
 +cp-src/MDiagArray2.h,482
 +#define octave_MDiagArray2_h \7f29,870
 +#undef LTGT\7f35,967
 +#define LTGT\7f39,1031
 +#define LTGT \7f42,1051
 +class MDiagArray2 \7f78,2022
 +  MDiagArray2 \7f82,2077
 +  MDiagArray2 \7f86,2154
 +  MDiagArray2 \7f87,2198
 +  MDiagArray2 \7f88,2254
 +  MDiagArray2 \7f89,2329
 +  MDiagArray2 \7f90,2387
 +  MDiagArray2 \7f91,2450
 +  ~MDiagArray2 \7f93,2515
 +  MDiagArray2<T>& operator = \7foperator =\ 195,2542
 +  operator MArray2<T> \7foperator MArray2<T>\ 1101,2667
 +#undef LTGT\7f144,3874
 +#define INSTANTIATE_MDIAGARRAY_FRIENDS(\7f146,3887
 +\f
 +cp-src/Range.h,275
 +#define octave_Range_h \7f24,765
 +Range\7f35,891
 +  Range \7f39,909
 +  Range \7f42,995
 +  Range \7f46,1130
 +  Range \7f50,1248
 +  double base \7f54,1376
 +  double limit \7f55,1425
 +  double inc \7f56,1475
 +  int nelem \7f57,1523
 +  void set_base \7f68,1728
 +  void set_limit \7f69,1774
 +  void set_inc \7f70,1821
 +\f
 +cp-src/screen.cpp,228
 +unsigned char cursor_x,\7f15,548
 +unsigned char cursor_x, cursor_y;\7f15,548
 +static union REGS regs;\7f16,582
 +void goto_xy(\7f18,607
 +void hide_cursor(\7f27,774
 +void cursor_position(\7f32,836
 +void clear_screen(\7f41,997
 +void write_xyc(\7f55,1247
 +\f
 +cp-src/screen.hpp,414
 +#define __COLORS\7f9,401
 +enum COLORS \7f11,419
 +    BLACK,\7f12,433
 +    BLUE,\7f13,471
 +    GREEN,\7f14,481
 +    CYAN,\7f15,492
 +    RED,\7f16,502
 +    MAGENTA,\7f17,511
 +    BROWN,\7f18,524
 +    LIGHTGRAY,\7f19,535
 +    DARKGRAY,\7f20,550
 +    LIGHTBLUE,\7f21,589
 +    LIGHTGREEN,\7f22,604
 +    LIGHTCYAN,\7f23,620
 +    LIGHTRED,\7f24,635
 +    LIGHTMAGENTA,\7f25,649
 +    YELLOW,\7f26,667
 +    WHITE\7f27,679
 +#define SCREEN_FP(\7f31,700
 +#define SCREEN_START \7f33,795
 +\f
 +cp-src/conway.cpp,288
 +#define max(\7f12,357
 +#define min(\7f13,393
 +const int num_rows \7f15,430
 +const int num_columns \7f16,470
 +class site *field_of_play[\7ffield_of_play\ 118,499
 +int site::total_surrounding(\7ftotal_surrounding\ 120,550
 +void display(\7f37,958
 +void glider(\7f50,1239
 +void traffic_light(\7f59,1478
 +void main(\7f67,1633
 +\f
 +cp-src/conway.hpp,164
 +class site:\7fsite\ 15,235
 +    site(\7f10,344
 +    char read(\7f12,410
 +    void set(\7f13,444
 +    void clear(\7f14,478
 +    void compute_next_state(\7f15,514
 +    void step(\7f22,717
 +\f
 +cp-src/clheir.cpp,359
 +const int max_num_generic_objects \7f9,298
 +generic_object * object_registry[\7fobject_registry\ 110,340
 +void init_registry(\7f12,400
 +void step_everybody(\7f19,527
 +void discrete_location::clear_neighbors(\7fclear_neighbors\ 131,852
 +generic_object::generic_object(\7fgeneric_object\ 136,981
 +generic_object::~generic_object(\7f~generic_object\ 148,1255
 +void agent::move(\7fmove\ 153,1353
 +\f
 +cp-src/clheir.hpp,423
 +class generic_object\7f13,520
 +    virtual void compute_next_state(\7f21,843
 +    virtual void step(\7f22,889
 +const int max_num_directions \7f31,1220
 +class location:\7flocation\ 133,1290
 +    location(\7f43,1643
 +class irregular_location:\7firregular_location\ 147,1687
 +    irregular_location(\7f51,1763
 +class discrete_location:\7fdiscrete_location\ 156,1890
 +    discrete_location(\7f62,2045
 +    void assign_neighbor(\7f66,2185
 +class agent:\7fagent\ 175,2509
 +\f
 +cp-src/fail.C,294
 +struct A \7f7,263
 +         struct B \7f8,274
 +                 struct C \7f9,289
 +                         C(\7f11,318
 +                         operator int(\7foperator int\ 112,342
 +                 typedef C T;\7f14,389
 +         typedef B T2;\7f16,414
 +class A \7f23,453
 +      class B \7f24,463
 +              class C \7f25,474
 +              int f(\7f26,488
 +int A::B::f(\7ff\ 131,521
 +main(\7f37,571
 +      class D \7f41,622
 +              D(\7f43,659
 +\f
 +el-src/TAGTEST.EL,148
 +(foo::defmumble bletch \7f1,0
 +(defalias 'pending-delete-mode \7fpending-delete-mode\ 15,102
 +(defalias (quote explicitly-quoted-pending-delete-mode)\7f8,175
 +\f
 +el-src/emacs/lisp/progmodes/etags.el,5069
 +(defvar tags-file-name \7f34,1034
 +(defgroup etags \7f43,1498
 +(defcustom tags-case-fold-search \7f47,1566
 +(defcustom tags-table-list \7f59,2051
 +(defcustom tags-compression-info-list\7f69,2449
 +(defcustom tags-add-tables \7f88,3231
 +(defcustom tags-revert-without-query \7f98,3627
 +(defvar tags-table-computed-list \7f103,3778
 +(defvar tags-table-computed-list-for \7f112,4262
 +(defvar tags-table-list-pointer \7f117,4510
 +(defvar tags-table-list-started-at \7f121,4701
 +(defvar tags-table-set-list \7f124,4821
 +(defcustom find-tag-hook \7f129,5000
 +(defcustom find-tag-default-function \7f137,5263
 +(define-obsolete-variable-alias 'find-tag-marker-ring-length\7ffind-tag-marker-ring-length\ 1145,5602
 +(defcustom tags-tag-face \7f148,5699
 +(defcustom tags-apropos-verbose \7f154,5834
 +(defcustom tags-apropos-additional-actions \7f160,5998
 +(defvaralias 'find-tag-marker-ring \7ffind-tag-marker-ring\ 1183,6917
 +(defvar default-tags-table-function \7f189,7097
 +(defvar tags-location-ring \7f194,7323
 +(defvar tags-table-files \7f201,7599
 +(defvar tags-completion-table \7f206,7766
 +(defvar tags-included-tables \7f209,7858
 +(defvar next-file-list \7f212,7953
 +(defvar tags-table-format-functions \7f217,8059
 +(defvar file-of-tag-function \7f224,8440
 +(defvar tags-table-files-function \7f228,8634
 +(defvar tags-completion-table-function \7f230,8745
 +(defvar snarf-tag-function \7f232,8840
 +(defvar goto-tag-location-function \7f236,9049
 +(defvar find-tag-regexp-search-function \7f239,9222
 +(defvar find-tag-regexp-tag-order \7f241,9343
 +(defvar find-tag-regexp-next-line-after-failure-p \7f243,9452
 +(defvar find-tag-search-function \7f245,9572
 +(defvar find-tag-tag-order \7f247,9679
 +(defvar find-tag-next-line-after-failure-p \7f249,9774
 +(defvar list-tags-function \7f251,9880
 +(defvar tags-apropos-function \7f253,9968
 +(defvar tags-included-tables-function \7f255,10062
 +(defvar verify-tags-table-function \7f257,10181
 +(defun initialize-new-tags-table \7f260,10292
 +(defun tags-table-mode \7f276,10980
 +(defun visit-tags-table \7f285,11245
 +(defun tags-table-check-computed-list \7f321,12783
 +(defun tags-table-extend-computed-list \7f360,14654
 +(defun tags-expand-table-name \7f400,16367
 +(defun tags-table-list-member \7f409,16710
 +(defun tags-verify-table \7f421,17182
 +(defun tags-table-including \7f470,19302
 +(defun tags-next-table \7f522,21346
 +(defun visit-tags-table-buffer \7f543,22203
 +(defun tags-reset-tags-tables \7f712,28513
 +(defun file-of-tag \7f731,29170
 +(defun tags-table-files \7f740,29519
 +(defun tags-included-tables \7f749,29869
 +(defun tags-completion-table \7f755,30115
 +(defun tags-lazy-completion-table \7f783,31309
 +(defun tags-completion-at-point-function \7f799,31944
 +(defun find-tag-tag \7f818,32694
 +(defvar last-tag \7f837,33367
 +(defun find-tag-interactive \7f840,33426
 +(defvar find-tag-history \7f852,33841
 +(defun find-tag-noselect \7f860,34011
 +(defun find-tag \7f932,37125
 +(defun find-tag-other-window \7f959,38341
 +(defun find-tag-other-frame \7f1000,40269
 +(defun find-tag-regexp \7f1025,41443
 +(defalias 'pop-tag-mark \7fpop-tag-mark\ 11049,42605
 +(defvar tag-lines-already-matched \7f1052,42656
 +(defun find-tag-in-order \7f1055,42763
 +(defun tag-find-file-of-tag-noselect \7f1167,47109
 +(defun tag-find-file-of-tag \7f1200,48955
 +(defun etags-recognize-tags-table \7f1208,49181
 +(defun etags-verify-tags-table \7f1241,50812
 +(defun etags-file-of-tag \7f1246,51010
 +(defun etags-tags-completion-table \7f1256,51345
 +(defun etags-snarf-tag \7f1286,52551
 +(defun etags-goto-tag-location \7f1324,54120
 +(defun etags-list-tags \7f1388,56563
 +(defmacro tags-with-face \7f1423,57838
 +(defun etags-tags-apropos-additional \7f1431,58171
 +(defun etags-tags-apropos \7f1465,59408
 +(defun etags-tags-table-files \7f1527,61617
 +(defun etags-tags-included-tables \7f1542,62053
 +(defun tags-recognize-empty-tags-table \7f1559,62593
 +(defun tag-exact-file-name-match-p \7f1587,63739
 +(defun tag-file-name-match-p \7f1596,64132
 +(defun tag-exact-match-p \7f1609,64688
 +(defun tag-implicit-name-match-p \7f1620,65256
 +(defun tag-symbol-match-p \7f1633,65856
 +(defun tag-word-match-p \7f1643,66292
 +(defun tag-partial-file-name-match-p \7f1652,66690
 +(defun tag-any-match-p \7f1662,67134
 +(defun tag-re-match-p \7f1667,67318
 +(defcustom tags-loop-revert-buffers \7f1675,67567
 +(defun next-file \7f1685,67976
 +(defvar tags-loop-operate \7f1760,70890
 +(defvar tags-loop-scan\7f1763,70984
 +(defun tags-loop-eval \7f1771,71313
 +(defun tags-loop-continue \7f1782,71642
 +(defun tags-search \7f1850,73948
 +(defun tags-query-replace \7f1871,74774
 +(defun tags-complete-tags-table-file \7f1896,75998
 +(defun list-tags \7f1906,76377
 +(defun tags-apropos \7f1934,77330
 +(define-button-type 'tags-select-tags-table\7ftags-select-tags-table\ 11957,78156
 +(defun select-tags-table \7f1964,78395
 +(defvar select-tags-table-mode-map \7f2019,80522
 +(define-derived-mode select-tags-table-mode \7f2030,80905
 +(defun select-tags-table-select \7f2034,81089
 +(defun select-tags-table-quit \7f2043,81455
 +(defun complete-tag \7f2049,81610
 +(defconst etags--xref-limit \7f2074,82551
 +(defvar etags-xref-find-definitions-tag-order \7f2076,82586
 +(defun etags-xref-find \7f2082,82876
 +(defun etags--xref-find-definitions \7f2096,83405
 +(defclass xref-etags-location \7f2129,85119
 +(defun xref-make-etags-location \7f2135,85342
 +(cl-defmethod xref-location-marker \7f2139,85497
 +(cl-defmethod xref-location-line \7f2146,85741
 +\f
 +erl-src/gs_dialog.erl,98
 +-define(VERSION\7f2,32
 +behaviour_info(\7f51,2177
 +show(\7f124,5458
 +dialog_loop(\7f219,9529
 +test(\7f252,10806
 +\f
 +f-src/entry.for,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +f-src/entry.strange_suffix,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +f-src/entry.strange,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +forth-src/test-forth.fth,408
 +: a-forth-word \7f20,301
 +99 constant a-forth-constant!\7f22,343
 +55 value a-forth-value?\7f23,373
 +create :a-forth-dictionary-entry\7f24,397
 +defer #a-defer-word\7f27,460
 +: (another-forth-word)\7f(another-forth-word\ 129,481
 +   9   field   >field1\7f36,582
 +   5   field   >field2\7f37,605
 +constant (a-forth-constant\7f(a-forth-constant\ 138,628
 +2000 buffer: #some-storage\7f41,657
 +code assemby-code-word \7f43,685
 +: a-forth-word \7f50,870
 +\f
 +go-src/test.go,48
 +package main\7f1,0
 +func say(\7f5,28
 +func main(\7f9,72
 +\f
 +go-src/test1.go,119
 +package main\7f1,0
 +func (s str) PrintAdd(\7f17,136
 +func (n intNumber) PrintAdd(\7f21,189
 +func test(\7f25,248
 +func main(\7f29,285
 +\f
 +html-src/softwarelibero.html,200
 +Cos'è il software libero?\7f4,38
 +Licenze d'uso di un programma\7flicenze\ 165,2500
 +Sfatiamo alcuni miti\7f138,6118
 +Il movimento open source\7foss\ 1191,8037
 +Impatto pratico del software libero\7fimpatto\ 1231,10066
 +\f
 +html-src/index.shtml,104
 +&nbsp;\7f8,281
 +In evidenza\7f15,447
 +Comunicati e iniziative\7f32,976
 +Ultime notizie dall'associazione\7f63,2030
 +\f
 +html-src/algrthms.html,467
 +Tutorial on Convolutional Coding with Viterbi Decoding--Description of the Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and Quantizing Algorithms\7f7,277
 +Description\7falgorithms\ 110,481
 +Generating the Data\7fgenalgorithm\ 148,1995
 +Convolutionally\7fconalgorithm\ 155,2512
 +Next\7fstatetable\ 1262,11587
 +Output\7foutputtable\ 1350,13915
 +Mapping the Channel Symbols\7fmapping\ 1433,16213
 +Adding Noise to the\7faddnoise\ 1439,16607
 +Quantizing the Received\7fquantizing\ 1469,19100
 +\f
 +html-src/software.html,439
 +Francesco Potortì Software Page\7f9,280
 +Software that I wrote for supporting my research activity\7fsimulation\ 136,1398
 +MTG\7fmtg\ 141,1482
 +Fracas\7ffracas\ 165,2624
 +GaliLEO\7fgalileo\ 1101,4232
 +Leasqr\7fleasqr\ 1114,4677
 +Free software that I wrote for the GNU project or for my personal or work\7fgnu\ 1142,6065
 +Etags\7fetags\ 1148,6180
 +checkiso\7f161,6729
 +cgrep\7f178,7547
 +debian-bug.el\7fdebian-bug\ 1190,7979
 +tcpdump\7f205,8564
 +Links to interesting software\7flinks\ 1216,8891
 +\f
 +lua-src/allegro.lua,400
 +local function get_layer_by_name \7f7,175
 +local function count_layers \7f33,621
 +function GetLayerByName \7f54,980
 +function GetUniqueLayerName \7f65,1204
 +function SelectLayer \7f76,1415
 +function NewLayer \7f86,1773
 +function NewLayerSet \7f144,3226
 +function RemoveLayer \7f170,3750
 +function MoveLayerTop \7f211,4767
 +function MoveLayerBottom \7f223,5079
 +function MoveLayerBefore \7f236,5457
 +function MoveLayerAfter \7f258,6090
 +\f
 +lua-src/test.lua,442
 +function Rectangle.getPos \7f2,15
 +function Rectangle.getPos \7fgetPos\ 12,15
 +function Circle.getPos \7f6,61
 +function Circle.getPos \7fgetPos\ 16,61
 +function Cube.data.getFoo \7f10,102
 +function Cube.data.getFoo \7fgetFoo\ 110,102
 +function Square.something:Bar \7f14,148
 +function Square.something:Bar \7fBar\ 114,148
 +   function test.me_22a(\7f22,241
 +   function test.me_22a(\7fme_22a\ 122,241
 +   local function test.me22b \7f25,297
 +   local function test.me22b \7fme22b\ 125,297
 +\f
 +make-src/Makefile,2175
 +LATEST=\7f1,0
 +RELEASELIST=\7f2,10
 +ADASRC=\7f4,104
 +ASRC=\7f5,171
 +CSRC=\7f6,197
 +CPSRC=\7f10,423
 +ELSRC=\7f13,614
 +ERLSRC=\7f14,661
 +FORTHSRC=\7f15,702
 +FSRC=\7f16,726
 +HTMLSRC=\7f17,776
 +JAVASRC=\7f18,844
 +LUASRC=\7f19,907
 +MAKESRC=\7f20,926
 +OBJCSRC=\7f21,943
 +OBJCPPSRC=\7f22,999
 +PASSRC=\7f23,1035
 +PERLSRC=\7f24,1053
 +PHPSRC=\7f25,1108
 +PSSRC=\7f26,1156
 +PROLSRC=\7f27,1173
 +PYTSRC=\7f28,1210
 +TEXSRC=\7f29,1227
 +YSRC=\7f30,1282
 +SRCS=\7f31,1325
 +NONSRCS=\7f35,1577
 +VHDLFLAGS=\7f37,1624
 +COBOLFLAGS=\7f38,1827
 +POSTSCRIPTFLAGS=\7f39,1889
 +TCLFLAGS=\7f40,1943
 +GETOPTOBJS=\7f42,2002
 +RXINCLUDE=\7f43,2034
 +REGEXOBJS=\7f44,2056
 +CHECKOBJS=\7f46,2075
 +CHECKFLAGS=\7f47,2105
 +OBJS=\7f48,2145
 +CPPFLAGS=\7f49,2190
 +LDFLAGS=\7f50,2259
 +WARNINGS=\7f51,2282
 +CFLAGS=\7f52,2466
 +FASTCFLAGS=\7f55,2530
 +FASTCFLAGSWARN=\7f56,2591
 +FILTER=\7f58,2641
 +REGEX=\7f59,2695
 +xx=\7f60,2741
 +MAKE:\7fMAKE\ 162,2790
 +RUN=\7f63,2825
 +RUN=\7f64,2865
 +OPTIONS=\7f65,2870
 +ARGS=\7f66,2922
 +infiles \7f68,2940
 +quiettest:\7fquiettest\ 170,3002
 +test:\7ftest\ 179,3409
 +${CHECKOBJS}:\7f${CHECKOBJS}\ 188,3805
 +checker:\7fchecker\ 190,3849
 +standalone:\7fstandalone\ 196,4062
 +prof:\7fprof\ 1101,4168
 +fastetags:\7ffastetags\ 1104,4198
 +fastctags:\7ffastctags\ 1108,4322
 +staticetags:\7fstaticetags\ 1112,4446
 +rsynctofly:\7frsynctofly\ 1116,4608
 +rsyncfromfly:\7frsyncfromfly\ 1119,4698
 +web ftp publish:\7fweb ftp publish\ 1122,4794
 +release distrib:\7frelease distrib\ 1129,5115
 +tags:\7ftags\ 1134,5255
 +clean:\7fclean\ 1136,5267
 +srclist:\7fsrclist\ 1139,5302
 +regexfile:\7fregexfile\ 1143,5391
 +/home/www/pub/etags.c.gz:\7f/home/www/pub/etags.c.gz\ 1149,5566
 +/home/www/pub/software/unix/etags.tar.gz:\7f/home/www/pub/software/unix/etags.tar.gz\ 1156,5825
 +regex.o:\7fregex.o\ 1159,6031
 +getopt.o:\7fgetopt.o\ 1162,6086
 +getopt1.o:\7fgetopt1.o\ 1165,6147
 +etags:\7fetags\ 1168,6210
 +ctags:\7fctags\ 1171,6299
 +man manpage:\7fman manpage\ 1174,6396
 +etags.1.man:\7fetags.1.man\ 1176,6422
 +maintaining.info:\7fmaintaining.info\ 1179,6475
 +TAGS:\7fTAGS\ 1182,6557
 +%ediff:\7f%ediff\ 1185,6587
 +oediff:\7foediff\ 1188,6677
 +%cdiff:\7f%cdiff\ 1191,6764
 +xdiff:\7fxdiff\ 1194,6854
 +ETAGS:\7fETAGS\ 1197,6942
 +ETAGS%:\7fETAGS%\ 1200,7012
 +ETAGS13 ETAGS14 ETAGS15:\7fETAGS13 ETAGS14 ETAGS15\ 1203,7084
 +ETAGS12:\7fETAGS12\ 1206,7216
 +OTAGS:\7fOTAGS\ 1209,7304
 +CTAGS:\7fCTAGS\ 1212,7369
 +CTAGS%:\7fCTAGS%\ 1215,7443
 +CTAGS13 CTAGS14 CTAGS15:\7fCTAGS13 CTAGS14 CTAGS15\ 1218,7545
 +EXTAGS:\7fEXTAGS\ 1221,7680
 +.PRECIOUS:\7f.PRECIOUS\ 1224,7838
 +FRC:\7fFRC\ 1226,7894
 +\f
 +objc-src/Subprocess.h,98
 +#define Subprocess \7f41,1217
 +#define BUFFERSIZE \7f43,1267
 +@interface Subprocess:\7fSubprocess\ 145,1292
 +\f
 +objc-src/Subprocess.m,446
 +#define       PTY_TEMPLATE \7f20,494
 +#define       PTY_LENGTH \7f21,528
 +@interface Subprocess(Private)\7f32,737
 +- childDidExit\7f39,851
 +- fdHandler:\7ffdHandler\ 167,1589
 +showError \7f98,2360
 +fdHandler \7f112,2785
 +getptys \7f119,2907
 +- init:\7finit\ 1183,4815
 +    andStdErr:\7finit\ 1197,5147
 +- send:(const char *)string withNewline:\7fsend\ 1300,7436
 +- send:\7fsend\ 1308,7599
 +- terminateInput\7f314,7689
 +- terminate:\7fterminate\ 1321,7810
 +- setDelegate:\7fsetDelegate\ 1332,7961
 +- delegate\7f338,8031
 +\f
 +objc-src/PackInsp.h,109
 +#define NUMSTATS      \7f36,1101
 +#define TYPESTOSTAT   \7f37,1120
 +@interface PackageInspector:\7fPackageInspector\ 139,1172
 +\f
 +objc-src/PackInsp.m,1322
 +static const char RCSid[\7fRCSid\ 130,1032
 +#define VERSION       \7f34,1116
 +#   define DEBUG \7f37,1155
 +#define LISTCONTENTS  \7f39,1181
 +#define OPENBUTTON    \7f47,1352
 +#define LISTCONTENTSBUTTON    \7f48,1449
 +#define LISTDESCRIPTIONBUTTON \7f49,1562
 +#define STATE_UNINSTALLED     \7f52,1687
 +#define STATE_INSTALLED       \7f53,1807
 +#define STATE_COMPRESSD       \7f54,1948
 +#define SIZEFORMAT    \7f57,2152
 +#define KBYTES        \7f58,2362
 +#define MBYTES        \7f59,2473
 +#define LOCALIZE(\7f61,2585
 +#define LOCALIZE_ARCH(\7f62,2668
 ++new\7fnew\ 167,2802
 +-showInfo:\7fshowInfo\ 193,3417
 +-revert:\7frevert\ 1107,3737
 +-ok:\7fok\ 1136,4297
 +-load\7fload\ 1143,4424
 +#define LOOKUP(\7f156,4826
 +#undef LOOKUP\7f176,5694
 +-loadKeyValuesFrom:(const char *)type inTable:\7floadKeyValuesFrom\ 1186,5852
 +-loadContentsOf:(const char *)type inTable:\7floadContentsOf\ 1238,7079
 +-loadImage\7floadImage\ 1257,7552
 +#define STAT_EQ(\7f275,7940
 +-(BOOL)shouldLoad\7f280,8116
 +-toggleDescription\7ftoggleDescription\ 1301,8626
 +-(const char *)getPath:(char *)buf forType:\7fgetPath\ 1317,8899
 +-setRevertButtonTitle\7fsetRevertButtonTitle\ 1333,9320
 +-(const char *)formatSize:(const char *)size inBuf:\7fformatSize\ 1344,9525
 +#define WORKING       \7f368,10045
 +-(void)getArchs\7f370,10100
 +-(void)addArchs:\7faddArchs\ 1385,10520
 +-subprocess:(Subprocess *)sender output:\7fsubprocess\ 1428,11351
 +-subprocessDone:\7fsubprocessDone\ 1436,11484
 +static void openInWorkspace(\7f446,11634
 +-open:\7fopen\ 1464,12063
 +\f
 +objcpp-src/SimpleCalc.H,41
 +@interface SimpleCalc:\7fSimpleCalc\ 114,400
 +\f
 +objcpp-src/SimpleCalc.M,445
 +- init\7f52,1747
 +- appendToDisplay:\7fappendToDisplay\ 160,1933
 +- registerAction:\7fregisterAction\ 170,2210
 +- decimalKey:\7fdecimalKey\ 177,2348
 +- numberKeys:\7fnumberKeys\ 191,2661
 +- equalsKey:\7fequalsKey\ 1112,3192
 +- operationKeys:\7foperationKeys\ 1131,3680
 +- clearKey:\7fclearKey\ 1153,4301
 +- clearAllKey:\7fclearAllKey\ 1160,4410
 +- appDidInit:\7fappDidInit\ 1168,4591
 +- windowWillClose:\7fwindowWillClose\ 1178,4882
 +- infoPanel:\7finfoPanel\ 1186,5132
 +- helpPanel:\7fhelpPanel\ 1198,5482
 +\f
 +pas-src/common.pas,1875
 +procedure InitializeStringPackage;\7f26,527
 +function newtextstring;\7f34,874
 +procedure disposetextstring;\7f52,1404
 +function ConcatT;\7f78,2066
 +function AppendTextString;\7f112,3238
 +function CopyTextString;\7f132,3947
 +procedure CONVERT_CHARSTRING_TO_VALUE;\7f151,4505
 +procedure append_string;\7f172,5166
 +function To_Upper;\7f186,5462
 +function To_Lower;\7f194,5617
 +function EmptyNmStr(\7f209,6213
 +function chartonmstr;\7f219,6436
 +function LowerCaseNmStr;\7f230,6682
 +function concatenatenamestrings;\7f242,7007
 +procedure writenamestring;\7f263,7517
 +function IsControlChar;\7f277,7928
 +function namestringequal;\7f283,8079
 +function NameStringLess;\7f302,8539
 +function IsControlCharName(\7f343,9710
 +function SubString;\7f358,10208
 +function SkipChars;\7f379,10791
 +function RemoveUnderlineControl;\7f397,11311
 +procedure First100Chars;\7f427,12162
 +procedure SkipSpaces;\7f462,13298
 +function SkipBlanks;\7f477,13782
 +function stripname;\7f505,14595
 +function Locate;\7f522,15039
 +function NameHasChar;\7f543,15581
 +function integertonmstr;\7f561,16134
 +function NmStrToInteger;\7f585,16901
 +function AddNullToNmStr;\7f600,17317
 +function ValToNmStr;\7f611,17585
 +function ChangeFileType;\7f625,18037
 +function StripPath;\7f647,18734
 +function ReprOfChar;\7f675,19343
 +procedure ExtractCommentInfo;\7f702,20749
 +procedure INSERT_TREE_NODE;\7f784,24053
 +function GetNameList;\7f920,27926
 +procedure DisposeANameList(\7f925,28010
 +procedure DisposeNameList;\7f938,28340
 +function GetNewNameListNode;\7f943,28409
 +function insertname;\7f972,29051
 +procedure InitNameList;\7f988,29471
 +procedure InitNameStringPool;\7f998,29767
 +procedure NewNameString;\7f1004,29867
 +procedure ReleaseNameString;\7f1022,30232
 +procedure SDTrefStringToRec \7f1045,30741
 +procedure SDTrefSkipSpaces;\7f1059,31092
 +function SDTrefIsEnd \7f1070,31323
 +function SDTrefGetInteger \7f1082,31529
 +procedure SDTrefRecToString \7f1303,37546
 +function NmStrToErrStr;\7f1497,42305
 +function ErrStrToNmStr;\7f1509,42557
 +function GetTextRef;\7f1529,43112
 +\f
 +php-src/lce_functions.php,2152
 +  define("LCE_FUNCTIONS"\7fLCE_FUNCTIONS\ 14,38
 +  define("LCE_UNKNOWN"\7fLCE_UNKNOWN\ 19,145
 +  define("LCE_WS"\7fLCE_WS\ 111,194
 +  define("LCE_COMMENT"\7fLCE_COMMENT\ 113,244
 +  define("LCE_COMMENT_USER"\7fLCE_COMMENT_USER\ 115,303
 +  define("LCE_COMMENT_TOOL"\7fLCE_COMMENT_TOOL\ 117,366
 +  define("LCE_MSGID"\7fLCE_MSGID\ 119,430
 +  define("LCE_MSGSTR"\7fLCE_MSGSTR\ 121,488
 +  define("LCE_TEXT"\7fLCE_TEXT\ 123,541
 +  define("STATE_ABORT"\7fSTATE_ABORT\ 125,567
 +  define("STATE_OK"\7fSTATE_OK\ 126,595
 +  define("STATE_LOOP"\7fSTATE_LOOP\ 127,620
 +  class POEntryAD \7f29,648
 +      function validate(\7f31,683
 +      function checkQuotation(\7f59,1384
 +  class CommentAD \7f70,1639
 +      function CommentAD(\7f73,1693
 +      function validate(\7f83,1944
 +  class POEntry \7f105,2410
 +      function POEntry(\7f119,2711
 +      function lineCount(\7f135,3255
 +      function serializeToVars(\7f141,3365
 +      function write(\7f151,3800
 +  class POReader \7f163,4178
 +      function gettext(\7f177,4457
 +      function parseFromVars(\7f189,4705
 +      function serializeToVars(\7f215,5331
 +      function POReader(\7f229,5613
 +      function read(\7f243,5983
 +      function write(\7f259,6307
 +      function isComment(\7f277,6645
 +      function comment(\7f284,6822
 +      function msgid(\7f304,7247
 +      function msgstr(\7f320,7574
 +      function start(\7f340,8232
 +      function createPOEntries(\7f360,8644
 +      function stripLine(\7f394,9472
 +      function printClassification(\7f421,10056
 +      function classifyLine(\7f432,10301
 +  function getTextDomains(\7f471,11094
 +  class PORManager \7f498,11756
 +      function PORManager(\7f502,11822
 +      function addPOReader(\7f507,11896
 +      function &getPOReader(\7fgetPOReader\ 1512,11992
 +      function getDomainNames(\7f517,12081
 +  function &loadPORManager(\7floadPORManager\ 1523,12174
 +  function fileJoin(\7f536,12436
 +      function lce_bindtextdomain(\7f557,12839
 +      function lce_textdomain(\7f614,14530
 +      function lce_gettext(\7f620,14641
 +      function lce_dgettext(\7f626,14767
 +      function lce(\7f634,14966
 +      function lce_bindtextdomain(\7f651,15488
 +      function lce_textdomain(\7f656,15592
 +      function lce_gettext(\7f661,15674
 +      function lce_dgettext(\7f666,15755
 +      function lce(\7f670,15855
 +  function lce_geteditcode(\7f676,15898
 +\f
 +php-src/ptest.php,46
 +define("TEST"\7fTEST\ 11,0
 +test \7f4,26
 +foo(\7f16,200
 +\f
- sub read_toc \7fmain::read_toc\ 1165,3917
++perl-src/htlmify-cystic,1197
 +my @section_name;\7fsection_name\ 112,236
 +my @appendix_name;\7fappendix_name\ 113,254
 +my @section_toc;\7fsection_toc\ 115,274
 +my @appendix_toc;\7fappendix_toc\ 116,291
 +my $new_tag \7fnew_tag\ 118,310
 +my $appendix;\7fappendix\ 124,409
 +my $section;\7fsection\ 125,423
 +my $subsection;\7fsubsection\ 126,436
 +my $subsubsection;\7fsubsubsection\ 127,452
 +my $this_file_toc \7fthis_file_toc\ 129,472
 +my %file_tocs;\7ffile_tocs\ 130,496
 +my @output_files \7foutput_files\ 132,512
 +my $file_index \7ffile_index\ 133,535
 +my $output_file;\7foutput_file\ 135,556
 +my $line;\7fline\ 137,574
 +my $subsection_marker;\7fsubsection_marker\ 1161,3883
 +my $new;\7fnew\ 1163,3907
- sub finish_subsubsections \7fmain::finish_subsubsections\ 1302,7805
- sub finish_subsections \7fmain::finish_subsections\ 1309,7987
- sub finish_sections \7fmain::finish_sections\ 1320,8310
- sub finish_appendices \7fmain::finish_appendices\ 1331,8599
- sub section_url_base \7fmain::section_url_base\ 1337,8724
- sub section_url_name \7fmain::section_url_name\ 1342,8922
- sub section_url \7fmain::section_url\ 1355,9284
++sub read_toc \7f165,3917
 +        my $entry \7fentry\ 1218,5621
 +        my $entry \7fentry\ 1234,6077
 +            my $entry \7fentry\ 1245,6351
 +        my $entry \7fentry\ 1252,6536
 +        my $entry \7fentry\ 1268,7010
 +            my $entry \7fentry\ 1276,7204
 +        my $entry \7fentry\ 1281,7328
 +      my $entry \7fentry\ 1296,7698
- sub section_href \7fmain::section_href\ 1364,9452
- sub section_name \7fmain::section_name\ 1368,9551
- sub toc_line \7fmain::toc_line\ 1372,9655
- sub file_end \7fmain::file_end\ 1375,9750
++sub finish_subsubsections \7f302,7805
++sub finish_subsections \7f309,7987
++sub finish_sections \7f320,8310
++sub finish_appendices \7f331,8599
++sub section_url_base \7f337,8724
++sub section_url_name \7f342,8922
++sub section_url \7f355,9284
 +  my $name \7fname\ 1357,9336
- perl-src/yagrip.pl,258
- sub getopt \7fmain::getopt\ 17,156
++sub section_href \7f364,9452
++sub section_name \7f368,9551
++sub toc_line \7f372,9655
++sub file_end \7f375,9750
 +\f
- sub usage \7fmain::usage\ 138,856
++perl-src/yagrip.pl,233
++sub getopt \7f7,156
 +      local($_,$flag,$opt,$f,$r,@temp)\7f($_,$flag,$opt,$f,$r,@temp\ 18,169
- perl-src/kai-test.pl,244
- sub f1 \7fmain::f1\ 12,16
- sub main::f2 \7f6,50
++sub usage \7f38,856
 +      local($prog,$_,@list)\7f($prog,$_,@list\ 139,868
 +      local($string,$flag,@string,@temp,@last)\7f($string,$flag,@string,@temp,@last\ 140,897
 +\f
- sub f3 \7fFoo::f3\ 112,104
- sub Bar::f4 \7f16,138
++perl-src/kai-test.pl,203
++sub f1 \7f2,16
++sub main::f2 \7ff2\ 16,50
 +package Foo;\7f10,90
- sub f5 \7fBar::f5\ 122,191
++sub f3 \7f12,104
++sub Bar::f4 \7ff4\ 116,138
 +package Bar;\7f20,177
- sub f6 \7fFoo::Bar::f6\ 128,244
++sub f5 \7f22,191
 +package Foo::Bar;\7f26,225
- sub f7 \7fmain::f7\ 134,293
++sub f6 \7f28,244
 +package main;\7f32,278
++sub f7 \7f34,293
 +\f
 +ps-src/rfc1245.ps,2478
 +/FMversion \7f12,311
 +/FrameDict \7f17,500
 +/FMVERSION \7f47,1307
 +/FMLOCAL \7f56,1494
 +/FMDOCUMENT \7f73,1766
 +/FMBEGINPAGE \7f95,2279
 +/FMENDPAGE \7f109,2516
 +/FMDEFINEFONT \7f115,2582
 +/FMNORMALIZEGRAPHICS \7f126,2725
 +/FMBEGINEPSF \7f142,2955
 +/FMENDEPSF \7f153,3207
 +/setmanualfeed \7f158,3283
 +/max \7f163,3386
 +/min \7f164,3426
 +/inch \7f165,3466
 +/pagedimen \7f166,3485
 +/setpapername \7f172,3629
 +/papersize \7f190,4214
 +/manualpapersize \7f211,4789
 +/desperatepapersize \7f230,5211
 +/savematrix \7f239,5370
 +/restorematrix \7f242,5425
 +/dmatrix \7f245,5475
 +/dpi \7f246,5495
 +/freq \7f248,5583
 +/sangle \7f249,5658
 +/DiacriticEncoding \7f250,5717
 +/.notdef \7f251,5738
 +/.notdef \7f252,5801
 +/.notdef \7f253,5864
 +/.notdef \7f254,5927
 +/.notdef \7f255,5990
 +/numbersign \7f256,6051
 +/parenright \7f257,6115
 +/two \7f258,6184
 +/less \7f259,6251
 +/L \7f260,6320
 +/bracketright \7f261,6389
 +/i \7f262,6459
 +/braceright \7f263,6529
 +/Ntilde \7f264,6598
 +/atilde \7f265,6668
 +/iacute \7f266,6733
 +/ocircumflex \7f267,6797
 +/udieresis \7f268,6858
 +/paragraph \7f269,6919
 +/dieresis \7f270,6983
 +/yen \7f271,7050
 +/ordfeminine \7f272,7109
 +/exclamdown \7f273,7171
 +/guillemotleft \7f274,7230
 +/Otilde \7f275,7296
 +/quoteleft \7f276,7357
 +/fraction \7f277,7420
 +/periodcentered \7f278,7490
 +/Acircumflex \7f279,7549
 +/Icircumflex \7f280,7610
 +/Uacute \7f281,7680
 +/breve \7f282,7746
 +/ReEncode \7f284,7814
 +/graymode \7f300,8020
 +/setpattern \7f310,8184
 +/grayness \7f331,8725
 +/normalize \7f394,9873
 +/dnormalize \7f397,9942
 +/lnormalize \7f400,10014
 +/H \7f403,10104
 +/Z \7f406,10147
 +/X \7f409,10176
 +/V \7f412,10219
 +/N \7f415,10260
 +/M \7f418,10286
 +/E \7f419,10315
 +/D \7f420,10336
 +/O \7f421,10358
 +/L \7f423,10394
 +/Y \7f430,10489
 +/R \7f439,10588
 +/RR \7f450,10696
 +/C \7f467,10959
 +/U \7f473,11004
 +/F \7f477,11039
 +/T \7f481,11084
 +/RF \7f484,11115
 +/TF \7f488,11164
 +/P \7f495,11219
 +/PF \7f499,11270
 +/S \7f506,11344
 +/SF \7f510,11384
 +/B \7f517,11446
 +/BF \7f521,11505
 +/W \7f538,11714
 +/G \7f573,12382
 +/A \7f582,12525
 +/BEGINPRINTCODE \7f606,12918
 +/ENDPRINTCODE \7f615,13131
 +/gn \7f620,13259
 +/cfs \7f631,13384
 +/ic \7f636,13473
 +/ms \7f658,14285
 +/ip \7f668,14395
 +/wh \7f678,14492
 +/bl \7f684,14607
 +/s1 \7f690,14722
 +/fl \7f691,14739
 +/hx \7f698,14887
 +/wbytes \7f709,15055
 +/BEGINBITMAPBWc \7f713,15147
 +/BEGINBITMAPGRAYc \7f716,15198
 +/BEGINBITMAP2BITc \7f719,15251
 +/COMMONBITMAPc \7f722,15304
 +/BEGINBITMAPBW \7f739,15660
 +/BEGINBITMAPGRAY \7f742,15709
 +/BEGINBITMAP2BIT \7f745,15760
 +/COMMONBITMAP \7f748,15811
 +/Fmcc \7f765,16156
 +/ngrayt \7f773,16371
 +/nredt \7f774,16393
 +/nbluet \7f775,16414
 +/ngreent \7f776,16436
 +/colorsetup \7f787,16603
 +/fakecolorsetup \7f814,17370
 +/BITMAPCOLOR \7f826,17636
 +/BITMAPCOLORc \7f839,17926
 +/BITMAPGRAY \7f855,18275
 +/BITMAPGRAYc \7f858,18335
 +/ENDBITMAP \7f861,18397
 +/fillprocs \7f868,18497
 +\f
 +prol-src/ordsets.prolog,525
 +is_ordset(\7f47,1310
 +list_to_ord_set(\7f63,1688
 +ord_add_element(\7f71,1867
 +ord_del_element(\7f85,2344
 +ord_disjoint(\7f100,2783
 +ord_intersect(\7f108,2953
 +ord_intersection(\7f126,3552
 +ord_intersection3(\7f130,3691
 +ord_intersection(\7f150,4531
 +ord_intersection4(\7f154,4703
 +ord_intersection(\7f176,5664
 +ord_intersection2(\7f181,5812
 +ord_member(\7f200,6318
 +ord_seteq(\7f216,6683
 +ord_setproduct(\7f225,6971
 +ord_subset(\7f240,7377
 +ord_subtract(\7f257,7861
 +ord_symdiff(\7f265,8054
 +ord_union(\7f288,8887
 +ord_union4(\7f303,9352
 +ord_union(\7f324,10171
 +ord_union_all(\7f329,10313
 +\f
 +prol-src/natded.prolog,2319
 +expandmng(\7f100,2879
 +normalize(\7f116,3359
 +fresh_vars(\7f125,3716
 +subst(\7f138,4134
 +normalize_fresh(\7f159,4660
 +reduce_subterm(\7f171,5112
 +reduce(\7f185,5559
 +free_var(\7f196,5903
 +free_for(\7f209,6246
 +compile_lex(\7f231,6875
 +consult_lex:-\7fconsult_lex\ 1248,7384
 +lex(\7f259,7754
 +expandsyn(\7f267,8068
 +bas_syn(\7f292,8897
 +compile_empty:-\7fcompile_empty\ 1310,9376
 +complete(\7f328,10055
 +add_active(\7f340,10527
 +parse(\7f353,10949
 +derived_analyses(\7f364,11341
 +build(\7f378,11965
 +buildact(\7f392,12521
 +mapsyn(\7f412,13542
 +add_edge(\7f434,14278
 +findcats(\7f447,14758
 +normalize_tree(\7f465,15478
 +normalize_trees(\7f475,15856
 +expandmng_tree(\7f486,16248
 +expandmng_trees(\7f496,16614
 +cat(\7f511,17013
 +subtree(\7f644,21266
 +hypothetical_mem(\7f653,21565
 +make_coor(\7f667,22130
 +start_up:-\7fstart_up\ 1688,23013
 +tokenizeatom(\7f710,23921
 +tokenize(\7f720,24348
 +isoperator(\7f752,25377
 +isoptab(\7f756,25431
 +specialsymbol(\7f765,25756
 +sstab(\7f771,25861
 +parse_cgi(\7f787,26347
 +keyvalseq(\7f792,26510
 +andkeyvalseq(\7f796,26609
 +keyval(\7f799,26688
 +valseq(\7f807,26920
 +plusvalseq(\7f810,27007
 +val(\7f816,27109
 +argvals(\7f824,27426
 +commaargvals(\7f828,27503
 +atomval(\7f833,27578
 +atom(\7f836,27640
 +action(\7f846,28004
 +keyvalcgi(\7f864,28649
 +keyvalscgi(\7f865,28670
 +outsyn(\7f868,28726
 +act(\7f876,29060
 +actout(\7f901,29906
 +texttreelist(\7f912,30089
 +htmltreelist(\7f918,30190
 +fitchtreelist(\7f924,30304
 +pp_html_table_tree(\7f938,30759
 +pp_html_tree(\7f949,31113
 +pp_html_trees(\7f988,32381
 +pp_html_table_fitch_tree(\7f999,32769
 +pp_html_fitch_tree(\7f1017,33672
 +removeexp(\7f1129,39002
 +splitexp(\7f1142,39490
 +pp_exp(\7f1155,39990
 +map_word(\7f1168,40249
 +pp_exps(\7f1180,40474
 +pp_tree(\7f1188,40777
 +pp_trees(\7f1216,41807
 +pp_word_list(\7f1225,42128
 +pp_word(\7f1231,42262
 +pp_word_list_rest(\7f1238,42569
 +pp_cat(\7f1248,42929
 +pp_syn(\7f1255,43196
 +pp_syn_paren(\7f1276,43899
 +pp_paren(\7f1293,44377
 +pp_syn_back(\7f1300,44661
 +pp_bas_cat(\7f1311,45001
 +writecat(\7f1322,45409
 +writesubs(\7f1351,46455
 +writesups(\7f1361,46757
 +writelistsubs(\7f1371,47090
 +pp_lam(\7f1380,47408
 +pp_lam_bracket(\7f1398,48022
 +pp_lam_paren(\7f1407,48338
 +pp_rule(\7f1429,49238
 +member(\7f1447,49866
 +append_list(\7f1451,49919
 +append(\7f1456,50010
 +at_least_one_member(\7f1460,50076
 +numbervars(\7f1464,50171
 +reverse(\7f1467,50209
 +select(\7f1471,50290
 +select_last(\7f1475,50357
 +cat_atoms(\7f1479,50436
 +writelist(\7f1485,50524
 +write_lex_cat(\7f1492,50676
 +writebreaklex(\7f1500,50988
 +write_lex(\7f1513,51265
 +writebreak(\7f1521,51541
 +tt:-\7ftt\ 11531,51713
 +mt:-\7fmt\ 11534,51784
 +cmt:-\7fcmt\ 11537,51878
 +\f
 +pyt-src/server.py,1438
 +class Controls:\7fControls\ 117,358
 +    def __init__(\7f18,374
 +    def __repr__(\7f24,590
 +    def __str__(\7f34,871
 +class Server:\7fServer\ 137,934
 +    def __init__(\7f38,948
 +    def dump(\7f73,2198
 +    def __repr__(\7f125,3896
 +    def __str__(\7f128,3945
 +class User:\7fUser\ 1131,4014
 +    def __init__(\7f132,4026
 +    def __repr__(\7f172,5445
 +    def __str__(\7f206,6883
 +def flag2str(\7f223,7212
 +class LabeledEntry(\7f232,7442
 +    def bind(\7f234,7525
 +    def focus_set(\7f236,7584
 +    def __init__(\7f238,7629
 +def ButtonBar(\7f245,7909
 +def helpwin(\7f255,8280
 +class ListEdit(\7f267,8707
 +    def __init__(\7f269,8808
 +    def handleList(\7f303,10042
 +    def handleNew(\7f306,10094
 +    def editItem(\7f314,10426
 +    def deleteItem(\7f320,10596
 +def ConfirmQuit(\7f326,10760
 +class ControlEdit(\7f375,12377
 +    def PostControls(\7f376,12403
 +    def GatherControls(\7f421,13530
 +class ServerEdit(\7f512,16264
 +    def __init__(\7f513,16289
 +    def post(\7f525,16629
 +    def gather(\7f543,17191
 +    def nosave(\7f547,17304
 +    def save(\7f551,17408
 +    def refreshPort(\7f556,17509
 +    def createWidgets(\7f561,17663
 +    def edituser(\7f631,20708
 +class UserEdit(\7f645,20921
 +    def __init__(\7f646,20944
 +    def post(\7f658,21283
 +    def gather(\7f676,21841
 +    def nosave(\7f680,21950
 +    def save(\7f684,22052
 +    def createWidgets(\7f689,22151
 +class Configure(\7f760,24879
 +    def __init__(\7f761,24916
 +    def MakeDispose(\7f772,25211
 +    def MakeSitelist(\7f786,25706
 +    def editsite(\7f794,25949
 +    def save(\7f797,26022
 +    def nosave(\7f807,26310
 +\f
 +ruby-src/test.rb,637
 +module ModuleExample\7f1,0
 +    class ClassExample\7f2,21
 +        def instance_method\7f3,44
 +        def ClassExample.class_method\7fclass_method\ 16,121
 +        def instance_method_exclamation!\7f9,206
 +        def instance_method_question?\7f12,310
 +        def instance_method_equals=\7finstance_method_equals=\ 115,408
 +        def `(\7f18,502
 +        def +(\7f21,592
 +        def [](\7f24,640
 +        def []=(\7f[]=\ 127,690
 +        def <<(\7f30,752
 +        def ==(\7f==\ 133,802
 +        def <=(\7f<=\ 136,872
 +        def <=>(\7f<=>\ 139,943
 +        def ===(\7f===\ 142,990
 +    def module_instance_method\7f46,1051
 +    def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 +\f
 +ruby-src/test1.ru,935
 +class A\7f1,0
 + def a(\7f2,8
 + def b(\7f5,38
 +module A\7f9,57
 +  class B\7f10,66
 +    ABC \7f11,76
 +    Def_ \7f12,88
 +    Xyzzy \7f13,106
 +    def foo!\7f15,121
 +    def self._bar?(\7f_bar?\ 118,143
 +      def qux=(\7fqux=\ 122,194
 +    attr_reader :foo\7ffoo\ 126,233
 +    attr_reader :read1 \7fread1\ 127,254
 +    attr_reader :read1 , :read2;\7fread2\ 127,254
 +    attr_reader :read1 , :read2; attr_writer :write1,\7fwrite1=\ 127,254
 +    attr_reader :read1 , :read2; attr_writer :write1, :write2\7fwrite2=\ 127,254
 +    attr_writer :bar,\7fbar=\ 128,316
 +                :baz,\7fbaz=\ 129,338
 +                :more\7fmore=\ 130,360
 +    attr_accessor :tee\7ftee\ 131,382
 +    attr_accessor :tee\7ftee=\ 131,382
 +    alias_method :qux,\7fqux\ 132,405
 +    alias_method :xyz,\7fxyz\ 133,456
 +                 :tee ; attr_reader :subtle\7fsubtle\ 134,479
 +    attr_reader(:foo1,\7ffoo1\ 135,523
 +    attr_reader(:foo1, :bar1,\7fbar1\ 135,523
 +                :qux1)\7fqux1\ 136,563
 +    alias_method ( :foo2,\7ffoo2\ 137,586
 +A::Constant \7fConstant\ 142,655
 +\f
 +tex-src/testenv.tex,52
 +\newcommand{\nm}\7f\nm\ 14,77
 +\section{blah}\7fblah\ 18,139
 +\f
 +tex-src/gzip.texi,303
 +@node Top,\7f62,2139
 +@node Copying,\7f80,2652
 +@node Overview,\7f83,2705
 +@node Sample,\7f166,7272
 +@node Invoking gzip,\7fInvoking gzip\ 1210,8828
 +@node Advanced usage,\7fAdvanced usage\ 1357,13495
 +@node Environment,\7f420,15207
 +@node Tapes,\7f437,15768
 +@node Problems,\7f460,16767
 +@node Concept Index,\7fConcept Index\ 1473,17287
 +\f
 +tex-src/texinfo.tex,30627
 +\def\texinfoversion{\7f\texinfoversion\ 126,1027
 +\def\tie{\7f\tie\ 149,1518
 +\def\gloggingall{\7f\gloggingall\ 172,2268
 +\def\loggingall{\7f\loggingall\ 173,2337
 +\def\onepageout#1{\7f\onepageout\ 199,3274
 +\def\croppageout#1{\7f\croppageout\ 1115,4024
 +\def\cropmarks{\7f\cropmarks\ 1142,5084
 +\def\pagebody#1{\7f\pagebody\ 1144,5131
 +\def\ewtop{\7f\ewtop\ 1157,5586
 +\def\nstop{\7f\nstop\ 1158,5650
 +\def\ewbot{\7f\ewbot\ 1160,5733
 +\def\nsbot{\7f\nsbot\ 1161,5797
 +\def\parsearg #1{\7f\parsearg\ 1170,6096
 +\def\parseargx{\7f\parseargx\ 1172,6174
 +\def\parseargline{\7f\parseargline\ 1182,6414
 +\def\flushcr{\7f\flushcr\ 1186,6535
 +\newif\ifENV \ENVfalse \def\inENV{\7f\inENV\ 1190,6734
 +\def\ENVcheck{\7f\ENVcheck\ 1191,6798
 +\outer\def\begin{\7f\begin\ 1198,7045
 +\def\beginxxx #1{\7f\beginxxx\ 1200,7083
 +\def\end{\7f\end\ 1208,7338
 +\def\endxxx #1{\7f\endxxx\ 1210,7366
 +\def\errorE#1{\7f\errorE\ 1216,7555
 +\def\singlespace{\7f\singlespace\ 1222,7749
 +\def\@{\7f\@\ 1232,7972
 +\def\`{\7f\`\ 1236,8072
 +\def\'{\7f\'\ 1237,8084
 +\def\mylbrace {\7f\mylbrace\ 1241,8132
 +\def\myrbrace {\7f\myrbrace\ 1242,8165
 +\def\:{\7f\:\ 1247,8279
 +\def\*{\7f\*\ 1250,8333
 +\def\.{\7f\.\ 1253,8409
 +\def\w#1{\7f\w\ 1258,8640
 +\def\group{\7f\group\ 1268,9123
 +  \def\Egroup{\7f\Egroup\ 1273,9287
 +\def\need{\7f\need\ 1289,9729
 +\def\needx#1{\7f\needx\ 1300,10006
 +\def\dots{\7f\dots\ 1339,11392
 +\def\page{\7f\page\ 1343,11456
 +\def\exdent{\7f\exdent\ 1353,11783
 +\def\exdentyyy #1{\7f\exdentyyy\ 1354,11816
 +\def\nofillexdent{\7f\nofillexdent\ 1357,11960
 +\def\nofillexdentyyy #1{\7f\nofillexdentyyy\ 1358,12005
 +\def\include{\7f\include\ 1365,12189
 +\def\includezzz #1{\7f\includezzz\ 1366,12224
 +\def\thisfile{\7f\thisfile\ 1369,12275
 +\def\center{\7f\center\ 1373,12338
 +\def\centerzzz #1{\7f\centerzzz\ 1374,12371
 +\def\sp{\7f\sp\ 1380,12513
 +\def\spxxx #1{\7f\spxxx\ 1381,12538
 +\def\comment{\7f\comment\ 1387,12712
 +\def\commentxxx #1{\7f\commentxxx\ 1390,12809
 +\def\ignoresections{\7f\ignoresections\ 1396,12978
 +\let\chapter=\relax\7f=\relax\ 1397,13000
 +\let\section=\relax\7f=\relax\ 1406,13245
 +\let\subsection=\relax\7f=\relax\ 1409,13306
 +\let\subsubsection=\relax\7f=\relax\ 1410,13329
 +\let\appendix=\relax\7f=\relax\ 1411,13355
 +\let\appendixsec=\relax\7fsec=\relax\ 1412,13376
 +\let\appendixsection=\relax\7fsection=\relax\ 1413,13400
 +\let\appendixsubsec=\relax\7fsubsec=\relax\ 1414,13428
 +\let\appendixsubsection=\relax\7fsubsection=\relax\ 1415,13455
 +\let\appendixsubsubsec=\relax\7fsubsubsec=\relax\ 1416,13486
 +\let\appendixsubsubsection=\relax\7fsubsubsection=\relax\ 1417,13516
 +\def\ignore{\7f\ignore\ 1423,13618
 +\long\def\ignorexxx #1\end ignore{\7f\ignorexxx\ 1427,13758
 +\def\direntry{\7f\direntry\ 1429,13817
 +\long\def\direntryxxx #1\end direntry{\7f\direntryxxx\ 1430,13856
 +\def\ifset{\7f\ifset\ 1434,13966
 +\def\ifsetxxx #1{\7f\ifsetxxx\ 1436,14024
 +\def\Eifset{\7f\Eifset\ 1440,14151
 +\def\ifsetfail{\7f\ifsetfail\ 1441,14165
 +\long\def\ifsetfailxxx #1\end ifset{\7f\ifsetfailxxx\ 1442,14221
 +\def\ifclear{\7f\ifclear\ 1444,14282
 +\def\ifclearxxx #1{\7f\ifclearxxx\ 1446,14344
 +\def\Eifclear{\7f\Eifclear\ 1450,14475
 +\def\ifclearfail{\7f\ifclearfail\ 1451,14491
 +\long\def\ifclearfailxxx #1\end ifclear{\7f\ifclearfailxxx\ 1452,14551
 +\def\set{\7f\set\ 1456,14702
 +\def\setxxx #1{\7f\setxxx\ 1457,14729
 +\def\clear{\7f\clear\ 1460,14791
 +\def\clearxxx #1{\7f\clearxxx\ 1461,14822
 +\def\iftex{\7f\iftex\ 1466,14939
 +\def\Eiftex{\7f\Eiftex\ 1467,14952
 +\def\ifinfo{\7f\ifinfo\ 1468,14966
 +\long\def\ifinfoxxx #1\end ifinfo{\7f\ifinfoxxx\ 1469,15016
 +\long\def\menu #1\end menu{\7f\menu\ 1471,15075
 +\def\asis#1{\7f\asis\ 1472,15104
 +\def\math#1{\7f\math\ 1485,15647
 +\def\node{\7f\node\ 1487,15691
 +\def\nodezzz#1{\7f\nodezzz\ 1488,15729
 +\def\nodexxx[#1,#2]{\7f\nodexxx[\ 1489,15760
 +\def\donoderef{\7f\donoderef\ 1492,15822
 +\def\unnumbnoderef{\7f\unnumbnoderef\ 1496,15943
 +\def\appendixnoderef{\7f\appendixnoderef\ 1500,16074
 +\expandafter\expandafter\expandafter\appendixsetref{\7fsetref\ 1501,16120
 +\let\refill=\relax\7fill=\relax\ 1504,16209
 +\def\setfilename{\7f\setfilename\ 1509,16423
 +\outer\def\bye{\7f\bye\ 1518,16669
 +\def\inforef #1{\7f\inforef\ 1520,16725
 +\def\inforefzzz #1,#2,#3,#4**{\7f\inforefzzz\ 1521,16763
 +\def\losespace #1{\7f\losespace\ 1523,16860
 +\def\sf{\7f\sf\ 1532,17064
 +\font\defbf=cmbx10 scaled \magstep1 %was 1314\7fbf=cmbx10\ 1558,17859
 +\font\deftt=cmtt10 scaled \magstep1\7ftt=cmtt10\ 1559,17905
 +\def\df{\7f\df\ 1560,17941
 +\def\resetmathfonts{\7f\resetmathfonts\ 1635,20535
 +\def\textfonts{\7f\textfonts\ 1648,21124
 +\def\chapfonts{\7f\chapfonts\ 1653,21339
 +\def\secfonts{\7f\secfonts\ 1658,21555
 +\def\subsecfonts{\7f\subsecfonts\ 1663,21760
 +\def\indexfonts{\7f\indexfonts\ 1668,21977
 +\def\smartitalicx{\7f\smartitalicx\ 1691,22709
 +\def\smartitalic#1{\7f\smartitalic\ 1692,22785
 +\let\cite=\smartitalic\7f=\smartitalic\ 1698,22930
 +\def\b#1{\7f\b\ 1700,22954
 +\def\t#1{\7f\t\ 1703,22989
 +\def\samp #1{\7f\samp\ 1706,23141
 +\def\key #1{\7f\key\ 1707,23174
 +\def\ctrl #1{\7f\ctrl\ 1708,23235
 +\def\tclose#1{\7f\tclose\ 1716,23437
 +\def\ {\7f\\ 1720,23603
 +\def\xkey{\7f\xkey\ 1728,23872
 +\def\kbdfoo#1#2#3\par{\7f\kbdfoo\ 1729,23888
 +\def\dmn#1{\7f\dmn\ 1738,24189
 +\def\kbd#1{\7f\kbd\ 1740,24216
 +\def\l#1{\7f\l\ 1742,24273
 +\def\r#1{\7f\r\ 1744,24302
 +\def\sc#1{\7f\sc\ 1746,24370
 +\def\ii#1{\7f\ii\ 1747,24413
 +\def\titlefont#1{\7f\titlefont\ 1755,24646
 +\def\titlepage{\7f\titlepage\ 1761,24749
 +   \def\subtitlefont{\7f\subtitlefont\ 1766,24976
 +   \def\authorfont{\7f\authorfont\ 1768,25060
 +   \def\title{\7f\title\ 1774,25270
 +   \def\titlezzz##1{\7f\titlezzz\ 1775,25305
 +   \def\subtitle{\7f\subtitle\ 1783,25620
 +   \def\subtitlezzz##1{\7f\subtitlezzz\ 1784,25661
 +   \def\author{\7f\author\ 1787,25779
 +   \def\authorzzz##1{\7f\authorzzz\ 1788,25816
 +   \def\page{\7f\page\ 1794,26107
 +\def\Etitlepage{\7f\Etitlepage\ 1804,26276
 +\def\finishtitlepage{\7f\finishtitlepage\ 1817,26664
 +\def\evenheading{\7f\evenheading\ 1846,27672
 +\def\oddheading{\7f\oddheading\ 1847,27715
 +\def\everyheading{\7f\everyheading\ 1848,27756
 +\def\evenfooting{\7f\evenfooting\ 1850,27802
 +\def\oddfooting{\7f\oddfooting\ 1851,27845
 +\def\everyfooting{\7f\everyfooting\ 1852,27886
 +\def\headings #1 {\7f\headings\ 1893,29578
 +\def\HEADINGSoff{\7f\HEADINGSoff\ 1895,29627
 +\def\HEADINGSdouble{\7f\HEADINGSdouble\ 1904,30054
 +\def\HEADINGSsingle{\7f\HEADINGSsingle\ 1914,30374
 +\def\HEADINGSon{\7f\HEADINGSon\ 1922,30595
 +\def\HEADINGSafter{\7f\HEADINGSafter\ 1924,30629
 +\def\HEADINGSdoublex{\7f\HEADINGSdoublex\ 1926,30724
 +\def\HEADINGSsingleafter{\7f\HEADINGSsingleafter\ 1933,30912
 +\def\HEADINGSsinglex{\7f\HEADINGSsinglex\ 1934,30973
 +\def\today{\7f\today\ 1943,31248
 +\def\thistitle{\7f\thistitle\ 1958,31793
 +\def\settitle{\7f\settitle\ 1959,31818
 +\def\settitlezzz #1{\7f\settitlezzz\ 1960,31855
 +\def\internalBitem{\7f\internalBitem\ 1992,32785
 +\def\internalBitemx{\7f\internalBitemx\ 1993,32835
 +\def\internalBxitem "#1"{\7f\internalBxitem\ 1995,32880
 +\def\internalBxitemx "#1"{\7f\internalBxitemx\ 1996,32960
 +\def\internalBkitem{\7f\internalBkitem\ 1998,33035
 +\def\internalBkitemx{\7f\internalBkitemx\ 1999,33087
 +\def\kitemzzz #1{\7f\kitemzzz\ 11001,33134
 +\def\xitemzzz #1{\7f\xitemzzz\ 11004,33236
 +\def\itemzzz #1{\7f\itemzzz\ 11007,33339
 +\def\item{\7f\item\ 11037,34410
 +\def\itemx{\7f\itemx\ 11038,34461
 +\def\kitem{\7f\kitem\ 11039,34514
 +\def\kitemx{\7f\kitemx\ 11040,34567
 +\def\xitem{\7f\xitem\ 11041,34622
 +\def\xitemx{\7f\xitemx\ 11042,34675
 +\def\description{\7f\description\ 11045,34785
 +\def\table{\7f\table\ 11047,34835
 +\def\ftable{\7f\ftable\ 11052,34979
 +\def\Eftable{\7f\Eftable\ 11056,35125
 +\def\vtable{\7f\vtable\ 11059,35194
 +\def\Evtable{\7f\Evtable\ 11063,35340
 +\def\dontindex #1{\7f\dontindex\ 11066,35409
 +\def\fnitemindex #1{\7f\fnitemindex\ 11067,35429
 +\def\vritemindex #1{\7f\vritemindex\ 11068,35474
 +\def\tablez #1#2#3#4#5#6{\7f\tablez\ 11074,35623
 +\def\Edescription{\7f\Edescription\ 11077,35681
 +\def\itemfont{\7f\itemfont\ 11082,35883
 +\def\Etable{\7f\Etable\ 11090,36109
 +\def\itemize{\7f\itemize\ 11103,36433
 +\def\itemizezzz #1{\7f\itemizezzz\ 11105,36469
 +\def\itemizey #1#2{\7f\itemizey\ 11110,36564
 +\def#2{\7f1119,36810
 +\def\itemcontents{\7f\itemcontents\ 11120,36851
 +\def\bullet{\7f\bullet\ 11123,36899
 +\def\minus{\7f\minus\ 11124,36926
 +\def\frenchspacing{\7f\frenchspacing\ 11128,37034
 +\def\splitoff#1#2\endmark{\7f\splitoff\ 11134,37259
 +\def\enumerate{\7f\enumerate\ 11140,37489
 +\def\enumeratezzz #1{\7f\enumeratezzz\ 11141,37528
 +\def\enumeratey #1 #2\endenumeratey{\7f\enumeratey\ 11142,37581
 +  \def\thearg{\7f\thearg\ 11146,37728
 +  \ifx\thearg\empty \def\thearg{\7f\thearg\ 11147,37747
 +\def\numericenumerate{\7f\numericenumerate\ 11184,39081
 +\def\lowercaseenumerate{\7f\lowercaseenumerate\ 11190,39211
 +\def\uppercaseenumerate{\7f\uppercaseenumerate\ 11203,39558
 +\def\startenumeration#1{\7f\startenumeration\ 11219,40048
 +\def\alphaenumerate{\7f\alphaenumerate\ 11227,40230
 +\def\capsenumerate{\7f\capsenumerate\ 11228,40265
 +\def\Ealphaenumerate{\7f\Ealphaenumerate\ 11229,40299
 +\def\Ecapsenumerate{\7f\Ecapsenumerate\ 11230,40333
 +\def\itemizeitem{\7f\itemizeitem\ 11234,40413
 +\def\newindex #1{\7f\newindex\ 11259,41270
 +\def\defindex{\7f\defindex\ 11268,41559
 +\def\newcodeindex #1{\7f\newcodeindex\ 11272,41667
 +\def\defcodeindex{\7f\defcodeindex\ 11279,41927
 +\def\synindex #1 #2 {\7f\synindex\ 11283,42107
 +\def\syncodeindex #1 #2 {\7f\syncodeindex\ 11292,42447
 +\def\doindex#1{\7f\doindex\ 11309,43126
 +\def\singleindexer #1{\7f\singleindexer\ 11310,43185
 +\def\docodeindex#1{\7f\docodeindex\ 11313,43297
 +\def\singlecodeindexer #1{\7f\singlecodeindexer\ 11314,43364
 +\def\indexdummies{\7f\indexdummies\ 11316,43422
 +\def\_{\7f\_\ 11317,43442
 +\def\w{\7f\w\ 11318,43470
 +\def\bf{\7f\bf\ 11319,43497
 +\def\rm{\7f\rm\ 11320,43526
 +\def\sl{\7f\sl\ 11321,43555
 +\def\sf{\7f\sf\ 11322,43584
 +\def\tt{\7f\tt\ 11323,43612
 +\def\gtr{\7f\gtr\ 11324,43640
 +\def\less{\7f\less\ 11325,43670
 +\def\hat{\7f\hat\ 11326,43702
 +\def\char{\7f\char\ 11327,43732
 +\def\TeX{\7f\TeX\ 11328,43764
 +\def\dots{\7f\dots\ 11329,43794
 +\def\copyright{\7f\copyright\ 11330,43827
 +\def\tclose##1{\7f\tclose\ 11331,43870
 +\def\code##1{\7f\code\ 11332,43915
 +\def\samp##1{\7f\samp\ 11333,43956
 +\def\t##1{\7f\t\ 11334,43997
 +\def\r##1{\7f\r\ 11335,44032
 +\def\i##1{\7f\i\ 11336,44067
 +\def\b##1{\7f\b\ 11337,44102
 +\def\cite##1{\7f\cite\ 11338,44137
 +\def\key##1{\7f\key\ 11339,44178
 +\def\file##1{\7f\file\ 11340,44217
 +\def\var##1{\7f\var\ 11341,44258
 +\def\kbd##1{\7f\kbd\ 11342,44297
 +\def\indexdummyfont#1{\7f\indexdummyfont\ 11347,44453
 +\def\indexdummytex{\7f\indexdummytex\ 11348,44479
 +\def\indexdummydots{\7f\indexdummydots\ 11349,44503
 +\def\indexnofonts{\7f\indexnofonts\ 11351,44529
 +\let\w=\indexdummyfont\7fdummyfont\ 11352,44549
 +\let\t=\indexdummyfont\7fdummyfont\ 11353,44572
 +\let\r=\indexdummyfont\7fdummyfont\ 11354,44595
 +\let\i=\indexdummyfont\7fdummyfont\ 11355,44618
 +\let\b=\indexdummyfont\7fdummyfont\ 11356,44641
 +\let\emph=\indexdummyfont\7fdummyfont\ 11357,44664
 +\let\strong=\indexdummyfont\7fdummyfont\ 11358,44690
 +\let\cite=\indexdummyfont\7f=\indexdummyfont\ 11359,44718
 +\let\sc=\indexdummyfont\7fdummyfont\ 11360,44744
 +\let\tclose=\indexdummyfont\7fdummyfont\ 11364,44916
 +\let\code=\indexdummyfont\7fdummyfont\ 11365,44944
 +\let\file=\indexdummyfont\7fdummyfont\ 11366,44970
 +\let\samp=\indexdummyfont\7fdummyfont\ 11367,44996
 +\let\kbd=\indexdummyfont\7fdummyfont\ 11368,45022
 +\let\key=\indexdummyfont\7fdummyfont\ 11369,45047
 +\let\var=\indexdummyfont\7fdummyfont\ 11370,45072
 +\let\TeX=\indexdummytex\7fdummytex\ 11371,45097
 +\let\dots=\indexdummydots\7fdummydots\ 11372,45121
 +\let\indexbackslash=0  %overridden during \printindex.\7fbackslash=0\ 11382,45373
 +\def\doind #1#2{\7f\doind\ 11384,45429
 +{\indexdummies % Must do this here, since \bf, etc expand at this stage\7fdummies\ 11386,45472
 +\def\rawbackslashxx{\7f\rawbackslashxx\ 11389,45612
 +{\indexnofonts\7fnofonts\ 11394,45874
 +\def\dosubind #1#2#3{\7f\dosubind\ 11405,46185
 +{\indexdummies % Must do this here, since \bf, etc expand at this stage\7fdummies\ 11407,46233
 +\def\rawbackslashxx{\7f\rawbackslashxx\ 11410,46337
 +{\indexnofonts\7fnofonts\ 11414,46491
 +\def\findex {\7f\findex\ 11443,47422
 +\def\kindex {\7f\kindex\ 11444,47445
 +\def\cindex {\7f\cindex\ 11445,47468
 +\def\vindex {\7f\vindex\ 11446,47491
 +\def\tindex {\7f\tindex\ 11447,47514
 +\def\pindex {\7f\pindex\ 11448,47537
 +\def\cindexsub {\7f\cindexsub\ 11450,47561
 +\def\printindex{\7f\printindex\ 11462,47888
 +\def\doprintindex#1{\7f\doprintindex\ 11464,47929
 +  \def\indexbackslash{\7f\indexbackslash\ 11481,48414
 +  \indexfonts\rm \tolerance=9500 \advance\baselineskip -1pt\7ffonts\rm\ 11482,48453
 +\def\initial #1{\7f\initial\ 11517,49525
 +\def\entry #1#2{\7f\entry\ 11523,49732
 +  \null\nobreak\indexdotfill % Have leaders before the page number.\7fdotfill\ 11540,50379
 +\def\indexdotfill{\7f\indexdotfill\ 11549,50707
 +\def\primary #1{\7f\primary\ 11552,50813
 +\def\secondary #1#2{\7f\secondary\ 11556,50895
 +\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par\7fdotfill\ 11559,50977
 +\newbox\partialpage\7fialpage\ 11566,51150
 +\def\begindoublecolumns{\7f\begindoublecolumns\ 11572,51308
 +  \output={\global\setbox\partialpage=\7fialpage=\ 11573,51344
 +\def\enddoublecolumns{\7f\enddoublecolumns\ 11577,51532
 +\def\doublecolumnout{\7f\doublecolumnout\ 11580,51617
 +  \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage\7fialpage\ 11581,51686
 +\def\pagesofar{\7f\pagesofar\ 11584,51864
 +\def\balancecolumns{\7f\balancecolumns\ 11588,52101
 +  \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpage\7fialpage\ 11594,52272
 +     \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage\7fialpage\ 11600,52533
 +\newcount \appendixno  \appendixno = `\@\7fno\ 11627,53438
 +\def\appendixletter{\7f\appendixletter\ 11628,53479
 +\def\opencontents{\7f\opencontents\ 11632,53582
 +\def\thischapter{\7f\thischapter\ 11637,53763
 +\def\seccheck#1{\7f\seccheck\ 11638,53801
 +\def\chapternofonts{\7f\chapternofonts\ 11643,53905
 +\def\result{\7f\result\ 11646,53980
 +\def\equiv{\7f\equiv\ 11647,54015
 +\def\expansion{\7f\expansion\ 11648,54048
 +\def\print{\7f\print\ 11649,54089
 +\def\TeX{\7f\TeX\ 11650,54122
 +\def\dots{\7f\dots\ 11651,54151
 +\def\copyright{\7f\copyright\ 11652,54182
 +\def\tt{\7f\tt\ 11653,54223
 +\def\bf{\7f\bf\ 11654,54250
 +\def\w{\7f\w\ 11655,54278
 +\def\less{\7f\less\ 11656,54303
 +\def\gtr{\7f\gtr\ 11657,54334
 +\def\hat{\7f\hat\ 11658,54363
 +\def\char{\7f\char\ 11659,54392
 +\def\tclose##1{\7f\tclose\ 11660,54423
 +\def\code##1{\7f\code\ 11661,54467
 +\def\samp##1{\7f\samp\ 11662,54507
 +\def\r##1{\7f\r\ 11663,54547
 +\def\b##1{\7f\b\ 11664,54581
 +\def\key##1{\7f\key\ 11665,54615
 +\def\file##1{\7f\file\ 11666,54653
 +\def\kbd##1{\7f\kbd\ 11667,54693
 +\def\i##1{\7f\i\ 11669,54801
 +\def\cite##1{\7f\cite\ 11670,54835
 +\def\var##1{\7f\var\ 11671,54875
 +\def\emph##1{\7f\emph\ 11672,54913
 +\def\dfn##1{\7f\dfn\ 11673,54953
 +\def\thischaptername{\7f\thischaptername\ 11676,54994
 +\outer\def\chapter{\7f\chapter\ 11677,55033
 +\def\chapterzzz #1{\7f\chapterzzz\ 11678,55074
 +{\chapternofonts%\7fnofonts%\ 11687,55470
 +\global\let\section = \numberedsec\7f=\ 11692,55623
 +\global\let\subsection = \numberedsubsec\7f=\ 11693,55658
 +\global\let\subsubsection = \numberedsubsubsec\7f=\ 11694,55699
 +\outer\def\appendix{\7f\appendix\ 11697,55750
 +\def\appendixzzz #1{\7f\appendixzzz\ 11698,55793
 +\global\advance \appendixno by 1 \message{\7fno\ 11700,55870
 +\chapmacro {#1}{Appendix \appendixletter}\7fletter\ 11701,55939
 +\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}\7fletter:\ 11704,56032
 +{\chapternofonts%\7fnofonts%\ 11705,56104
 +  {#1}{Appendix \appendixletter}\7fletter\ 11707,56160
 +\appendixnoderef %\7fnoderef\ 11710,56260
 +\global\let\section = \appendixsec\7f=\ 11711,56279
 +\global\let\subsection = \appendixsubsec\7f=\ 11712,56314
 +\global\let\subsubsection = \appendixsubsubsec\7f=\ 11713,56355
 +\outer\def\top{\7f\top\ 11716,56406
 +\outer\def\unnumbered{\7f\unnumbered\ 11717,56446
 +\def\unnumberedzzz #1{\7f\unnumberedzzz\ 11718,56493
 +{\chapternofonts%\7fnofonts%\ 11722,56656
 +\global\let\section = \unnumberedsec\7f=\ 11727,56806
 +\global\let\subsection = \unnumberedsubsec\7f=\ 11728,56843
 +\global\let\subsubsection = \unnumberedsubsubsec\7f=\ 11729,56886
 +\outer\def\numberedsec{\7f\numberedsec\ 11732,56939
 +\def\seczzz #1{\7f\seczzz\ 11733,56980
 +{\chapternofonts%\7fnofonts%\ 11736,57136
 +\outer\def\appendixsection{\7f\appendixsection\ 11745,57322
 +\outer\def\appendixsec{\7f\appendixsec\ 11746,57379
 +\def\appendixsectionzzz #1{\7f\appendixsectionzzz\ 11747,57432
 +\gdef\thissection{#1}\secheading {#1}{\appendixletter}\7fletter\ 11749,57544
 +{\chapternofonts%\7fnofonts%\ 11750,57612
 +{#1}{\appendixletter}\7fletter\ 11752,57668
 +\appendixnoderef %\7fnoderef\ 11755,57768
 +\outer\def\unnumberedsec{\7f\unnumberedsec\ 11759,57808
 +\def\unnumberedseczzz #1{\7f\unnumberedseczzz\ 11760,57861
 +{\chapternofonts%\7fnofonts%\ 11762,57956
 +\outer\def\numberedsubsec{\7f\numberedsubsec\ 11770,58124
 +\def\numberedsubseczzz #1{\7f\numberedsubseczzz\ 11771,58179
 +{\chapternofonts%\7fnofonts%\ 11774,58358
 +\outer\def\appendixsubsec{\7f\appendixsubsec\ 11783,58562
 +\def\appendixsubseczzz #1{\7f\appendixsubseczzz\ 11784,58617
 +\subsecheading {#1}{\appendixletter}\7fletter\ 11786,58739
 +{\chapternofonts%\7fnofonts%\ 11787,58804
 +{#1}{\appendixletter}\7fletter\ 11789,58863
 +\appendixnoderef %\7fnoderef\ 11792,58978
 +\outer\def\unnumberedsubsec{\7f\unnumberedsubsec\ 11796,59018
 +\def\unnumberedsubseczzz #1{\7f\unnumberedsubseczzz\ 11797,59077
 +{\chapternofonts%\7fnofonts%\ 11799,59178
 +\outer\def\numberedsubsubsec{\7f\numberedsubsubsec\ 11807,59349
 +\def\numberedsubsubseczzz #1{\7f\numberedsubsubseczzz\ 11808,59410
 +{\chapternofonts%\7fnofonts%\ 11812,59607
 +\outer\def\appendixsubsubsec{\7f\appendixsubsubsec\ 11823,59840
 +\def\appendixsubsubseczzz #1{\7f\appendixsubsubseczzz\ 11824,59901
 +  {\appendixletter}\7fletter\ 11827,60040
 +{\chapternofonts%\7fnofonts%\ 11828,60106
 +  {\appendixletter}\7fletter\ 11830,60171
 +\appendixnoderef %\7fnoderef\ 11834,60305
 +\outer\def\unnumberedsubsubsec{\7f\unnumberedsubsubsec\ 11838,60345
 +\def\unnumberedsubsubseczzz #1{\7f\unnumberedsubsubseczzz\ 11839,60410
 +{\chapternofonts%\7fnofonts%\ 11841,60517
 +\def\infotop{\7f\infotop\ 11851,60846
 +\def\infounnumbered{\7f\infounnumbered\ 11852,60884
 +\def\infounnumberedsec{\7f\infounnumberedsec\ 11853,60929
 +\def\infounnumberedsubsec{\7f\infounnumberedsubsec\ 11854,60980
 +\def\infounnumberedsubsubsec{\7f\infounnumberedsubsubsec\ 11855,61037
 +\def\infoappendix{\7f\infoappendix\ 11857,61101
 +\def\infoappendixsec{\7f\infoappendixsec\ 11858,61142
 +\def\infoappendixsubsec{\7f\infoappendixsubsec\ 11859,61189
 +\def\infoappendixsubsubsec{\7f\infoappendixsubsubsec\ 11860,61242
 +\def\infochapter{\7f\infochapter\ 11862,61302
 +\def\infosection{\7f\infosection\ 11863,61341
 +\def\infosubsection{\7f\infosubsection\ 11864,61380
 +\def\infosubsubsection{\7f\infosubsubsection\ 11865,61425
 +\global\let\section = \numberedsec\7f=\ 11870,61662
 +\global\let\subsection = \numberedsubsec\7f=\ 11871,61697
 +\global\let\subsubsection = \numberedsubsubsec\7f=\ 11872,61738
 +\def\majorheading{\7f\majorheading\ 11886,62245
 +\def\majorheadingzzz #1{\7f\majorheadingzzz\ 11887,62290
 +\def\chapheading{\7f\chapheading\ 11893,62523
 +\def\chapheadingzzz #1{\7f\chapheadingzzz\ 11894,62566
 +\def\heading{\7f\heading\ 11899,62761
 +\def\subheading{\7f\subheading\ 11901,62798
 +\def\subsubheading{\7f\subsubheading\ 11903,62841
 +\def\dobreak#1#2{\7f\dobreak\ 11910,63118
 +\def\setchapterstyle #1 {\7f\setchapterstyle\ 11912,63196
 +\def\chapbreak{\7f\chapbreak\ 11919,63451
 +\def\chappager{\7f\chappager\ 11920,63501
 +\def\chapoddpage{\7f\chapoddpage\ 11921,63539
 +\def\setchapternewpage #1 {\7f\setchapternewpage\ 11923,63618
 +\def\CHAPPAGoff{\7f\CHAPPAGoff\ 11925,63675
 +\def\CHAPPAGon{\7f\CHAPPAGon\ 11929,63769
 +\global\def\HEADINGSon{\7f\HEADINGSon\ 11932,63860
 +\def\CHAPPAGodd{\7f\CHAPPAGodd\ 11934,63902
 +\global\def\HEADINGSon{\7f\HEADINGSon\ 11937,63998
 +\def\CHAPFplain{\7f\CHAPFplain\ 11941,64052
 +\def\chfplain #1#2{\7f\chfplain\ 11945,64144
 +\def\unnchfplain #1{\7f\unnchfplain\ 11956,64367
 +\def\unnchfopen #1{\7f\unnchfopen\ 11964,64596
 +\def\chfopen #1#2{\7f\chfopen\ 11970,64804
 +\def\CHAPFopen{\7f\CHAPFopen\ 11975,64948
 +\def\subsecheadingbreak{\7f\subsecheadingbreak\ 11982,65166
 +\def\secheadingbreak{\7f\secheadingbreak\ 11985,65295
 +\def\secheading #1#2#3{\7f\secheading\ 11993,65577
 +\def\plainsecheading #1{\7f\plainsecheading\ 11994,65633
 +\def\secheadingi #1{\7f\secheadingi\ 11995,65676
 +\def\subsecheading #1#2#3#4{\7f\subsecheading\ 12006,66044
 +\def\subsecheadingi #1{\7f\subsecheadingi\ 12007,66111
 +\def\subsubsecfonts{\7f\subsubsecfonts\ 12014,66408
 +\def\subsubsecheading #1#2#3#4#5{\7f\subsubsecheading\ 12017,66531
 +\def\subsubsecheadingi #1{\7f\subsubsecheadingi\ 12018,66609
 +\def\startcontents#1{\7f\startcontents\ 12032,67081
 +   \unnumbchapmacro{#1}\def\thischapter{\7f\thischapter\ 12040,67354
 +\outer\def\contents{\7f\contents\ 12049,67713
 +\outer\def\summarycontents{\7f\summarycontents\ 12057,67857
 +      \def\secentry ##1##2##3##4{\7f\secentry\ 12067,68228
 +      \def\unnumbsecentry ##1##2{\7f\unnumbsecentry\ 12068,68263
 +      \def\subsecentry ##1##2##3##4##5{\7f\subsecentry\ 12069,68298
 +      \def\unnumbsubsecentry ##1##2{\7f\unnumbsubsecentry\ 12070,68339
 +      \def\subsubsecentry ##1##2##3##4##5##6{\7f\subsubsecentry\ 12071,68377
 +      \def\unnumbsubsubsecentry ##1##2{\7f\unnumbsubsubsecentry\ 12072,68424
 +\def\chapentry#1#2#3{\7f\chapentry\ 12085,68858
 +\def\shortchapentry#1#2#3{\7f\shortchapentry\ 12088,68975
 +    {#2\labelspace #1}\7fspace\ 12091,69085
 +\def\unnumbchapentry#1#2{\7f\unnumbchapentry\ 12094,69139
 +\def\shortunnumberedentry#1#2{\7f\shortunnumberedentry\ 12095,69186
 +\def\secentry#1#2#3#4{\7f\secentry\ 12102,69350
 +\def\unnumbsecentry#1#2{\7f\unnumbsecentry\ 12103,69409
 +\def\subsecentry#1#2#3#4#5{\7f\subsecentry\ 12106,69470
 +\def\unnumbsubsecentry#1#2{\7f\unnumbsubsecentry\ 12107,69540
 +\def\subsubsecentry#1#2#3#4#5#6{\7f\subsubsecentry\ 12110,69614
 +  \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}\7fspace\ 12111,69648
 +\def\unnumbsubsubsecentry#1#2{\7f\unnumbsubsubsecentry\ 12112,69699
 +\def\dochapentry#1#2{\7f\dochapentry\ 12123,70073
 +\def\dosecentry#1#2{\7f\dosecentry\ 12138,70678
 +\def\dosubsecentry#1#2{\7f\dosubsecentry\ 12145,70856
 +\def\dosubsubsecentry#1#2{\7f\dosubsubsecentry\ 12152,71041
 +\def\labelspace{\7f\labelspace\ 12160,71292
 +\def\dopageno#1{\7f\dopageno\ 12162,71327
 +\def\doshortpageno#1{\7f\doshortpageno\ 12163,71353
 +\def\chapentryfonts{\7f\chapentryfonts\ 12165,71385
 +\def\secentryfonts{\7f\secentryfonts\ 12166,71420
 +\def\point{\7f\point\ 12192,72379
 +\def\result{\7f\result\ 12194,72400
 +\def\expansion{\7f\expansion\ 12195,72473
 +\def\print{\7f\print\ 12196,72544
 +\def\equiv{\7f\equiv\ 12198,72611
 +\def\error{\7f\error\ 12218,73384
 +\def\tex{\7f\tex\ 12224,73613
 +\def\@{\7f\@\ 12242,73996
 +\gdef\sepspaces{\def {\ }}}\7f\\ 12265,74728
 +\def\aboveenvbreak{\7f\aboveenvbreak\ 12268,74810
 +\def\afterenvbreak{\7f\afterenvbreak\ 12272,74976
 +\def\ctl{\7f\ctl\ 12286,75487
 +\def\ctr{\7f\ctr\ 12287,75559
 +\def\cbl{\7f\cbl\ 12288,75598
 +\def\cbr{\7f\cbr\ 12289,75638
 +\def\carttop{\7f\carttop\ 12290,75677
 +\def\cartbot{\7f\cartbot\ 12293,75785
 +\long\def\cartouche{\7f\cartouche\ 12299,75925
 +\def\Ecartouche{\7f\Ecartouche\ 12326,76713
 +\def\lisp{\7f\lisp\ 12338,76848
 +\def\Elisp{\7f\Elisp\ 12348,77195
 +\def\next##1{\7f\next\ 12360,77521
 +\def\Eexample{\7f\Eexample\ 12364,77563
 +\def\Esmallexample{\7f\Esmallexample\ 12367,77610
 +\def\smalllispx{\7f\smalllispx\ 12373,77788
 +\def\Esmalllisp{\7f\Esmalllisp\ 12383,78142
 +\obeyspaces \obeylines \ninett \indexfonts \rawbackslash\7ffonts\ 12396,78498
 +\def\next##1{\7f\next\ 12397,78555
 +\def\display{\7f\display\ 12401,78635
 +\def\Edisplay{\7f\Edisplay\ 12410,78954
 +\def\next##1{\7f\next\ 12422,79265
 +\def\format{\7f\format\ 12426,79368
 +\def\Eformat{\7f\Eformat\ 12434,79664
 +\def\next##1{\7f\next\ 12437,79753
 +\def\flushleft{\7f\flushleft\ 12441,79805
 +\def\Eflushleft{\7f\Eflushleft\ 12451,80176
 +\def\next##1{\7f\next\ 12454,80269
 +\def\flushright{\7f\flushright\ 12456,80291
 +\def\Eflushright{\7f\Eflushright\ 12466,80663
 +\def\next##1{\7f\next\ 12470,80794
 +\def\quotation{\7f\quotation\ 12474,80852
 +\def\Equotation{\7f\Equotation\ 12480,81044
 +\def\setdeffont #1 {\7f\setdeffont\ 12493,81442
 +\newskip\defbodyindent \defbodyindent=.4in\7fbodyindent\ 12495,81488
 +\newskip\defargsindent \defargsindent=50pt\7fargsindent\ 12496,81531
 +\newskip\deftypemargin \deftypemargin=12pt\7ftypemargin\ 12497,81574
 +\newskip\deflastargmargin \deflastargmargin=18pt\7flastargmargin\ 12498,81617
 +\def\activeparens{\7f\activeparens\ 12503,81815
 +\def\opnr{\7f\opnr\ 12529,83027
 +\def\lbrb{\7f\lbrb\ 12530,83092
 +\def\defname #1#2{\7f\defname\ 12536,83293
 +\advance\dimen2 by -\defbodyindent\7fbodyindent\ 12540,83411
 +\advance\dimen3 by -\defbodyindent\7fbodyindent\ 12542,83465
 +\setbox0=\hbox{\hskip \deflastargmargin{\7flastargmargin\ 12544,83519
 +\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations\7fargsindent\ 12546,83661
 +\parshape 2 0in \dimen0 \defargsindent \dimen1     %\7fargsindent\ 12547,83736
 +\rlap{\rightline{{\rm #2}\hskip \deftypemargin}\7ftypemargin\ 12554,84105
 +\advance\leftskip by -\defbodyindent\7fbodyindent\ 12557,84239
 +\exdentamount=\defbodyindent\7fbodyindent\ 12558,84276
 +\def\defparsebody #1#2#3{\7f\defparsebody\ 12568,84635
 +\def#1{\7f2572,84819
 +\def#2{\7f2573,84855
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12575,84927
 +\exdentamount=\defbodyindent\7fbodyindent\ 12576,85001
 +\def\defmethparsebody #1#2#3#4 {\7f\defmethparsebody\ 12581,85105
 +\def#1{\7f2585,85266
 +\def#2##1 {\7f2586,85302
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12588,85385
 +\exdentamount=\defbodyindent\7fbodyindent\ 12589,85459
 +\def\defopparsebody #1#2#3#4#5 {\7f\defopparsebody\ 12592,85544
 +\def#1{\7f2596,85705
 +\def#2##1 ##2 {\7f2597,85741
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12600,85841
 +\exdentamount=\defbodyindent\7fbodyindent\ 12601,85915
 +\def\defvarparsebody #1#2#3{\7f\defvarparsebody\ 12608,86186
 +\def#1{\7f2612,86373
 +\def#2{\7f2613,86409
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12615,86468
 +\exdentamount=\defbodyindent\7fbodyindent\ 12616,86542
 +\def\defvrparsebody #1#2#3#4 {\7f\defvrparsebody\ 12621,86633
 +\def#1{\7f2625,86792
 +\def#2##1 {\7f2626,86828
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12628,86898
 +\exdentamount=\defbodyindent\7fbodyindent\ 12629,86972
 +\def\defopvarparsebody #1#2#3#4#5 {\7f\defopvarparsebody\ 12632,87044
 +\def#1{\7f2636,87208
 +\def#2##1 ##2 {\7f2637,87244
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12640,87331
 +\exdentamount=\defbodyindent\7fbodyindent\ 12641,87405
 +\def\defunargs #1{\7f\defunargs\ 12664,88165
 +\def\deftypefunargs #1{\7f\deftypefunargs\ 12676,88547
 +\def\deffn{\7f\deffn\ 12690,88929
 +\def\deffnheader #1#2#3{\7f\deffnheader\ 12692,88986
 +\begingroup\defname {\7fname\ 12693,89034
 +\def\defun{\7f\defun\ 12699,89179
 +\def\defunheader #1#2{\7f\defunheader\ 12701,89232
 +\begingroup\defname {\7fname\ 12702,89307
 +\defunargs {\7funargs\ 12703,89343
 +\def\deftypefun{\7f\deftypefun\ 12709,89491
 +\def\deftypefunheader #1#2{\7f\deftypefunheader\ 12712,89613
 +\def\deftypefunheaderx #1#2 #3\relax{\7f\deftypefunheaderx\ 12714,89722
 +\begingroup\defname {\7fname\ 12716,89814
 +\deftypefunargs {\7ftypefunargs\ 12717,89860
 +\def\deftypefn{\7f\deftypefn\ 12723,90031
 +\def\deftypefnheader #1#2#3{\7f\deftypefnheader\ 12726,90180
 +\def\deftypefnheaderx #1#2#3 #4\relax{\7f\deftypefnheaderx\ 12728,90316
 +\begingroup\defname {\7fname\ 12730,90409
 +\deftypefunargs {\7ftypefunargs\ 12731,90449
 +\def\defmac{\7f\defmac\ 12737,90570
 +\def\defmacheader #1#2{\7f\defmacheader\ 12739,90627
 +\begingroup\defname {\7fname\ 12740,90703
 +\defunargs {\7funargs\ 12741,90736
 +\def\defspec{\7f\defspec\ 12747,90860
 +\def\defspecheader #1#2{\7f\defspecheader\ 12749,90921
 +\begingroup\defname {\7fname\ 12750,90998
 +\defunargs {\7funargs\ 12751,91038
 +\def\deffnx #1 {\7f\deffnx\ 12758,91233
 +\def\defunx #1 {\7f\defunx\ 12759,91290
 +\def\defmacx #1 {\7f\defmacx\ 12760,91347
 +\def\defspecx #1 {\7f\defspecx\ 12761,91406
 +\def\deftypefnx #1 {\7f\deftypefnx\ 12762,91467
 +\def\deftypeunx #1 {\7f\deftypeunx\ 12763,91532
 +\def\defop #1 {\7f\defop\ 12769,91678
 +\defopparsebody\Edefop\defopx\defopheader\defoptype}\7fopparsebody\Edefop\defopx\defopheader\defoptype\ 12770,91713
 +\def\defopheader #1#2#3{\7f\defopheader\ 12772,91767
 +\begingroup\defname {\7fname\ 12774,91856
 +\defunargs {\7funargs\ 12775,91902
 +\def\defmethod{\7f\defmethod\ 12780,91963
 +\def\defmethodheader #1#2#3{\7f\defmethodheader\ 12782,92036
 +\begingroup\defname {\7fname\ 12784,92124
 +\defunargs {\7funargs\ 12785,92164
 +\def\defcv #1 {\7f\defcv\ 12790,92238
 +\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}\7fopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype\ 12791,92273
 +\def\defcvarheader #1#2#3{\7f\defcvarheader\ 12793,92332
 +\begingroup\defname {\7fname\ 12795,92418
 +\defvarargs {\7fvarargs\ 12796,92464
 +\def\defivar{\7f\defivar\ 12801,92537
 +\def\defivarheader #1#2#3{\7f\defivarheader\ 12803,92600
 +\begingroup\defname {\7fname\ 12805,92686
 +\defvarargs {\7fvarargs\ 12806,92737
 +\def\defopx #1 {\7f\defopx\ 12812,92886
 +\def\defmethodx #1 {\7f\defmethodx\ 12813,92943
 +\def\defcvx #1 {\7f\defcvx\ 12814,93008
 +\def\defivarx #1 {\7f\defivarx\ 12815,93065
 +\def\defvarargs #1{\7f\defvarargs\ 12822,93336
 +\def\defvr{\7f\defvr\ 12828,93480
 +\def\defvrheader #1#2#3{\7f\defvrheader\ 12830,93535
 +\begingroup\defname {\7fname\ 12831,93583
 +\def\defvar{\7f\defvar\ 12835,93668
 +\def\defvarheader #1#2{\7f\defvarheader\ 12837,93728
 +\begingroup\defname {\7fname\ 12838,93799
 +\defvarargs {\7fvarargs\ 12839,93835
 +\def\defopt{\7f\defopt\ 12844,93901
 +\def\defoptheader #1#2{\7f\defoptheader\ 12846,93961
 +\begingroup\defname {\7fname\ 12847,94032
 +\defvarargs {\7fvarargs\ 12848,94071
 +\def\deftypevar{\7f\deftypevar\ 12853,94128
 +\def\deftypevarheader #1#2{\7f\deftypevarheader\ 12856,94244
 +\begingroup\defname {\7fname\ 12858,94327
 +\def\deftypevr{\7f\deftypevr\ 12865,94501
 +\def\deftypevrheader #1#2#3{\7f\deftypevrheader\ 12867,94572
 +\begingroup\defname {\7fname\ 12868,94624
 +\def\defvrx #1 {\7f\defvrx\ 12876,94861
 +\def\defvarx #1 {\7f\defvarx\ 12877,94918
 +\def\defoptx #1 {\7f\defoptx\ 12878,94977
 +\def\deftypevarx #1 {\7f\deftypevarx\ 12879,95036
 +\def\deftypevrx #1 {\7f\deftypevrx\ 12880,95103
 +\def\deftpargs #1{\7f\deftpargs\ 12885,95252
 +\def\deftp{\7f\deftp\ 12889,95332
 +\def\deftpheader #1#2#3{\7f\deftpheader\ 12891,95387
 +\begingroup\defname {\7fname\ 12892,95435
 +\def\deftpx #1 {\7f\deftpx\ 12897,95594
 +\def\setref#1{\7f\setref\ 12908,95915
 +\def\unnumbsetref#1{\7f\unnumbsetref\ 12913,96029
 +\def\appendixsetref#1{\7f\appendixsetref\ 12918,96136
 +\def\pxref#1{\7f\pxref\ 12929,96547
 +\def\xref#1{\7f\xref\ 12930,96583
 +\def\ref#1{\7f\ref\ 12931,96618
 +\def\xrefX[#1,#2,#3,#4,#5,#6]{\7f\xrefX[\ 12932,96648
 +\def\printedmanual{\7f\printedmanual\ 12933,96691
 +\def\printednodename{\7f\printednodename\ 12934,96729
 +\def\printednodename{\7f\printednodename\ 12939,96854
 +section ``\printednodename'' in \cite{\printedmanual}\7f\printedmanual\ 12954,97487
 +\refx{\7fx\ 12957,97565
 +\def\dosetq #1#2{\7f\dosetq\ 12965,97785
 +\def\internalsetq #1#2{\7f\internalsetq\ 12973,98043
 +\def\Ypagenumber{\7f\Ypagenumber\ 12977,98144
 +\def\Ytitle{\7f\Ytitle\ 12979,98170
 +\def\Ynothing{\7f\Ynothing\ 12981,98197
 +\def\Ysectionnumberandtype{\7f\Ysectionnumberandtype\ 12983,98214
 +\def\Yappendixletterandtype{\7f\Yappendixletterandtype\ 12992,98530
 +\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{\7fno\ 12993,98560
 +\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %\7fno.\the\secno\ 12994,98615
 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %\7fno.\the\secno.\the\subsecno\ 12996,98719
 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %\7fno.\the\secno.\the\subsecno.\the\subsubsecno\ 12998,98790
 +  \def\linenumber{\7f\linenumber\ 13009,99129
 +\def\refx#1#2{\7f\refx\ 13015,99313
 +\def\xrdef #1#2{\7f\xrdef\ 13037,99939
 +\def\readauxfile{\7f\readauxfile\ 13040,100024
 +\def\supereject{\7f\supereject\ 13110,101805
 +\footstrut\parindent=\defaultparindent\hang\textindent{\7faultparindent\hang\textindent\ 13131,102490
 +\def\openindices{\7f\openindices\ 13139,102676
 +\newdimen\defaultparindent \defaultparindent = 15pt\7faultparindent\ 13151,102901
 +\parindent = \defaultparindent\7faultparindent\ 13152,102953
 +\def\smallbook{\7f\smallbook\ 13175,103677
 +\global\def\Esmallexample{\7f\Esmallexample\ 13192,104104
 +\def\afourpaper{\7f\afourpaper\ 13196,104195
 +\def\finalout{\7f\finalout\ 13224,105003
 +\def\normaldoublequote{\7f\normaldoublequote\ 13235,105264
 +\def\normaltilde{\7f\normaltilde\ 13236,105290
 +\def\normalcaret{\7f\normalcaret\ 13237,105310
 +\def\normalunderscore{\7f\normalunderscore\ 13238,105330
 +\def\normalverticalbar{\7f\normalverticalbar\ 13239,105355
 +\def\normalless{\7f\normalless\ 13240,105381
 +\def\normalgreater{\7f\normalgreater\ 13241,105400
 +\def\normalplus{\7f\normalplus\ 13242,105422
 +\def\ifusingtt#1#2{\7f\ifusingtt\ 13253,105914
 +\def\activedoublequote{\7f\activedoublequote\ 13261,106242
 +\def~{\7f~\ 13264,106328
 +\def^{\7f^\ 13267,106389
 +\def_{\7f_\ 13270,106428
 +\def\_{\7f\_\ 13272,106502
 +\def\lvvmode{\7f\lvvmode\ 13279,106839
 +\def|{\7f|\ 13282,106889
 +\def<{\7f<\ 13285,106952
 +\def>{\7f>\ 13288,107009
 +\def+{\7f+\ 13290,107047
 +\def\turnoffactive{\7f\turnoffactive\ 13296,107208
 +\global\def={\7f=\ 13307,107494
 +\def\normalbackslash{\7f\normalbackslash\ 13321,107876
 +\f
 +c-src/c.c,76
 +T f(\7f1,0
 +}T i;\7f2,14
 +void bar(\7f5,69
 +int foobar(\7f6,94
 +interface_locate(\7f9,131
 +\f
 +c.c,1663
 +my_printf \7f135,
 +void fatala \7f138,
 +max \7f141,
 +struct bar \7f143,
 +__attribute__ ((always_inline)) max \7f147,
 +struct foo\7f150,
 +char stack[\7fstack\ 1155,
 +struct S \7f156,
 +} wait_status_ptr_t \7f161,
 +Some_Class  A \7f162,
 +typedef T1 T3 \7f163,
 +T3 z \7f164,
 +typedef int more_aligned_int \7f165,
 +struct S  __attribute__ ((vector_size (16))) foo;\7f166,
 +int foo \7f167,
 +char *__attribute__((aligned(8))) *f;\7ff\ 1168,
 +int i \7f169,
 +extern void foobar \7f170,
 +typedef struct cacheLRUEntry_s\7f172,
 +__attribute__ ((packed)) cacheLRUEntry_t;\7f177,
 +struct foo \7f178,
 +     f1 \7f183,
 +void f2 \7f184,
 +int x \7f188,
 +struct foo \7f189,
 +short array[\7farray\ 1190,
 +int f\7f193,
 +DEAFUN \7f196,
 +XDEFUN \7f203,
 +DEFUN ("x-get-selection-internal", Fx_get_selection_internal,\7fx-get-selection-internal\ 1206,
 +       Fx_get_selection_internal,\7fx-get-selection-internal\ 1212,
 +      Fy_get_selection_internal,\7fy-get-selection-internal\ 1216,
 +defun_func1(\7f218,
 +DEFUN_func2(\7f220,
 +typedef int bool;\7f222,
 +bool funcboo \7f223,
 +struct my_struct \7f226,
 +typedef struct my_struct my_typedef;\7f228,
 +int bla \7f229,
 +a(\7f234,
 +int func1\7f237,
 +static struct cca_control init_control \7f239,
 +static tpcmd rbtp \7f240,
 +static byte ring1 \7f241,
 +static byte ring2 \7f242,
 +request request \7f243,
 +int func2 \7f246,
 +  aaa;\7f249,
 +  bbb;\7f251,
 +struct sss1 \7f252,
 +struct sss2\7f253,
 +  struct ss3\7f255,
 +struct a b;\7f259,
 +struct aa *b;\7fb\ 1260,
 +  **b;\7fb\ 1262,
 +caccacacca \7f263,
 +a \7f267,
 +  typedef struct aa \7f269,
 +  typedef struct aa {} aaa;\7f269,
 +static void inita \7f271,
 +node *lasta \7flasta\ 1272,
 +b \7f273,
 +  typedef  int bb;\7f275,
 +static void initb \7f277,
 +node *lastb \7flastb\ 1278,
 +typedef enum { REG_ENOSYS \7f279,
 +typedef enum { REG_ENOSYS = -1, aa \7f279,
 +typedef enum { REG_ENOSYS = -1, aa } reg_errcode_t;\7f279,
 +\f
 +c-src/a/b/b.c,18
 +#define this \7f1,0
 +\f
 +../c/c.web,20
 +#define questo \7f34,
 +\f
 +y-src/parse.y,738
 +#define obstack_chunk_alloc \7f46,1116
 +#define obstack_chunk_free \7f47,1154
 +VOIDSTAR parse_hash;\7f63,1405
 +unsigned char fnin[\7ffnin\ 167,1524
 +#define YYSTYPE \7f71,1622
 +typedef struct node *YYSTYPE;\7fYYSTYPE\ 172,1653
 +YYSTYPE parse_return;\7f73,1683
 +char *instr;\7finstr\ 180,1795
 +int parse_error \7f81,1808
 +line:\7fline\ 186,1867
 +exp:\7fexp\ 194,1980
 +exp_list:\7fexp_list\ 1262,5647
 +range_exp:\7frange_exp\ 1268,5745
 +range_exp_list:\7frange_exp_list\ 1272,5775
 +cell:\7fcell\ 1278,5893
 +yyerror FUN1(\7f285,5940
 +make_list FUN2(\7f292,6020
 +#define ERROR \7f303,6220
 +yylex FUN0(\7f314,6397
 +parse_cell_or_range FUN2(\7f586,11763
 +#define CK_ABS_R(\7f670,13205
 +#define CK_REL_R(\7f674,13284
 +#define CK_ABS_C(\7f679,13413
 +#define CK_REL_C(\7f683,13492
 +#define MAYBEREL(\7f688,13621
 +str_to_col FUN1(\7f846,16822
 +\f
 +y-src/parse.c,520
 +#define YYBISON \7f4,64
 +# define      NE      \7f6,114
 +# define      LE      \7f7,130
 +# define      GE      \7f8,146
 +# define      NEG     \7f9,162
 +# define      L_CELL  \7f10,179
 +# define      L_RANGE \7f11,199
 +# define      L_VAR   \7f12,220
 +# define      L_CONST \7f13,239
 +# define      L_FN0   \7f14,260
 +# define      L_FN1   \7f15,279
 +# define      L_FN2   \7f16,298
 +# define      L_FN3   \7f17,317
 +# define      L_FN4   \7f18,336
 +# define      L_FNN   \7f19,355
 +# define      L_FN1R  \7f20,374
 +# define      L_FN2R  \7f21,394
 +# define      L_FN3R  \7f22,414
 +# define      L_FN4R  \7f23,434
 +# define      L_FNNR  \7f24,454
 +# define      L_LE    \7f25,474
 +# define      L_NE    \7f26,492
 +# define      L_GE    \7f27,510
 +\f
 +parse.y,1181
 +#define obstack_chunk_alloc \7f46,
 +#define obstack_chunk_free \7f47,
 +VOIDSTAR parse_hash;\7f63,
 +unsigned char fnin[\7ffnin\ 167,
 +#define YYSTYPE \7f71,
 +typedef struct node *YYSTYPE;\7fYYSTYPE\ 172,
 +YYSTYPE parse_return;\7f73,
 +char *instr;\7finstr\ 180,
 +int parse_error \7f81,
 +#define YYSTYPE \7f85,
 +# define YYDEBUG \7f88,
 +#define       YYFINAL \7f93,
 +#define       YYFLAG  \7f94,
 +#define       YYNTBASE        \7f95,
 +#define YYTRANSLATE(\7f98,
 +static const char yytranslate[\7fyytranslate\ 1101,
 +static const short yyprhs[\7fyyprhs\ 1134,
 +static const short yyrhs[\7fyyrhs\ 1142,
 +static const short yyrline[\7fyyrline\ 1171,
 +static const char *const yytname[\7fyytname\ 1185,
 +static const short yyr1[\7fyyr1\ 1197,
 +static const short yyr2[\7fyyr2\ 1207,
 +static const short yydefact[\7fyydefact\ 1219,
 +static const short yydefgoto[\7fyydefgoto\ 1237,
 +static const short yypact[\7fyypact\ 1242,
 +static const short yypgoto[\7fyypgoto\ 1260,
 +#define       YYLAST  \7f266,
 +static const short yytable[\7fyytable\ 1269,
 +static const short yycheck[\7fyycheck\ 1330,
 +yyerror FUN1(\7f285,
 +make_list FUN2(\7f292,
 +#define ERROR \7f303,
 +yylex FUN0(\7f314,
 +parse_cell_or_range FUN2(\7f586,
 +#define CK_ABS_R(\7f670,
 +#define CK_REL_R(\7f674,
 +#define CK_ABS_C(\7f679,
 +#define CK_REL_C(\7f683,
 +#define MAYBEREL(\7f688,
 +str_to_col FUN1(\7f846,
 +\f
 +/usr/share/bison/bison.simple,2110
 +# define YYSTD(\7f40,
 +# define YYSTD(\7f42,
 +#  define YYSTACK_ALLOC \7f50,
 +#  define YYSIZE_T \7f51,
 +#    define YYSTACK_ALLOC \7f55,
 +#    define YYSIZE_T \7f56,
 +#     define YYSTACK_ALLOC \7f59,
 +#  define YYSTACK_FREE(\7f67,
 +#   define YYSIZE_T \7f71,
 +#    define YYSIZE_T \7f75,
 +#  define YYSTACK_ALLOC \7f78,
 +#  define YYSTACK_FREE \7f79,
 +union yyalloc\7f83,
 +# define YYSTACK_GAP_MAX \7f93,
 +#  define YYSTACK_BYTES(\7f98,
 +#  define YYSTACK_BYTES(\7f102,
 +# define YYSTACK_RELOCATE(\7f112,
 +# define YYSIZE_T \7f128,
 +# define YYSIZE_T \7f131,
 +#  define YYSIZE_T \7f136,
 +#   define YYSIZE_T \7f140,
 +# define YYSIZE_T \7f145,
 +#define yyerrok       \7f148,
 +#define yyclearin     \7f149,
 +#define YYEMPTY       \7f150,
 +#define YYEOF \7f151,
 +#define YYACCEPT      \7f152,
 +#define YYABORT \7f153,
 +#define YYERROR       \7f154,
 +#define YYFAIL        \7f158,
 +#define YYRECOVERING(\7f159,
 +#define YYBACKUP(\7f160,
 +#define YYTERROR      \7f177,
 +#define YYERRCODE     \7f178,
 +# define YYLLOC_DEFAULT(\7f189,
 +#   define YYLEX      \7f200,
 +#   define YYLEX      \7f202,
 +#   define YYLEX      \7f206,
 +#   define YYLEX      \7f208,
 +# define YYLEX        \7f212,
 +#  define YYFPRINTF \7f225,
 +# define YYDPRINTF(\7f228,
 +int yydebug;\7f237,
 +# define YYDPRINTF(\7f239,
 +# define YYINITDEPTH \7f244,
 +# undef YYMAXDEPTH\7f255,
 +# define YYMAXDEPTH \7f259,
 +#  define yymemcpy \7f264,
 +yymemcpy \7f271,
 +#   define yystrlen \7f293,
 +yystrlen \7f298,
 +#   define yystpcpy \7f316,
 +yystpcpy \7f322,
 +#  define YYPARSE_PARAM_ARG \7f351,
 +#  define YYPARSE_PARAM_DECL\7f352,
 +#  define YYPARSE_PARAM_ARG \7f354,
 +#  define YYPARSE_PARAM_DECL \7f355,
 +# define YYPARSE_PARAM_ARG\7f358,
 +# define YYPARSE_PARAM_DECL\7f359,
 +#define YY_DECL_NON_LSP_VARIABLES     \7f374,
 +# define YY_DECL_VARIABLES    \7f385,
 +# define YY_DECL_VARIABLES    \7f391,
 +yyparse \7f403,
 +# define YYPOPSTACK \7f445,
 +# define YYPOPSTACK \7f447,
 +# undef YYSTACK_RELOCATE\7f548,
 +  *++yyvsp \7fyyvsp\ 1746,
 +  *++yylsp \7fyylsp\ 1748,
 +  yyn \7f755,
 +  yystate \7f757,
 +    yystate \7f761,
 +  goto yynewstate;\7f763,
 +  goto yyerrlab1;\7f823,
 +  yyerrstatus \7f846,
 +  goto yyerrhandle;\7f848,
 +  yyn \7f861,
 +  yystate \7f875,
 +  yyn \7f895,
 +  yyn \7f903,
 +  *++yyvsp \7fyyvsp\ 1919,
 +  *++yylsp \7fyylsp\ 1921,
 +  yystate \7f924,
 +  goto yynewstate;\7f925,
 +  yyresult \7f932,
 +  goto yyreturn;\7f933,
 +  yyresult \7f939,
 +  goto yyreturn;\7f940,
 +  yyresult \7f947,
 +\f
 +y-src/atest.y,9
 +exp   \7f2,3
 +\f
 +y-src/cccp.c,303
 +#define YYBISON \7f4,63
 +# define      INT     \7f6,113
 +# define      CHAR    \7f7,130
 +# define      NAME    \7f8,148
 +# define      ERROR   \7f9,166
 +# define      OR      \7f10,185
 +# define      AND     \7f11,201
 +# define      EQUAL   \7f12,218
 +# define      NOTEQUAL        \7f13,237
 +# define      LEQ     \7f14,259
 +# define      GEQ     \7f15,276
 +# define      LSH     \7f16,293
 +# define      RSH     \7f17,310
 +# define      UNARY   \7f18,327
 +\f
 +cccp.y,1579
 +typedef unsigned char U_CHAR;\7f38,
 +struct arglist \7f41,
 +#define NULL \7f51,
 +#define GENERIC_PTR \7f56,
 +#define GENERIC_PTR \7f58,
 +#define NULL_PTR \7f63,
 +int expression_value;\7f68,
 +static jmp_buf parse_return_error;\7f70,
 +static int keyword_parsing \7f73,
 +#define CHAR_TYPE_SIZE \7f87,
 +#define INT_TYPE_SIZE \7f91,
 +#define LONG_TYPE_SIZE \7f95,
 +#define WCHAR_TYPE_SIZE \7f99,
 +#define possible_sum_sign(\7f104,
 +  struct constant \7f113,
 +  struct name \7f114,
 +} yystype;\7f118,
 +# define YYSTYPE \7f119,
 +# define YYDEBUG \7f122,
 +#define       YYFINAL \7f127,
 +#define       YYFLAG  \7f128,
 +#define       YYNTBASE        \7f129,
 +#define YYTRANSLATE(\7f132,
 +static const char yytranslate[\7fyytranslate\ 1135,
 +static const short yyprhs[\7fyyprhs\ 1167,
 +static const short yyrhs[\7fyyrhs\ 1174,
 +static const short yyrline[\7fyyrline\ 1195,
 +static const char *const yytname[\7fyytname\ 1208,
 +static const short yyr1[\7fyyr1\ 1219,
 +static const short yyr2[\7fyyr2\ 1228,
 +static const short yydefact[\7fyydefact\ 1239,
 +static const short yydefgoto[\7fyydefgoto\ 1251,
 +static const short yypact[\7fyypact\ 1256,
 +static const short yypgoto[\7fyypgoto\ 1268,
 +#define       YYLAST  \7f274,
 +static const short yytable[\7fyytable\ 1277,
 +static const short yycheck[\7fyycheck\ 1301,
 +static char *lexptr;\7flexptr\ 1332,
 +parse_number \7f341,
 +struct token \7f437,
 +static struct token tokentab2[\7ftokentab2\ 1442,
 +yylex \7f459,
 +parse_escape \7f740,
 +yyerror \7f836,
 +integer_overflow \7f844,
 +left_shift \7f851,
 +right_shift \7f873,
 +parse_c_expression \7f893,
 +main \7f923,
 +unsigned char is_idchar[\7fis_idchar\ 1948,
 +unsigned char is_idstart[\7fis_idstart\ 1950,
 +char is_hor_space[\7fis_hor_space\ 1953,
 +initialize_random_junk \7f958,
 +error \7f988,
 +warning \7f993,
 +lookup \7f999,
 +\f
 +/usr/share/bison/bison.simple,2110
 +# define YYSTD(\7f41,
 +# define YYSTD(\7f43,
 +#  define YYSTACK_ALLOC \7f51,
 +#  define YYSIZE_T \7f52,
 +#    define YYSTACK_ALLOC \7f56,
 +#    define YYSIZE_T \7f57,
 +#     define YYSTACK_ALLOC \7f60,
 +#  define YYSTACK_FREE(\7f68,
 +#   define YYSIZE_T \7f72,
 +#    define YYSIZE_T \7f76,
 +#  define YYSTACK_ALLOC \7f79,
 +#  define YYSTACK_FREE \7f80,
 +union yyalloc\7f84,
 +# define YYSTACK_GAP_MAX \7f94,
 +#  define YYSTACK_BYTES(\7f99,
 +#  define YYSTACK_BYTES(\7f103,
 +# define YYSTACK_RELOCATE(\7f113,
 +# define YYSIZE_T \7f129,
 +# define YYSIZE_T \7f132,
 +#  define YYSIZE_T \7f137,
 +#   define YYSIZE_T \7f141,
 +# define YYSIZE_T \7f146,
 +#define yyerrok       \7f149,
 +#define yyclearin     \7f150,
 +#define YYEMPTY       \7f151,
 +#define YYEOF \7f152,
 +#define YYACCEPT      \7f153,
 +#define YYABORT \7f154,
 +#define YYERROR       \7f155,
 +#define YYFAIL        \7f159,
 +#define YYRECOVERING(\7f160,
 +#define YYBACKUP(\7f161,
 +#define YYTERROR      \7f178,
 +#define YYERRCODE     \7f179,
 +# define YYLLOC_DEFAULT(\7f190,
 +#   define YYLEX      \7f201,
 +#   define YYLEX      \7f203,
 +#   define YYLEX      \7f207,
 +#   define YYLEX      \7f209,
 +# define YYLEX        \7f213,
 +#  define YYFPRINTF \7f226,
 +# define YYDPRINTF(\7f229,
 +int yydebug;\7f238,
 +# define YYDPRINTF(\7f240,
 +# define YYINITDEPTH \7f245,
 +# undef YYMAXDEPTH\7f256,
 +# define YYMAXDEPTH \7f260,
 +#  define yymemcpy \7f265,
 +yymemcpy \7f272,
 +#   define yystrlen \7f294,
 +yystrlen \7f299,
 +#   define yystpcpy \7f317,
 +yystpcpy \7f323,
 +#  define YYPARSE_PARAM_ARG \7f351,
 +#  define YYPARSE_PARAM_DECL\7f352,
 +#  define YYPARSE_PARAM_ARG \7f354,
 +#  define YYPARSE_PARAM_DECL \7f355,
 +# define YYPARSE_PARAM_ARG\7f358,
 +# define YYPARSE_PARAM_DECL\7f359,
 +#define YY_DECL_NON_LSP_VARIABLES     \7f374,
 +# define YY_DECL_VARIABLES    \7f385,
 +# define YY_DECL_VARIABLES    \7f391,
 +yyparse \7f403,
 +# define YYPOPSTACK \7f445,
 +# define YYPOPSTACK \7f447,
 +# undef YYSTACK_RELOCATE\7f548,
 +  *++yyvsp \7fyyvsp\ 1746,
 +  *++yylsp \7fyylsp\ 1748,
 +  yyn \7f755,
 +  yystate \7f757,
 +    yystate \7f761,
 +  goto yynewstate;\7f763,
 +  goto yyerrlab1;\7f823,
 +  yyerrstatus \7f846,
 +  goto yyerrhandle;\7f848,
 +  yyn \7f861,
 +  yystate \7f875,
 +  yyn \7f895,
 +  yyn \7f903,
 +  *++yyvsp \7fyyvsp\ 1919,
 +  *++yylsp \7fyylsp\ 1921,
 +  yystate \7f924,
 +  goto yynewstate;\7f925,
 +  yyresult \7f932,
 +  goto yyreturn;\7f933,
 +  yyresult \7f939,
 +  goto yyreturn;\7f940,
 +  yyresult \7f947,
 +\f
 +y-src/cccp.y,1107
 +typedef unsigned char U_CHAR;\7f38,1201
 +struct arglist \7f41,1301
 +#define NULL \7f51,1468
 +#define GENERIC_PTR \7f56,1578
 +#define GENERIC_PTR \7f58,1611
 +#define NULL_PTR \7f63,1670
 +int expression_value;\7f68,1743
 +static jmp_buf parse_return_error;\7f70,1766
 +static int keyword_parsing \7f73,1865
 +#define CHAR_TYPE_SIZE \7f87,2162
 +#define INT_TYPE_SIZE \7f91,2229
 +#define LONG_TYPE_SIZE \7f95,2296
 +#define WCHAR_TYPE_SIZE \7f99,2365
 +#define possible_sum_sign(\7f104,2556
 +  struct constant \7f112,2733
 +  struct name \7f113,2789
 +start \7f143,3226
 +exp1  \7f148,3330
 +exp   \7f156,3505
 +exp   \7f185,4295
 +keywords \7f306,7835
 +static char *lexptr;\7flexptr\ 1332,8579
 +parse_number \7f341,8842
 +struct token \7f437,11038
 +static struct token tokentab2[\7ftokentab2\ 1442,11088
 +yylex \7f459,11367
 +parse_escape \7f740,17718
 +yyerror \7f836,19599
 +integer_overflow \7f844,19690
 +left_shift \7f851,19804
 +right_shift \7f873,20194
 +parse_c_expression \7f893,20732
 +main \7f923,21483
 +unsigned char is_idchar[\7fis_idchar\ 1948,21901
 +unsigned char is_idstart[\7fis_idstart\ 1950,21996
 +char is_hor_space[\7fis_hor_space\ 1953,22160
 +initialize_random_junk \7f958,22259
 +error \7f988,22915
 +warning \7f993,22963
 +lookup \7f999,23033
 +\f
 +tex-src/nonewline.tex,0
 +\f
 +php-src/sendmail.php,0
 +\f
 +c-src/fail.c,0
 +\f
 +a-src/empty.zz,0
index 9e3b258eabcc4ddb3acfaacc8b760daeda2833fa,0000000000000000000000000000000000000000..98de4f2c2fbeaf01f9f5b40188b31755e8c3d401
mode 100644,000000..100644
--- /dev/null
@@@ -1,5500 -1,0 +1,5500 @@@
- perl-src/htlmify-cystic,1443
 +\f
 +ada-src/etags-test-for.ada,1969
 +   type LL_Task_Procedure_Access \7fLL_Task_Procedure_Access/t\ 11,0
 +   function Body_Required\7fBody_Required/f\ 13,78
 +   type Type_Specific_Data \7fType_Specific_Data/t\ 111,280
 +   function "abs"\7fabs/f\ 119,504
 +   type Barrier_Function_Pointer \7fBarrier_Function_Pointer/t\ 121,577
 +   function "="\7f=/f\ 127,722
 +   type usfreelock_ptr \7fusfreelock_ptr/t\ 130,803
 +   function p \7fp/f\ 133,891
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 137,1054
 +function p \7fp/f\ 139,1094
 +package Pkg1 \7fPkg1/s\ 144,1203
 +  type Private_T \7fPrivate_T/t\ 146,1220
 +  package Inner1 \7fInner1/s\ 148,1250
 +    procedure Private_T;\7fPrivate_T/p\ 149,1270
 +  package Inner2 \7fInner2/s\ 152,1310
 +    task Private_T;\7fPrivate_T/k\ 153,1330
 +  type Public_T \7fPublic_T/t\ 156,1365
 +  procedure Pkg1_Proc1;\7fPkg1_Proc1/p\ 162,1450
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 164,1475
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 166,1514
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 168,1553
 +  package Pkg1_Pkg1 \7fPkg1_Pkg1/s\ 171,1622
 +    procedure Pkg1_Pkg1_Proc1;\7fPkg1_Pkg1_Proc1/p\ 172,1645
 +  task type Task_Type \7fTask_Type/k\ 175,1694
 +  type Private_T \7fPrivate_T/t\ 182,1786
 +package body Pkg1 \7fPkg1/b\ 189,1882
 +  procedure Pkg1_Proc1 \7fPkg1_Proc1/p\ 191,1904
 +  package body Inner1 \7fInner1/b\ 196,1956
 +    procedure Private_T \7fPrivate_T/p\ 197,1981
 +  package body Inner2 \7fInner2/b\ 1103,2054
 +    task body Private_T \7fPrivate_T/b\ 1104,2079
 +  task body Task_Type \7fTask_Type/b\ 1112,2181
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 1126,2367
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 1132,2445
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 1134,2496
 +  package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1140,2596
 +package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1146,2663
 +  procedure Pkg1_Pkg1_Proc1 \7fPkg1_Pkg1_Proc1/p\ 1147,2689
 +function  Pkg1_Func1 \7fPkg1_Func1/f\ 1155,2778
 +package Truc \7fTruc/s\ 1162,2887
 +package Truc.Bidule \7fTruc.Bidule/s\ 1166,2929
 +  protected Bidule \7fBidule/t\ 1168,2953
 +  protected type Machin_T \7fMachin_T/t\ 1172,3007
 +package body Truc.Bidule \7fTruc.Bidule/b\ 1178,3087
 +  protected body Bidule \7fBidule/b\ 1179,3115
 +  protected Machin_T \7fMachin_T/t\ 1186,3207
 +\f
 +ada-src/2ataspri.adb,2190
 +package body System.Task_Primitives \7fSystem.Task_Primitives/b\ 164,2603
 +   package RTE \7fRTE/s\ 169,2712
 +   package TSL \7fTSL/s\ 170,2759
 +   function To_void_ptr \7fTo_void_ptr/f\ 186,3287
 +   function To_TCB_Ptr \7fTo_TCB_Ptr/f\ 189,3366
 +   function pthread_mutexattr_setprotocol\7fpthread_mutexattr_setprotocol/f\ 192,3444
 +   function pthread_mutexattr_setprio_ceiling\7fpthread_mutexattr_setprio_ceiling/f\ 199,3728
 +   procedure Abort_Wrapper\7fAbort_Wrapper/p\ 1115,4302
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 1122,4526
 +   procedure Initialize_LL_Tasks \7fInitialize_LL_Tasks/p\ 1131,4830
 +   function Self \7fSelf/f\ 1160,5586
 +   procedure Initialize_Lock\7fInitialize_Lock/p\ 1174,5958
 +   procedure Finalize_Lock \7fFinalize_Lock/p\ 1210,6927
 +   procedure Write_Lock \7fWrite_Lock/p\ 1226,7338
 +   procedure Read_Lock \7fRead_Lock/p\ 1239,7700
 +   procedure Unlock \7fUnlock/p\ 1246,7850
 +   procedure Initialize_Cond \7fInitialize_Cond/p\ 1258,8160
 +   procedure Finalize_Cond \7fFinalize_Cond/p\ 1286,8979
 +   procedure Cond_Wait \7fCond_Wait/p\ 1300,9303
 +   procedure Cond_Timed_Wait\7fCond_Timed_Wait/p\ 1312,9661
 +   procedure Cond_Signal \7fCond_Signal/p\ 1343,10510
 +   procedure Set_Priority\7fSet_Priority/p\ 1355,10836
 +   procedure Set_Own_Priority \7fSet_Own_Priority/p\ 1372,11243
 +   function Get_Priority \7fGet_Priority/f\ 1385,11598
 +   function Get_Own_Priority \7fGet_Own_Priority/f\ 1398,12023
 +   procedure Create_LL_Task\7fCreate_LL_Task/p\ 1412,12438
 +      function To_Start_Addr \7fTo_Start_Addr/f\ 1426,12873
 +   procedure Exit_LL_Task \7fExit_LL_Task/p\ 1491,14995
 +   procedure Abort_Task \7fAbort_Task/p\ 1500,15158
 +   procedure Test_Abort \7fTest_Abort/p\ 1518,15716
 +   procedure Install_Abort_Handler \7fInstall_Abort_Handler/p\ 1527,15878
 +   procedure Abort_Wrapper\7fAbort_Wrapper/p\ 1557,16939
 +      function Address_To_Call_State \7fAddress_To_Call_State/f\ 1562,17062
 +   procedure Install_Error_Handler \7fInstall_Error_Handler/p\ 1573,17351
 +   procedure LL_Assert \7fLL_Assert/p\ 1599,18146
 +   procedure LL_Wrapper \7fLL_Wrapper/p\ 1608,18299
 +   procedure Initialize_TAS_Cell \7fInitialize_TAS_Cell/p\ 1630,19010
 +   procedure Finalize_TAS_Cell \7fFinalize_TAS_Cell/p\ 1635,19129
 +   procedure Clear \7fClear/p\ 1640,19236
 +   procedure Test_And_Set \7fTest_And_Set/p\ 1645,19330
 +   function  Is_Set \7fIs_Set/f\ 1659,19676
 +\f
 +ada-src/2ataspri.ads,2313
 +package System.Task_Primitives \7fSystem.Task_Primitives/s\ 158,3169
 +   type LL_Task_Procedure_Access \7fLL_Task_Procedure_Access/t\ 162,3253
 +   type Pre_Call_State \7fPre_Call_State/t\ 164,3331
 +   type Task_Storage_Size \7fTask_Storage_Size/t\ 166,3378
 +   type Machine_Exceptions \7fMachine_Exceptions/t\ 168,3433
 +   type Error_Information \7fError_Information/t\ 170,3499
 +   type Lock \7fLock/t\ 172,3569
 +   type Condition_Variable \7fCondition_Variable/t\ 173,3594
 +   type Task_Control_Block \7fTask_Control_Block/t\ 181,3955
 +   type TCB_Ptr \7fTCB_Ptr/t\ 189,4241
 +   function Address_To_TCB_Ptr \7fAddress_To_TCB_Ptr/f\ 193,4333
 +   procedure Initialize_LL_Tasks \7fInitialize_LL_Tasks/p\ 196,4425
 +   function Self \7fSelf/f\ 1100,4602
 +   procedure Initialize_Lock \7fInitialize_Lock/p\ 1103,4707
 +   procedure Finalize_Lock \7fFinalize_Lock/p\ 1107,4879
 +   procedure Write_Lock \7fWrite_Lock/p\ 1111,5034
 +   procedure Read_Lock \7fRead_Lock/p\ 1118,5428
 +   procedure Unlock \7fUnlock/p\ 1128,5995
 +   procedure Initialize_Cond \7fInitialize_Cond/p\ 1135,6300
 +   procedure Finalize_Cond \7fFinalize_Cond/p\ 1138,6413
 +   procedure Cond_Wait \7fCond_Wait/p\ 1142,6591
 +   procedure Cond_Timed_Wait\7fCond_Timed_Wait/p\ 1155,7396
 +   procedure Cond_Signal \7fCond_Signal/p\ 1164,7812
 +   procedure Set_Priority \7fSet_Priority/p\ 1169,8040
 +   procedure Set_Own_Priority \7fSet_Own_Priority/p\ 1173,8200
 +   function Get_Priority \7fGet_Priority/f\ 1177,8348
 +   function Get_Own_Priority \7fGet_Own_Priority/f\ 1181,8504
 +   procedure Create_LL_Task\7fCreate_LL_Task/p\ 1185,8647
 +   procedure Exit_LL_Task;\7fExit_LL_Task/p\ 1198,9282
 +   procedure Abort_Task \7fAbort_Task/p\ 1203,9516
 +   procedure Test_Abort;\7fTest_Abort/p\ 1210,9878
 +   type Abort_Handler_Pointer \7fAbort_Handler_Pointer/t\ 1217,10233
 +   procedure Install_Abort_Handler \7fInstall_Abort_Handler/p\ 1219,10312
 +   procedure Install_Error_Handler \7fInstall_Error_Handler/p\ 1226,10741
 +   procedure LL_Assert \7fLL_Assert/p\ 1231,10983
 +   type Proc \7fProc/t\ 1238,11240
 +   type TAS_Cell \7fTAS_Cell/t\ 1242,11328
 +   procedure Initialize_TAS_Cell \7fInitialize_TAS_Cell/p\ 1249,11670
 +   procedure Finalize_TAS_Cell \7fFinalize_TAS_Cell/p\ 1255,11941
 +   procedure Clear \7fClear/p\ 1260,12157
 +   procedure Test_And_Set \7fTest_And_Set/p\ 1267,12462
 +   function  Is_Set \7fIs_Set/f\ 1275,12877
 +   type Lock \7fLock/t\ 1283,13155
 +   type Condition_Variable \7fCondition_Variable/t\ 1288,13267
 +   type TAS_Cell \7fTAS_Cell/t\ 1293,13389
 +\f
 +ada-src/waroquiers.ada,1503
 +package Pkg1 \7fPkg1/s\ 13,89
 +  type Private_T \7fPrivate_T/t\ 15,106
 +  package Inner1 \7fInner1/s\ 17,136
 +    procedure Private_T;\7fPrivate_T/p\ 18,156
 +  package Inner2 \7fInner2/s\ 111,196
 +    task Private_T;\7fPrivate_T/k\ 112,216
 +  type Public_T \7fPublic_T/t\ 115,251
 +  procedure Pkg1_Proc1;\7fPkg1_Proc1/p\ 121,336
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 123,361
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 125,400
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 127,439
 +  package Pkg1_Pkg1 \7fPkg1_Pkg1/s\ 130,508
 +    procedure Pkg1_Pkg1_Proc1;\7fPkg1_Pkg1_Proc1/p\ 131,531
 +  task type Task_Type \7fTask_Type/k\ 134,580
 +  type Private_T \7fPrivate_T/t\ 140,671
 +package body Pkg1 \7fPkg1/b\ 146,766
 +  procedure Pkg1_Proc1 \7fPkg1_Proc1/p\ 148,788
 +  package body Inner1 \7fInner1/b\ 153,840
 +    procedure Private_T \7fPrivate_T/p\ 154,865
 +  package body Inner2 \7fInner2/b\ 160,938
 +    task body Private_T \7fPrivate_T/b\ 161,963
 +  task body Task_Type \7fTask_Type/b\ 168,1064
 +  procedure Pkg1_Proc2 \7fPkg1_Proc2/p\ 182,1250
 +  function Pkg1_Func1 \7fPkg1_Func1/f\ 188,1328
 +  function Pkg1_Func2 \7fPkg1_Func2/f\ 190,1379
 +  package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 196,1479
 +package body Pkg1_Pkg1 \7fPkg1_Pkg1/b\ 1100,1544
 +  procedure Pkg1_Pkg1_Proc1 \7fPkg1_Pkg1_Proc1/p\ 1101,1570
 +function  Pkg1_Func1 \7fPkg1_Func1/f\ 1107,1657
 +package Truc \7fTruc/s\ 1112,1764
 +package Truc.Bidule \7fTruc.Bidule/s\ 1116,1816
 +  protected Bidule \7fBidule/t\ 1125,1964
 +  protected type Machin_T \7fMachin_T/t\ 1131,2046
 +package body Truc.Bidule \7fTruc.Bidule/b\ 1138,2153
 +  protected body Bidule \7fBidule/b\ 1139,2181
 +  protected body Machin_T \7fMachin_T/b\ 1146,2281
 +\f
 +c-src/abbrev.c,2634
 +Lisp_Object Vabbrev_table_name_list;\7f43,1424
 +Lisp_Object Vglobal_abbrev_table;\7f48,1569
 +Lisp_Object Vfundamental_mode_abbrev_table;\7f52,1680
 +int abbrevs_changed;\7f56,1781
 +int abbrev_all_caps;\7f58,1803
 +Lisp_Object Vabbrev_start_location;\7f63,1952
 +Lisp_Object Vabbrev_start_location_buffer;\7f66,2041
 +Lisp_Object Vlast_abbrev;\7f70,2150
 +Lisp_Object Vlast_abbrev_text;\7f75,2319
 +int last_abbrev_point;\7f79,2409
 +Lisp_Object Vpre_abbrev_expand_hook,\7f83,2482
 +Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;\7f83,2482
 +DEFUN ("make-abbrev-table", Fmake_abbrev_table,\7fmake-abbrev-table\ 185,2546
 +DEFUN ("clear-abbrev-table", Fclear_abbrev_table,\7fclear-abbrev-table\ 192,2738
 +DEFUN ("define-abbrev", Fdefine_abbrev,\7fdefine-abbrev\ 1107,3119
 +DEFUN ("define-global-abbrev", Fdefine_global_abbrev,\7fdefine-global-abbrev\ 1149,4438
 +DEFUN ("define-mode-abbrev", Fdefine_mode_abbrev,\7fdefine-mode-abbrev\ 1160,4809
 +DEFUN ("abbrev-symbol", Fabbrev_symbol,\7fabbrev-symbol\ 1174,5277
 +DEFUN ("abbrev-expansion", Fabbrev_expansion,\7fabbrev-expansion\ 1202,6241
 +DEFUN ("expand-abbrev", Fexpand_abbrev,\7fexpand-abbrev\ 1218,6756
 +DEFUN ("unexpand-abbrev", Funexpand_abbrev,\7funexpand-abbrev\ 1389,11677
 +write_abbrev \7f426,12884
 +describe_abbrev \7f445,13319
 +DEFUN ("insert-abbrev-table-description", Finsert_abbrev_table_description,\7finsert-abbrev-table-description\ 1466,13834
 +DEFUN ("define-abbrev-table", Fdefine_abbrev_table,\7fdefine-abbrev-table\ 1506,14990
 +syms_of_abbrev \7f540,16067
 +  DEFVAR_LISP ("abbrev-table-name-list"\7f542,16087
 +  DEFVAR_LISP ("global-abbrev-table"\7f548,16349
 +  DEFVAR_LISP ("fundamental-mode-abbrev-table"\7f555,16671
 +  DEFVAR_LISP ("last-abbrev"\7f561,17013
 +  DEFVAR_LISP ("last-abbrev-text"\7f564,17136
 +  DEFVAR_INT ("last-abbrev-location"\7f568,17294
 +  DEFVAR_LISP ("abbrev-start-location"\7f575,17493
 +  DEFVAR_LISP ("abbrev-start-location-buffer"\7f581,17770
 +  DEFVAR_PER_BUFFER ("local-abbrev-table"\7f586,18034
 +  DEFVAR_BOOL ("abbrevs-changed"\7f589,18177
 +  DEFVAR_BOOL ("abbrev-all-caps"\7f594,18380
 +  DEFVAR_LISP ("pre-abbrev-expand-hook"\7f598,18536
 +  DEFVAR_LISP ("abbrev-table-name-list",\7f\1\ 1542,16087
 +  DEFVAR_LISP ("global-abbrev-table",\7f\1\ 1548,16349
 +  DEFVAR_LISP ("fundamental-mode-abbrev-table",\7f\1\ 1555,16671
 +  DEFVAR_LISP ("last-abbrev",\7f\1\ 1561,17013
 +  DEFVAR_LISP ("last-abbrev-text",\7f\1\ 1564,17136
 +  DEFVAR_INT ("last-abbrev-location",\7f\1\ 1568,17294
 +  DEFVAR_LISP ("abbrev-start-location",\7f\1\ 1575,17493
 +  DEFVAR_LISP ("abbrev-start-location-buffer",\7f\1\ 1581,17770
 +  DEFVAR_PER_BUFFER ("local-abbrev-table",\7f\1\ 1586,18034
 +  DEFVAR_BOOL ("abbrevs-changed",\7f\1\ 1589,18177
 +  DEFVAR_BOOL ("abbrev-all-caps",\7f\1\ 1594,18380
 +  DEFVAR_LISP ("pre-abbrev-expand-hook",\7f\1\ 1598,18536
 +\f
 +c-src/torture.c,197
 +(*tag1 \7ftag1\ 118,452
 +#define notag2 \7f26,553
 +(*tag2 \7ftag2\ 129,630
 +(*tag3 \7ftag3\ 139,772
 +#define notag4 \7f45,861
 +(*tag4 \7ftag4\ 148,955
 +tag5 \7f57,1081
 +tag6 \7f66,1208
 +int pp1(\7f74,1317
 +pp2\7f87,1419
 +pp3(\7f100,1518
 +\f
 +c-src/getopt.h,666
 +#define _GETOPT_H \7f19,794
 +extern char *optarg;\7foptarg\ 131,1102
 +extern int optind;\7f45,1610
 +extern int opterr;\7f50,1736
 +struct option\7f73,2790
 +  const char *name;\7fname\ 176,2819
 +  char *name;\7fname\ 178,2845
 +  int has_arg;\7f82,3002
 +  int *flag;\7fflag\ 183,3017
 +  int val;\7f84,3030
 +#define       no_argument     \7f89,3117
 +#define required_argument     \7f90,3140
 +#define optional_argument     \7f91,3168
 +extern int getopt \7f98,3433
 +extern int getopt \7f100,3537
 +extern int getopt_long \7f102,3592
 +extern int getopt_long_only \7f104,3724
 +extern int _getopt_internal \7f109,3935
 +extern int getopt \7f114,4133
 +extern int getopt_long \7f115,4155
 +extern int getopt_long_only \7f116,4182
 +extern int _getopt_internal \7f118,4215
 +\f
 +c-src/etags.c,14175
 +char pot_etags_version[\7fpot_etags_version\ 181,3470
 +#  undef DEBUG\7f84,3552
 +#  define DEBUG \7f85,3567
 +#  define DEBUG \7f87,3594
 +#  define NDEBUG      \7f88,3617
 +# define _GNU_SOURCE \7f94,3705
 +# undef MSDOS\7f100,3876
 +# undef  WINDOWSNT\7f101,3890
 +# define WINDOWSNT\7f102,3909
 +# undef MSDOS\7f106,3968
 +# define MSDOS \7f107,3982
 +# define MSDOS \7f110,4032
 +# define MAXPATHLEN \7f115,4111
 +# undef HAVE_NTGUI\7f116,4141
 +# undef  DOS_NT\7f117,4160
 +# define DOS_NT\7f118,4176
 +# undef  assert       \7f135,4482
 +# define assert(\7f136,4541
 +# undef  CTAGS\7f146,4857
 +# define CTAGS \7f147,4872
 +# define CTAGS \7f149,4898
 +#define streq(\7f152,4927
 +#define strcaseeq(\7f153,4996
 +#define strneq(\7f154,5075
 +#define strncaseeq(\7f155,5151
 +#define CHARS \7f157,5238
 +#define CHAR(\7f158,5278
 +#define       iswhite(\7f159,5329
 +#define notinname(\7f160,5394
 +#define       begtoken(\7f161,5469
 +#define       intoken(\7f162,5542
 +#define       endtoken(\7f163,5614
 +#define ISALNUM(\7f165,5684
 +#define ISALPHA(\7f166,5722
 +#define ISDIGIT(\7f167,5760
 +#define ISLOWER(\7f168,5798
 +#define lowcase(\7f170,5837
 +#define xnew(\7f179,6015
 +#define xrnew(\7f180,6083
 +typedef void Lang_function \7f182,6164
 +  const char *suffix;\7fsuffix\ 1186,6219
 +  const char *command;\7fcommand\ 1187,6294
 +} compressor;\7f188,6365
 +  const char *name;\7fname\ 1192,6397
 +  const char *help;\7fhelp\ 1193,6449
 +  Lang_function *function;\7ffunction\ 1194,6508
 +  const char **suffixes;\7fsuffixes\ 1195,6556
 +  const char **filenames;\7ffilenames\ 1196,6633
 +  const char **interpreters;\7finterpreters\ 1197,6702
 +  bool metasource;\7f198,6771
 +} language;\7f199,6835
 +typedef struct fdesc\7f201,6848
 +  struct fdesc *next;\7fnext\ 1203,6871
 +  char *infname;\7finfname\ 1204,6920
 +  char *infabsname;\7finfabsname\ 1205,6973
 +  char *infabsdir;\7finfabsdir\ 1206,7038
 +  char *taggedfname;\7ftaggedfname\ 1207,7091
 +  language *lang;\7flang\ 1208,7149
 +  char *prop;\7fprop\ 1209,7191
 +  bool usecharno;\7f210,7249
 +  bool written;\7f211,7311
 +} fdesc;\7f212,7366
 +typedef struct node_st\7f214,7376
 +  struct node_st *left,\7fleft\ 1216,7428
 +  struct node_st *left, *right;\7fright\ 1216,7428
 +  fdesc *fdp;\7ffdp\ 1217,7486
 +  char *name;\7fname\ 1218,7548
 +  char *regex;\7fregex\ 1219,7580
 +  bool valid;\7f220,7617
 +  bool is_func;\7f221,7670
 +  bool been_warned;\7f222,7733
 +  int lno;\7f223,7801
 +  long cno;\7f224,7842
 +} node;\7f225,7894
 +  long size;\7f236,8208
 +  int len;\7f237,8221
 +  char *buffer;\7fbuffer\ 1238,8232
 +} linebuffer;\7f239,8248
 +    at_language,\7f245,8344
 +    at_regexp,\7f246,8393
 +    at_filename,\7f247,8437
 +    at_stdin,\7f248,8473
 +    at_end    \7f249,8516
 +  } arg_type;\7f250,8557
 +  language *lang;\7flang\ 1251,8593
 +  char *what;\7fwhat\ 1252,8656
 +} argument;\7f253,8698
 +typedef struct regexp\7f256,8758
 +  struct regexp *p_next;\7fp_next\ 1258,8782
 +  language *lang;\7flang\ 1259,8837
 +  char *pattern;\7fpattern\ 1260,8897
 +  char *name;\7fname\ 1261,8940
 +  struct re_pattern_buffer *pat;\7fpat\ 1262,8971
 +  struct re_registers regs;\7f263,9031
 +  bool error_signaled;\7f264,9078
 +  bool force_explicit_name;\7f265,9141
 +  bool ignore_case;\7f266,9206
 +  bool multi_line;\7f267,9259
 +} regexp;\7f268,9325
 +static void Ada_funcs \7f274,9428
 +static void Asm_labels \7f275,9460
 +static void C_entries \7f276,9493
 +static void default_C_entries \7f277,9536
 +static void plain_C_entries \7f278,9576
 +static void Cjava_entries \7f279,9614
 +static void Cobol_paragraphs \7f280,9650
 +static void Cplusplus_entries \7f281,9689
 +static void Cstar_entries \7f282,9729
 +static void Erlang_functions \7f283,9765
 +static void Forth_words \7f284,9804
 +static void Fortran_functions \7f285,9838
 +static void HTML_labels \7f286,9878
 +static void Lisp_functions \7f287,9912
 +static void Lua_functions \7f288,9949
 +static void Makefile_targets \7f289,9985
 +static void Pascal_functions \7f290,10024
 +static void Perl_functions \7f291,10063
 +static void PHP_functions \7f292,10100
 +static void PS_functions \7f293,10136
 +static void Prolog_functions \7f294,10171
 +static void Python_functions \7f295,10210
 +static void Scheme_functions \7f296,10249
 +static void TeX_commands \7f297,10288
 +static void Texinfo_nodes \7f298,10323
 +static void Yacc_entries \7f299,10359
 +static void just_read_file \7f300,10394
 +static language *get_language_from_langname \7fget_language_from_langname\ 1302,10432
 +static void readline \7f303,10492
 +static long readline_internal \7f304,10537
 +static bool nocase_tail \7f305,10591
 +static void get_tag \7f306,10631
 +static void analyze_regex \7f308,10671
 +static void free_regexps \7f309,10707
 +static void regex_tag_multiline \7f310,10740
 +static void error \7f311,10780
 +# undef STDIN\7f408,15073
 +#define STDIN \7f411,15095
 +static compressor compressors[\7fcompressors\ 1457,17664
 +static const char *Ada_suffixes \7fAda_suffixes\ 1473,17907
 +static const char Ada_help \7f475,17977
 +static const char *Asm_suffixes \7fAsm_suffixes\ 1493,18580
 +static const char Asm_help \7f504,18976
 +static const char *default_C_suffixes \7fdefault_C_suffixes\ 1512,19312
 +static const char default_C_help \7f515,19413
 +static const char default_C_help \7f523,19850
 +static const char *Cplusplus_suffixes \7fCplusplus_suffixes\ 1535,20460
 +static const char Cplusplus_help \7f540,20658
 +static const char *Cjava_suffixes \7fCjava_suffixes\ 1549,21113
 +static char Cjava_help \7f551,21172
 +static const char *Cobol_suffixes \7fCobol_suffixes\ 1556,21337
 +static char Cobol_help \7f558,21402
 +static const char *Cstar_suffixes \7fCstar_suffixes\ 1562,21543
 +static const char *Erlang_suffixes \7fErlang_suffixes\ 1565,21607
 +static const char Erlang_help \7f567,21673
 +const char *Forth_suffixes \7fForth_suffixes\ 1571,21799
 +static const char Forth_help \7f573,21857
 +static const char *Fortran_suffixes \7fFortran_suffixes\ 1577,22008
 +static const char Fortran_help \7f579,22085
 +static const char *HTML_suffixes \7fHTML_suffixes\ 1582,22190
 +static const char HTML_help \7f584,22264
 +static const char *Lisp_suffixes \7fLisp_suffixes\ 1589,22452
 +static const char Lisp_help \7f591,22556
 +static const char *Lua_suffixes \7fLua_suffixes\ 1598,22871
 +static const char Lua_help \7f600,22934
 +static const char *Makefile_filenames \7fMakefile_filenames\ 1603,23010
 +static const char Makefile_help \7f605,23133
 +static const char *Objc_suffixes \7fObjc_suffixes\ 1609,23277
 +static const char Objc_help \7f613,23399
 +static const char *Pascal_suffixes \7fPascal_suffixes\ 1619,23714
 +static const char Pascal_help \7f621,23778
 +static const char *Perl_suffixes \7fPerl_suffixes\ 1626,23966
 +static const char *Perl_interpreters \7fPerl_interpreters\ 1628,24028
 +static const char Perl_help \7f630,24100
 +static const char *PHP_suffixes \7fPHP_suffixes\ 1637,24451
 +static const char PHP_help \7f639,24523
 +static const char *plain_C_suffixes \7fplain_C_suffixes\ 1643,24678
 +static const char *PS_suffixes \7fPS_suffixes\ 1647,24762
 +static const char PS_help \7f649,24848
 +static const char *Prolog_suffixes \7fProlog_suffixes\ 1652,24931
 +static const char Prolog_help \7f654,24993
 +static const char *Python_suffixes \7fPython_suffixes\ 1658,25107
 +static const char Python_help \7f660,25165
 +static const char *Scheme_suffixes \7fScheme_suffixes\ 1665,25347
 +static const char Scheme_help \7f667,25460
 +static const char *TeX_suffixes \7fTeX_suffixes\ 1672,25683
 +static const char TeX_help \7f674,25781
 +static const char *Texinfo_suffixes \7fTexinfo_suffixes\ 1686,26316
 +static const char Texinfo_help \7f688,26395
 +static const char *Yacc_suffixes \7fYacc_suffixes\ 1691,26492
 +static const char Yacc_help \7f693,26606
 +static const char auto_help \7f699,26856
 +static const char none_help \7f703,27020
 +static const char no_lang_help \7f707,27143
 +static language lang_names \7f718,27355
 +print_language_names \7f753,29532
 +# define EMACS_NAME \7f786,30755
 +# define VERSION \7f789,30811
 +print_version \7f792,30869
 +# define PRINT_UNDOCUMENTED_OPTIONS_HELP \7f804,31173
 +print_help \7f808,31250
 +main \7f981,37438
 +get_compressor_from_suffix \7f1319,46217
 +get_language_from_langname \7f1355,47158
 +get_language_from_interpreter \7f1377,47545
 +get_language_from_filename \7f1399,47976
 +process_file_name \7f1433,48834
 +process_file \7f1555,51665
 +init \7f1632,54150
 +find_entries \7f1656,54901
 +make_tag \7f1814,59707
 +pfnote \7f1856,60942
 +free_tree \7f1917,62744
 +free_fdesc \7f1935,63029
 +add_node \7f1955,63472
 +invalidate_nodes \7f2035,65537
 +static int total_size_of_entries \7f2067,66150
 +static int number_len \7f2068,66193
 +total_size_of_entries \7f2087,66694
 +put_entries \7f2107,67154
 +#define C_EXT \7f2193,68995
 +#define C_PLAIN \7f2194,69037
 +#define C_PLPL        \7f2195,69070
 +#define C_STAR        \7f2196,69104
 +#define C_JAVA        \7f2197,69137
 +#define C_AUTO \7f2198,69172
 +#define YACC  \7f2199,69242
 +enum sym_type\7f2204,69312
 +  st_none,\7f2206,69328
 +  st_C_objprot,\7f2207,69339
 +  st_C_objprot, st_C_objimpl,\7f2207,69339
 +  st_C_objprot, st_C_objimpl, st_C_objend,\7f2207,69339
 +  st_C_gnumacro,\7f2208,69382
 +  st_C_ignore,\7f2209,69399
 +  st_C_ignore, st_C_attribute,\7f2209,69399
 +  st_C_javastruct,\7f2210,69430
 +  st_C_operator,\7f2211,69449
 +  st_C_class,\7f2212,69466
 +  st_C_class, st_C_template,\7f2212,69466
 +  st_C_struct,\7f2213,69495
 +  st_C_struct, st_C_extern,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum, st_C_define,\7f2213,69495
 +  st_C_struct, st_C_extern, st_C_enum, st_C_define, st_C_typedef\7f2213,69495
 +struct C_stab_entry \7f2271,71278
 +struct C_stab_entry { const char *name;\7fname\ 12271,71278
 +struct C_stab_entry { const char *name; int c_ext;\7f2271,71278
 +struct C_stab_entry { const char *name; int c_ext; enum sym_type type;\7f2271,71278
 +hash \7f2275,71409
 +in_word_set \7f2321,72937
 +      TOTAL_KEYWORDS \7f2325,73018
 +      MIN_WORD_LENGTH \7f2326,73045
 +      MAX_WORD_LENGTH \7f2327,73072
 +      MIN_HASH_VALUE \7f2328,73100
 +      MAX_HASH_VALUE \7f2329,73126
 +C_symtype \7f2387,74985
 +static bool inattribute;\7f2400,75234
 +  fvnone,\7f2408,75435
 +  fdefunkey,\7f2409,75466
 +  fdefunname,\7f2410,75512
 +  foperator,\7f2411,75556
 +  fvnameseen,\7f2412,75613
 +  fstartlist,\7f2413,75666
 +  finlist,\7f2414,75722
 +  flistseen,\7f2415,75765
 +  fignore,\7f2416,75813
 +  vignore     \7f2417,75856
 +} fvdef;\7f2418,75901
 +static bool fvextern;\7f2420,75911
 +  tnone,\7f2428,76089
 +  tkeyseen,\7f2429,76119
 +  ttypeseen,\7f2430,76160
 +  tinbody,\7f2431,76199
 +  tend,\7f2432,76238
 +  tignore     \7f2433,76279
 +} typdef;\7f2434,76320
 +  snone,\7f2443,76499
 +  skeyseen,\7f2445,76575
 +  stagseen,\7f2446,76620
 +  scolonseen  \7f2447,76661
 +} structdef;\7f2448,76715
 +static const char *objtag \7fobjtag\ 12453,76809
 +  dnone,\7f2460,76942
 +  dsharpseen,\7f2461,76972
 +  ddefineseen,\7f2462,77025
 +  dignorerest \7f2463,77070
 +} definedef;\7f2464,77112
 +  onone,\7f2472,77267
 +  oprotocol,\7f2473,77297
 +  oimplementation,\7f2474,77347
 +  otagseen,\7f2475,77395
 +  oparenseen,\7f2476,77431
 +  ocatseen,\7f2477,77486
 +  oinbody,\7f2478,77525
 +  omethodsign,\7f2479,77568
 +  omethodtag,\7f2480,77626
 +  omethodcolon,\7f2481,77666
 +  omethodparm,\7f2482,77709
 +  oignore     \7f2483,77755
 +} objdef;\7f2484,77787
 +static struct tok\7f2491,77944
 +  char *line;\7fline\ 12493,77964
 +  int offset;\7f2494,78014
 +  int length;\7f2495,78067
 +  bool valid;\7f2502,78352
 +  bool named;\7f2505,78487
 +  int lineno;\7f2506,78528
 +  long linepos;\7f2507,78576
 +} token;\7f2508,78626
 +static void pushclass_above \7f2514,78784
 +static void popclass_above \7f2515,78832
 +static void write_classname \7f2516,78866
 +  char **cname;\7fcname\ 12519,78950
 +  int *bracelev;\7fbracelev\ 12520,78993
 +  int nl;\7f2521,79042
 +  int size;\7f2522,79096
 +} cstack;\7f2523,79136
 +#define nestlev       \7f2525,79264
 +#define instruct      \7f2527,79369
 +pushclass_above \7f2531,79489
 +popclass_above \7f2550,79948
 +write_classname \7f2564,80162
 +static bool consider_token \7f2592,80761
 +static void make_C_tag \7f2593,80833
 +consider_token \7f2613,81341
 +  long linepos;\7f2922,88499
 +  linebuffer lb;\7f2923,88515
 +} lbs[\7flbs\ 12924,88532
 +#define current_lb_is_new \7f2926,88543
 +#define switch_line_buffers(\7f2927,88588
 +#define curlb \7f2929,88641
 +#define newlb \7f2930,88672
 +#define curlinepos \7f2931,88703
 +#define newlinepos \7f2932,88744
 +#define plainc \7f2934,88786
 +#define cplpl \7f2935,88830
 +#define cjava \7f2936,88861
 +#define CNL_SAVE_DEFINEDEF(\7f2938,88905
 +#define CNL(\7f2947,89117
 +make_C_tag \7f2960,89375
 +C_entries \7f2986,90194
 +default_C_entries \7f3833,110156
 +plain_C_entries \7f3840,110276
 +Cplusplus_entries \7f3847,110364
 +Cjava_entries \7f3854,110460
 +Cstar_entries \7f3861,110550
 +Yacc_entries \7f3868,110642
 +#define LOOP_ON_INPUT_LINES(\7f3875,110720
 +#define LOOKING_AT(\7f3884,111056
 +#define LOOKING_AT_NOCASE(\7f3891,111461
 +just_read_file \7f3901,111861
 +static void F_takeprec \7f3910,111965
 +static void F_getit \7f3911,111996
 +F_takeprec \7f3914,112039
 +F_getit \7f3937,112366
 +Fortran_functions \7f3961,112840
 +Ada_getit \7f4052,114669
 +Ada_funcs \7f4115,116044
 +Asm_labels \7f4228,118582
 +Perl_functions \7f4261,119549
 +Python_functions \7f4357,122057
 +PHP_functions \7f4387,122684
 +Cobol_paragraphs \7f4466,124471
 +Makefile_targets \7f4494,125029
 +Pascal_functions \7f4529,125950
 +static void L_getit \7f4706,130277
 +L_getit \7f4709,130318
 +Lisp_functions \7f4725,130664
 +Lua_functions \7f4785,131850
 +PS_functions \7f4811,132385
 +Forth_words \7f4841,133053
 +Scheme_functions \7f4877,134092
 +static linebuffer *TEX_toktab \7fTEX_toktab\ 14908,134781
 +static const char *TEX_defenv \7fTEX_defenv\ 14912,134974
 +static void TEX_mode \7f4917,135172
 +static void TEX_decode_env \7f4918,135203
 +static char TEX_esc \7f4920,135261
 +static char TEX_opgrp \7f4921,135289
 +static char TEX_clgrp \7f4922,135318
 +TeX_commands \7f4928,135395
 +#define TEX_LESC \7f4986,136652
 +#define TEX_SESC \7f4987,136674
 +TEX_mode \7f4992,136804
 +TEX_decode_env \7f5026,137509
 +Texinfo_nodes \7f5071,138554
 +HTML_labels \7f5094,139013
 +static size_t prolog_pr \7f5214,142192
 +static void prolog_skip_comment \7f5215,142234
 +static size_t prolog_atom \7f5216,142290
 +Prolog_functions \7f5219,142347
 +prolog_skip_comment \7f5255,143128
 +prolog_pr \7f5281,143736
 +prolog_atom \7f5319,144628
 +static int erlang_func \7f5374,145540
 +static void erlang_attribute \7f5375,145581
 +static int erlang_atom \7f5376,145620
 +Erlang_functions \7f5379,145666
 +erlang_func \7f5438,146965
 +erlang_attribute \7f5476,147642
 +erlang_atom \7f5496,148061
 +static char *scan_separators \7fscan_separators\ 15520,148487
 +static void add_regex \7f5521,148526
 +static char *substitute \7fsubstitute\ 15522,148570
 +scan_separators \7f5534,149080
 +analyze_regex \7f5586,150460
 +add_regex \7f5654,152050
 +substitute \7f5767,154797
 +free_regexps \7f5814,155837
 +regex_tag_multiline \7f5836,156291
 +nocase_tail \7f5913,158263
 +get_tag \7f5928,158519
 +readline_internal \7f5959,159455
 +readline \7f6037,161296
 +savestr \7f6230,167243
 +savenstr \7f6240,167473
 +skip_spaces \7f6249,167679
 +skip_non_spaces \7f6258,167833
 +skip_name \7f6267,167983
 +fatal \7f6277,168156
 +pfatal \7f6284,168253
 +suggest_asking_for_help \7f6291,168332
 +error \7f6300,168554
 +concat \7f6313,168846
 +etags_getcwd \7f6329,169259
 +relative_filename \7f6350,169725
 +absolute_filename \7f6389,170751
 +absolute_dirname \7f6453,172416
 +filename_is_absolute \7f6472,172845
 +canonicalize_filename \7f6484,173096
 +# define ISUPPER(\7f6491,173235
 +linebuffer_init \7f6514,173656
 +linebuffer_setlen \7f6524,173887
 +xmalloc \7f6536,174148
 +xrealloc \7f6545,174314
 +\f
 +c-src/exit.c,99
 +    size_t n;\7f28,967
 +    void EXFUN((*fn[\7ffn\ 129,981
 +  } __libc_atexit;\7f30,1017
 +DEFUN(exit,\7f38,1258
 +\f
 +c-src/exit.strange_suffix,99
 +    size_t n;\7f28,967
 +    void EXFUN((*fn[\7ffn\ 129,981
 +  } __libc_atexit;\7f30,1017
 +DEFUN(exit,\7f38,1258
 +\f
 +c-src/sysdep.h,491
 +#define       ENTRY(\7f21,870
 +#define       PSEUDO(\7f26,977
 +    movl $SYS_##syscall_nam\7f$SYS_##syscall_na\ 131,1137
 +    movl $SYS_##syscall_name, %eax;\7feax\ 131,1137
 +    int $0x80;\7f32,1185
 +    test %eax,\7feax\ 133,1215
 +    test %eax, %eax;\7feax\ 133,1215
 +    jl syscall_error;\7f34,1250
 +#define       XCHG_0  \7f47,1567
 +#define       XCHG_1  \7f48,1611
 +#define       XCHG_2  \7f49,1653
 +#define       XCHG_3  \7f50,1696
 +#define       XCHG_4  \7f51,1739
 +#define       XCHG_5  \7f52,1782
 +#define       r0      \7f54,1826
 +#define       r1      \7f55,1880
 +#define scratch \7f56,1937
 +#define MOVE(\7f57,2006
 +\f
 +c-src/tab.c,196
 +static int            count_words(\7f15,263
 +static char           *get_word(\7fget_word\ 135,553
 +void                  tab_free(\7f59,966
 +char                  **tab_fill(\7ftab_fill\ 170,1129
 +int                   tab_delete_first(\7f91,1638
 +int                   tab_count_words(\7f103,1820
 +\f
 +c-src/dostorture.c,198
 +(*tag1 \7ftag1\ 118,468
 +#define notag2 \7f26,577
 +(*tag2 \7ftag2\ 129,657
 +(*tag3 \7ftag3\ 139,809
 +#define notag4 \7f45,904
 +(*tag4 \7ftag4\ 148,1001
 +tag5 \7f57,1136
 +tag6 \7f66,1272
 +int pp1(\7f74,1389
 +pp2\7f87,1504
 +pp3(\7f100,1616
 +\f
 +c-src/emacs/src/gmalloc.c,7311
 +#define USE_PTHREAD\7f25,1002
 +#undef get_current_dir_name\7f33,1126
 +extern void emacs_abort \7f47,1305
 +#undef malloc\7f64,2110
 +#undef realloc\7f65,2124
 +#undef calloc\7f66,2139
 +#undef free\7f67,2153
 +#define malloc \7f68,2165
 +#define realloc \7f69,2188
 +#define calloc \7f70,2213
 +#define aligned_alloc \7f71,2236
 +#define free \7f72,2273
 +extern void *bss_sbrk \7fbss_sbrk\ 176,2335
 +extern int bss_sbrk_did_unexec;\7f77,2375
 +extern char bss_sbrk_buffer[\7fbss_sbrk_buffer\ 178,2407
 +extern void *bss_sbrk_buffer_end;\7fbss_sbrk_buffer_end\ 179,2438
 +#define DUMPED \7f80,2472
 +#define ALLOCATED_BEFORE_DUMPING(\7f81,2507
 +extern void *malloc \7fmalloc\ 194,2718
 +#define INT_BIT       \7f124,3934
 +#define BLOCKLOG      \7f125,3977
 +#define BLOCKSIZE     \7f126,4018
 +#define BLOCKIFY(\7f127,4052
 +#define HEAP  \7f131,4215
 +#define FINAL_FREE_BLOCKS     \7f135,4391
 +      int type;\7f145,4676
 +              size_t nfree;\7f150,4720
 +              size_t first;\7f151,4777
 +            } frag;\7f152,4834
 +          ptrdiff_t size;\7f156,5055
 +        } info;\7f157,5076
 +      } busy;\7f158,5087
 +      size_t size;\7f163,5215
 +      size_t next;\7f164,5272
 +      size_t prev;\7f165,5321
 +      } free;\7f166,5374
 +  } malloc_info;\7f167,5388
 +extern char *_heapbase;\7f_heapbase\ 1170,5449
 +extern malloc_info *_heapinfo;\7f_heapinfo\ 1173,5541
 +#define BLOCK(\7f176,5620
 +#define ADDRESS(\7f177,5682
 +extern size_t _heapindex;\7f180,5797
 +extern size_t _heaplimit;\7f183,5866
 +struct list\7f186,5939
 +    struct list *next;\7fnext\ 1188,5955
 +    struct list *prev;\7fprev\ 1189,5978
 +extern struct list _fraghead[\7f_fraghead\ 1193,6056
 +struct alignlist\7f196,6153
 +    struct alignlist *next;\7fnext\ 1198,6174
 +    void *aligned;\7faligned\ 1199,6202
 +    void *exact;\7fexact\ 1200,6270
 +extern struct alignlist *_aligned_blocks;\7f_aligned_blocks\ 1202,6334
 +extern size_t _chunks_used;\7f205,6401
 +extern size_t _bytes_used;\7f206,6429
 +extern size_t _chunks_free;\7f207,6456
 +extern size_t _bytes_free;\7f208,6484
 +extern void *_malloc_internal \7f_malloc_internal\ 1213,6673
 +extern void *_realloc_internal \7f_realloc_internal\ 1214,6713
 +extern void _free_internal \7f215,6762
 +extern void *_malloc_internal_nolock \7f_malloc_internal_nolock\ 1216,6799
 +extern void *_realloc_internal_nolock \7f_realloc_internal_nolock\ 1217,6846
 +extern void _free_internal_nolock \7f218,6902
 +extern pthread_mutex_t _malloc_mutex,\7f221,6966
 +extern pthread_mutex_t _malloc_mutex, _aligned_blocks_mutex;\7f221,6966
 +extern int _malloc_thread_enabled_p;\7f222,7027
 +#define LOCK(\7f223,7064
 +#define UNLOCK(\7f228,7195
 +#define LOCK_ALIGNED_BLOCKS(\7f233,7329
 +#define UNLOCK_ALIGNED_BLOCKS(\7f238,7484
 +#define LOCK(\7f244,7649
 +#define UNLOCK(\7f245,7664
 +#define LOCK_ALIGNED_BLOCKS(\7f246,7681
 +#define UNLOCK_ALIGNED_BLOCKS(\7f247,7711
 +extern void *malloc_find_object_address \7fmalloc_find_object_address\ 1252,7865
 +extern void *(*__morecore)\7f__morecore\ 1256,8021
 +extern void *__default_morecore \7f__default_morecore\ 1259,8105
 +extern void (*__after_morecore_hook)\7f__after_morecore_hook\ 1263,8269
 +extern size_t __malloc_extra_blocks;\7f267,8442
 +extern int __malloc_initialized;\7f270,8552
 +extern int __malloc_initialize \7f272,8646
 +extern void (*__malloc_initialize_hook)\7f__malloc_initialize_hook\ 1275,8723
 +extern void (*__free_hook)\7f__free_hook\ 1276,8771
 +extern void *(*__malloc_hook)\7f__malloc_hook\ 1277,8811
 +extern void *(*__realloc_hook)\7f__realloc_hook\ 1278,8856
 +extern void *(*__memalign_hook)\7f__memalign_hook\ 1279,8913
 +enum mcheck_status\7f283,9092
 +    MCHECK_DISABLED \7f285,9115
 +    MCHECK_OK,\7f286,9187
 +    MCHECK_FREE,\7f287,9226
 +    MCHECK_HEAD,\7f288,9270
 +    MCHECK_TAIL       \7f289,9334
 +extern int mcheck \7f296,9701
 +extern enum mcheck_status mprobe \7f301,9952
 +extern void mtrace \7f304,10055
 +extern void muntrace \7f305,10082
 +struct mstats\7f308,10153
 +    size_t bytes_total;\7f310,10171
 +    size_t chunks_used;\7f311,10225
 +    size_t bytes_used;\7f312,10285
 +    size_t chunks_free;\7f313,10351
 +    size_t bytes_free;\7f314,10406
 +extern struct mstats mstats \7f318,10518
 +extern void memory_warnings \7f321,10625
 +void *(*__malloc_hook)\7f__malloc_hook\ 1352,11743
 +char *_heapbase;\7f_heapbase\ 1355,11829
 +malloc_info *_heapinfo;\7f_heapinfo\ 1358,11927
 +static size_t heapsize;\7f361,11983
 +size_t _heapindex;\7f364,12047
 +size_t _heaplimit;\7f367,12109
 +struct list _fraghead[\7f_fraghead\ 1370,12171
 +size_t _chunks_used;\7f373,12229
 +size_t _bytes_used;\7f374,12250
 +size_t _chunks_free;\7f375,12270
 +size_t _bytes_free;\7f376,12291
 +int __malloc_initialized;\7f379,12340
 +size_t __malloc_extra_blocks;\7f381,12367
 +void (*__malloc_initialize_hook)\7f__malloc_initialize_hook\ 1383,12398
 +void (*__after_morecore_hook)\7f__after_morecore_hook\ 1384,12439
 +static int state_protected_p;\7f400,12912
 +static size_t last_state_size;\7f401,12942
 +static malloc_info *last_heapinfo;\7flast_heapinfo\ 1402,12973
 +protect_malloc_state \7f405,13014
 +#define PROTECT_MALLOC_STATE(\7f426,13627
 +#define PROTECT_MALLOC_STATE(\7f429,13697
 +align \7f435,13794
 +get_contiguous_space \7f466,14616
 +register_heapinfo \7f497,15325
 +pthread_mutex_t _malloc_mutex \7f517,15879
 +pthread_mutex_t _aligned_blocks_mutex \7f518,15938
 +int _malloc_thread_enabled_p;\7f519,16005
 +malloc_atfork_handler_prepare \7f522,16048
 +malloc_atfork_handler_parent \7f529,16139
 +malloc_atfork_handler_child \7f536,16233
 +malloc_enable_thread \7f544,16375
 +malloc_initialize_1 \7f563,16961
 +__malloc_initialize \7f594,17793
 +static int morecore_recursing;\7f604,17926
 +morecore_nolock \7f609,18066
 +_malloc_internal_nolock \7f722,21584
 +_malloc_internal \7f920,28102
 +malloc \7f932,28247
 +extern void *_malloc \7f_malloc\ 1956,29033
 +extern void _free \7f957,29064
 +extern void *_realloc \7f_realloc\ 1958,29092
 +_malloc \7f961,29140
 +_free \7f967,29196
 +_realloc \7f973,29240
 +void (*__free_hook)\7f__free_hook\ 11001,30259
 +struct alignlist *_aligned_blocks \7f_aligned_blocks\ 11004,30345
 +_free_internal_nolock \7f1009,30474
 +_free_internal \7f1255,38476
 +free \7f1265,38603
 +weak_alias \7f1277,38799
 +#define min(\7f1306,39813
 +void *(*__realloc_hook)\7f__realloc_hook\ 11310,39898
 +_realloc_internal_nolock \7f1319,40309
 +_realloc_internal \7f1435,43563
 +realloc \7f1447,43726
 +calloc \7f1478,44894
 +#define       __sbrk  \7f1513,46042
 +extern void *__sbrk \7f__sbrk\ 11518,46247
 +__default_morecore \7f1525,46511
 +void *(*__memalign_hook)\7f__memalign_hook\ 11554,47456
 +aligned_alloc \7f1557,47522
 +memalign \7f1647,49704
 +posix_memalign \7f1656,49909
 +extern void *valloc \7fvalloc\ 11695,51140
 +extern int getpagesize \7f1700,51278
 +static size_t pagesize;\7f1703,51317
 +valloc \7f1706,51349
 +#undef malloc\7f1715,51490
 +#undef realloc\7f1716,51504
 +#undef calloc\7f1717,51519
 +#undef aligned_alloc\7f1718,51533
 +#undef free\7f1719,51554
 +extern void *malloc \7fmalloc\ 11722,51609
 +extern void *realloc \7frealloc\ 11723,51644
 +extern void *calloc \7fcalloc\ 11724,51691
 +extern void free \7f1725,51740
 +extern void *aligned_alloc \7faligned_alloc\ 11727,51796
 +extern int posix_memalign \7f1729,51890
 +hybrid_malloc \7f1736,52083
 +hybrid_calloc \7f1744,52188
 +hybrid_free \7f1752,52319
 +hybrid_aligned_alloc \7f1765,52626
 +hybrid_realloc \7f1780,52984
 +char *gget_current_dir_name \7fgget_current_dir_name\ 11808,53753
 +hybrid_get_current_dir_name \7f1811,53797
 +static void (*old_free_hook)\7fold_free_hook\ 11846,54921
 +static void *(*old_malloc_hook)\7fold_malloc_hook\ 11847,54963
 +static void *(*old_realloc_hook)\7fold_realloc_hook\ 11848,55010
 +static void (*abortfunc)\7fabortfunc\ 11851,55124
 +#define MAGICWORD     \7f1854,55206
 +#define MAGICFREE     \7f1855,55261
 +#define MAGICBYTE     \7f1856,55316
 +#define MALLOCFLOOD   \7f1857,55348
 +#define FREEFLOOD     \7f1858,55382
 +struct hdr\7f1860,55415
 +    size_t size;\7f1862,55430
 +    size_t magic;\7f1863,55484
 +checkhdr \7f1867,55581
 +freehook \7f1891,56022
 +mallochook \7f1927,56804
 +reallochook \7f1944,57143
 +mabort \7f1978,57901
 +static int mcheck_used \7f2012,58586
 +mcheck \7f2015,58619
 +mprobe \7f2035,59138
 +\f
 +c-src/emacs/src/regex.h,5300
 +#define _REGEX_H \7f21,836
 +typedef unsigned long reg_syntax_t;\7f43,1577
 +#define RE_BACKSLASH_ESCAPE_IN_LISTS \7f47,1749
 +#define RE_BK_PLUS_QM \7f52,1969
 +#define RE_CHAR_CLASSES \7f58,2298
 +#define RE_CONTEXT_INDEP_ANCHORS \7f72,3032
 +#define RE_CONTEXT_INDEP_OPS \7f80,3458
 +#define RE_CONTEXT_INVALID_OPS \7f84,3658
 +#define RE_DOT_NEWLINE \7f88,3801
 +#define RE_DOT_NOT_NULL \7f92,3937
 +#define RE_HAT_LISTS_NOT_NEWLINE \7f96,4082
 +#define RE_INTERVALS \7f101,4292
 +#define RE_LIMITED_OPS \7f105,4441
 +#define RE_NEWLINE_ALT \7f109,4583
 +#define RE_NO_BK_BRACES \7f114,4773
 +#define RE_NO_BK_PARENS \7f118,4964
 +#define RE_NO_BK_REFS \7f122,5120
 +#define RE_NO_BK_VBAR \7f126,5316
 +#define RE_NO_EMPTY_RANGES \7f132,5610
 +#define RE_UNMATCHED_RIGHT_PAREN_ORD \7f136,5766
 +#define RE_NO_POSIX_BACKTRACKING \7f140,5937
 +#define RE_NO_GNU_OPS \7f144,6133
 +#define RE_FRUGAL \7f147,6253
 +#define RE_SHY_GROUPS \7f150,6360
 +#define RE_NO_NEWLINE_ANCHOR \7f153,6468
 +#define RE_DEBUG \7f161,6884
 +extern reg_syntax_t re_syntax_options;\7f167,7170
 +extern Lisp_Object re_match_object;\7f172,7344
 +extern size_t re_max_failures;\7f176,7454
 +#define RE_SYNTAX_EMACS       \7f183,7684
 +#define RE_SYNTAX_AWK \7f186,7780
 +#define RE_SYNTAX_GNU_AWK     \7f193,8084
 +#define RE_SYNTAX_POSIX_AWK \7f197,8255
 +#define RE_SYNTAX_GREP        \7f201,8393
 +#define RE_SYNTAX_EGREP       \7f206,8549
 +#define RE_SYNTAX_POSIX_EGREP \7f212,8765
 +#define RE_SYNTAX_ED \7f216,8910
 +#define RE_SYNTAX_SED \7f218,8954
 +#define _RE_SYNTAX_POSIX_COMMON       \7f221,9072
 +#define RE_SYNTAX_POSIX_BASIC \7f225,9215
 +#define RE_SYNTAX_POSIX_MINIMAL_BASIC \7f231,9508
 +#define RE_SYNTAX_POSIX_EXTENDED      \7f234,9598
 +#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED      \7f242,9967
 +# undef RE_DUP_MAX\7f253,10454
 +#define RE_DUP_MAX \7f256,10540
 +#define REG_EXTENDED \7f263,10762
 +#define REG_ICASE \7f267,10886
 +#define REG_NEWLINE \7f272,11070
 +#define REG_NOSUB \7f276,11248
 +#define REG_NOTBOL \7f286,11614
 +#define REG_NOTEOL \7f289,11688
 +  REG_ENOSYS \7f297,11859
 +  REG_NOERROR \7f300,11941
 +  REG_NOMATCH,\7f301,11976
 +  REG_BADPAT,\7f305,12123
 +  REG_ECOLLATE,\7f306,12162
 +  REG_ECTYPE,\7f307,12203
 +  REG_EESCAPE,\7f308,12255
 +  REG_ESUBREG,\7f309,12298
 +  REG_EBRACK,\7f310,12345
 +  REG_EPAREN,\7f311,12391
 +  REG_EBRACE,\7f312,12436
 +  REG_BADBR,\7f313,12472
 +  REG_ERANGE,\7f314,12519
 +  REG_ESPACE,\7f315,12560
 +  REG_BADRPT,\7f316,12601
 +  REG_EEND,\7f319,12693
 +  REG_ESIZE,\7f320,12728
 +  REG_ERPAREN,\7f321,12790
 +  REG_ERANGEX \7f322,12859
 +} reg_errcode_t;\7f323,12911
 +# define RE_TRANSLATE_TYPE \7f332,13273
 +struct re_pattern_buffer\7f335,13315
 +  unsigned char *buffer;\7fbuffer\ 1341,13538
 +  size_t allocated;\7f344,13614
 +  size_t used;\7f347,13686
 +  reg_syntax_t syntax;\7f350,13769
 +  char *fastmap;\7ffastmap\ 1355,13975
 +  RE_TRANSLATE_TYPE translate;\7f361,14241
 +  size_t re_nsub;\7f364,14329
 +  unsigned can_be_null \7f370,14624
 +#define REGS_UNALLOCATED \7f376,14889
 +#define REGS_REALLOCATE \7f377,14916
 +#define REGS_FIXED \7f378,14942
 +  unsigned regs_allocated \7f379,14963
 +  unsigned fastmap_accurate \7f383,15136
 +  unsigned no_sub \7f387,15267
 +  unsigned not_bol \7f391,15398
 +  unsigned not_eol \7f394,15475
 +  unsigned used_syntax \7f398,15655
 +  unsigned multibyte \7f403,15805
 +  unsigned target_multibyte \7f407,15941
 +  int charset_unibyte;\7f410,16032
 +typedef struct re_pattern_buffer regex_t;\7f416,16098
 +typedef ssize_t regoff_t;\7f423,16492
 +struct re_registers\7f428,16652
 +  unsigned num_regs;\7f430,16674
 +  regoff_t *start;\7fstart\ 1431,16695
 +  regoff_t *end;\7fend\ 1432,16714
 +# define RE_NREGS \7f440,16942
 +  regoff_t rm_so;\7f449,17159
 +  regoff_t rm_eo;\7f450,17239
 +} regmatch_t;\7f451,17317
 +extern reg_syntax_t re_set_syntax \7f457,17512
 +extern const char *re_compile_pattern \7fre_compile_pattern\ 1462,17776
 +extern int re_compile_fastmap \7f469,18058
 +extern regoff_t re_search \7f477,18466
 +extern regoff_t re_search_2 \7f485,18781
 +extern regoff_t re_match \7f495,19177
 +extern regoff_t re_match_2 \7f501,19407
 +extern void re_set_registers \7f520,20197
 +extern char *re_comp \7fre_comp\ 1528,20469
 +extern int re_exec \7f529,20506
 +#  define _Restrict_ \7f540,20886
 +#  define _Restrict_ \7f542,20979
 +#  define _Restrict_\7f544,21018
 +#  define _Restrict_arr_ \7f555,21418
 +#  define _Restrict_arr_\7f557,21461
 +extern reg_errcode_t regcomp \7f562,21530
 +extern reg_errcode_t regexec \7f566,21656
 +extern size_t regerror \7f571,21850
 +extern void regfree \7f574,21956
 +#  define CHAR_CLASS_MAX_LENGTH \7f593,22470
 +#  define CHAR_CLASS_MAX_LENGTH \7f597,22648
 +typedef wctype_t re_wctype_t;\7f599,22692
 +typedef wchar_t re_wchar_t;\7f600,22722
 +# define re_wctype \7f601,22750
 +# define re_iswctype \7f602,22776
 +# define re_wctype_to_bit(\7f603,22806
 +# define CHAR_CLASS_MAX_LENGTH \7f605,22844
 +# define btowc(\7f606,22906
 +typedef enum { RECC_ERROR \7f609,22953
 +             RECC_ALNUM,\7f610,22984
 +             RECC_ALNUM, RECC_ALPHA,\7f610,22984
 +             RECC_ALNUM, RECC_ALPHA, RECC_WORD,\7f610,22984
 +             RECC_GRAPH,\7f611,23027
 +             RECC_GRAPH, RECC_PRINT,\7f611,23027
 +             RECC_LOWER,\7f612,23059
 +             RECC_LOWER, RECC_UPPER,\7f612,23059
 +             RECC_PUNCT,\7f613,23091
 +             RECC_PUNCT, RECC_CNTRL,\7f613,23091
 +             RECC_DIGIT,\7f614,23123
 +             RECC_DIGIT, RECC_XDIGIT,\7f614,23123
 +             RECC_BLANK,\7f615,23156
 +             RECC_BLANK, RECC_SPACE,\7f615,23156
 +             RECC_MULTIBYTE,\7f616,23188
 +             RECC_MULTIBYTE, RECC_NONASCII,\7f616,23188
 +             RECC_ASCII,\7f617,23227
 +             RECC_ASCII, RECC_UNIBYTE\7f617,23227
 +} re_wctype_t;\7f618,23260
 +extern char re_iswctype \7f620,23276
 +extern re_wctype_t re_wctype \7f621,23329
 +typedef int re_wchar_t;\7f623,23387
 +extern void re_set_whitespace_regexp \7f625,23412
 +\f
 +c-src/emacs/src/keyboard.c,23269
 +volatile int interrupt_input_blocked;\7f76,1808
 +volatile bool pending_signals;\7f80,1944
 +#define KBD_BUFFER_SIZE \7f82,1976
 +KBOARD *initial_kboard;\7finitial_kboard\ 184,2006
 +KBOARD *current_kboard;\7fcurrent_kboard\ 185,2030
 +static KBOARD *all_kboards;\7fall_kboards\ 186,2054
 +static bool single_kboard;\7f89,2154
 +#define NUM_RECENT_KEYS \7f91,2182
 +static int recent_keys_index;\7f94,2269
 +static int total_keys;\7f97,2357
 +static Lisp_Object recent_keys;\7f100,2443
 +Lisp_Object this_command_keys;\7f107,2777
 +ptrdiff_t this_command_key_count;\7f108,2808
 +static bool this_command_key_count_reset;\7f112,2922
 +static Lisp_Object raw_keybuf;\7f116,3074
 +static int raw_keybuf_count;\7f117,3105
 +#define GROW_RAW_KEYBUF       \7f119,3135
 +static ptrdiff_t this_single_command_key_start;\7f125,3350
 +static ptrdiff_t before_command_key_count;\7f129,3498
 +static ptrdiff_t before_command_echo_length;\7f130,3541
 +sigjmp_buf return_to_command_loop;\7f135,3677
 +static Lisp_Object recover_top_level_message;\7f138,3791
 +static Lisp_Object regular_top_level_message;\7f143,3930
 +static sys_jmp_buf getcjmp;\7f147,4031
 +bool waiting_for_input;\7f150,4095
 +static bool echoing;\7f154,4186
 +static struct kboard *ok_to_echo_at_next_pause;\7fok_to_echo_at_next_pause\ 1159,4328
 +struct kboard *echo_kboard;\7fecho_kboard\ 1166,4632
 +Lisp_Object echo_message_buffer;\7f171,4744
 +bool immediate_quit;\7f174,4837
 +int quit_char;\7f192,5623
 +EMACS_INT command_loop_level;\7f195,5680
 +Lisp_Object unread_switch_frame;\7f204,6108
 +static ptrdiff_t last_non_minibuf_size;\7f207,6216
 +uintmax_t num_input_events;\7f210,6334
 +static EMACS_INT last_auto_save;\7f214,6428
 +static ptrdiff_t last_point_position;\7f217,6523
 +Lisp_Object internal_last_event_frame;\7f228,7028
 +static Lisp_Object read_key_sequence_cmd;\7f232,7168
 +static Lisp_Object read_key_sequence_remapped;\7f233,7210
 +static FILE *dribble;\7fdribble\ 1236,7310
 +bool input_pending;\7f239,7368
 +static bool input_was_pending;\7f287,10022
 +static struct input_event kbd_buffer[\7fkbd_buffer\ 1291,10107
 +static struct input_event *kbd_fetch_ptr;\7fkbd_fetch_ptr\ 1297,10386
 +static struct input_event * volatile kbd_store_ptr;\7f302,10601
 +static void recursive_edit_unwind \7f313,11088
 +static Lisp_Object command_loop \7f314,11144
 +static void echo_now \7f316,11185
 +static ptrdiff_t echo_length \7f317,11214
 +unsigned timers_run;\7f320,11296
 +struct timespec *input_available_clear_time;\7finput_available_clear_time\ 1324,11408
 +bool interrupt_input;\7f328,11573
 +bool interrupts_deferred;\7f331,11671
 +static struct timespec timer_idleness_start_time;\7f335,11746
 +static struct timespec timer_last_idleness_start_time;\7f340,11916
 +#define READABLE_EVENTS_DO_TIMERS_NOW \7f346,12046
 +#define READABLE_EVENTS_FILTER_EVENTS \7f347,12094
 +#define READABLE_EVENTS_IGNORE_SQUEEZABLES    \7f348,12142
 +static void (*keyboard_init_hook)\7fkeyboard_init_hook\ 1351,12264
 +static bool get_input_pending \7f353,12307
 +static bool readable_events \7f354,12344
 +static Lisp_Object read_char_x_menu_prompt \7f355,12379
 +static Lisp_Object read_char_minibuf_menu_prompt \7f357,12502
 +static Lisp_Object make_lispy_event \7f358,12571
 +static Lisp_Object make_lispy_movement \7f359,12631
 +static Lisp_Object modify_event_symbol \7f363,12840
 +static Lisp_Object make_lispy_switch_frame \7f366,13050
 +static Lisp_Object make_lispy_focus_in \7f367,13108
 +static Lisp_Object make_lispy_focus_out \7f369,13188
 +static bool help_char_p \7f371,13275
 +static void save_getcjmp \7f372,13314
 +static void restore_getcjmp \7f373,13354
 +static Lisp_Object apply_modifiers \7f374,13397
 +static void clear_event \7f375,13452
 +static void restore_kboard_configuration \7f376,13500
 +static void deliver_input_available_signal \7f378,13568
 +static void handle_interrupt \7f380,13631
 +static _Noreturn void quit_throw_to_read_char \7f381,13668
 +static void process_special_events \7f382,13722
 +static void timer_start_idle \7f383,13765
 +static void timer_stop_idle \7f384,13802
 +static void timer_resume_idle \7f385,13838
 +static void deliver_user_signal \7f386,13876
 +static char *find_user_signal_name \7ffind_user_signal_name\ 1387,13915
 +static void store_user_signal_events \7f388,13957
 +kset_echo_string \7f392,14088
 +kset_kbd_queue \7f397,14184
 +kset_keyboard_translate_table \7f402,14276
 +kset_last_prefix_arg \7f407,14399
 +kset_last_repeatable_command \7f412,14504
 +kset_local_function_key_map \7f417,14625
 +kset_overriding_terminal_local_map \7f422,14744
 +kset_real_last_command \7f427,14877
 +kset_system_key_syms \7f432,14986
 +echo_add_key \7f443,15249
 +echo_char \7f527,17527
 +echo_dash \7f541,17813
 +echo_now \7f586,19140
 +cancel_echoing \7f635,20614
 +echo_length \7f648,20922
 +echo_truncate \7f660,21253
 +add_command_key \7f672,21582
 +recursive_edit_1 \7f697,22406
 +record_auto_save \7f742,23848
 +force_auto_save_soon \7f751,24016
 +DEFUN ("recursive-edit", Frecursive_edit,\7frecursive-edit\ 1759,24137
 +recursive_edit_unwind \7f804,25747
 +any_kboard_state \7f817,26013
 +single_kboard_state \7f838,26665
 +not_single_kboard_state \7f848,26803
 +struct kboard_stack\7f858,27065
 +  KBOARD *kboard;\7fkboard\ 1860,27087
 +  struct kboard_stack *next;\7fnext\ 1861,27105
 +static struct kboard_stack *kboard_stack;\7fkboard_stack\ 1864,27138
 +push_kboard \7f867,27186
 +pop_kboard \7f879,27375
 +temporarily_switch_to_single_kboard \7f914,28263
 +record_single_kboard_state \7f943,29437
 +restore_kboard_configuration \7f952,29621
 +cmd_error \7f970,30077
 +cmd_error_internal \7f1024,31510
 +DEFUN ("command-error-default-function", Fcommand_error_default_function,\7fcommand-error-default-function\ 11043,32030
 +static Lisp_Object command_loop_2 \7f1086,33637
 +static Lisp_Object top_level_1 \7f1087,33686
 +command_loop \7f1094,33916
 +command_loop_2 \7f1134,35135
 +top_level_2 \7f1146,35339
 +top_level_1 \7f1152,35417
 +DEFUN ("top-level", Ftop_level,\7ftop-level\ 11164,35787
 +user_error \7f1183,36288
 +DEFUN ("exit-recursive-edit", Fexit_recursive_edit,\7fexit-recursive-edit\ 11189,36429
 +DEFUN ("abort-recursive-edit", Fabort_recursive_edit,\7fabort-recursive-edit\ 11201,36819
 +tracking_off \7f1216,37281
 +DEFUN ("internal--track-mouse", Ftrack_mouse,\7ftrack-mouse\ 11234,37816
 +bool ignore_mouse_drag_p;\7f1256,38392
 +some_mouse_moved \7f1259,38441
 +static int read_key_sequence \7f1282,38799
 +static void adjust_point_for_property \7f1284,38917
 +Lisp_Object last_undo_boundary;\7f1287,39032
 +command_loop_1 \7f1294,39273
 +read_menu_command \7f1649,50889
 +adjust_point_for_property \7f1678,51617
 +safe_run_hooks_1 \7f1831,57339
 +safe_run_hooks_error \7f1841,57569
 +safe_run_hook_funcall \7f1878,58576
 +safe_run_hooks \7f1893,59058
 +int poll_suppress_count;\7f1908,59397
 +static struct atimer *poll_timer;\7fpoll_timer\ 11915,59487
 +poll_for_input_1 \7f1919,59589
 +poll_for_input \7f1930,59789
 +start_polling \7f1942,60053
 +input_polling_used \7f1979,61091
 +stop_polling \7f1994,61390
 +set_poll_suppress_count \7f2009,61759
 +bind_polling_period \7f2029,62141
 +make_ctrl_char \7f2048,62492
 +show_help_echo \7f2113,64455
 +static Lisp_Object kbd_buffer_get_event \7f2152,65484
 +static void record_char \7f2154,65596
 +static Lisp_Object help_form_saved_window_configs;\7f2156,65638
 +read_char_help_form_unwind \7f2158,65701
 +#define STOP_POLLING  \7f2166,65959
 +#define RESUME_POLLING        \7f2170,66084
 +read_event_from_main_queue \7f2175,66229
 +read_decoded_event_from_main_queue \7f2249,68417
 +#define MAX_ENCODED_BYTES \7f2254,68664
 +echo_keystrokes_p \7f2342,71556
 +read_char \7f2376,72848
 +record_menu_key \7f3225,98949
 +help_char_p \7f3258,99674
 +record_char \7f3273,99953
 +save_getcjmp \7f3412,104235
 +restore_getcjmp \7f3418,104326
 +readable_events \7f3430,104697
 +int stop_character EXTERNALLY_VISIBLE;\7f3497,106437
 +event_to_kboard \7f3500,106493
 +kbd_buffer_nr_stored \7f3522,107142
 +kbd_buffer_store_event \7f3534,107483
 +kbd_buffer_store_event_hold \7f3550,108025
 +kbd_buffer_unget_event \7f3684,111617
 +#define INPUT_EVENT_POS_MAX \7f3698,112018
 +#define INPUT_EVENT_POS_MIN \7f3701,112147
 +position_to_Time \7f3706,112287
 +Time_to_position \7f3716,112514
 +gen_help_event \7f3738,113171
 +kbd_buffer_store_help_event \7f3756,113611
 +discard_mouse_events \7f3773,113976
 +kbd_buffer_events_waiting \7f3803,114711
 +clear_event \7f3823,115068
 +kbd_buffer_get_event \7f3836,115408
 +process_special_events \7f4258,127881
 +swallow_events \7f4322,129705
 +timer_start_idle \7f4339,130098
 +timer_stop_idle \7f4355,130576
 +timer_resume_idle \7f4363,130720
 +struct input_event last_timer_event EXTERNALLY_VISIBLE;\7f4372,130912
 +Lisp_Object pending_funcalls;\7f4377,131172
 +decode_timer \7f4381,131293
 +timer_check_2 \7f4414,132246
 +timer_check \7f4572,136817
 +DEFUN ("current-idle-time", Fcurrent_idle_time,\7fcurrent-idle-time\ 14607,137662
 +static Lisp_Object accent_key_syms;\7f4625,138239
 +static Lisp_Object func_key_syms;\7f4626,138275
 +static Lisp_Object mouse_syms;\7f4627,138309
 +static Lisp_Object wheel_syms;\7f4628,138340
 +static Lisp_Object drag_n_drop_syms;\7f4629,138371
 +static const int lispy_accent_codes[\7flispy_accent_codes\ 14634,138516
 +static const char *const lispy_accent_keys[\7flispy_accent_keys\ 14741,139878
 +#define FUNCTION_KEY_OFFSET \7f4766,140314
 +const char *const lispy_function_keys[\7flispy_function_keys\ 14768,140347
 +static const char *const lispy_multimedia_keys[\7flispy_multimedia_keys\ 14962,148901
 +static const char *const lispy_kana_keys[\7flispy_kana_keys\ 15026,150135
 +#define FUNCTION_KEY_OFFSET \7f5061,151751
 +static const char *const lispy_function_keys[\7flispy_function_keys\ 15065,151894
 +#define ISO_FUNCTION_KEY_OFFSET \7f5149,154429
 +static const char *const iso_lispy_function_keys[\7fiso_lispy_function_keys\ 15151,154469
 +static Lisp_Object Vlispy_mouse_stem;\7f5172,155328
 +static const char *const lispy_wheel_names[\7flispy_wheel_names\ 15174,155367
 +static const char *const lispy_drag_n_drop_names[\7flispy_drag_n_drop_names\ 15181,155619
 +static short const scroll_bar_parts[\7fscroll_bar_parts\ 15189,155885
 +static Lisp_Object button_down_location;\7f5210,156910
 +static int last_mouse_button;\7f5215,157065
 +static int last_mouse_x;\7f5216,157095
 +static int last_mouse_y;\7f5217,157120
 +static Time button_down_time;\7f5218,157145
 +static int double_click_count;\7f5222,157229
 +make_lispy_position \7f5228,157390
 +toolkit_menubar_in_use \7f5456,163953
 +make_scroll_bar_position \7f5469,164321
 +make_lispy_event \7f5485,164967
 +make_lispy_movement \7f6104,183531
 +make_lispy_switch_frame \7f6131,184262
 +make_lispy_focus_in \7f6137,184369
 +make_lispy_focus_out \7f6145,184495
 +parse_modifiers_uncached \7f6163,184945
 +#define SINGLE_LETTER_MOD(\7f6185,185465
 +#undef SINGLE_LETTER_MOD\7f6212,185906
 +#define MULTI_LETTER_MOD(\7f6214,185932
 +#undef MULTI_LETTER_MOD\7f6231,186400
 +apply_modifiers_uncached \7f6273,187574
 +static const char *const modifier_names[\7fmodifier_names\ 16319,189193
 +#define NUM_MOD_NAMES \7f6325,189399
 +static Lisp_Object modifier_symbols;\7f6327,189449
 +lispy_modifier_list \7f6331,189586
 +#define KEY_TO_CHAR(\7f6353,190252
 +parse_modifiers \7f6356,190328
 +DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,\7fevent-symbol-parse-modifiers\ 16399,191517
 +apply_modifiers \7f6422,192391
 +reorder_modifiers \7f6491,194720
 +modify_event_symbol \7f6536,196528
 +DEFUN ("event-convert-list", Fevent_convert_list,\7fevent-convert-list\ 16628,199244
 +parse_solitary_modifier \7f6695,201135
 +#define SINGLE_LETTER_MOD(\7f6701,201258
 +#define MULTI_LETTER_MOD(\7f6705,201343
 +#undef SINGLE_LETTER_MOD\7f6763,202641
 +#undef MULTI_LETTER_MOD\7f6764,202666
 +lucid_event_type_list_p \7f6775,202889
 +get_input_pending \7f6814,203960
 +record_asynch_buffer_change \7f6834,204579
 +gobble_input \7f6872,205702
 +tty_read_avail_input \7f6967,208310
 +handle_async_input \7f7149,214039
 +process_pending_signals \7f7165,214359
 +unblock_input_to \7f7177,214645
 +unblock_input \7f7200,215277
 +totally_unblock_input \7f7209,215445
 +handle_input_available_signal \7f7217,215529
 +deliver_input_available_signal \7f7226,215700
 +struct user_signal_info\7f7235,215865
 +  int sig;\7f7238,215915
 +  char *name;\7fname\ 17241,215956
 +  int npending;\7f7244,216007
 +  struct user_signal_info *next;\7fnext\ 17246,216024
 +static struct user_signal_info *user_signals \7fuser_signals\ 17250,216090
 +add_user_signal \7f7253,216149
 +handle_user_signal \7f7275,216598
 +deliver_user_signal \7f7316,217558
 +find_user_signal_name \7f7322,217659
 +store_user_signal_events \7f7334,217841
 +static void menu_bar_item \7f7362,218341
 +static Lisp_Object menu_bar_one_keymap_changed_items;\7f7363,218416
 +static Lisp_Object menu_bar_items_vector;\7f7368,218630
 +static int menu_bar_items_index;\7f7369,218672
 +static const char *separator_names[\7fseparator_names\ 17372,218707
 +menu_separator_name_p \7f7393,219148
 +menu_bar_items \7f7426,219852
 +Lisp_Object item_properties;\7f7568,224603
 +menu_bar_item \7f7571,224645
 +menu_item_eval_property_1 \7f7647,227175
 +eval_dyn \7f7658,227465
 +menu_item_eval_property \7f7666,227675
 +parse_menu_item \7f7686,228341
 +static Lisp_Object tool_bar_items_vector;\7f7965,236336
 +static Lisp_Object tool_bar_item_properties;\7f7970,236510
 +static int ntool_bar_items;\7f7974,236606
 +static void init_tool_bar_items \7f7978,236664
 +static void process_tool_bar_item \7f7979,236711
 +static bool parse_tool_bar_item \7f7981,236801
 +static void append_tool_bar_item \7f7982,236861
 +tool_bar_items \7f7990,237083
 +process_tool_bar_item \7f8075,239892
 +#define PROP(\7f8112,240969
 +set_prop \7f8114,241038
 +parse_tool_bar_item \7f8167,242453
 +#undef PROP\7f8379,248844
 +init_tool_bar_items \7f8387,248969
 +append_tool_bar_item \7f8401,249261
 +read_char_x_menu_prompt \7f8443,250771
 +read_char_minibuf_menu_prompt \7f8503,252445
 +#define PUSH_C_STR(\7f8527,253014
 +follow_key \7f8726,258553
 +active_maps \7f8733,258695
 +typedef struct keyremap\7f8742,259021
 +  Lisp_Object parent;\7f8745,259107
 +  Lisp_Object map;\7f8748,259224
 +  int start,\7f8753,259446
 +  int start, end;\7f8753,259446
 +} keyremap;\7f8754,259464
 +access_keymap_keyremap \7f8764,259808
 +keyremap_step \7f8811,261450
 +test_undefined \7f8867,262934
 +read_key_sequence \7f8916,264861
 +read_key_sequence_vs \7f9826,295821
 +DEFUN ("read-key-sequence", Fread_key_sequence,\7fread-key-sequence\ 19885,297294
 +DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,\7fread-key-sequence-vector\ 19938,299982
 +detect_input_pending \7f9950,300488
 +detect_input_pending_ignore_squeezables \7f9959,300654
 +detect_input_pending_run_timers \7f9967,300870
 +clear_input_pending \7f9985,301362
 +requeued_events_pending_p \7f9997,301732
 +DEFUN ("input-pending-p", Finput_pending_p,\7finput-pending-p\ 110002,301813
 +DEFUN ("recent-keys", Frecent_keys,\7frecent-keys\ 110024,302596
 +DEFUN ("this-command-keys", Fthis_command_keys,\7fthis-command-keys\ 110055,303517
 +DEFUN ("this-command-keys-vector", Fthis_command_keys_vector,\7fthis-command-keys-vector\ 110068,303958
 +DEFUN ("this-single-command-keys", Fthis_single_command_keys,\7fthis-single-command-keys\ 110080,304380
 +DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,\7fthis-single-command-raw-keys\ 110096,304955
 +DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,\7freset-this-command-lengths\ 110109,305495
 +DEFUN ("clear-this-command-keys", Fclear_this_command_keys,\7fclear-this-command-keys\ 110136,306510
 +DEFUN ("recursion-depth", Frecursion_depth,\7frecursion-depth\ 110158,307069
 +DEFUN ("open-dribble-file", Fopen_dribble_file,\7fopen-dribble-file\ 110169,307406
 +DEFUN ("discard-input", Fdiscard_input,\7fdiscard-input\ 110203,308447
 +DEFUN ("suspend-emacs", Fsuspend_emacs,\7fsuspend-emacs\ 110225,308949
 +stuff_buffered_input \7f10285,311045
 +set_waiting_for_input \7f10323,312016
 +clear_waiting_for_input \7f10337,312390
 +handle_interrupt_signal \7f10351,312754
 +deliver_interrupt_signal \7f10378,313642
 +static int volatile force_quit_count;\7f10387,313932
 +handle_interrupt \7f10401,314414
 +quit_throw_to_read_char \7f10541,318711
 +DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,\7fset-input-interrupt-mode\ 110562,319288
 +DEFUN ("set-output-flow-control", Fset_output_flow_control,\7fset-output-flow-control\ 110609,320516
 +DEFUN ("set-input-meta-mode", Fset_input_meta_mode,\7fset-input-meta-mode\ 110643,321432
 +DEFUN ("set-quit-char", Fset_quit_char,\7fset-quit-char\ 110694,322706
 +DEFUN ("set-input-mode", Fset_input_mode,\7fset-input-mode\ 110729,323570
 +DEFUN ("current-input-mode", Fcurrent_input_mode,\7fcurrent-input-mode\ 110750,324459
 +DEFUN ("posn-at-x-y", Fposn_at_x_y,\7fposn-at-x-y\ 110787,325837
 +DEFUN ("posn-at-point", Fposn_at_point,\7fposn-at-point\ 110824,327060
 +init_kboard \7f10861,328214
 +allocate_kboard \7f10893,329284
 +wipe_kboard \7f10909,329637
 +delete_kboard \7f10917,329751
 +init_keyboard \7f10942,330281
 +struct event_head\7f11021,332696
 +  short var;\7f11023,332716
 +  short kind;\7f11024,332729
 +static const struct event_head head_table[\7fhead_table\ 111027,332747
 +syms_of_keyboard \7f11045,333577
 +  DEFVAR_LISP ("internal--top-level-message"\7f11058,333972
 +  DEFVAR_LISP ("last-command-event"\7f11312,342173
 +  DEFVAR_LISP ("last-nonmenu-event"\7f11315,342297
 +  DEFVAR_LISP ("last-input-event"\7f11321,342636
 +  DEFVAR_LISP ("unread-command-events"\7f11324,342730
 +  DEFVAR_LISP ("unread-post-input-method-events"\7f11332,343190
 +  DEFVAR_LISP ("unread-input-method-events"\7f11338,343529
 +  DEFVAR_LISP ("meta-prefix-char"\7f11346,343898
 +  DEFVAR_KBOARD ("last-command"\7f11351,344106
 +  DEFVAR_KBOARD ("real-last-command"\7f11368,344787
 +  DEFVAR_KBOARD ("last-repeatable-command"\7f11372,344973
 +  DEFVAR_LISP ("this-command"\7f11378,345261
 +  DEFVAR_LISP ("real-this-command"\7f11384,345498
 +  DEFVAR_LISP ("this-command-keys-shift-translated"\7f11388,345680
 +  DEFVAR_LISP ("this-original-command"\7f11396,346123
 +  DEFVAR_INT ("auto-save-interval"\7f11403,346520
 +  DEFVAR_LISP ("auto-save-timeout"\7f11408,346734
 +  DEFVAR_LISP ("echo-keystrokes"\7f11415,347079
 +  DEFVAR_INT ("polling-period"\7f11421,347350
 +  DEFVAR_LISP ("double-click-time"\7f11428,347693
 +  DEFVAR_INT ("double-click-fuzz"\7f11435,348029
 +  DEFVAR_INT ("num-input-keys"\7f11446,348519
 +  DEFVAR_INT ("num-nonmacro-input-events"\7f11452,348794
 +  DEFVAR_LISP ("last-event-frame"\7f11457,349032
 +  DEFVAR_LISP ("tty-erase-char"\7f11463,349311
 +  DEFVAR_LISP ("help-char"\7f11466,349434
 +  DEFVAR_LISP ("help-event-list"\7f11472,349717
 +  DEFVAR_LISP ("help-form"\7f11477,349928
 +  DEFVAR_LISP ("prefix-help-command"\7f11483,350176
 +  DEFVAR_LISP ("top-level"\7f11489,350454
 +  DEFVAR_KBOARD ("keyboard-translate-table"\7f11495,350675
 +  DEFVAR_BOOL ("cannot-suspend"\7f11511,351488
 +  DEFVAR_BOOL ("menu-prompting"\7f11516,351715
 +  DEFVAR_LISP ("menu-prompt-more-char"\7f11526,352145
 +  DEFVAR_INT ("extra-keyboard-modifiers"\7f11531,352391
 +  DEFVAR_LISP ("deactivate-mark"\7f11545,353117
 +  DEFVAR_LISP ("pre-command-hook"\7f11553,353486
 +  DEFVAR_LISP ("post-command-hook"\7f11560,353841
 +  DEFVAR_LISP ("echo-area-clear-hook"\7f11568,354204
 +  DEFVAR_LISP ("lucid-menu-bar-dirty-flag"\7f11574,354419
 +  DEFVAR_LISP ("menu-bar-final-items"\7f11578,354622
 +  DEFVAR_LISP ("tool-bar-separator-image-expression"\7f11583,354872
 +  DEFVAR_KBOARD ("overriding-terminal-local-map"\7f11589,355230
 +  DEFVAR_LISP ("overriding-local-map"\7f11598,355652
 +  DEFVAR_LISP ("overriding-local-map-menu-flag"\7f11607,356103
 +  DEFVAR_LISP ("special-event-map"\7f11613,356442
 +  DEFVAR_LISP ("track-mouse"\7f11617,356630
 +  DEFVAR_KBOARD ("system-key-alist"\7f11620,356757
 +  DEFVAR_KBOARD ("local-function-key-map"\7f11629,357138
 +  DEFVAR_KBOARD ("input-decode-map"\7f11658,358597
 +  DEFVAR_LISP ("function-key-map"\7f11675,359385
 +  DEFVAR_LISP ("key-translation-map"\7f11683,359801
 +  DEFVAR_LISP ("deferred-action-list"\7f11689,360145
 +  DEFVAR_LISP ("deferred-action-function"\7f11694,360393
 +  DEFVAR_LISP ("delayed-warnings-list"\7f11700,360692
 +  DEFVAR_LISP ("timer-list"\7f11708,361100
 +  DEFVAR_LISP ("timer-idle-list"\7f11712,361252
 +  DEFVAR_LISP ("input-method-function"\7f11716,361415
 +  DEFVAR_LISP ("input-method-previous-message"\7f11737,362384
 +  DEFVAR_LISP ("show-help-function"\7f11744,362745
 +  DEFVAR_LISP ("disable-point-adjustment"\7f11749,362977
 +  DEFVAR_LISP ("global-disable-point-adjustment"\7f11761,363527
 +  DEFVAR_LISP ("minibuffer-message-timeout"\7f11770,363893
 +  DEFVAR_LISP ("throw-on-input"\7f11775,364171
 +  DEFVAR_LISP ("command-error-function"\7f11781,364422
 +  DEFVAR_LISP ("enable-disabled-menus-and-buttons"\7f11790,364909
 +  DEFVAR_LISP ("select-active-regions"\7f11798,365236
 +  DEFVAR_LISP ("saved-region-selection"\7f11807,365628
 +  DEFVAR_LISP ("selection-inhibit-update-commands"\7f11815,366013
 +  DEFVAR_LISP ("debug-on-event"\7f11825,366554
 +keys_of_keyboard \7f11841,367115
 +mark_kboards \7f11916,370434
 +  DEFVAR_LISP ("internal--top-level-message",\7f\1\ 111058,333972
 +  DEFVAR_LISP ("last-command-event",\7f\1\ 111312,342173
 +  DEFVAR_LISP ("last-nonmenu-event",\7f\1\ 111315,342297
 +  DEFVAR_LISP ("last-input-event",\7f\1\ 111321,342636
 +  DEFVAR_LISP ("unread-command-events",\7f\1\ 111324,342730
 +  DEFVAR_LISP ("unread-post-input-method-events",\7f\1\ 111332,343190
 +  DEFVAR_LISP ("unread-input-method-events",\7f\1\ 111338,343529
 +  DEFVAR_LISP ("meta-prefix-char",\7f\1\ 111346,343898
 +  DEFVAR_KBOARD ("last-command",\7f\1\ 111351,344106
 +  DEFVAR_KBOARD ("real-last-command",\7f\1\ 111368,344787
 +  DEFVAR_KBOARD ("last-repeatable-command",\7f\1\ 111372,344973
 +  DEFVAR_LISP ("this-command",\7f\1\ 111378,345261
 +  DEFVAR_LISP ("real-this-command",\7f\1\ 111384,345498
 +  DEFVAR_LISP ("this-command-keys-shift-translated",\7f\1\ 111388,345680
 +  DEFVAR_LISP ("this-original-command",\7f\1\ 111396,346123
 +  DEFVAR_INT ("auto-save-interval",\7f\1\ 111403,346520
 +  DEFVAR_LISP ("auto-save-timeout",\7f\1\ 111408,346734
 +  DEFVAR_LISP ("echo-keystrokes",\7f\1\ 111415,347079
 +  DEFVAR_INT ("polling-period",\7f\1\ 111421,347350
 +  DEFVAR_LISP ("double-click-time",\7f\1\ 111428,347693
 +  DEFVAR_INT ("double-click-fuzz",\7f\1\ 111435,348029
 +  DEFVAR_INT ("num-input-keys",\7f\1\ 111446,348519
 +  DEFVAR_INT ("num-nonmacro-input-events",\7f\1\ 111452,348794
 +  DEFVAR_LISP ("last-event-frame",\7f\1\ 111457,349032
 +  DEFVAR_LISP ("tty-erase-char",\7f\1\ 111463,349311
 +  DEFVAR_LISP ("help-char",\7f\1\ 111466,349434
 +  DEFVAR_LISP ("help-event-list",\7f\1\ 111472,349717
 +  DEFVAR_LISP ("help-form",\7f\1\ 111477,349928
 +  DEFVAR_LISP ("prefix-help-command",\7f\1\ 111483,350176
 +  DEFVAR_LISP ("top-level",\7f\1\ 111489,350454
 +  DEFVAR_KBOARD ("keyboard-translate-table",\7f\1\ 111495,350675
 +  DEFVAR_BOOL ("cannot-suspend",\7f\1\ 111511,351488
 +  DEFVAR_BOOL ("menu-prompting",\7f\1\ 111516,351715
 +  DEFVAR_LISP ("menu-prompt-more-char",\7f\1\ 111526,352145
 +  DEFVAR_INT ("extra-keyboard-modifiers",\7f\1\ 111531,352391
 +  DEFVAR_LISP ("deactivate-mark",\7f\1\ 111545,353117
 +  DEFVAR_LISP ("pre-command-hook",\7f\1\ 111553,353486
 +  DEFVAR_LISP ("post-command-hook",\7f\1\ 111560,353841
 +  DEFVAR_LISP ("echo-area-clear-hook",\7f\1\ 111568,354204
 +  DEFVAR_LISP ("lucid-menu-bar-dirty-flag",\7f\1\ 111574,354419
 +  DEFVAR_LISP ("menu-bar-final-items",\7f\1\ 111578,354622
 +  DEFVAR_LISP ("tool-bar-separator-image-expression",\7f\1\ 111583,354872
 +  DEFVAR_KBOARD ("overriding-terminal-local-map",\7f\1\ 111589,355230
 +  DEFVAR_LISP ("overriding-local-map",\7f\1\ 111598,355652
 +  DEFVAR_LISP ("overriding-local-map-menu-flag",\7f\1\ 111607,356103
 +  DEFVAR_LISP ("special-event-map",\7f\1\ 111613,356442
 +  DEFVAR_LISP ("track-mouse",\7f\1\ 111617,356630
 +  DEFVAR_KBOARD ("system-key-alist",\7f\1\ 111620,356757
 +  DEFVAR_KBOARD ("local-function-key-map",\7f\1\ 111629,357138
 +  DEFVAR_KBOARD ("input-decode-map",\7f\1\ 111658,358597
 +  DEFVAR_LISP ("function-key-map",\7f\1\ 111675,359385
 +  DEFVAR_LISP ("key-translation-map",\7f\1\ 111683,359801
 +  DEFVAR_LISP ("deferred-action-list",\7f\1\ 111689,360145
 +  DEFVAR_LISP ("deferred-action-function",\7f\1\ 111694,360393
 +  DEFVAR_LISP ("delayed-warnings-list",\7f\1\ 111700,360692
 +  DEFVAR_LISP ("timer-list",\7f\1\ 111708,361100
 +  DEFVAR_LISP ("timer-idle-list",\7f\1\ 111712,361252
 +  DEFVAR_LISP ("input-method-function",\7f\1\ 111716,361415
 +  DEFVAR_LISP ("input-method-previous-message",\7f\1\ 111737,362384
 +  DEFVAR_LISP ("show-help-function",\7f\1\ 111744,362745
 +  DEFVAR_LISP ("disable-point-adjustment",\7f\1\ 111749,362977
 +  DEFVAR_LISP ("global-disable-point-adjustment",\7f\1\ 111761,363527
 +  DEFVAR_LISP ("minibuffer-message-timeout",\7f\1\ 111770,363893
 +  DEFVAR_LISP ("throw-on-input",\7f\1\ 111775,364171
 +  DEFVAR_LISP ("command-error-function",\7f\1\ 111781,364422
 +  DEFVAR_LISP ("enable-disabled-menus-and-buttons",\7f\1\ 111790,364909
 +  DEFVAR_LISP ("select-active-regions",\7f\1\ 111798,365236
 +  DEFVAR_LISP ("saved-region-selection",\7f\1\ 111807,365628
 +  DEFVAR_LISP ("selection-inhibit-update-commands",\7f\1\ 111815,366013
 +  DEFVAR_LISP ("debug-on-event",\7f\1\ 111825,366554
 +\f
 +c-src/emacs/src/lisp.h,39173
 +#define EMACS_LISP_H\7f22,800
 +#define DECLARE_GDB_SYM(\7f47,1421
 +# define DEFINE_GDB_SYMBOL_BEGIN(\7f49,1508
 +# define DEFINE_GDB_SYMBOL_END(\7f50,1578
 +# define DEFINE_GDB_SYMBOL_BEGIN(\7f52,1625
 +# define DEFINE_GDB_SYMBOL_END(\7f53,1702
 +#undef min\7f57,1790
 +#undef max\7f58,1801
 +#define max(\7f59,1812
 +#define min(\7f60,1854
 +#define ARRAYELTS(\7f63,1936
 +#define GCTYPEBITS \7f67,2079
 +DEFINE_GDB_SYMBOL_BEGIN \7fGCTYPEBITS\ 166,2037
 +# define NONPOINTER_BITS \7f78,2567
 +# define NONPOINTER_BITS \7f80,2600
 +typedef int EMACS_INT;\7f91,3023
 +typedef unsigned int EMACS_UINT;\7f92,3046
 +#  define EMACS_INT_MAX \7f93,3079
 +#  define pI \7f94,3111
 +typedef long int EMACS_INT;\7f96,3203
 +typedef unsigned long EMACS_UINT;\7f97,3231
 +#  define EMACS_INT_MAX \7f98,3265
 +#  define pI \7f99,3298
 +typedef long long int EMACS_INT;\7f103,3477
 +typedef unsigned long long int EMACS_UINT;\7f104,3510
 +#  define EMACS_INT_MAX \7f105,3553
 +#  define pI \7f106,3587
 +enum {  BOOL_VECTOR_BITS_PER_CHAR \7f114,3804
 +#define BOOL_VECTOR_BITS_PER_CHAR \7f115,3840
 +typedef size_t bits_word;\7f123,4165
 +# define BITS_WORD_MAX \7f124,4191
 +enum { BITS_PER_BITS_WORD \7f125,4223
 +typedef unsigned char bits_word;\7f127,4290
 +# define BITS_WORD_MAX \7f128,4323
 +enum { BITS_PER_BITS_WORD \7f129,4386
 +verify \7f131,4450
 +    BITS_PER_CHAR \7f136,4570
 +    BITS_PER_SHORT \7f137,4605
 +    BITS_PER_LONG \7f138,4657
 +    BITS_PER_EMACS_INT \7f139,4712
 +typedef intmax_t printmax_t;\7f148,5089
 +typedef uintmax_t uprintmax_t;\7f149,5118
 +# define pMd \7f150,5149
 +# define pMu \7f151,5170
 +typedef EMACS_INT printmax_t;\7f153,5197
 +typedef EMACS_UINT uprintmax_t;\7f154,5227
 +# define pMd \7f155,5259
 +# define pMu \7f156,5278
 +# define pD \7f165,5664
 +# define pD \7f167,5709
 +# define pD \7f169,5756
 +# define pD \7f171,5779
 +# define eassert(\7f200,7062
 +# define eassume(\7f201,7140
 +extern _Noreturn void die \7f204,7206
 +extern bool suppress_checking EXTERNALLY_VISIBLE;\7f206,7268
 +# define eassert(\7f208,7319
 +# define eassume(\7f212,7450
 +enum Lisp_Bits\7f239,8519
 +#define GCALIGNMENT \7f243,8647
 +    VALBITS \7f246,8742
 +    INTTYPEBITS \7f249,8838
 +    FIXNUM_BITS \7f252,8945
 +#define VAL_MAX \7f263,9327
 +#define USE_LSB_TAG \7f271,9777
 +DEFINE_GDB_SYMBOL_BEGIN \7fUSE_LSB_TAG\ 1270,9733
 +# define alignas(\7f281,10077
 +# define GCALIGNED \7f288,10227
 +# define GCALIGNED \7f290,10292
 +# define lisp_h_XLI(\7f327,11642
 +# define lisp_h_XIL(\7f328,11673
 +# define lisp_h_XLI(\7f330,11724
 +# define lisp_h_XIL(\7f331,11751
 +#define lisp_h_CHECK_LIST_CONS(\7f333,11785
 +#define lisp_h_CHECK_NUMBER(\7f334,11856
 +#define lisp_h_CHECK_SYMBOL(\7f335,11927
 +#define lisp_h_CHECK_TYPE(\7f336,11996
 +#define lisp_h_CONSP(\7f338,12107
 +#define lisp_h_EQ(\7f339,12156
 +#define lisp_h_FLOATP(\7f340,12201
 +#define lisp_h_INTEGERP(\7f341,12252
 +#define lisp_h_MARKERP(\7f342,12333
 +#define lisp_h_MISCP(\7f343,12408
 +#define lisp_h_NILP(\7f344,12457
 +#define lisp_h_SET_SYMBOL_VAL(\7f345,12493
 +#define lisp_h_SYMBOL_CONSTANT_P(\7f347,12607
 +#define lisp_h_SYMBOL_VAL(\7f348,12671
 +#define lisp_h_SYMBOLP(\7f350,12772
 +#define lisp_h_VECTORLIKEP(\7f351,12825
 +#define lisp_h_XCAR(\7f352,12886
 +#define lisp_h_XCDR(\7f353,12924
 +#define lisp_h_XCONS(\7f354,12964
 +#define lisp_h_XHASH(\7f356,13059
 +#define lisp_h_XPNTR(\7f357,13093
 +# define lisp_h_check_cons_list(\7f360,13221
 +# define lisp_h_make_number(\7f363,13289
 +# define lisp_h_XFASTINT(\7f365,13392
 +# define lisp_h_XINT(\7f366,13429
 +# define lisp_h_XSYMBOL(\7f367,13478
 +# define lisp_h_XTYPE(\7f371,13631
 +# define lisp_h_XUNTAG(\7f372,13696
 +# define XLI(\7f381,14086
 +# define XIL(\7f382,14117
 +# define CHECK_LIST_CONS(\7f383,14148
 +# define CHECK_NUMBER(\7f384,14209
 +# define CHECK_SYMBOL(\7f385,14258
 +# define CHECK_TYPE(\7f386,14307
 +# define CONSP(\7f387,14382
 +# define EQ(\7f388,14417
 +# define FLOATP(\7f389,14452
 +# define INTEGERP(\7f390,14489
 +# define MARKERP(\7f391,14530
 +# define MISCP(\7f392,14569
 +# define NILP(\7f393,14604
 +# define SET_SYMBOL_VAL(\7f394,14637
 +# define SYMBOL_CONSTANT_P(\7f395,14700
 +# define SYMBOL_VAL(\7f396,14763
 +# define SYMBOLP(\7f397,14812
 +# define VECTORLIKEP(\7f398,14851
 +# define XCAR(\7f399,14898
 +# define XCDR(\7f400,14931
 +# define XCONS(\7f401,14964
 +# define XHASH(\7f402,14999
 +# define XPNTR(\7f403,15034
 +#  define check_cons_list(\7f405,15097
 +#  define make_number(\7f408,15176
 +#  define XFASTINT(\7f409,15224
 +#  define XINT(\7f410,15266
 +#  define XSYMBOL(\7f411,15300
 +#  define XTYPE(\7f412,15340
 +#  define XUNTAG(\7f413,15376
 +#define LISP_MACRO_DEFUN(\7f421,15672
 +#define LISP_MACRO_DEFUN_VOID(\7f425,15845
 +#define INTMASK \7f437,16289
 +#define case_Lisp_Int \7f438,16342
 +#define ENUM_BF(\7f445,16681
 +#define ENUM_BF(\7f447,16722
 +enum Lisp_Type\7f451,16763
 +    Lisp_Symbol \7f454,16851
 +    Lisp_Misc \7f458,16993
 +    Lisp_Int0 \7f461,17067
 +    Lisp_Int1 \7f462,17086
 +    Lisp_String \7f466,17264
 +    Lisp_Vectorlike \7f472,17543
 +    Lisp_Cons \7f475,17632
 +    Lisp_Float \7f477,17670
 +enum Lisp_Misc_Type\7f485,18016
 +    Lisp_Misc_Free \7f487,18040
 +    Lisp_Misc_Marker,\7f488,18069
 +    Lisp_Misc_Overlay,\7f489,18091
 +    Lisp_Misc_Save_Value,\7f490,18114
 +    Lisp_Misc_Finalizer,\7f491,18140
 +    Lisp_Misc_Float,\7f494,18275
 +    Lisp_Misc_Limit\7f496,18359
 +enum Lisp_Fwd_Type\7f502,18543
 +    Lisp_Fwd_Int,\7f504,18566
 +    Lisp_Fwd_Bool,\7f505,18619
 +    Lisp_Fwd_Obj,\7f506,18670
 +    Lisp_Fwd_Buffer_Obj,\7f507,18729
 +    Lisp_Fwd_Kboard_Obj       \7f508,18800
 +typedef struct { EMACS_INT i;\7f567,21781
 +typedef struct { EMACS_INT i; } Lisp_Object;\7f567,21781
 +#define LISP_INITIALLY(\7f569,21827
 +#undef CHECK_LISP_OBJECT_TYPE\7f571,21858
 +enum CHECK_LISP_OBJECT_TYPE \7f572,21888
 +enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE \7f572,21888
 +typedef EMACS_INT Lisp_Object;\7f577,22064
 +#define LISP_INITIALLY(\7f578,22095
 +enum CHECK_LISP_OBJECT_TYPE \7f579,22125
 +enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE \7f579,22125
 +#define LISP_INITIALLY_ZERO \7f582,22226
 +INLINE bool BOOL_VECTOR_P \7f588,22350
 +INLINE bool BUFFER_OBJFWDP \7f589,22391
 +INLINE bool BUFFERP \7f590,22438
 +INLINE bool CHAR_TABLE_P \7f591,22473
 +INLINE Lisp_Object CHAR_TABLE_REF_ASCII \7f592,22513
 +INLINE bool \7f593,22579
 +INLINE bool \7f594,22614
 +INLINE bool functionp \7f595,22650
 +INLINE bool \7f596,22687
 +INLINE bool \7f597,22725
 +INLINE bool \7f598,22762
 +INLINE bool \7f599,22797
 +INLINE bool OVERLAYP \7f600,22831
 +INLINE bool PROCESSP \7f601,22867
 +INLINE bool PSEUDOVECTORP \7f602,22903
 +INLINE bool SAVE_VALUEP \7f603,22949
 +INLINE bool FINALIZERP \7f604,22988
 +INLINE void set_sub_char_table_contents \7f605,23026
 +INLINE bool STRINGP \7f607,23116
 +INLINE bool SUB_CHAR_TABLE_P \7f608,23151
 +INLINE bool SUBRP \7f609,23195
 +INLINE bool \7f610,23228
 +INLINE bool \7f611,23265
 +INLINE bool WINDOWP \7f612,23306
 +INLINE bool TERMINALP \7f613,23341
 +INLINE struct Lisp_Save_Value *XSAVE_VALUE \7fXSAVE_VALUE\ 1614,23378
 +INLINE struct Lisp_Finalizer *XFINALIZER \7fXFINALIZER\ 1615,23436
 +INLINE struct Lisp_Symbol *(XSYMBOL)\7f616,23492
 +INLINE void \7f617,23544
 +extern Lisp_Object char_table_ref \7f620,23616
 +extern void char_table_set \7f621,23670
 +extern _Noreturn Lisp_Object wrong_type_argument \7f624,23757
 +extern _Noreturn void wrong_choice \7f625,23834
 +extern bool might_dump;\7f628,23925
 +extern bool initialized;\7f631,24061
 +extern double extract_float \7f634,24117
 +enum symbol_interned\7f639,24199
 +  SYMBOL_UNINTERNED \7f641,24222
 +  SYMBOL_INTERNED \7f642,24247
 +  SYMBOL_INTERNED_IN_INITIAL_OBARRAY \7f643,24270
 +enum symbol_redirect\7f646,24315
 +  SYMBOL_PLAINVAL \7f648,24338
 +  SYMBOL_VARALIAS \7f649,24362
 +  SYMBOL_LOCALIZED \7f650,24386
 +  SYMBOL_FORWARDED \7f651,24410
 +struct Lisp_Symbol\7f654,24437
 +  bool_bf gcmarkbit \7f656,24458
 +  ENUM_BF \7f663,24793
 +    Lisp_Object value;\7f687,25631
 +    struct Lisp_Symbol *alias;\7falias\ 1688,25654
 +    struct Lisp_Buffer_Local_Value *blv;\7fblv\ 1689,25685
 +    union Lisp_Fwd *fwd;\7ffwd\ 1690,25726
 +  } val;\7f691,25751
 +  Lisp_Object function;\7f694,25823
 +  Lisp_Object plist;\7f697,25885
 +  struct Lisp_Symbol *next;\7fnext\ 1700,25974
 +#define EXFUN(\7f707,26252
 +#define DEFUN_ARGS_MANY       \7f712,26446
 +#define DEFUN_ARGS_UNEVALLED  \7f713,26498
 +#define DEFUN_ARGS_0  \7f714,26541
 +#define DEFUN_ARGS_1  \7f715,26569
 +#define DEFUN_ARGS_2  \7f716,26604
 +#define DEFUN_ARGS_3  \7f717,26652
 +#define DEFUN_ARGS_4  \7f718,26713
 +#define DEFUN_ARGS_5  \7f719,26787
 +#define DEFUN_ARGS_6  \7f721,26880
 +#define DEFUN_ARGS_7  \7f723,26986
 +#define DEFUN_ARGS_8  \7f725,27105
 +#define TAG_PTR(\7f729,27296
 +#define TAG_SYMOFFSET(\7f734,27543
 +#define XLI_BUILTIN_LISPSYM(\7f741,27842
 +#define DEFINE_LISP_SYMBOL(\7f746,28101
 +# define DEFINE_NON_NIL_Q_SYMBOL_MACROS \7f755,28572
 +LISP_MACRO_DEFUN \7f762,28777
 +# define ARRAY_MARK_FLAG \7f768,29024
 +# define PSEUDOVECTOR_FLAG \7f774,29267
 +enum pvec_type\7f780,29568
 +  PVEC_NORMAL_VECTOR,\7f782,29585
 +  PVEC_FREE,\7f783,29607
 +  PVEC_PROCESS,\7f784,29620
 +  PVEC_FRAME,\7f785,29636
 +  PVEC_WINDOW,\7f786,29650
 +  PVEC_BOOL_VECTOR,\7f787,29665
 +  PVEC_BUFFER,\7f788,29685
 +  PVEC_HASH_TABLE,\7f789,29700
 +  PVEC_TERMINAL,\7f790,29719
 +  PVEC_WINDOW_CONFIGURATION,\7f791,29736
 +  PVEC_SUBR,\7f792,29765
 +  PVEC_OTHER,\7f793,29778
 +  PVEC_COMPILED,\7f795,29856
 +  PVEC_CHAR_TABLE,\7f796,29873
 +  PVEC_SUB_CHAR_TABLE,\7f797,29892
 +  PVEC_FONT \7f798,29915
 +enum More_Lisp_Bits\7f801,29991
 +    PSEUDOVECTOR_SIZE_BITS \7f808,30382
 +    PSEUDOVECTOR_SIZE_MASK \7f809,30415
 +    PSEUDOVECTOR_REST_BITS \7f813,30625
 +    PSEUDOVECTOR_REST_MASK \7f814,30658
 +    PSEUDOVECTOR_AREA_BITS \7f818,30823
 +    PVEC_TYPE_MASK \7f819,30901
 +# define VALMASK \7f829,31302
 +DEFINE_GDB_SYMBOL_BEGIN \7fVALMASK\ 1828,31257
 +#define MOST_POSITIVE_FIXNUM \7f834,31532
 +#define MOST_NEGATIVE_FIXNUM \7f835,31592
 +XINT \7f874,32684
 +XFASTINT \7f889,33035
 +XSYMBOL \7f899,33263
 +XTYPE \7f910,33481
 +XUNTAG \7f918,33661
 +LISP_MACRO_DEFUN \7f927,33857
 +LISP_MACRO_DEFUN \7f940,34242
 +#define FIXNUM_OVERFLOW_P(\7f958,34855
 +LISP_MACRO_DEFUN \7fFIXNUM_OVERFLOW_P\ 1952,34632
 +LISP_MACRO_DEFUN \7f970,35171
 +XSTRING \7f980,35391
 +#define SYMBOL_INDEX(\7f988,35575
 +XFLOAT \7f991,35636
 +XPROCESS \7f1000,35778
 +XWINDOW \7f1007,35895
 +XTERMINAL \7f1014,36012
 +XSUBR \7f1021,36134
 +XBUFFER \7f1028,36245
 +XCHAR_TABLE \7f1035,36369
 +XSUB_CHAR_TABLE \7f1042,36506
 +XBOOL_VECTOR \7f1049,36648
 +make_lisp_ptr \7f1058,36827
 +make_lisp_symbol \7f1066,37013
 +builtin_lisp_symbol \7f1074,37197
 +#define XSETINT(\7f1079,37279
 +#define XSETFASTINT(\7f1080,37325
 +#define XSETCONS(\7f1081,37375
 +#define XSETVECTOR(\7f1082,37435
 +#define XSETSTRING(\7f1083,37503
 +#define XSETSYMBOL(\7f1084,37567
 +#define XSETFLOAT(\7f1085,37621
 +#define XSETMISC(\7f1086,37683
 +#define XSETPVECTYPE(\7f1090,37772
 +#define XSETPVECTYPESIZE(\7f1092,37888
 +#define XSETPSEUDOVECTOR(\7f1099,38185
 +#define XSETTYPED_PSEUDOVECTOR(\7f1105,38369
 +#define XSETWINDOW_CONFIGURATION(\7f1110,38579
 +#define XSETPROCESS(\7f1112,38675
 +#define XSETWINDOW(\7f1113,38741
 +#define XSETTERMINAL(\7f1114,38805
 +#define XSETSUBR(\7f1115,38873
 +#define XSETCOMPILED(\7f1116,38933
 +#define XSETBUFFER(\7f1117,39001
 +#define XSETCHAR_TABLE(\7f1118,39065
 +#define XSETBOOL_VECTOR(\7f1119,39137
 +#define XSETSUB_CHAR_TABLE(\7f1120,39211
 +XINTPTR \7f1128,39581
 +make_pointer_integer \7f1134,39661
 +LISP_MACRO_DEFUN_VOID \7f1143,39826
 +typedef struct interval *INTERVAL;\7fINTERVAL\ 11149,39987
 +      Lisp_Object cdr;\7f1159,40162
 +      struct Lisp_Cons *chain;\7fchain\ 11162,40236
 +xcar_addr \7f1174,40760
 +xcdr_addr \7f1179,40837
 +LISP_MACRO_DEFUN \7f1185,40931
 +XSETCDR \7f1198,41307
 +CAR \7f1205,41457
 +CDR \7f1212,41591
 +CAR_SAFE \7f1221,41791
 +CDR_SAFE \7f1226,41877
 +STRING_MULTIBYTE \7f1243,42250
 +#define STRING_BYTES_BOUND \7f1261,43057
 +#define STRING_SET_UNIBYTE(\7f1265,43201
 +#define STRING_SET_MULTIBYTE(\7f1275,43516
 +SDATA \7f1286,43830
 +SSDATA \7f1291,43908
 +SREF \7f1297,44037
 +SSET \7f1302,44128
 +SCHARS \7f1307,44242
 +extern ptrdiff_t string_bytes \7f1313,44337
 +STRING_BYTES \7f1316,44415
 +SBYTES \7f1326,44595
 +STRING_SET_CHARS \7f1331,44681
 +struct vectorlike_header\7f1343,45232
 +    ptrdiff_t size;\7f1364,46383
 +struct Lisp_Vector\7f1369,46482
 +    struct vectorlike_header header;\7f1371,46505
 +    Lisp_Object contents[\7fcontents\ 11372,46542
 +    ALIGNOF_STRUCT_LISP_VECTOR\7f1378,46681
 +struct Lisp_Bool_Vector\7f1384,46864
 +    struct vectorlike_header header;\7f1388,47012
 +    EMACS_INT size;\7f1390,47086
 +    bits_word data[\7fdata\ 11395,47319
 +bool_vector_size \7f1399,47385
 +bool_vector_data \7f1407,47523
 +bool_vector_uchar_data \7f1413,47617
 +bool_vector_words \7f1421,47803
 +bool_vector_bytes \7f1428,47998
 +bool_vector_bitref \7f1437,48238
 +bool_vector_ref \7f1445,48478
 +bool_vector_set \7f1453,48618
 +    header_size \7f1471,49047
 +    bool_header_size \7f1472,49106
 +    word_size \7f1473,49171
 +AREF \7f1479,49284
 +aref_addr \7f1485,49391
 +ASIZE \7f1491,49501
 +ASET \7f1497,49583
 +gc_aset \7f1504,49742
 +enum { NIL_IS_ZERO \7f1515,50269
 +memclear \7f1520,50464
 +#define VECSIZE(\7f1531,50762
 +#define PSEUDOVECSIZE(\7f1538,51047
 +#define UNSIGNED_CMP(\7f1546,51480
 +#define ASCII_CHAR_P(\7f1552,51734
 +enum CHARTAB_SIZE_BITS\7f1565,52489
 +    CHARTAB_SIZE_BITS_0 \7f1567,52516
 +    CHARTAB_SIZE_BITS_1 \7f1568,52545
 +    CHARTAB_SIZE_BITS_2 \7f1569,52574
 +    CHARTAB_SIZE_BITS_3 \7f1570,52603
 +extern const int chartab_size[\7fchartab_size\ 11573,52637
 +struct Lisp_Char_Table\7f1575,52672
 +    struct vectorlike_header header;\7f1581,52928
 +    Lisp_Object defalt;\7f1585,53078
 +    Lisp_Object parent;\7f1590,53280
 +    Lisp_Object purpose;\7f1594,53398
 +    Lisp_Object ascii;\7f1598,53564
 +    Lisp_Object contents[\7fcontents\ 11600,53588
 +    Lisp_Object extras[\7fextras\ 11603,53699
 +struct Lisp_Sub_Char_Table\7f1606,53752
 +    struct vectorlike_header header;\7f1610,53918
 +    int depth;\7f1618,54341
 +    int min_char;\7f1621,54417
 +    Lisp_Object contents[\7fcontents\ 11624,54492
 +CHAR_TABLE_REF_ASCII \7f1628,54566
 +CHAR_TABLE_REF \7f1648,55113
 +CHAR_TABLE_SET \7f1658,55402
 +struct Lisp_Subr\7f1670,55786
 +    struct vectorlike_header header;\7f1672,55807
 +      Lisp_Object (*a0)\7fa0\ 11674,55856
 +      Lisp_Object (*a1)\7fa1\ 11675,55888
 +      Lisp_Object (*a2)\7fa2\ 11676,55927
 +      Lisp_Object (*a3)\7fa3\ 11677,55979
 +      Lisp_Object (*a4)\7fa4\ 11678,56044
 +      Lisp_Object (*a5)\7fa5\ 11679,56122
 +      Lisp_Object (*a6)\7fa6\ 11680,56213
 +      Lisp_Object (*a7)\7fa7\ 11681,56317
 +      Lisp_Object (*a8)\7fa8\ 11682,56434
 +      Lisp_Object (*aUNEVALLED)\7faUNEVALLED\ 11683,56564
 +      Lisp_Object (*aMANY)\7faMANY\ 11684,56616
 +    } function;\7f1685,56671
 +    short min_args,\7f1686,56687
 +    short min_args, max_args;\7f1686,56687
 +    const char *symbol_name;\7fsymbol_name\ 11687,56717
 +    const char *intspec;\7fintspec\ 11688,56746
 +    const char *doc;\7fdoc\ 11689,56771
 +enum char_table_specials\7f1692,56798
 +    CHAR_TABLE_STANDARD_SLOTS \7f1697,56993
 +    SUB_CHAR_TABLE_OFFSET \7f1701,57214
 +CHAR_TABLE_EXTRA_SLOTS \7f1707,57377
 +verify \7f1714,57596
 +LISP_MACRO_DEFUN \7f1723,57921
 +SYMBOL_BLV \7f1732,58181
 +SYMBOL_FWD \7f1738,58316
 +LISP_MACRO_DEFUN_VOID \7f1744,58428
 +SET_SYMBOL_BLV \7f1754,58691
 +SET_SYMBOL_FWD \7f1760,58850
 +SYMBOL_NAME \7f1767,59001
 +SYMBOL_INTERNED_P \7f1775,59130
 +SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P \7f1783,59299
 +#define DEFSYM(\7f1796,59809
 +LISP_MACRO_DEFUN \7fDEFSYM\ 11792,59630
 +struct hash_table_test\7f1805,60062
 +  Lisp_Object name;\7f1808,60139
 +  Lisp_Object user_hash_function;\7f1811,60206
 +  Lisp_Object user_cmp_function;\7f1814,60297
 +  bool (*cmpfn)\7fcmpfn\ 11817,60372
 +  EMACS_UINT (*hashfn)\7fhashfn\ 11820,60486
 +struct Lisp_Hash_Table\7f1823,60555
 +  struct vectorlike_header header;\7f1826,60649
 +  Lisp_Object weak;\7f1830,60783
 +  Lisp_Object rehash_size;\7f1835,61007
 +  Lisp_Object rehash_threshold;\7f1839,61129
 +  Lisp_Object hash;\7f1843,61260
 +  Lisp_Object next;\7f1848,61490
 +  Lisp_Object next_free;\7f1851,61560
 +  Lisp_Object index;\7f1856,61771
 +  ptrdiff_t count;\7f1863,62041
 +  Lisp_Object key_and_value;\7f1868,62240
 +  struct hash_table_test test;\7f1871,62314
 +  struct Lisp_Hash_Table *next_weak;\7fnext_weak\ 11875,62457
 +XHASH_TABLE \7f1880,62531
 +#define XSET_HASH_TABLE(\7f1885,62602
 +HASH_TABLE_P \7f1889,62703
 +HASH_KEY \7f1896,62860
 +HASH_VALUE \7f1903,63040
 +HASH_NEXT \7f1911,63254
 +HASH_HASH \7f1918,63431
 +HASH_INDEX \7f1926,63677
 +HASH_TABLE_SIZE \7f1933,63826
 +enum DEFAULT_HASH_SIZE \7f1940,63956
 +enum DEFAULT_HASH_SIZE { DEFAULT_HASH_SIZE \7f1940,63956
 +static double const DEFAULT_REHASH_THRESHOLD \7f1946,64176
 +static double const DEFAULT_REHASH_SIZE \7f1950,64299
 +sxhash_combine \7f1956,64465
 +SXHASH_REDUCE \7f1964,64648
 +struct Lisp_Misc_Any  \7f1971,64806
 +  ENUM_BF \7f1973,64866
 +struct Lisp_Marker\7f1978,64980
 +  ENUM_BF \7f1980,65001
 +struct Lisp_Overlay\7f2021,66841
 +    ENUM_BF \7f2034,67349
 +    SAVE_UNUSED,\7f2047,67644
 +    SAVE_INTEGER,\7f2048,67661
 +    SAVE_FUNCPOINTER,\7f2049,67679
 +    SAVE_POINTER,\7f2050,67701
 +    SAVE_OBJECT\7f2051,67719
 +enum { SAVE_SLOT_BITS \7f2055,67804
 +enum { SAVE_VALUE_SLOTS \7f2058,67901
 +enum { SAVE_TYPE_BITS \7f2062,68009
 +enum Lisp_Save_Type\7f2064,68075
 +    SAVE_TYPE_INT_INT \7f2066,68099
 +    SAVE_TYPE_INT_INT_INT\7f2067,68172
 +    SAVE_TYPE_OBJ_OBJ \7f2069,68262
 +    SAVE_TYPE_OBJ_OBJ_OBJ \7f2070,68333
 +    SAVE_TYPE_OBJ_OBJ_OBJ_OBJ\7f2071,68414
 +    SAVE_TYPE_PTR_INT \7f2073,68509
 +    SAVE_TYPE_PTR_OBJ \7f2074,68582
 +    SAVE_TYPE_PTR_PTR \7f2075,68654
 +    SAVE_TYPE_FUNCPTR_PTR_OBJ\7f2076,68727
 +    SAVE_TYPE_MEMORY \7f2080,68885
 +typedef void (*voidfuncptr)\7fvoidfuncptr\ 12108,69839
 +struct Lisp_Save_Value\7f2110,69876
 +    ENUM_BF \7f2112,69903
 +      void *pointer;\7fpointer\ 12125,70558
 +      voidfuncptr funcpointer;\7f2126,70579
 +      ptrdiff_t integer;\7f2127,70610
 +      Lisp_Object object;\7f2128,70635
 +    } data[\7fdata\ 12129,70661
 +save_type \7f2134,70755
 +XSAVE_POINTER \7f2143,70985
 +set_save_pointer \7f2149,71147
 +XSAVE_FUNCPOINTER \7f2155,71329
 +XSAVE_INTEGER \7f2164,71549
 +set_save_integer \7f2170,71711
 +XSAVE_OBJECT \7f2179,71932
 +struct Lisp_Finalizer\7f2186,72109
 +    struct Lisp_Misc_Any base;\7f2188,72135
 +    struct Lisp_Finalizer *prev;\7fprev\ 12191,72223
 +    struct Lisp_Finalizer *next;\7fnext\ 12192,72256
 +    Lisp_Object function;\7f2197,72493
 +struct Lisp_Free\7f2201,72584
 +    ENUM_BF \7f2203,72605
 +union Lisp_Misc\7f2212,72885
 +    struct Lisp_Misc_Any u_any;\7f2214,72905
 +    struct Lisp_Free u_free;\7f2215,72976
 +    struct Lisp_Marker u_marker;\7f2216,73005
 +    struct Lisp_Overlay u_overlay;\7f2217,73038
 +    struct Lisp_Save_Value u_save_value;\7f2218,73073
 +    struct Lisp_Finalizer u_finalizer;\7f2219,73114
 +XMISC \7f2223,73184
 +XMISCANY \7f2229,73273
 +XMISCTYPE \7f2236,73382
 +XMARKER \7f2242,73470
 +XOVERLAY \7f2249,73585
 +XSAVE_VALUE \7f2256,73706
 +XFINALIZER \7f2263,73835
 +struct Lisp_Intfwd\7f2274,74120
 +    enum Lisp_Fwd_Type type;\7f2276,74143
 +    EMACS_INT *intvar;\7fintvar\ 12277,74193
 +struct Lisp_Boolfwd\7f2284,74414
 +    enum Lisp_Fwd_Type type;\7f2286,74438
 +    bool *boolvar;\7fboolvar\ 12287,74489
 +struct Lisp_Objfwd\7f2294,74705
 +    enum Lisp_Fwd_Type type;\7f2296,74728
 +    Lisp_Object *objvar;\7fobjvar\ 12297,74778
 +struct Lisp_Buffer_Objfwd\7f2302,74937
 +    enum Lisp_Fwd_Type type;\7f2304,74967
 +    int offset;\7f2305,75024
 +    Lisp_Object predicate;\7f2307,75116
 +struct Lisp_Buffer_Local_Value\7f2334,76473
 +    bool_bf local_if_set \7f2338,76618
 +    bool_bf frame_local \7f2341,76800
 +    bool_bf found \7f2344,76942
 +    union Lisp_Fwd *fwd;\7ffwd\ 12346,77044
 +    Lisp_Object where;\7f2348,77187
 +    Lisp_Object defcell;\7f2351,77313
 +    Lisp_Object valcell;\7f2357,77617
 +struct Lisp_Kboard_Objfwd\7f2362,77732
 +    enum Lisp_Fwd_Type type;\7f2364,77762
 +    int offset;\7f2365,77819
 +union Lisp_Fwd\7f2368,77841
 +    struct Lisp_Intfwd u_intfwd;\7f2370,77860
 +    struct Lisp_Boolfwd u_boolfwd;\7f2371,77893
 +    struct Lisp_Objfwd u_objfwd;\7f2372,77928
 +    struct Lisp_Buffer_Objfwd u_buffer_objfwd;\7f2373,77961
 +    struct Lisp_Kboard_Objfwd u_kboard_objfwd;\7f2374,78008
 +XFWDTYPE \7f2378,78087
 +XBUFFER_OBJFWD \7f2384,78183
 +struct Lisp_Float\7f2391,78319
 +      double data;\7f2395,78357
 +      struct Lisp_Float *chain;\7fchain\ 12396,78376
 +    } u;\7f2397,78408
 +XFLOAT_DATA \7f2401,78437
 +    IEEE_FLOATING_POINT\7f2415,78946
 +#define _UCHAR_T\7f2423,79269
 +typedef unsigned char UCHAR;\7f2424,79286
 +enum Lisp_Compiled\7f2429,79369
 +    COMPILED_ARGLIST \7f2431,79392
 +    COMPILED_BYTECODE \7f2432,79418
 +    COMPILED_CONSTANTS \7f2433,79445
 +    COMPILED_STACK_DEPTH \7f2434,79473
 +    COMPILED_DOC_STRING \7f2435,79503
 +    COMPILED_INTERACTIVE \7f2436,79532
 +enum char_bits\7f2443,79834
 +    CHAR_ALT \7f2445,79853
 +    CHAR_SUPER \7f2446,79879
 +    CHAR_HYPER \7f2447,79907
 +    CHAR_SHIFT \7f2448,79935
 +    CHAR_CTL \7f2449,79963
 +    CHAR_META \7f2450,79989
 +    CHAR_MODIFIER_MASK \7f2452,80017
 +    CHARACTERBITS \7f2457,80212
 +LISP_MACRO_DEFUN \7f2462,80270
 +NATNUMP \7f2470,80412
 +RANGED_INTEGERP \7f2476,80493
 +#define TYPE_RANGED_INTEGERP(\7f2481,80615
 +LISP_MACRO_DEFUN \7f2486,80800
 +VECTORP \7f2500,81273
 +OVERLAYP \7f2505,81376
 +SAVE_VALUEP \7f2510,81475
 +FINALIZERP \7f2516,81581
 +AUTOLOADP \7f2522,81685
 +BUFFER_OBJFWDP \7f2528,81776
 +PSEUDOVECTOR_TYPEP \7f2534,81874
 +PSEUDOVECTORP \7f2542,82127
 +WINDOW_CONFIGURATIONP \7f2558,82479
 +PROCESSP \7f2564,82589
 +WINDOWP \7f2570,82673
 +TERMINALP \7f2576,82755
 +SUBRP \7f2582,82841
 +COMPILEDP \7f2588,82919
 +BUFFERP \7f2594,83005
 +CHAR_TABLE_P \7f2600,83087
 +SUB_CHAR_TABLE_P \7f2606,83178
 +BOOL_VECTOR_P \7f2612,83277
 +FRAMEP \7f2618,83370
 +IMAGEP \7f2625,83487
 +ARRAYP \7f2632,83592
 +CHECK_LIST \7f2638,83711
 +LISP_MACRO_DEFUN_VOID \7f2643,83792
 +CHECK_STRING_CAR \7f2653,84089
 +CHECK_CONS \7f2658,84193
 +CHECK_VECTOR \7f2663,84273
 +CHECK_BOOL_VECTOR \7f2668,84359
 +CHECK_VECTOR_OR_STRING \7f2674,84536
 +CHECK_ARRAY \7f2683,84710
 +CHECK_BUFFER \7f2688,84818
 +CHECK_WINDOW \7f2693,84904
 +CHECK_PROCESS \7f2699,85010
 +CHECK_NATNUM \7f2705,85106
 +#define CHECK_RANGED_INTEGER(\7f2710,85183
 +#define CHECK_TYPE_RANGED_INTEGER(\7f2721,85566
 +#define CHECK_NUMBER_COERCE_MARKER(\7f2729,85836
 +XFLOATINT \7f2738,86089
 +CHECK_NUMBER_OR_FLOAT \7f2744,86160
 +#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(\7f2749,86259
 +CHECK_NUMBER_CAR \7f2760,86669
 +CHECK_NUMBER_CDR \7f2768,86791
 +#define DEFUN(\7f2803,88386
 +#define DEFUN(\7f2812,88854
 +FUNCTIONP \7f2822,89209
 +extern void defsubr \7f2829,89361
 +enum maxargs\7f2831,89404
 +    MANY \7f2833,89421
 +    UNEVALLED \7f2834,89436
 +#define CALLMANY(\7f2838,89539
 +#define CALLN(\7f2844,89892
 +extern void defvar_lisp \7f2846,89962
 +extern void defvar_lisp_nopro \7f2847,90039
 +extern void defvar_bool \7f2848,90122
 +extern void defvar_int \7f2849,90193
 +extern void defvar_kboard \7f2850,90267
 +#define DEFVAR_LISP(\7f2869,91097
 +#define DEFVAR_LISP_NOPRO(\7f2874,91269
 +#define DEFVAR_BOOL(\7f2879,91451
 +#define DEFVAR_INT(\7f2884,91624
 +#define DEFVAR_BUFFER_DEFAULTS(\7f2890,91795
 +#define DEFVAR_KBOARD(\7f2896,91999
 +typedef jmp_buf sys_jmp_buf;\7f2906,92323
 +# define sys_setjmp(\7f2907,92352
 +# define sys_longjmp(\7f2908,92387
 +typedef sigjmp_buf sys_jmp_buf;\7f2910,92459
 +# define sys_setjmp(\7f2911,92491
 +# define sys_longjmp(\7f2912,92531
 +typedef jmp_buf sys_jmp_buf;\7f2916,92690
 +# define sys_setjmp(\7f2917,92719
 +# define sys_longjmp(\7f2918,92753
 +enum specbind_tag \7f2943,93805
 +  SPECPDL_UNWIND,\7f2944,93825
 +  SPECPDL_UNWIND_PTR,\7f2945,93894
 +  SPECPDL_UNWIND_INT,\7f2946,93945
 +  SPECPDL_UNWIND_VOID,\7f2947,93993
 +  SPECPDL_BACKTRACE,\7f2948,94047
 +  SPECPDL_LET,\7f2949,94105
 +  SPECPDL_LET_LOCAL,\7f2951,94235
 +  SPECPDL_LET_DEFAULT \7f2952,94292
 +union specbinding\7f2955,94364
 +    ENUM_BF \7f2957,94386
 +      ENUM_BF \7f2959,94443
 +      ENUM_BF \7f2964,94573
 +      ENUM_BF \7f2969,94696
 +      ENUM_BF \7f2974,94814
 +      ENUM_BF \7f2978,94919
 +      ENUM_BF \7f2983,95094
 +enum handlertype \7f3021,96410
 +enum handlertype { CATCHER,\7f3021,96410
 +enum handlertype { CATCHER, CONDITION_CASE \7f3021,96410
 +struct handler\7f3023,96457
 +  enum handlertype type;\7f3025,96474
 +  Lisp_Object tag_or_ch;\7f3026,96499
 +  Lisp_Object val;\7f3027,96524
 +  struct handler *next;\7fnext\ 13028,96543
 +  struct handler *nextfree;\7fnextfree\ 13029,96567
 +  Lisp_Object *bytecode_top;\7fbytecode_top\ 13036,96925
 +  int bytecode_dest;\7f3037,96954
 +  struct gcpro *gcpro;\7fgcpro\ 13042,97191
 +  sys_jmp_buf jmp;\7f3044,97221
 +  EMACS_INT lisp_eval_depth;\7f3045,97240
 +  ptrdiff_t pdlcount;\7f3046,97269
 +  int poll_suppress_count;\7f3047,97291
 +  int interrupt_input_blocked;\7f3048,97318
 +  struct byte_stack *byte_stack;\7fbyte_stack\ 13049,97349
 +#define PUSH_HANDLER(\7f3053,97446
 +extern Lisp_Object memory_signal_data;\7f3075,98152
 +extern char *stack_bottom;\7fstack_bottom\ 13079,98285
 +extern void process_pending_signals \7f3097,99102
 +extern bool volatile pending_signals;\7f3098,99146
 +extern void process_quit_flag \7f3100,99185
 +#define QUIT  \7f3101,99223
 +#define QUITP \7f3112,99473
 +extern Lisp_Object Vascii_downcase_table;\7f3114,99534
 +extern Lisp_Object Vascii_canon_table;\7f3115,99576
 +extern struct gcpro *gcprolist;\7fgcprolist\ 13130,100283
 +struct gcpro\7f3132,100316
 +  struct gcpro *next;\7fnext\ 13134,100331
 +  volatile Lisp_Object *var;\7fvar\ 13137,100400
 +  ptrdiff_t nvars;\7f3140,100482
 +  const char *name;\7fname\ 13144,100567
 +  int lineno;\7f3147,100623
 +  int idx;\7f3150,100684
 +  int level;\7f3153,100720
 +#define GC_USE_GCPROS_AS_BEFORE       \7f3171,101297
 +#define GC_MAKE_GCPROS_NOOPS  \7f3172,101332
 +#define GC_MARK_STACK_CHECK_GCPROS    \7f3173,101364
 +#define GC_USE_GCPROS_CHECK_ZOMBIES   \7f3174,101401
 +#define GC_MARK_STACK \7f3177,101462
 +#define BYTE_MARK_STACK \7f3181,101562
 +#define GCPRO1(\7f3190,101833
 +#define GCPRO2(\7f3191,101873
 +#define GCPRO3(\7f3192,101939
 +#define GCPRO4(\7f3194,102034
 +#define GCPRO5(\7f3196,102154
 +#define GCPRO6(\7f3198,102299
 +#define GCPRO7(\7f3201,102474
 +#define UNGCPRO \7f3202,102553
 +#define GCPRO1(\7f3208,102653
 +#define GCPRO2(\7f3212,102775
 +#define GCPRO3(\7f3217,102967
 +#define GCPRO4(\7f3223,103229
 +#define GCPRO5(\7f3230,103560
 +#define GCPRO6(\7f3238,103961
 +#define GCPRO7(\7f3247,104431
 +#define UNGCPRO \7f3257,104971
 +extern int gcpro_level;\7f3261,105040
 +#define GCPRO1(\7f3263,105065
 +#define GCPRO2(\7f3269,105299
 +#define GCPRO3(\7f3278,105717
 +#define GCPRO4(\7f3289,106274
 +#define GCPRO5(\7f3302,106972
 +#define GCPRO6(\7f3317,107812
 +#define GCPRO7(\7f3334,108793
 +#define UNGCPRO       \7f3353,109916
 +#define RETURN_UNGCPRO(\7f3363,110183
 +void staticpro \7f3375,110456
 +vcopy \7f3384,110657
 +set_hash_key_slot \7f3393,110932
 +set_hash_value_slot \7f3399,111071
 +set_symbol_function \7f3408,111306
 +set_symbol_plist \7f3414,111421
 +set_symbol_next \7f3420,111524
 +blv_found \7f3428,111697
 +set_overlay_plist \7f3437,111880
 +string_intervals \7f3445,112031
 +set_string_intervals \7f3453,112153
 +set_char_table_defalt \7f3462,112355
 +set_char_table_purpose \7f3467,112467
 +set_char_table_extras \7f3475,112636
 +set_char_table_contents \7f3482,112845
 +set_sub_char_table_contents \7f3489,113040
 +extern Lisp_Object indirect_function \7f3495,113199
 +extern Lisp_Object find_symbol_value \7f3496,113251
 +enum Arith_Comparison \7f3497,113303
 +  ARITH_EQUAL,\7f3498,113327
 +  ARITH_NOTEQUAL,\7f3499,113342
 +  ARITH_LESS,\7f3500,113360
 +  ARITH_GRTR,\7f3501,113374
 +  ARITH_LESS_OR_EQUAL,\7f3502,113388
 +  ARITH_GRTR_OR_EQUAL\7f3503,113411
 +extern Lisp_Object arithcompare \7f3505,113436
 +#define INTEGER_TO_CONS(\7f3511,113762
 +#define CONS_TO_INTEGER(\7f3529,114625
 +extern intmax_t cons_to_signed \7f3533,114840
 +extern uintmax_t cons_to_unsigned \7f3534,114906
 +extern struct Lisp_Symbol *indirect_variable \7findirect_variable\ 13536,114967
 +extern _Noreturn void args_out_of_range \7f3537,115036
 +extern _Noreturn void args_out_of_range_3 \7f3538,115104
 +extern Lisp_Object do_symval_forwarding \7f3540,115195
 +extern void set_internal \7f3541,115255
 +extern void syms_of_data \7f3542,115327
 +extern void swap_in_global_binding \7f3543,115360
 +extern void syms_of_cmds \7f3546,115444
 +extern void keys_of_cmds \7f3547,115477
 +extern Lisp_Object detect_coding_system \7f3550,115539
 +extern void init_coding \7f3552,115692
 +extern void init_coding_once \7f3553,115724
 +extern void syms_of_coding \7f3554,115761
 +extern ptrdiff_t chars_in_text \7f3557,115828
 +extern ptrdiff_t multibyte_chars_in_text \7f3558,115895
 +extern void syms_of_character \7f3559,115972
 +extern void init_charset \7f3562,116040
 +extern void init_charset_once \7f3563,116073
 +extern void syms_of_charset \7f3564,116111
 +extern void init_syntax_once \7f3569,116231
 +extern void syms_of_syntax \7f3570,116268
 +enum { NEXT_ALMOST_PRIME_LIMIT \7f3573,116329
 +extern EMACS_INT next_almost_prime \7f3574,116368
 +enum constype \7f3739,123820
 +enum constype {CONSTYPE_HEAP,\7fCONSTYPE_HEAP\ 13739,123820
 +enum constype {CONSTYPE_HEAP, CONSTYPE_PURE}\7fCONSTYPE_PURE\ 13739,123820
 +extern Lisp_Object listn \7f3740,123866
 +list2i \7f3745,124010
 +list3i \7f3751,124119
 +list4i \7f3757,124258
 +extern Lisp_Object make_uninit_bool_vector \7f3763,124410
 +extern Lisp_Object bool_vector_fill \7f3764,124466
 +extern _Noreturn void string_overflow \7f3765,124530
 +extern Lisp_Object make_string \7f3766,124576
 +extern Lisp_Object make_formatted_string \7f3767,124634
 +extern Lisp_Object make_multibyte_string \7f3779,124988
 +extern Lisp_Object make_event_array \7f3780,125067
 +extern Lisp_Object make_uninit_string \7f3781,125131
 +extern Lisp_Object make_uninit_multibyte_string \7f3782,125182
 +extern Lisp_Object make_string_from_bytes \7f3783,125254
 +extern Lisp_Object make_specified_string \7f3784,125334
 +extern Lisp_Object make_pure_string \7f3786,125426
 +extern Lisp_Object make_pure_c_string \7f3787,125506
 +build_pure_c_string \7f3792,125662
 +build_string \7f3801,125867
 +extern Lisp_Object pure_cons \7f3806,125945
 +extern void make_byte_code \7f3807,126002
 +extern struct Lisp_Vector *allocate_vector \7fallocate_vector\ 13808,126053
 +make_uninit_vector \7f3820,126438
 +make_uninit_sub_char_table \7f3833,126657
 +extern struct Lisp_Vector *allocate_pseudovector \7fallocate_pseudovector\ 13844,126966
 +#define ALLOCATE_PSEUDOVECTOR(\7f3850,127201
 +#define ALLOCATE_ZEROED_PSEUDOVECTOR(\7f3858,127537
 +extern bool gc_in_progress;\7f3863,127738
 +extern bool abort_on_gc;\7f3864,127766
 +extern Lisp_Object make_float \7f3865,127791
 +extern void display_malloc_warning \7f3866,127831
 +extern ptrdiff_t inhibit_garbage_collection \7f3867,127874
 +extern Lisp_Object make_save_int_int_int \7f3868,127926
 +extern Lisp_Object make_save_obj_obj_obj_obj \7f3869,128002
 +extern Lisp_Object make_save_ptr \7f3871,128112
 +extern Lisp_Object make_save_ptr_int \7f3872,128155
 +extern Lisp_Object make_save_ptr_ptr \7f3873,128213
 +extern Lisp_Object make_save_funcptr_ptr_obj \7f3874,128268
 +extern Lisp_Object make_save_memory \7f3876,128364
 +extern void free_save_value \7f3877,128428
 +extern Lisp_Object build_overlay \7f3878,128471
 +extern void free_marker \7f3879,128545
 +extern void free_cons \7f3880,128584
 +extern void init_alloc_once \7f3881,128628
 +extern void init_alloc \7f3882,128664
 +extern void syms_of_alloc \7f3883,128695
 +extern struct buffer * allocate_buffer \7f3884,128729
 +extern int valid_lisp_object_p \7f3885,128776
 +extern int relocatable_string_data_p \7f3886,128822
 +extern void check_cons_list \7f3888,128901
 +INLINE void \7f3890,128943
 +extern void *r_alloc \7fr_alloc\ 13895,129064
 +#define FLOAT_TO_STRING_BUFSIZE \7f3927,130527
 +extern int openp \7f3957,131676
 +extern Lisp_Object string_to_number \7f3959,131786
 +extern void map_obarray \7f3960,131849
 +extern void dir_warning \7f3962,131963
 +extern void init_obarray \7f3963,132016
 +extern void init_lread \7f3964,132049
 +extern void syms_of_lread \7f3965,132080
 +intern \7f3968,132134
 +intern_c_string \7f3974,132222
 +extern EMACS_INT lisp_eval_depth;\7f3980,132335
 +extern Lisp_Object Vautoload_queue;\7f3981,132369
 +extern Lisp_Object Vrun_hooks;\7f3982,132405
 +extern Lisp_Object Vsignaling_function;\7f3983,132436
 +extern Lisp_Object inhibit_lisp_code;\7f3984,132476
 +extern struct handler *handlerlist;\7fhandlerlist\ 13985,132514
 +extern void run_hook \7f3994,132756
 +extern void run_hook_with_args_2 \7f3995,132792
 +extern Lisp_Object run_hook_with_args \7f3996,132866
 +extern _Noreturn void xsignal \7f3999,133025
 +extern _Noreturn void xsignal0 \7f4000,133083
 +extern _Noreturn void xsignal1 \7f4001,133129
 +extern _Noreturn void xsignal2 \7f4002,133188
 +extern _Noreturn void xsignal3 \7f4003,133260
 +extern _Noreturn void signal_error \7f4005,133349
 +extern Lisp_Object eval_sub \7f4006,133413
 +extern Lisp_Object apply1 \7f4007,133461
 +extern Lisp_Object call0 \7f4008,133515
 +extern Lisp_Object call1 \7f4009,133555
 +extern Lisp_Object call2 \7f4010,133608
 +extern Lisp_Object call3 \7f4011,133674
 +extern Lisp_Object call4 \7f4012,133753
 +extern Lisp_Object call5 \7f4013,133845
 +extern Lisp_Object call6 \7f4014,133950
 +extern Lisp_Object call7 \7f4015,134068
 +extern Lisp_Object internal_catch \7f4016,134199
 +extern Lisp_Object internal_lisp_condition_case \7f4017,134292
 +extern Lisp_Object internal_condition_case \7f4018,134381
 +extern Lisp_Object internal_condition_case_1 \7f4019,134494
 +extern Lisp_Object internal_condition_case_2 \7f4020,134629
 +extern Lisp_Object internal_condition_case_n\7f4021,134790
 +extern void specbind \7f4024,134986
 +extern void record_unwind_protect \7f4025,135035
 +extern void record_unwind_protect_ptr \7f4026,135108
 +extern void record_unwind_protect_int \7f4027,135175
 +extern void record_unwind_protect_void \7f4028,135236
 +extern void record_unwind_protect_nothing \7f4029,135294
 +extern void clear_unwind_protect \7f4030,135344
 +extern void set_unwind_protect \7f4031,135390
 +extern void set_unwind_protect_ptr \7f4032,135471
 +extern Lisp_Object unbind_to \7f4033,135546
 +extern _Noreturn void error \7f4034,135601
 +fast_string_match_ignore_case \7f4136,140089
 +extern ptrdiff_t fast_c_string_match_ignore_case \7f4141,140239
 +extern ptrdiff_t fast_looking_at \7f4143,140336
 +extern ptrdiff_t find_newline \7f4145,140475
 +extern ptrdiff_t scan_newline \7f4147,140604
 +extern ptrdiff_t scan_newline_from_point \7f4149,140707
 +extern ptrdiff_t find_newline_no_quit \7f4150,140787
 +extern ptrdiff_t find_before_next_newline \7f4152,140884
 +extern void syms_of_search \7f4154,140982
 +extern void clear_regexp_cache \7f4155,141017
 +extern Lisp_Object Vminibuffer_list;\7f4159,141087
 +extern Lisp_Object last_minibuf_string;\7f4160,141124
 +extern Lisp_Object get_minibuffer \7f4161,141164
 +extern void init_minibuf_once \7f4162,141211
 +extern void syms_of_minibuf \7f4163,141249
 +extern void syms_of_callint \7f4167,141316
 +extern void syms_of_casefiddle \7f4171,141386
 +extern void keys_of_casefiddle \7f4172,141425
 +extern void init_casetab_once \7f4176,141495
 +extern void syms_of_casetab \7f4177,141533
 +extern Lisp_Object echo_message_buffer;\7f4181,141601
 +extern struct kboard *echo_kboard;\7fecho_kboard\ 14182,141641
 +extern void cancel_echoing \7f4183,141676
 +extern Lisp_Object last_undo_boundary;\7f4184,141711
 +extern bool input_pending;\7f4185,141750
 +extern sigjmp_buf return_to_command_loop;\7f4187,141813
 +extern Lisp_Object menu_bar_items \7f4189,141862
 +extern Lisp_Object tool_bar_items \7f4190,141911
 +extern void discard_mouse_events \7f4191,141967
 +void handle_input_available_signal \7f4193,142028
 +extern Lisp_Object pending_funcalls;\7f4195,142077
 +extern bool detect_input_pending \7f4196,142114
 +extern bool detect_input_pending_ignore_squeezables \7f4197,142155
 +extern bool detect_input_pending_run_timers \7f4198,142215
 +extern void safe_run_hooks \7f4199,142267
 +extern void cmd_error_internal \7f4200,142309
 +extern Lisp_Object command_loop_1 \7f4201,142369
 +extern Lisp_Object read_menu_command \7f4202,142411
 +extern Lisp_Object recursive_edit_1 \7f4203,142456
 +extern void record_auto_save \7f4204,142500
 +extern void force_auto_save_soon \7f4205,142537
 +extern void init_keyboard \7f4206,142578
 +extern void syms_of_keyboard \7f4207,142612
 +extern void keys_of_keyboard \7f4208,142649
 +extern ptrdiff_t current_column \7f4211,142715
 +extern void invalidate_current_column \7f4212,142755
 +extern bool indented_beyond_p \7f4213,142801
 +extern void syms_of_indent \7f4214,142866
 +extern void store_frame_param \7f4217,142929
 +extern void store_in_alist \7f4218,143003
 +extern Lisp_Object do_switch_frame \7f4219,143073
 +extern Lisp_Object get_frame_param \7f4220,143146
 +extern void frames_discard_buffer \7f4221,143212
 +extern void syms_of_frame \7f4222,143261
 +extern char **initial_argv;\7finitial_argv\ 14225,143323
 +extern int initial_argc;\7f4226,143351
 +extern bool display_arg;\7f4228,143426
 +extern Lisp_Object decode_env_path \7f4230,143458
 +extern Lisp_Object empty_unibyte_string,\7f4231,143529
 +extern Lisp_Object empty_unibyte_string, empty_multibyte_string;\7f4231,143529
 +extern _Noreturn void terminate_due_to_signal \7f4232,143594
 +extern Lisp_Object Vlibrary_cache;\7f4234,143669
 +void fixup_locale \7f4237,143730
 +void synchronize_system_messages_locale \7f4238,143756
 +void synchronize_system_time_locale \7f4239,143804
 +INLINE void fixup_locale \7f4241,143854
 +INLINE void synchronize_system_messages_locale \7f4242,143889
 +INLINE void synchronize_system_time_locale \7f4243,143946
 +extern void shut_down_emacs \7f4245,144006
 +extern bool noninteractive;\7f4248,144132
 +extern bool no_site_lisp;\7f4251,144224
 +extern int daemon_pipe[\7fdaemon_pipe\ 14256,144392
 +#define IS_DAEMON \7f4257,144419
 +#define DAEMON_RUNNING \7f4258,144459
 +extern void *w32_daemon_event;\7fw32_daemon_event\ 14260,144527
 +#define IS_DAEMON \7f4261,144558
 +#define DAEMON_RUNNING \7f4262,144603
 +extern bool fatal_error_in_progress;\7f4266,144724
 +extern bool inhibit_window_system;\7f4269,144830
 +extern bool running_asynch_code;\7f4271,144923
 +extern void kill_buffer_processes \7f4274,144986
 +extern int wait_reading_process_output \7f4275,145035
 +# define WAIT_READING_MAX \7f4281,145422
 +# define WAIT_READING_MAX \7f4283,145494
 +extern void add_timer_wait_descriptor \7f4286,145558
 +extern void add_keyboard_wait_descriptor \7f4288,145610
 +extern void delete_keyboard_wait_descriptor \7f4289,145658
 +extern void add_gpm_wait_descriptor \7f4291,145725
 +extern void delete_gpm_wait_descriptor \7f4292,145768
 +extern void init_process_emacs \7f4294,145821
 +extern void syms_of_process \7f4295,145860
 +extern void setup_process_coding_systems \7f4296,145896
 +extern int child_setup \7f4302,146016
 +extern void init_callproc_1 \7f4303,146084
 +extern void init_callproc \7f4304,146120
 +extern void set_initial_environment \7f4305,146154
 +extern void syms_of_callproc \7f4306,146198
 +extern Lisp_Object read_doc_string \7f4309,146261
 +extern Lisp_Object get_doc_string \7f4310,146311
 +extern void syms_of_doc \7f4311,146372
 +extern int read_bytecode_char \7f4312,146404
 +extern void syms_of_bytecode \7f4315,146473
 +extern struct byte_stack *byte_stack_list;\7fbyte_stack_list\ 14316,146510
 +extern void mark_byte_stack \7f4318,146573
 +extern void unmark_byte_stack \7f4320,146616
 +extern Lisp_Object exec_byte_code \7f4321,146654
 +extern void init_macros \7f4325,146804
 +extern void syms_of_macros \7f4326,146836
 +extern void truncate_undo_list \7f4329,146898
 +extern void record_insert \7f4330,146948
 +extern void record_delete \7f4331,146998
 +extern void record_first_change \7f4332,147056
 +extern void record_change \7f4333,147096
 +extern void record_property_change \7f4334,147146
 +extern void syms_of_undo \7f4337,147288
 +extern void report_interval_modification \7f4340,147352
 +extern void syms_of_menu \7f4343,147448
 +extern void syms_of_xmenu \7f4346,147509
 +extern char *get_current_dir_name \7fget_current_dir_name\ 14356,147711
 +extern void stuff_char \7f4358,147760
 +extern void init_foreground_group \7f4359,147793
 +extern void sys_subshell \7f4360,147835
 +extern void sys_suspend \7f4361,147868
 +extern void discard_tty_input \7f4362,147900
 +extern void init_sys_modes \7f4363,147938
 +extern void reset_sys_modes \7f4364,147994
 +extern void init_all_sys_modes \7f4365,148051
 +extern void reset_all_sys_modes \7f4366,148090
 +extern void child_setup_tty \7f4367,148130
 +extern void setup_pty \7f4368,148165
 +extern int set_window_size \7f4369,148194
 +extern EMACS_INT get_random \7f4370,148238
 +extern void seed_random \7f4371,148274
 +extern void init_random \7f4372,148319
 +extern void emacs_backtrace \7f4373,148351
 +extern _Noreturn void emacs_abort \7f4374,148386
 +extern void xputenv \7f4527,152700
 +extern char *egetenv_internal \7fegetenv_internal\ 14529,152737
 +egetenv \7f4532,152809
 +extern void init_system_name \7f4539,153012
 +#define eabs(\7f4545,153305
 +#define make_fixnum_or_float(\7f4550,153438
 +enum MAX_ALLOCA \7f4556,153689
 +enum MAX_ALLOCA { MAX_ALLOCA \7f4556,153689
 +extern void *record_xmalloc \7frecord_xmalloc\ 14558,153734
 +#define USE_SAFE_ALLOCA       \7f4560,153800
 +#define AVAIL_ALLOCA(\7f4564,153933
 +#define SAFE_ALLOCA(\7f4568,154044
 +#define SAFE_NALLOCA(\7f4576,154385
 +#define SAFE_ALLOCA_STRING(\7f4590,154861
 +#define SAFE_FREE(\7f4598,155113
 +#define SAFE_ALLOCA_LISP(\7f4625,155691
 +# define USE_STACK_LISP_OBJECTS \7f4652,156813
 +# undef USE_STACK_LISP_OBJECTS\7f4658,156979
 +# define USE_STACK_LISP_OBJECTS \7f4659,157010
 +enum { defined_GC_CHECK_STRING_BYTES \7f4663,157085
 +enum { defined_GC_CHECK_STRING_BYTES \7f4665,157138
 +union Aligned_Cons\7f4670,157272
 +  struct Lisp_Cons s;\7f4672,157293
 +  double d;\7f4673,157315
 +  double d; intmax_t i;\7f4673,157315
 +  double d; intmax_t i; void *p;\7fp\ 14673,157315
 +union Aligned_String\7f4676,157352
 +  struct Lisp_String s;\7f4678,157375
 +  double d;\7f4679,157399
 +  double d; intmax_t i;\7f4679,157399
 +  double d; intmax_t i; void *p;\7fp\ 14679,157399
 +    USE_STACK_CONS \7f4689,157707
 +    USE_STACK_STRING \7f4691,157813
 +#define STACK_CONS(\7f4699,158150
 +#define AUTO_CONS_EXPR(\7f4701,158247
 +#define AUTO_CONS(\7f4709,158610
 +#define AUTO_LIST1(\7f4710,158681
 +#define AUTO_LIST2(\7f4712,158789
 +#define AUTO_LIST3(\7f4716,158944
 +#define AUTO_LIST4(\7f4720,159119
 +extern const char *verify_ascii \7fverify_ascii\ 14730,159456
 +# define verify_ascii(\7f4732,159510
 +#define AUTO_STRING(\7f4740,159818
 +#define FOR_EACH_TAIL(\7f4752,160282
 +#define FOR_EACH_ALIST_VALUE(\7f4766,160773
 +maybe_gc \7f4774,161060
 +functionp \7f4784,161299
 +\f
 +c-src/machsyscalls.c,23
 +#define       SYSCALL(\7f6,113
 +\f
 +c-src/machsyscalls.h,159
 +SYSCALL (mach_msg_trap,\7f1,0
 +SYSCALL (mach_reply_port,\7f13,314
 +SYSCALL (mach_thread_self,\7f18,377
 +SYSCALL (mach_task_self,\7f23,441
 +SYSCALL (mach_host_self,\7f28,503
 +\f
 +c-src/fail.c,30
 +void (*prt_call(\7fprt_call\ 11,0
 +\f
 +c-src/h.h,2506
 +   ELEM_I/\7fELEM_I\ 13,15
 +} Fails_t;\7f5,85
 +typedef void Lang_function \7f6,96
 +void Asm_labels \7f7,127
 +typedef struct tpcmd\7f8,147
 +#define ggg \7f10,170
 +  } arg;\7f13,198
 +tpcmd;\7f15,209
 +typedef struct foobar2_ \7f16,216
 +    fu   int (*funcptr)\7ffuncptr\ 117,242
 +    long foo;\7f18,279
 +    char bar;\7f19,293
 +} foobar2;\7f20,307
 +    DEVICE_SWP,\7f23,333
 +    DEVICE_LAST\7f24,349
 +} bsp_DevId;\7f25,365
 +  struct constant_args \7f27,394
 +    unsigned int burst;\7f28,419
 +  } constant;\7f29,443
 +} args;\7f30,457
 +typedef int *regset;\7fregset\ 131,465
 +typedef int INT;\7f32,486
 +typedef union abc\7f33,503
 +  int def;\7f35,523
 +} ghi1;\7f36,534
 +typedef union abc \7f37,542
 +  int def;\7f38,562
 +} ghi2;\7f39,573
 +typedef struct a \7f40,581
 +} b;\7f41,600
 +#define c(\7f42,605
 +typedef struct an_extern_linkage *an_extern_linkage_ptr;\7fan_extern_linkage_ptr\ 143,619
 +typedef struct an_extern_linkage \7f44,676
 +              kind;\7f46,733
 +              is_explicit;\7f49,812
 +  a_byte_boolean is_curly_brace_form;\7f54,1009
 +} an_extern_linkage;\7f56,1054
 +typedef struct pollfd   pfdset[\7fpfdset\ 157,1075
 +typedef union rtunion_def\7f58,1119
 +    int rtint;\7f60,1149
 +    char *rtstr;\7frtstr\ 161,1164
 +    struct rtx_def *rtx;\7frtx\ 162,1181
 +  } womboid \7f63,1206
 +typedef union rtunion_def\7f64,1220
 +  int rtint;\7f68,1250
 +  char *rtstr;\7frtstr\ 169,1263
 +  struct rtx_def *rtxp;\7frtxp\ 170,1278
 +  struct rtx_def rtxnp;\7f71,1302
 +womboid\7f75,1330
 +enum {dog,\7fdog\ 181,1416
 +enum {dog, cat}\7fcat\ 181,1416
 +enum {dog, cat} animals;\7f81,1416
 +typedef void (_CALLBACK_ *signal_handler)\7fsignal_handler\ 182,1441
 +typedef void (_CALLBACK_ *signal_handler1)\7fsignal_handler1\ 183,1489
 +/* comment */ #define ANSIC\7f84,1538
 + #define ANSIC\7f85,1566
 +typedef void (proc)\7f87,1588
 +typedef void OperatorFun(\7f88,1612
 +typedef int f(\7f89,1648
 +struct my_struct \7f91,1691
 +typedef struct my_struct my_typedef;\7f93,1713
 +typedef RETSIGTYPE (*signal_handler_t)\7fsignal_handler_t\ 194,1750
 +  Date 04 May 87 235311 PDT \7f96,1802
 +typedef unsigned char unchar;\7f99,1880
 +typedef int X,\7f100,1910
 +typedef int X, Y,\7f100,1910
 +typedef int X, Y, Z;\7f100,1910
 +typedef mio mao;\7f101,1931
 +extern void ab(\7f102,1948
 +typedef struct a \7f103,1966
 +typedef struct a { } b;\7f103,1966
 +typedef struct b\7f104,1990
 +} c;\7f106,2009
 +int   (*oldhup)\7foldhup\ 1107,2014
 +request (*oldhup)\7foldhup\ 1108,2031
 +int extvar;\7f109,2053
 +#define tag1\7f110,2065
 +#define aaaaaa \7f111,2078
 +#define bbbbbb\\7fbbbbbb\ 1113,2102
 +#define cccccccccc\7f115,2125
 +#define enter_critical_section        \7f116,2144
 +#define exit_critical_to_previous     \7f117,2199
 +#define UNDEFINED\7f118,2259
 +struct re_pattern_buffer \7f119,2277
 +struct re_pattern_buffer { unsigned char *buffer;\7fbuffer\ 1119,2277
 +\f
 +cp-src/c.C,3133
 +template <typename ipc3dIslandHierarchy,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType, unsigned numOfChannels,\7f1,0
 +template <typename ipc3dIslandHierarchy, typename ipc3dChannelType, unsigned numOfChannels, typename ipc3dLinkControl,\7f1,0
 +class CMultiChannelCSC19_3D\7f2,151
 +        ipc3dLinkControlSetup setup;\7f5,190
 +        ipc3dCSC19<\7fipc3dCSC19\ 16,227
 +        ipc3dCSC19<ipc3dIslandHierarchy,ipcMultiChannel<ipc3dChannelType,numOfChannels>,ipcMultiChannel<ipc3dChannelType,numOfChannels>,ipc3dLinkControl> mcCSC;\7f6,227
 +        advTimer cscInitTime;\7f7,388
 +        advTimer cscSegmentationTime;\7f8,418
 +        advTimer outputTime;\7f9,456
 +        void execute(\7f11,493
 +static void my_function1(\7f24,984
 +int main \7f25,1026
 +double base \7f26,1088
 +operator += \7foperator +=\ 129,1174
 +class TestRecord;\7f31,1233
 +typedef struct s1 \7f32,1251
 +   int counter;\7f33,1271
 +} t1;\7f34,1287
 +struct s2 \7f35,1293
 +   int counter;\7f36,1305
 +typedef struct s2 t2;\7f38,1324
 +class A \7f39,1346
 +  enum { rosso,\7f40,1356
 +  enum { rosso, giallo,\7f40,1356
 +  enum { rosso, giallo, verde \7f40,1356
 +  enum { rosso, giallo, verde } colori;\7f40,1356
 +  const A& operator+(\7f41,1396
 +const A& A::operator+(\7foperator+\ 143,1431
 +void operator+(\7f44,1467
 +void operator -(\7foperator -\ 145,1495
 +void operator int(\7foperator int\ 146,1524
 +A<int>* f(\7f48,1556
 +int f(\7f49,1571
 +int A<int>::f(\7ff\ 150,1590
 +A<float,B<int> > A<B<float>,int>::f(\7ff\ 151,1618
 +template <class C, int n> class AT \7f52,1668
 +template <class C, int n> class AT { C t[\7ft\ 152,1668
 +class AU \7f53,1716
 +class AU { T x;\7f53,1716
 +class B<\7fB\ 154,1735
 +class B<int> { void f(\7f54,1735
 +const A::B::T& abt \7f55,1766
 +class A \7f56,1792
 +class A { class B \7f56,1792
 +class A { class B { int f(\7f56,1792
 +class A \7f57,1827
 +  int get_data(\7f58,1837
 +  A operator+(\7f59,1861
 +is_muldiv_operation(\7f61,1888
 +domain foo \7f68,1956
 +     void f(\7f69,1969
 +void A::A(\7fA\ 172,1990
 +struct A \7f73,2005
 +struct A { A(\7f73,2005
 +struct B \7f74,2023
 +struct B { B(\7f74,2023
 +void B::B(\7fB\ 175,2042
 +void BE_Node::BE_Node(\7fBE_Node\ 176,2057
 +class BE_Node \7f77,2084
 +struct foo \7f79,2103
 +  int x;\7f80,2116
 +class test \7f86,2157
 +  int f(\7f87,2170
 +  int ff(\7f89,2232
 +  int g(\7f90,2255
 +class AST_Root \7f92,2279
 +class AST_Root;\7f96,2328
 +AST_ConcreteType::AST_ConcreteType(\7f99,2394
 +AST_Array::AST_Array(\7f107,2533
 +     void f(\7f115,2734
 +struct A \7f117,2754
 +    ~A(\7f118,2765
 +A::~A(\7f~A\ 1120,2778
 +struct B \7f122,2790
 +    ~B(\7f123,2801
 +enum {dog,\7fdog\ 1126,2818
 +enum {dog, cat}\7fcat\ 1126,2818
 +enum {dog, cat} animals;\7f126,2818
 +struct {int teats;\7f127,2843
 +struct {int teats;} cow;\7f127,2843
 +class Boo \7f129,2869
 +    enum {dog,\7fdog\ 1130,2881
 +    enum {dog, cat}\7fcat\ 1130,2881
 +    enum {dog, cat} animals;\7f130,2881
 +    struct {int treats;\7f131,2910
 +    struct {int treats;} cow;\7f131,2910
 +    int i,\7f132,2940
 +    int i,a,\7f132,2940
 +    int i,a,b;\7f132,2940
 +    foo(\7f133,2955
 +    Boo(\7f137,2996
 +    Boo(\7f138,3053
 +Boo::Boo(\7f141,3071
 +typedef int should_see_this_one_enclosed_in_extern_C;\7f149,3156
 +typedef int (*should_see_this_function_pointer)\7fshould_see_this_function_pointer\ 1153,3229
 +typedef int should_see_this_array_type[\7fshould_see_this_array_type\ 1156,3311
 +\f
 +cp-src/x.cc,102
 +class XX\7f1,0
 +     int foo(\7f4,19
 +     void bar(\7f5,35
 +XX::foo(\7ffoo\ 19,60
 +XX::bar(\7fbar\ 115,95
 +main(\7f21,126
 +\f
 +cp-src/burton.cpp,124
 +::dummy::dummy test::dummy1(\7fdummy1\ 11,0
 +::dummy::dummy test::dummy2(\7fdummy2\ 16,64
 +::dummy::dummy test::dummy3(\7fdummy3\ 111,143
 +\f
 +cp-src/functions.cpp,778
 +void Date::setDate \7fsetDate\ 15,148
 +void Date::plus \7fplus\ 132,939
 +void Date::minus \7fminus\ 142,1229
 +void Date::shift \7fshift\ 152,1407
 +Date & Date::operator = \7foperator =\ 162,1628
 +Date & Date::operator += \7foperator +=\ 169,1789
 +Date & Date::operator -= \7foperator -=\ 178,1939
 +Date & Date::operator ++ \7foperator ++\ 187,2080
 +Date & Date::operator -- \7foperator --\ 196,2216
 +int Date::operator - \7foperator -\ 1104,2331
 +int Date::operator < \7foperator <\ 1112,2483
 +int Date::operator > \7foperator >\ 1116,2557
 +int Date::operator == \7foperator ==\ 1120,2631
 +ostream& operator << \7foperator <<\ 1124,2707
 +istream& operator >> \7foperator >>\ 1133,2943
 +bool isLeap \7f159,3543
 +bool isHoliday \7f163,3629
 +void asort(\7f173,3865
 +void ReadVacation \7f186,4064
 +void Debug \7f201,4523
 +int WorkingDays(\7f211,4867
 +Date StartDay(\7f226,5129
 +\f
 +cp-src/MDiagArray2.h,1194
 +#define octave_MDiagArray2_h \7f29,870
 +#undef LTGT\7f35,967
 +#define LTGT\7f39,1031
 +#define LTGT \7f42,1051
 +class MDiagArray2;\7f45,1087
 +operator += \7foperator +=\ 148,1145
 +operator -= \7foperator -=\ 151,1242
 +operator * \7foperator *\ 154,1339
 +operator / \7foperator /\ 157,1428
 +operator * \7foperator *\ 160,1517
 +operator + \7foperator +\ 163,1605
 +operator - \7foperator -\ 166,1707
 +product \7f69,1808
 +operator - \7foperator -\ 172,1907
 +class MDiagArray2 \7f78,2022
 +  MDiagArray2 \7f82,2077
 +  MDiagArray2 \7f86,2154
 +  MDiagArray2 \7f87,2198
 +  MDiagArray2 \7f88,2254
 +  MDiagArray2 \7f89,2329
 +  MDiagArray2 \7f90,2387
 +  MDiagArray2 \7f91,2450
 +  ~MDiagArray2 \7f93,2515
 +  MDiagArray2<T>& operator = \7foperator =\ 195,2542
 +      DiagArray2<T>::operator = \7foperator =\ 197,2603
 +  operator MArray2<T> \7foperator MArray2<T>\ 1101,2667
 +  operator += \7foperator +=\ 1116,2966
 +  operator -= \7foperator -=\ 1119,3057
 +  friend MDiagArray2<T> operator * \7foperator *\ 1123,3174
 +  friend MDiagArray2<T> operator / \7foperator /\ 1124,3253
 +  friend MDiagArray2<T> operator * \7foperator *\ 1128,3384
 +  operator + \7foperator +\ 1133,3544
 +  operator - \7foperator -\ 1136,3640
 +  friend MDiagArray2<T> operator - \7foperator -\ 1141,3803
 +#undef LTGT\7f144,3874
 +#define INSTANTIATE_MDIAGARRAY_FRIENDS(\7f146,3887
 +\f
 +cp-src/Range.h,784
 +#define octave_Range_h \7f24,765
 +class istream;\7f30,840
 +class ostream;\7f31,855
 +class Matrix;\7f32,870
 +Range\7f35,891
 +  Range \7f39,909
 +  Range \7f42,995
 +  Range \7f46,1130
 +  Range \7f50,1248
 +  double base \7f54,1376
 +  double limit \7f55,1425
 +  double inc \7f56,1475
 +  int nelem \7f57,1523
 +  bool all_elements_are_ints \7f59,1571
 +  Matrix matrix_value \7f61,1615
 +  double min \7f63,1652
 +  double max \7f64,1679
 +  void sort \7f66,1707
 +  void set_base \7f68,1728
 +  void set_limit \7f69,1774
 +  void set_inc \7f70,1821
 +  friend ostream& operator << \7foperator <<\ 172,1867
 +  friend istream& operator >> \7foperator >>\ 173,1928
 +  void print_range \7f75,1984
 +  double rng_base;\7f79,2023
 +  double rng_limit;\7f80,2042
 +  double rng_inc;\7f81,2062
 +  int rng_nelem;\7f83,2081
 +  int nelem_internal \7f85,2099
 +extern Range operator - \7foperator -\ 188,2138
 +\f
 +cp-src/screen.cpp,228
 +unsigned char cursor_x,\7f15,548
 +unsigned char cursor_x, cursor_y;\7f15,548
 +static union REGS regs;\7f16,582
 +void goto_xy(\7f18,607
 +void hide_cursor(\7f27,774
 +void cursor_position(\7f32,836
 +void clear_screen(\7f41,997
 +void write_xyc(\7f55,1247
 +\f
 +cp-src/screen.hpp,538
 +#define __COLORS\7f9,401
 +enum COLORS \7f11,419
 +    BLACK,\7f12,433
 +    BLUE,\7f13,471
 +    GREEN,\7f14,481
 +    CYAN,\7f15,492
 +    RED,\7f16,502
 +    MAGENTA,\7f17,511
 +    BROWN,\7f18,524
 +    LIGHTGRAY,\7f19,535
 +    DARKGRAY,\7f20,550
 +    LIGHTBLUE,\7f21,589
 +    LIGHTGREEN,\7f22,604
 +    LIGHTCYAN,\7f23,620
 +    LIGHTRED,\7f24,635
 +    LIGHTMAGENTA,\7f25,649
 +    YELLOW,\7f26,667
 +    WHITE\7f27,679
 +#define SCREEN_FP(\7f31,700
 +#define SCREEN_START \7f33,795
 +void goto_xy(\7f35,835
 +void hide_cursor(\7f36,883
 +void cursor_position(\7f37,907
 +void clear_screen(\7f38,935
 +void write_xyc(\7f39,960
 +\f
 +cp-src/conway.cpp,288
 +#define max(\7f12,357
 +#define min(\7f13,393
 +const int num_rows \7f15,430
 +const int num_columns \7f16,470
 +class site *field_of_play[\7ffield_of_play\ 118,499
 +int site::total_surrounding(\7ftotal_surrounding\ 120,550
 +void display(\7f37,958
 +void glider(\7f50,1239
 +void traffic_light(\7f59,1478
 +void main(\7f67,1633
 +\f
 +cp-src/conway.hpp,322
 +class site:\7fsite\ 15,235
 +    char x,\7f7,269
 +    char x, y,\7f7,269
 +    char x, y, alive,\7f7,269
 +    char x, y, alive, next_alive;\7f7,269
 +    int total_surrounding(\7f8,303
 +    site(\7f10,344
 +    ~site(\7f11,397
 +    char read(\7f12,410
 +    void set(\7f13,444
 +    void clear(\7f14,478
 +    void compute_next_state(\7f15,514
 +    void step(\7f22,717
 +\f
 +cp-src/clheir.cpp,359
 +const int max_num_generic_objects \7f9,298
 +generic_object * object_registry[\7fobject_registry\ 110,340
 +void init_registry(\7f12,400
 +void step_everybody(\7f19,527
 +void discrete_location::clear_neighbors(\7fclear_neighbors\ 131,852
 +generic_object::generic_object(\7fgeneric_object\ 136,981
 +generic_object::~generic_object(\7f~generic_object\ 148,1255
 +void agent::move(\7fmove\ 153,1353
 +\f
 +cp-src/clheir.hpp,990
 +extern void init_registry(\7f10,452
 +extern void step_everybody(\7f11,485
 +class generic_object\7f13,520
 +    int where_in_registry;\7f15,547
 +    generic_object(\7f17,582
 +    ~generic_object(\7f19,724
 +    virtual void compute_next_state(\7f21,843
 +    virtual void step(\7f22,889
 +const int max_num_directions \7f31,1220
 +class location:\7flocation\ 133,1290
 +    location(\7f43,1643
 +    ~location(\7f44,1662
 +class irregular_location:\7firregular_location\ 147,1687
 +    double x,\7f49,1735
 +    double x, y,\7f49,1735
 +    double x, y, z;\7f49,1735
 +    irregular_location(\7f51,1763
 +    ~irregular_location(\7f53,1855
 +class discrete_location:\7fdiscrete_location\ 156,1890
 +    int x,\7f58,1937
 +    int x, y,\7f58,1937
 +    int x, y, z;\7f58,1937
 +    class location *neighbors[\7fneighbors\ 159,1954
 +    void clear_neighbors(\7f60,2005
 +    discrete_location(\7f62,2045
 +    ~discrete_location(\7f65,2155
 +    void assign_neighbor(\7f66,2185
 +class agent:\7fagent\ 175,2509
 +    location *where;\7fwhere\ 177,2550
 +    agent(\7f79,2579
 +    ~agent(\7f80,2592
 +    void move(\7f81,2606
 +\f
 +cp-src/fail.C,351
 +struct A \7f7,263
 +         struct B \7f8,274
 +                 struct C \7f9,289
 +                         int x;\7f10,305
 +                         C(\7f11,318
 +                         operator int(\7foperator int\ 112,342
 +                 typedef C T;\7f14,389
 +         typedef B T2;\7f16,414
 +class String;\7f20,437
 +class A \7f23,453
 +      class B \7f24,463
 +              class C \7f25,474
 +              int f(\7f26,488
 +int A::B::f(\7ff\ 131,521
 +main(\7f37,571
 +      class D \7f41,622
 +              D(\7f43,659
 +              int x;\7f44,694
 +\f
 +el-src/TAGTEST.EL,148
 +(foo::defmumble bletch \7f1,0
 +(defalias 'pending-delete-mode \7fpending-delete-mode\ 15,102
 +(defalias (quote explicitly-quoted-pending-delete-mode)\7f8,175
 +\f
 +el-src/emacs/lisp/progmodes/etags.el,5188
 +(defvar tags-file-name \7f34,1034
 +(defgroup etags \7f43,1498
 +(defcustom tags-case-fold-search \7f47,1566
 +(defcustom tags-table-list \7f59,2051
 +(defcustom tags-compression-info-list\7f69,2449
 +(defcustom tags-add-tables \7f88,3231
 +(defcustom tags-revert-without-query \7f98,3627
 +(defvar tags-table-computed-list \7f103,3778
 +(defvar tags-table-computed-list-for \7f112,4262
 +(defvar tags-table-list-pointer \7f117,4510
 +(defvar tags-table-list-started-at \7f121,4701
 +(defvar tags-table-set-list \7f124,4821
 +(defcustom find-tag-hook \7f129,5000
 +(defcustom find-tag-default-function \7f137,5263
 +(define-obsolete-variable-alias 'find-tag-marker-ring-length\7ffind-tag-marker-ring-length\ 1145,5602
 +(defcustom tags-tag-face \7f148,5699
 +(defcustom tags-apropos-verbose \7f154,5834
 +(defcustom tags-apropos-additional-actions \7f160,5998
 +(defvaralias 'find-tag-marker-ring \7ffind-tag-marker-ring\ 1183,6917
 +(defvar default-tags-table-function \7f189,7097
 +(defvar tags-location-ring \7f194,7323
 +(defvar tags-table-files \7f201,7599
 +(defvar tags-completion-table \7f206,7766
 +(defvar tags-included-tables \7f209,7858
 +(defvar next-file-list \7f212,7953
 +(defvar tags-table-format-functions \7f217,8059
 +(defvar file-of-tag-function \7f224,8440
 +(defvar tags-table-files-function \7f228,8634
 +(defvar tags-completion-table-function \7f230,8745
 +(defvar snarf-tag-function \7f232,8840
 +(defvar goto-tag-location-function \7f236,9049
 +(defvar find-tag-regexp-search-function \7f239,9222
 +(defvar find-tag-regexp-tag-order \7f241,9343
 +(defvar find-tag-regexp-next-line-after-failure-p \7f243,9452
 +(defvar find-tag-search-function \7f245,9572
 +(defvar find-tag-tag-order \7f247,9679
 +(defvar find-tag-next-line-after-failure-p \7f249,9774
 +(defvar list-tags-function \7f251,9880
 +(defvar tags-apropos-function \7f253,9968
 +(defvar tags-included-tables-function \7f255,10062
 +(defvar verify-tags-table-function \7f257,10181
 +(defun initialize-new-tags-table \7f260,10292
 +(defun tags-table-mode \7f276,10980
 +(defun visit-tags-table \7f285,11245
 +(defun tags-table-check-computed-list \7f321,12783
 +(defun tags-table-extend-computed-list \7f360,14654
 +(defun tags-expand-table-name \7f400,16367
 +(defun tags-table-list-member \7f409,16710
 +(defun tags-verify-table \7f421,17182
 +(defun tags-table-including \7f470,19302
 +(defun tags-next-table \7f522,21346
 +(defun visit-tags-table-buffer \7f543,22203
 +(defun tags-reset-tags-tables \7f712,28513
 +(defun file-of-tag \7f731,29170
 +(defun tags-table-files \7f740,29519
 +(defun tags-included-tables \7f749,29869
 +(defun tags-completion-table \7f755,30115
 +(defun tags-lazy-completion-table \7f783,31309
 +(defun tags-completion-at-point-function \7f799,31944
 +(defun find-tag-tag \7f818,32694
 +(defvar last-tag \7f837,33367
 +(defun find-tag-interactive \7f840,33426
 +(defvar find-tag-history \7f852,33841
 +(defvar etags-case-fold-search)\7f855,33906
 +(defvar etags-syntax-table)\7f856,33938
 +(defvar local-find-tag-hook)\7f857,33966
 +(defun find-tag-noselect \7f860,34011
 +(defun find-tag \7f932,37125
 +(defun find-tag-other-window \7f959,38341
 +(defun find-tag-other-frame \7f1000,40269
 +(defun find-tag-regexp \7f1025,41443
 +(defalias 'pop-tag-mark \7fpop-tag-mark\ 11049,42605
 +(defvar tag-lines-already-matched \7f1052,42656
 +(defun find-tag-in-order \7f1055,42763
 +(defun tag-find-file-of-tag-noselect \7f1167,47109
 +(defun tag-find-file-of-tag \7f1200,48955
 +(defun etags-recognize-tags-table \7f1208,49181
 +(defun etags-verify-tags-table \7f1241,50812
 +(defun etags-file-of-tag \7f1246,51010
 +(defun etags-tags-completion-table \7f1256,51345
 +(defun etags-snarf-tag \7f1286,52551
 +(defun etags-goto-tag-location \7f1324,54120
 +(defun etags-list-tags \7f1388,56563
 +(defmacro tags-with-face \7f1423,57838
 +(defun etags-tags-apropos-additional \7f1431,58171
 +(defun etags-tags-apropos \7f1465,59408
 +(defun etags-tags-table-files \7f1527,61617
 +(defun etags-tags-included-tables \7f1542,62053
 +(defun tags-recognize-empty-tags-table \7f1559,62593
 +(defun tag-exact-file-name-match-p \7f1587,63739
 +(defun tag-file-name-match-p \7f1596,64132
 +(defun tag-exact-match-p \7f1609,64688
 +(defun tag-implicit-name-match-p \7f1620,65256
 +(defun tag-symbol-match-p \7f1633,65856
 +(defun tag-word-match-p \7f1643,66292
 +(defun tag-partial-file-name-match-p \7f1652,66690
 +(defun tag-any-match-p \7f1662,67134
 +(defun tag-re-match-p \7f1667,67318
 +(defcustom tags-loop-revert-buffers \7f1675,67567
 +(defun next-file \7f1685,67976
 +(defvar tags-loop-operate \7f1760,70890
 +(defvar tags-loop-scan\7f1763,70984
 +(defun tags-loop-eval \7f1771,71313
 +(defun tags-loop-continue \7f1782,71642
 +(defun tags-search \7f1850,73948
 +(defun tags-query-replace \7f1871,74774
 +(defun tags-complete-tags-table-file \7f1896,75998
 +(defun list-tags \7f1906,76377
 +(defun tags-apropos \7f1934,77330
 +(define-button-type 'tags-select-tags-table\7ftags-select-tags-table\ 11957,78156
 +(defun select-tags-table \7f1964,78395
 +(defvar select-tags-table-mode-map \7f2019,80522
 +(define-derived-mode select-tags-table-mode \7f2030,80905
 +(defun select-tags-table-select \7f2034,81089
 +(defun select-tags-table-quit \7f2043,81455
 +(defun complete-tag \7f2049,81610
 +(defconst etags--xref-limit \7f2074,82551
 +(defvar etags-xref-find-definitions-tag-order \7f2076,82586
 +(defun etags-xref-find \7f2082,82876
 +(defun etags--xref-find-definitions \7f2096,83405
 +(defclass xref-etags-location \7f2129,85119
 +(defun xref-make-etags-location \7f2135,85342
 +(cl-defmethod xref-location-marker \7f2139,85497
 +(cl-defmethod xref-location-line \7f2146,85741
 +\f
 +erl-src/gs_dialog.erl,98
 +-define(VERSION\7f2,32
 +behaviour_info(\7f51,2177
 +show(\7f124,5458
 +dialog_loop(\7f219,9529
 +test(\7f252,10806
 +\f
 +f-src/entry.for,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +f-src/entry.strange_suffix,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +f-src/entry.strange,172
 +      LOGICAL FUNCTION PRTPKG \7f3,75
 +       ENTRY  SETPRT \7f194,3866
 +       ENTRY  MSGSEL \7f395,8478
 +     & intensity1(\7f577,12231
 +       character*(*) function foo(\7f579,12307
 +\f
 +forth-src/test-forth.fth,408
 +: a-forth-word \7f20,301
 +99 constant a-forth-constant!\7f22,343
 +55 value a-forth-value?\7f23,373
 +create :a-forth-dictionary-entry\7f24,397
 +defer #a-defer-word\7f27,460
 +: (another-forth-word)\7f(another-forth-word\ 129,481
 +   9   field   >field1\7f36,582
 +   5   field   >field2\7f37,605
 +constant (a-forth-constant\7f(a-forth-constant\ 138,628
 +2000 buffer: #some-storage\7f41,657
 +code assemby-code-word \7f43,685
 +: a-forth-word \7f50,870
 +\f
 +go-src/test.go,48
 +package main\7f1,0
 +func say(\7f5,28
 +func main(\7f9,72
 +\f
 +go-src/test1.go,172
 +package main\7f1,0
 +type plus \7f5,28
 +type str \7f9,65
 +type intNumber \7f13,99
 +func (s str) PrintAdd(\7f17,136
 +func (n intNumber) PrintAdd(\7f21,189
 +func test(\7f25,248
 +func main(\7f29,285
 +\f
 +html-src/softwarelibero.html,200
 +Cos'è il software libero?\7f4,38
 +Licenze d'uso di un programma\7flicenze\ 165,2500
 +Sfatiamo alcuni miti\7f138,6118
 +Il movimento open source\7foss\ 1191,8037
 +Impatto pratico del software libero\7fimpatto\ 1231,10066
 +\f
 +html-src/index.shtml,104
 +&nbsp;\7f8,281
 +In evidenza\7f15,447
 +Comunicati e iniziative\7f32,976
 +Ultime notizie dall'associazione\7f63,2030
 +\f
 +html-src/algrthms.html,467
 +Tutorial on Convolutional Coding with Viterbi Decoding--Description of the Data Generation, Convolutional Encoding, Channel Mapping and AWGN, and Quantizing Algorithms\7f7,277
 +Description\7falgorithms\ 110,481
 +Generating the Data\7fgenalgorithm\ 148,1995
 +Convolutionally\7fconalgorithm\ 155,2512
 +Next\7fstatetable\ 1262,11587
 +Output\7foutputtable\ 1350,13915
 +Mapping the Channel Symbols\7fmapping\ 1433,16213
 +Adding Noise to the\7faddnoise\ 1439,16607
 +Quantizing the Received\7fquantizing\ 1469,19100
 +\f
 +html-src/software.html,439
 +Francesco Potortì Software Page\7f9,280
 +Software that I wrote for supporting my research activity\7fsimulation\ 136,1398
 +MTG\7fmtg\ 141,1482
 +Fracas\7ffracas\ 165,2624
 +GaliLEO\7fgalileo\ 1101,4232
 +Leasqr\7fleasqr\ 1114,4677
 +Free software that I wrote for the GNU project or for my personal or work\7fgnu\ 1142,6065
 +Etags\7fetags\ 1148,6180
 +checkiso\7f161,6729
 +cgrep\7f178,7547
 +debian-bug.el\7fdebian-bug\ 1190,7979
 +tcpdump\7f205,8564
 +Links to interesting software\7flinks\ 1216,8891
 +\f
 +lua-src/allegro.lua,400
 +local function get_layer_by_name \7f7,175
 +local function count_layers \7f33,621
 +function GetLayerByName \7f54,980
 +function GetUniqueLayerName \7f65,1204
 +function SelectLayer \7f76,1415
 +function NewLayer \7f86,1773
 +function NewLayerSet \7f144,3226
 +function RemoveLayer \7f170,3750
 +function MoveLayerTop \7f211,4767
 +function MoveLayerBottom \7f223,5079
 +function MoveLayerBefore \7f236,5457
 +function MoveLayerAfter \7f258,6090
 +\f
 +lua-src/test.lua,442
 +function Rectangle.getPos \7f2,15
 +function Rectangle.getPos \7fgetPos\ 12,15
 +function Circle.getPos \7f6,61
 +function Circle.getPos \7fgetPos\ 16,61
 +function Cube.data.getFoo \7f10,102
 +function Cube.data.getFoo \7fgetFoo\ 110,102
 +function Square.something:Bar \7f14,148
 +function Square.something:Bar \7fBar\ 114,148
 +   function test.me_22a(\7f22,241
 +   function test.me_22a(\7fme_22a\ 122,241
 +   local function test.me22b \7f25,297
 +   local function test.me22b \7fme22b\ 125,297
 +\f
 +make-src/Makefile,2175
 +LATEST=\7f1,0
 +RELEASELIST=\7f2,10
 +ADASRC=\7f4,104
 +ASRC=\7f5,171
 +CSRC=\7f6,197
 +CPSRC=\7f10,423
 +ELSRC=\7f13,614
 +ERLSRC=\7f14,661
 +FORTHSRC=\7f15,702
 +FSRC=\7f16,726
 +HTMLSRC=\7f17,776
 +JAVASRC=\7f18,844
 +LUASRC=\7f19,907
 +MAKESRC=\7f20,926
 +OBJCSRC=\7f21,943
 +OBJCPPSRC=\7f22,999
 +PASSRC=\7f23,1035
 +PERLSRC=\7f24,1053
 +PHPSRC=\7f25,1108
 +PSSRC=\7f26,1156
 +PROLSRC=\7f27,1173
 +PYTSRC=\7f28,1210
 +TEXSRC=\7f29,1227
 +YSRC=\7f30,1282
 +SRCS=\7f31,1325
 +NONSRCS=\7f35,1577
 +VHDLFLAGS=\7f37,1624
 +COBOLFLAGS=\7f38,1827
 +POSTSCRIPTFLAGS=\7f39,1889
 +TCLFLAGS=\7f40,1943
 +GETOPTOBJS=\7f42,2002
 +RXINCLUDE=\7f43,2034
 +REGEXOBJS=\7f44,2056
 +CHECKOBJS=\7f46,2075
 +CHECKFLAGS=\7f47,2105
 +OBJS=\7f48,2145
 +CPPFLAGS=\7f49,2190
 +LDFLAGS=\7f50,2259
 +WARNINGS=\7f51,2282
 +CFLAGS=\7f52,2466
 +FASTCFLAGS=\7f55,2530
 +FASTCFLAGSWARN=\7f56,2591
 +FILTER=\7f58,2641
 +REGEX=\7f59,2695
 +xx=\7f60,2741
 +MAKE:\7fMAKE\ 162,2790
 +RUN=\7f63,2825
 +RUN=\7f64,2865
 +OPTIONS=\7f65,2870
 +ARGS=\7f66,2922
 +infiles \7f68,2940
 +quiettest:\7fquiettest\ 170,3002
 +test:\7ftest\ 179,3409
 +${CHECKOBJS}:\7f${CHECKOBJS}\ 188,3805
 +checker:\7fchecker\ 190,3849
 +standalone:\7fstandalone\ 196,4062
 +prof:\7fprof\ 1101,4168
 +fastetags:\7ffastetags\ 1104,4198
 +fastctags:\7ffastctags\ 1108,4322
 +staticetags:\7fstaticetags\ 1112,4446
 +rsynctofly:\7frsynctofly\ 1116,4608
 +rsyncfromfly:\7frsyncfromfly\ 1119,4698
 +web ftp publish:\7fweb ftp publish\ 1122,4794
 +release distrib:\7frelease distrib\ 1129,5115
 +tags:\7ftags\ 1134,5255
 +clean:\7fclean\ 1136,5267
 +srclist:\7fsrclist\ 1139,5302
 +regexfile:\7fregexfile\ 1143,5391
 +/home/www/pub/etags.c.gz:\7f/home/www/pub/etags.c.gz\ 1149,5566
 +/home/www/pub/software/unix/etags.tar.gz:\7f/home/www/pub/software/unix/etags.tar.gz\ 1156,5825
 +regex.o:\7fregex.o\ 1159,6031
 +getopt.o:\7fgetopt.o\ 1162,6086
 +getopt1.o:\7fgetopt1.o\ 1165,6147
 +etags:\7fetags\ 1168,6210
 +ctags:\7fctags\ 1171,6299
 +man manpage:\7fman manpage\ 1174,6396
 +etags.1.man:\7fetags.1.man\ 1176,6422
 +maintaining.info:\7fmaintaining.info\ 1179,6475
 +TAGS:\7fTAGS\ 1182,6557
 +%ediff:\7f%ediff\ 1185,6587
 +oediff:\7foediff\ 1188,6677
 +%cdiff:\7f%cdiff\ 1191,6764
 +xdiff:\7fxdiff\ 1194,6854
 +ETAGS:\7fETAGS\ 1197,6942
 +ETAGS%:\7fETAGS%\ 1200,7012
 +ETAGS13 ETAGS14 ETAGS15:\7fETAGS13 ETAGS14 ETAGS15\ 1203,7084
 +ETAGS12:\7fETAGS12\ 1206,7216
 +OTAGS:\7fOTAGS\ 1209,7304
 +CTAGS:\7fCTAGS\ 1212,7369
 +CTAGS%:\7fCTAGS%\ 1215,7443
 +CTAGS13 CTAGS14 CTAGS15:\7fCTAGS13 CTAGS14 CTAGS15\ 1218,7545
 +EXTAGS:\7fEXTAGS\ 1221,7680
 +.PRECIOUS:\7f.PRECIOUS\ 1224,7838
 +FRC:\7fFRC\ 1226,7894
 +\f
 +objc-src/Subprocess.h,98
 +#define Subprocess \7f41,1217
 +#define BUFFERSIZE \7f43,1267
 +@interface Subprocess:\7fSubprocess\ 145,1292
 +\f
 +objc-src/Subprocess.m,476
 +#define       PTY_TEMPLATE \7f20,494
 +#define       PTY_LENGTH \7f21,528
 +static void showError(\7f23,551
 +@interface Subprocess(Private)\7f32,737
 +- childDidExit\7f39,851
 +- fdHandler:\7ffdHandler\ 167,1589
 +showError \7f98,2360
 +fdHandler \7f112,2785
 +getptys \7f119,2907
 +- init:\7finit\ 1183,4815
 +    andStdErr:\7finit\ 1197,5147
 +- send:(const char *)string withNewline:\7fsend\ 1300,7436
 +- send:\7fsend\ 1308,7599
 +- terminateInput\7f314,7689
 +- terminate:\7fterminate\ 1321,7810
 +- setDelegate:\7fsetDelegate\ 1332,7961
 +- delegate\7f338,8031
 +\f
 +objc-src/PackInsp.h,109
 +#define NUMSTATS      \7f36,1101
 +#define TYPESTOSTAT   \7f37,1120
 +@interface PackageInspector:\7fPackageInspector\ 139,1172
 +\f
 +objc-src/PackInsp.m,1322
 +static const char RCSid[\7fRCSid\ 130,1032
 +#define VERSION       \7f34,1116
 +#   define DEBUG \7f37,1155
 +#define LISTCONTENTS  \7f39,1181
 +#define OPENBUTTON    \7f47,1352
 +#define LISTCONTENTSBUTTON    \7f48,1449
 +#define LISTDESCRIPTIONBUTTON \7f49,1562
 +#define STATE_UNINSTALLED     \7f52,1687
 +#define STATE_INSTALLED       \7f53,1807
 +#define STATE_COMPRESSD       \7f54,1948
 +#define SIZEFORMAT    \7f57,2152
 +#define KBYTES        \7f58,2362
 +#define MBYTES        \7f59,2473
 +#define LOCALIZE(\7f61,2585
 +#define LOCALIZE_ARCH(\7f62,2668
 ++new\7fnew\ 167,2802
 +-showInfo:\7fshowInfo\ 193,3417
 +-revert:\7frevert\ 1107,3737
 +-ok:\7fok\ 1136,4297
 +-load\7fload\ 1143,4424
 +#define LOOKUP(\7f156,4826
 +#undef LOOKUP\7f176,5694
 +-loadKeyValuesFrom:(const char *)type inTable:\7floadKeyValuesFrom\ 1186,5852
 +-loadContentsOf:(const char *)type inTable:\7floadContentsOf\ 1238,7079
 +-loadImage\7floadImage\ 1257,7552
 +#define STAT_EQ(\7f275,7940
 +-(BOOL)shouldLoad\7f280,8116
 +-toggleDescription\7ftoggleDescription\ 1301,8626
 +-(const char *)getPath:(char *)buf forType:\7fgetPath\ 1317,8899
 +-setRevertButtonTitle\7fsetRevertButtonTitle\ 1333,9320
 +-(const char *)formatSize:(const char *)size inBuf:\7fformatSize\ 1344,9525
 +#define WORKING       \7f368,10045
 +-(void)getArchs\7f370,10100
 +-(void)addArchs:\7faddArchs\ 1385,10520
 +-subprocess:(Subprocess *)sender output:\7fsubprocess\ 1428,11351
 +-subprocessDone:\7fsubprocessDone\ 1436,11484
 +static void openInWorkspace(\7f446,11634
 +-open:\7fopen\ 1464,12063
 +\f
 +objcpp-src/SimpleCalc.H,41
 +@interface SimpleCalc:\7fSimpleCalc\ 114,400
 +\f
 +objcpp-src/SimpleCalc.M,445
 +- init\7f52,1747
 +- appendToDisplay:\7fappendToDisplay\ 160,1933
 +- registerAction:\7fregisterAction\ 170,2210
 +- decimalKey:\7fdecimalKey\ 177,2348
 +- numberKeys:\7fnumberKeys\ 191,2661
 +- equalsKey:\7fequalsKey\ 1112,3192
 +- operationKeys:\7foperationKeys\ 1131,3680
 +- clearKey:\7fclearKey\ 1153,4301
 +- clearAllKey:\7fclearAllKey\ 1160,4410
 +- appDidInit:\7fappDidInit\ 1168,4591
 +- windowWillClose:\7fwindowWillClose\ 1178,4882
 +- infoPanel:\7finfoPanel\ 1186,5132
 +- helpPanel:\7fhelpPanel\ 1198,5482
 +\f
 +pas-src/common.pas,1875
 +procedure InitializeStringPackage;\7f26,527
 +function newtextstring;\7f34,874
 +procedure disposetextstring;\7f52,1404
 +function ConcatT;\7f78,2066
 +function AppendTextString;\7f112,3238
 +function CopyTextString;\7f132,3947
 +procedure CONVERT_CHARSTRING_TO_VALUE;\7f151,4505
 +procedure append_string;\7f172,5166
 +function To_Upper;\7f186,5462
 +function To_Lower;\7f194,5617
 +function EmptyNmStr(\7f209,6213
 +function chartonmstr;\7f219,6436
 +function LowerCaseNmStr;\7f230,6682
 +function concatenatenamestrings;\7f242,7007
 +procedure writenamestring;\7f263,7517
 +function IsControlChar;\7f277,7928
 +function namestringequal;\7f283,8079
 +function NameStringLess;\7f302,8539
 +function IsControlCharName(\7f343,9710
 +function SubString;\7f358,10208
 +function SkipChars;\7f379,10791
 +function RemoveUnderlineControl;\7f397,11311
 +procedure First100Chars;\7f427,12162
 +procedure SkipSpaces;\7f462,13298
 +function SkipBlanks;\7f477,13782
 +function stripname;\7f505,14595
 +function Locate;\7f522,15039
 +function NameHasChar;\7f543,15581
 +function integertonmstr;\7f561,16134
 +function NmStrToInteger;\7f585,16901
 +function AddNullToNmStr;\7f600,17317
 +function ValToNmStr;\7f611,17585
 +function ChangeFileType;\7f625,18037
 +function StripPath;\7f647,18734
 +function ReprOfChar;\7f675,19343
 +procedure ExtractCommentInfo;\7f702,20749
 +procedure INSERT_TREE_NODE;\7f784,24053
 +function GetNameList;\7f920,27926
 +procedure DisposeANameList(\7f925,28010
 +procedure DisposeNameList;\7f938,28340
 +function GetNewNameListNode;\7f943,28409
 +function insertname;\7f972,29051
 +procedure InitNameList;\7f988,29471
 +procedure InitNameStringPool;\7f998,29767
 +procedure NewNameString;\7f1004,29867
 +procedure ReleaseNameString;\7f1022,30232
 +procedure SDTrefStringToRec \7f1045,30741
 +procedure SDTrefSkipSpaces;\7f1059,31092
 +function SDTrefIsEnd \7f1070,31323
 +function SDTrefGetInteger \7f1082,31529
 +procedure SDTrefRecToString \7f1303,37546
 +function NmStrToErrStr;\7f1497,42305
 +function ErrStrToNmStr;\7f1509,42557
 +function GetTextRef;\7f1529,43112
 +\f
 +php-src/lce_functions.php,2864
 +  define("LCE_FUNCTIONS"\7fLCE_FUNCTIONS\ 14,38
 +  define("LCE_UNKNOWN"\7fLCE_UNKNOWN\ 19,145
 +  define("LCE_WS"\7fLCE_WS\ 111,194
 +  define("LCE_COMMENT"\7fLCE_COMMENT\ 113,244
 +  define("LCE_COMMENT_USER"\7fLCE_COMMENT_USER\ 115,303
 +  define("LCE_COMMENT_TOOL"\7fLCE_COMMENT_TOOL\ 117,366
 +  define("LCE_MSGID"\7fLCE_MSGID\ 119,430
 +  define("LCE_MSGSTR"\7fLCE_MSGSTR\ 121,488
 +  define("LCE_TEXT"\7fLCE_TEXT\ 123,541
 +  define("STATE_ABORT"\7fSTATE_ABORT\ 125,567
 +  define("STATE_OK"\7fSTATE_OK\ 126,595
 +  define("STATE_LOOP"\7fSTATE_LOOP\ 127,620
 +  class POEntryAD \7f29,648
 +      function validate(\7f31,683
 +      function checkQuotation(\7f59,1384
 +  class CommentAD \7f70,1639
 +      var $prefix;\7f72,1674
 +      function CommentAD(\7f73,1693
 +      function validate(\7f83,1944
 +  class POEntry \7f105,2410
 +      var $msgid;\7f107,2454
 +      var $msgstr;\7f108,2472
 +      var $user_comment;\7f109,2491
 +      var $sys_comment;\7f110,2516
 +      var $unk_comment;\7f111,2540
 +      var $msgid_lc \7f113,2565
 +      var $msgstr_lc \7f114,2590
 +      var $user_comment_lc \7f115,2616
 +      var $sys_comment_lc \7f116,2648
 +      var $unk_comment_lc \7f117,2679
 +      function POEntry(\7f119,2711
 +      function lineCount(\7f135,3255
 +      function serializeToVars(\7f141,3365
 +      function write(\7f151,3800
 +  class POReader \7f163,4178
 +      var $msgid;\7f165,4223
 +      var $msgstr;\7f166,4241
 +      var $user_comment;\7f167,4260
 +      var $sys_comment;\7f168,4285
 +      var $unk_comment;\7f169,4309
 +      var $state;\7f170,4333
 +      var $ignore_ws;\7f171,4351
 +      var $po_entries;\7f172,4373
 +      var $poe_num;\7f173,4396
 +      var $filename;\7f174,4416
 +      var $domain;\7f175,4437
 +      function gettext(\7f177,4457
 +      function parseFromVars(\7f189,4705
 +      function serializeToVars(\7f215,5331
 +      function POReader(\7f229,5613
 +      function read(\7f243,5983
 +      function write(\7f259,6307
 +      function isComment(\7f277,6645
 +      function comment(\7f284,6822
 +      function msgid(\7f304,7247
 +      function msgstr(\7f320,7574
 +      function start(\7f340,8232
 +      function createPOEntries(\7f360,8644
 +      function stripLine(\7f394,9472
 +      function printClassification(\7f421,10056
 +      function classifyLine(\7f432,10301
 +  function getTextDomains(\7f471,11094
 +  class PORManager \7f498,11756
 +      var     $por_a;\7f500,11803
 +      function PORManager(\7f502,11822
 +      function addPOReader(\7f507,11896
 +      function &getPOReader(\7fgetPOReader\ 1512,11992
 +      function getDomainNames(\7f517,12081
 +  function &loadPORManager(\7floadPORManager\ 1523,12174
 +  function fileJoin(\7f536,12436
 +      function lce_bindtextdomain(\7f557,12839
 +      function lce_textdomain(\7f614,14530
 +      function lce_gettext(\7f620,14641
 +      function lce_dgettext(\7f626,14767
 +      function lce(\7f634,14966
 +      function lce_bindtextdomain(\7f651,15488
 +      function lce_textdomain(\7f656,15592
 +      function lce_gettext(\7f661,15674
 +      function lce_dgettext(\7f666,15755
 +      function lce(\7f670,15855
 +  function lce_geteditcode(\7f676,15898
 +\f
 +php-src/ptest.php,135
 +define("TEST"\7fTEST\ 11,0
 +test \7f4,26
 +      var $member;\7f8,71
 +      var $memassign=\7f9,85
 +      var $memassign_space \7f10,110
 +      var $test\7f12,176
 +foo(\7f16,200
 +\f
- sub read_toc \7fmain::read_toc\ 1165,3917
++perl-src/htlmify-cystic,1197
 +my @section_name;\7fsection_name\ 112,236
 +my @appendix_name;\7fappendix_name\ 113,254
 +my @section_toc;\7fsection_toc\ 115,274
 +my @appendix_toc;\7fappendix_toc\ 116,291
 +my $new_tag \7fnew_tag\ 118,310
 +my $appendix;\7fappendix\ 124,409
 +my $section;\7fsection\ 125,423
 +my $subsection;\7fsubsection\ 126,436
 +my $subsubsection;\7fsubsubsection\ 127,452
 +my $this_file_toc \7fthis_file_toc\ 129,472
 +my %file_tocs;\7ffile_tocs\ 130,496
 +my @output_files \7foutput_files\ 132,512
 +my $file_index \7ffile_index\ 133,535
 +my $output_file;\7foutput_file\ 135,556
 +my $line;\7fline\ 137,574
 +my $subsection_marker;\7fsubsection_marker\ 1161,3883
 +my $new;\7fnew\ 1163,3907
- sub finish_subsubsections \7fmain::finish_subsubsections\ 1302,7805
- sub finish_subsections \7fmain::finish_subsections\ 1309,7987
- sub finish_sections \7fmain::finish_sections\ 1320,8310
- sub finish_appendices \7fmain::finish_appendices\ 1331,8599
- sub section_url_base \7fmain::section_url_base\ 1337,8724
- sub section_url_name \7fmain::section_url_name\ 1342,8922
- sub section_url \7fmain::section_url\ 1355,9284
++sub read_toc \7f165,3917
 +        my $entry \7fentry\ 1218,5621
 +        my $entry \7fentry\ 1234,6077
 +            my $entry \7fentry\ 1245,6351
 +        my $entry \7fentry\ 1252,6536
 +        my $entry \7fentry\ 1268,7010
 +            my $entry \7fentry\ 1276,7204
 +        my $entry \7fentry\ 1281,7328
 +      my $entry \7fentry\ 1296,7698
- sub section_href \7fmain::section_href\ 1364,9452
- sub section_name \7fmain::section_name\ 1368,9551
- sub toc_line \7fmain::toc_line\ 1372,9655
- sub file_end \7fmain::file_end\ 1375,9750
++sub finish_subsubsections \7f302,7805
++sub finish_subsections \7f309,7987
++sub finish_sections \7f320,8310
++sub finish_appendices \7f331,8599
++sub section_url_base \7f337,8724
++sub section_url_name \7f342,8922
++sub section_url \7f355,9284
 +  my $name \7fname\ 1357,9336
- perl-src/yagrip.pl,258
- sub getopt \7fmain::getopt\ 17,156
++sub section_href \7f364,9452
++sub section_name \7f368,9551
++sub toc_line \7f372,9655
++sub file_end \7f375,9750
 +\f
- sub usage \7fmain::usage\ 138,856
++perl-src/yagrip.pl,233
++sub getopt \7f7,156
 +      local($_,$flag,$opt,$f,$r,@temp)\7f($_,$flag,$opt,$f,$r,@temp\ 18,169
- perl-src/kai-test.pl,244
- sub f1 \7fmain::f1\ 12,16
- sub main::f2 \7f6,50
++sub usage \7f38,856
 +      local($prog,$_,@list)\7f($prog,$_,@list\ 139,868
 +      local($string,$flag,@string,@temp,@last)\7f($string,$flag,@string,@temp,@last\ 140,897
 +\f
- sub f3 \7fFoo::f3\ 112,104
- sub Bar::f4 \7f16,138
++perl-src/kai-test.pl,203
++sub f1 \7f2,16
++sub main::f2 \7ff2\ 16,50
 +package Foo;\7f10,90
- sub f5 \7fBar::f5\ 122,191
++sub f3 \7f12,104
++sub Bar::f4 \7ff4\ 116,138
 +package Bar;\7f20,177
- sub f6 \7fFoo::Bar::f6\ 128,244
++sub f5 \7f22,191
 +package Foo::Bar;\7f26,225
- sub f7 \7fmain::f7\ 134,293
++sub f6 \7f28,244
 +package main;\7f32,278
++sub f7 \7f34,293
 +\f
 +ps-src/rfc1245.ps,2478
 +/FMversion \7f12,311
 +/FrameDict \7f17,500
 +/FMVERSION \7f47,1307
 +/FMLOCAL \7f56,1494
 +/FMDOCUMENT \7f73,1766
 +/FMBEGINPAGE \7f95,2279
 +/FMENDPAGE \7f109,2516
 +/FMDEFINEFONT \7f115,2582
 +/FMNORMALIZEGRAPHICS \7f126,2725
 +/FMBEGINEPSF \7f142,2955
 +/FMENDEPSF \7f153,3207
 +/setmanualfeed \7f158,3283
 +/max \7f163,3386
 +/min \7f164,3426
 +/inch \7f165,3466
 +/pagedimen \7f166,3485
 +/setpapername \7f172,3629
 +/papersize \7f190,4214
 +/manualpapersize \7f211,4789
 +/desperatepapersize \7f230,5211
 +/savematrix \7f239,5370
 +/restorematrix \7f242,5425
 +/dmatrix \7f245,5475
 +/dpi \7f246,5495
 +/freq \7f248,5583
 +/sangle \7f249,5658
 +/DiacriticEncoding \7f250,5717
 +/.notdef \7f251,5738
 +/.notdef \7f252,5801
 +/.notdef \7f253,5864
 +/.notdef \7f254,5927
 +/.notdef \7f255,5990
 +/numbersign \7f256,6051
 +/parenright \7f257,6115
 +/two \7f258,6184
 +/less \7f259,6251
 +/L \7f260,6320
 +/bracketright \7f261,6389
 +/i \7f262,6459
 +/braceright \7f263,6529
 +/Ntilde \7f264,6598
 +/atilde \7f265,6668
 +/iacute \7f266,6733
 +/ocircumflex \7f267,6797
 +/udieresis \7f268,6858
 +/paragraph \7f269,6919
 +/dieresis \7f270,6983
 +/yen \7f271,7050
 +/ordfeminine \7f272,7109
 +/exclamdown \7f273,7171
 +/guillemotleft \7f274,7230
 +/Otilde \7f275,7296
 +/quoteleft \7f276,7357
 +/fraction \7f277,7420
 +/periodcentered \7f278,7490
 +/Acircumflex \7f279,7549
 +/Icircumflex \7f280,7610
 +/Uacute \7f281,7680
 +/breve \7f282,7746
 +/ReEncode \7f284,7814
 +/graymode \7f300,8020
 +/setpattern \7f310,8184
 +/grayness \7f331,8725
 +/normalize \7f394,9873
 +/dnormalize \7f397,9942
 +/lnormalize \7f400,10014
 +/H \7f403,10104
 +/Z \7f406,10147
 +/X \7f409,10176
 +/V \7f412,10219
 +/N \7f415,10260
 +/M \7f418,10286
 +/E \7f419,10315
 +/D \7f420,10336
 +/O \7f421,10358
 +/L \7f423,10394
 +/Y \7f430,10489
 +/R \7f439,10588
 +/RR \7f450,10696
 +/C \7f467,10959
 +/U \7f473,11004
 +/F \7f477,11039
 +/T \7f481,11084
 +/RF \7f484,11115
 +/TF \7f488,11164
 +/P \7f495,11219
 +/PF \7f499,11270
 +/S \7f506,11344
 +/SF \7f510,11384
 +/B \7f517,11446
 +/BF \7f521,11505
 +/W \7f538,11714
 +/G \7f573,12382
 +/A \7f582,12525
 +/BEGINPRINTCODE \7f606,12918
 +/ENDPRINTCODE \7f615,13131
 +/gn \7f620,13259
 +/cfs \7f631,13384
 +/ic \7f636,13473
 +/ms \7f658,14285
 +/ip \7f668,14395
 +/wh \7f678,14492
 +/bl \7f684,14607
 +/s1 \7f690,14722
 +/fl \7f691,14739
 +/hx \7f698,14887
 +/wbytes \7f709,15055
 +/BEGINBITMAPBWc \7f713,15147
 +/BEGINBITMAPGRAYc \7f716,15198
 +/BEGINBITMAP2BITc \7f719,15251
 +/COMMONBITMAPc \7f722,15304
 +/BEGINBITMAPBW \7f739,15660
 +/BEGINBITMAPGRAY \7f742,15709
 +/BEGINBITMAP2BIT \7f745,15760
 +/COMMONBITMAP \7f748,15811
 +/Fmcc \7f765,16156
 +/ngrayt \7f773,16371
 +/nredt \7f774,16393
 +/nbluet \7f775,16414
 +/ngreent \7f776,16436
 +/colorsetup \7f787,16603
 +/fakecolorsetup \7f814,17370
 +/BITMAPCOLOR \7f826,17636
 +/BITMAPCOLORc \7f839,17926
 +/BITMAPGRAY \7f855,18275
 +/BITMAPGRAYc \7f858,18335
 +/ENDBITMAP \7f861,18397
 +/fillprocs \7f868,18497
 +\f
 +prol-src/ordsets.prolog,525
 +is_ordset(\7f47,1310
 +list_to_ord_set(\7f63,1688
 +ord_add_element(\7f71,1867
 +ord_del_element(\7f85,2344
 +ord_disjoint(\7f100,2783
 +ord_intersect(\7f108,2953
 +ord_intersection(\7f126,3552
 +ord_intersection3(\7f130,3691
 +ord_intersection(\7f150,4531
 +ord_intersection4(\7f154,4703
 +ord_intersection(\7f176,5664
 +ord_intersection2(\7f181,5812
 +ord_member(\7f200,6318
 +ord_seteq(\7f216,6683
 +ord_setproduct(\7f225,6971
 +ord_subset(\7f240,7377
 +ord_subtract(\7f257,7861
 +ord_symdiff(\7f265,8054
 +ord_union(\7f288,8887
 +ord_union4(\7f303,9352
 +ord_union(\7f324,10171
 +ord_union_all(\7f329,10313
 +\f
 +prol-src/natded.prolog,2319
 +expandmng(\7f100,2879
 +normalize(\7f116,3359
 +fresh_vars(\7f125,3716
 +subst(\7f138,4134
 +normalize_fresh(\7f159,4660
 +reduce_subterm(\7f171,5112
 +reduce(\7f185,5559
 +free_var(\7f196,5903
 +free_for(\7f209,6246
 +compile_lex(\7f231,6875
 +consult_lex:-\7fconsult_lex\ 1248,7384
 +lex(\7f259,7754
 +expandsyn(\7f267,8068
 +bas_syn(\7f292,8897
 +compile_empty:-\7fcompile_empty\ 1310,9376
 +complete(\7f328,10055
 +add_active(\7f340,10527
 +parse(\7f353,10949
 +derived_analyses(\7f364,11341
 +build(\7f378,11965
 +buildact(\7f392,12521
 +mapsyn(\7f412,13542
 +add_edge(\7f434,14278
 +findcats(\7f447,14758
 +normalize_tree(\7f465,15478
 +normalize_trees(\7f475,15856
 +expandmng_tree(\7f486,16248
 +expandmng_trees(\7f496,16614
 +cat(\7f511,17013
 +subtree(\7f644,21266
 +hypothetical_mem(\7f653,21565
 +make_coor(\7f667,22130
 +start_up:-\7fstart_up\ 1688,23013
 +tokenizeatom(\7f710,23921
 +tokenize(\7f720,24348
 +isoperator(\7f752,25377
 +isoptab(\7f756,25431
 +specialsymbol(\7f765,25756
 +sstab(\7f771,25861
 +parse_cgi(\7f787,26347
 +keyvalseq(\7f792,26510
 +andkeyvalseq(\7f796,26609
 +keyval(\7f799,26688
 +valseq(\7f807,26920
 +plusvalseq(\7f810,27007
 +val(\7f816,27109
 +argvals(\7f824,27426
 +commaargvals(\7f828,27503
 +atomval(\7f833,27578
 +atom(\7f836,27640
 +action(\7f846,28004
 +keyvalcgi(\7f864,28649
 +keyvalscgi(\7f865,28670
 +outsyn(\7f868,28726
 +act(\7f876,29060
 +actout(\7f901,29906
 +texttreelist(\7f912,30089
 +htmltreelist(\7f918,30190
 +fitchtreelist(\7f924,30304
 +pp_html_table_tree(\7f938,30759
 +pp_html_tree(\7f949,31113
 +pp_html_trees(\7f988,32381
 +pp_html_table_fitch_tree(\7f999,32769
 +pp_html_fitch_tree(\7f1017,33672
 +removeexp(\7f1129,39002
 +splitexp(\7f1142,39490
 +pp_exp(\7f1155,39990
 +map_word(\7f1168,40249
 +pp_exps(\7f1180,40474
 +pp_tree(\7f1188,40777
 +pp_trees(\7f1216,41807
 +pp_word_list(\7f1225,42128
 +pp_word(\7f1231,42262
 +pp_word_list_rest(\7f1238,42569
 +pp_cat(\7f1248,42929
 +pp_syn(\7f1255,43196
 +pp_syn_paren(\7f1276,43899
 +pp_paren(\7f1293,44377
 +pp_syn_back(\7f1300,44661
 +pp_bas_cat(\7f1311,45001
 +writecat(\7f1322,45409
 +writesubs(\7f1351,46455
 +writesups(\7f1361,46757
 +writelistsubs(\7f1371,47090
 +pp_lam(\7f1380,47408
 +pp_lam_bracket(\7f1398,48022
 +pp_lam_paren(\7f1407,48338
 +pp_rule(\7f1429,49238
 +member(\7f1447,49866
 +append_list(\7f1451,49919
 +append(\7f1456,50010
 +at_least_one_member(\7f1460,50076
 +numbervars(\7f1464,50171
 +reverse(\7f1467,50209
 +select(\7f1471,50290
 +select_last(\7f1475,50357
 +cat_atoms(\7f1479,50436
 +writelist(\7f1485,50524
 +write_lex_cat(\7f1492,50676
 +writebreaklex(\7f1500,50988
 +write_lex(\7f1513,51265
 +writebreak(\7f1521,51541
 +tt:-\7ftt\ 11531,51713
 +mt:-\7fmt\ 11534,51784
 +cmt:-\7fcmt\ 11537,51878
 +\f
 +pyt-src/server.py,1438
 +class Controls:\7fControls\ 117,358
 +    def __init__(\7f18,374
 +    def __repr__(\7f24,590
 +    def __str__(\7f34,871
 +class Server:\7fServer\ 137,934
 +    def __init__(\7f38,948
 +    def dump(\7f73,2198
 +    def __repr__(\7f125,3896
 +    def __str__(\7f128,3945
 +class User:\7fUser\ 1131,4014
 +    def __init__(\7f132,4026
 +    def __repr__(\7f172,5445
 +    def __str__(\7f206,6883
 +def flag2str(\7f223,7212
 +class LabeledEntry(\7f232,7442
 +    def bind(\7f234,7525
 +    def focus_set(\7f236,7584
 +    def __init__(\7f238,7629
 +def ButtonBar(\7f245,7909
 +def helpwin(\7f255,8280
 +class ListEdit(\7f267,8707
 +    def __init__(\7f269,8808
 +    def handleList(\7f303,10042
 +    def handleNew(\7f306,10094
 +    def editItem(\7f314,10426
 +    def deleteItem(\7f320,10596
 +def ConfirmQuit(\7f326,10760
 +class ControlEdit(\7f375,12377
 +    def PostControls(\7f376,12403
 +    def GatherControls(\7f421,13530
 +class ServerEdit(\7f512,16264
 +    def __init__(\7f513,16289
 +    def post(\7f525,16629
 +    def gather(\7f543,17191
 +    def nosave(\7f547,17304
 +    def save(\7f551,17408
 +    def refreshPort(\7f556,17509
 +    def createWidgets(\7f561,17663
 +    def edituser(\7f631,20708
 +class UserEdit(\7f645,20921
 +    def __init__(\7f646,20944
 +    def post(\7f658,21283
 +    def gather(\7f676,21841
 +    def nosave(\7f680,21950
 +    def save(\7f684,22052
 +    def createWidgets(\7f689,22151
 +class Configure(\7f760,24879
 +    def __init__(\7f761,24916
 +    def MakeDispose(\7f772,25211
 +    def MakeSitelist(\7f786,25706
 +    def editsite(\7f794,25949
 +    def save(\7f797,26022
 +    def nosave(\7f807,26310
 +\f
 +ruby-src/test.rb,637
 +module ModuleExample\7f1,0
 +    class ClassExample\7f2,21
 +        def instance_method\7f3,44
 +        def ClassExample.class_method\7fclass_method\ 16,121
 +        def instance_method_exclamation!\7f9,206
 +        def instance_method_question?\7f12,310
 +        def instance_method_equals=\7finstance_method_equals=\ 115,408
 +        def `(\7f18,502
 +        def +(\7f21,592
 +        def [](\7f24,640
 +        def []=(\7f[]=\ 127,690
 +        def <<(\7f30,752
 +        def ==(\7f==\ 133,802
 +        def <=(\7f<=\ 136,872
 +        def <=>(\7f<=>\ 139,943
 +        def ===(\7f===\ 142,990
 +    def module_instance_method\7f46,1051
 +    def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 +\f
 +ruby-src/test1.ru,935
 +class A\7f1,0
 + def a(\7f2,8
 + def b(\7f5,38
 +module A\7f9,57
 +  class B\7f10,66
 +    ABC \7f11,76
 +    Def_ \7f12,88
 +    Xyzzy \7f13,106
 +    def foo!\7f15,121
 +    def self._bar?(\7f_bar?\ 118,143
 +      def qux=(\7fqux=\ 122,194
 +    attr_reader :foo\7ffoo\ 126,233
 +    attr_reader :read1 \7fread1\ 127,254
 +    attr_reader :read1 , :read2;\7fread2\ 127,254
 +    attr_reader :read1 , :read2; attr_writer :write1,\7fwrite1=\ 127,254
 +    attr_reader :read1 , :read2; attr_writer :write1, :write2\7fwrite2=\ 127,254
 +    attr_writer :bar,\7fbar=\ 128,316
 +                :baz,\7fbaz=\ 129,338
 +                :more\7fmore=\ 130,360
 +    attr_accessor :tee\7ftee\ 131,382
 +    attr_accessor :tee\7ftee=\ 131,382
 +    alias_method :qux,\7fqux\ 132,405
 +    alias_method :xyz,\7fxyz\ 133,456
 +                 :tee ; attr_reader :subtle\7fsubtle\ 134,479
 +    attr_reader(:foo1,\7ffoo1\ 135,523
 +    attr_reader(:foo1, :bar1,\7fbar1\ 135,523
 +                :qux1)\7fqux1\ 136,563
 +    alias_method ( :foo2,\7ffoo2\ 137,586
 +A::Constant \7fConstant\ 142,655
 +\f
 +tex-src/testenv.tex,52
 +\newcommand{\nm}\7f\nm\ 14,77
 +\section{blah}\7fblah\ 18,139
 +\f
 +tex-src/gzip.texi,303
 +@node Top,\7f62,2139
 +@node Copying,\7f80,2652
 +@node Overview,\7f83,2705
 +@node Sample,\7f166,7272
 +@node Invoking gzip,\7fInvoking gzip\ 1210,8828
 +@node Advanced usage,\7fAdvanced usage\ 1357,13495
 +@node Environment,\7f420,15207
 +@node Tapes,\7f437,15768
 +@node Problems,\7f460,16767
 +@node Concept Index,\7fConcept Index\ 1473,17287
 +\f
 +tex-src/texinfo.tex,30627
 +\def\texinfoversion{\7f\texinfoversion\ 126,1027
 +\def\tie{\7f\tie\ 149,1518
 +\def\gloggingall{\7f\gloggingall\ 172,2268
 +\def\loggingall{\7f\loggingall\ 173,2337
 +\def\onepageout#1{\7f\onepageout\ 199,3274
 +\def\croppageout#1{\7f\croppageout\ 1115,4024
 +\def\cropmarks{\7f\cropmarks\ 1142,5084
 +\def\pagebody#1{\7f\pagebody\ 1144,5131
 +\def\ewtop{\7f\ewtop\ 1157,5586
 +\def\nstop{\7f\nstop\ 1158,5650
 +\def\ewbot{\7f\ewbot\ 1160,5733
 +\def\nsbot{\7f\nsbot\ 1161,5797
 +\def\parsearg #1{\7f\parsearg\ 1170,6096
 +\def\parseargx{\7f\parseargx\ 1172,6174
 +\def\parseargline{\7f\parseargline\ 1182,6414
 +\def\flushcr{\7f\flushcr\ 1186,6535
 +\newif\ifENV \ENVfalse \def\inENV{\7f\inENV\ 1190,6734
 +\def\ENVcheck{\7f\ENVcheck\ 1191,6798
 +\outer\def\begin{\7f\begin\ 1198,7045
 +\def\beginxxx #1{\7f\beginxxx\ 1200,7083
 +\def\end{\7f\end\ 1208,7338
 +\def\endxxx #1{\7f\endxxx\ 1210,7366
 +\def\errorE#1{\7f\errorE\ 1216,7555
 +\def\singlespace{\7f\singlespace\ 1222,7749
 +\def\@{\7f\@\ 1232,7972
 +\def\`{\7f\`\ 1236,8072
 +\def\'{\7f\'\ 1237,8084
 +\def\mylbrace {\7f\mylbrace\ 1241,8132
 +\def\myrbrace {\7f\myrbrace\ 1242,8165
 +\def\:{\7f\:\ 1247,8279
 +\def\*{\7f\*\ 1250,8333
 +\def\.{\7f\.\ 1253,8409
 +\def\w#1{\7f\w\ 1258,8640
 +\def\group{\7f\group\ 1268,9123
 +  \def\Egroup{\7f\Egroup\ 1273,9287
 +\def\need{\7f\need\ 1289,9729
 +\def\needx#1{\7f\needx\ 1300,10006
 +\def\dots{\7f\dots\ 1339,11392
 +\def\page{\7f\page\ 1343,11456
 +\def\exdent{\7f\exdent\ 1353,11783
 +\def\exdentyyy #1{\7f\exdentyyy\ 1354,11816
 +\def\nofillexdent{\7f\nofillexdent\ 1357,11960
 +\def\nofillexdentyyy #1{\7f\nofillexdentyyy\ 1358,12005
 +\def\include{\7f\include\ 1365,12189
 +\def\includezzz #1{\7f\includezzz\ 1366,12224
 +\def\thisfile{\7f\thisfile\ 1369,12275
 +\def\center{\7f\center\ 1373,12338
 +\def\centerzzz #1{\7f\centerzzz\ 1374,12371
 +\def\sp{\7f\sp\ 1380,12513
 +\def\spxxx #1{\7f\spxxx\ 1381,12538
 +\def\comment{\7f\comment\ 1387,12712
 +\def\commentxxx #1{\7f\commentxxx\ 1390,12809
 +\def\ignoresections{\7f\ignoresections\ 1396,12978
 +\let\chapter=\relax\7f=\relax\ 1397,13000
 +\let\section=\relax\7f=\relax\ 1406,13245
 +\let\subsection=\relax\7f=\relax\ 1409,13306
 +\let\subsubsection=\relax\7f=\relax\ 1410,13329
 +\let\appendix=\relax\7f=\relax\ 1411,13355
 +\let\appendixsec=\relax\7fsec=\relax\ 1412,13376
 +\let\appendixsection=\relax\7fsection=\relax\ 1413,13400
 +\let\appendixsubsec=\relax\7fsubsec=\relax\ 1414,13428
 +\let\appendixsubsection=\relax\7fsubsection=\relax\ 1415,13455
 +\let\appendixsubsubsec=\relax\7fsubsubsec=\relax\ 1416,13486
 +\let\appendixsubsubsection=\relax\7fsubsubsection=\relax\ 1417,13516
 +\def\ignore{\7f\ignore\ 1423,13618
 +\long\def\ignorexxx #1\end ignore{\7f\ignorexxx\ 1427,13758
 +\def\direntry{\7f\direntry\ 1429,13817
 +\long\def\direntryxxx #1\end direntry{\7f\direntryxxx\ 1430,13856
 +\def\ifset{\7f\ifset\ 1434,13966
 +\def\ifsetxxx #1{\7f\ifsetxxx\ 1436,14024
 +\def\Eifset{\7f\Eifset\ 1440,14151
 +\def\ifsetfail{\7f\ifsetfail\ 1441,14165
 +\long\def\ifsetfailxxx #1\end ifset{\7f\ifsetfailxxx\ 1442,14221
 +\def\ifclear{\7f\ifclear\ 1444,14282
 +\def\ifclearxxx #1{\7f\ifclearxxx\ 1446,14344
 +\def\Eifclear{\7f\Eifclear\ 1450,14475
 +\def\ifclearfail{\7f\ifclearfail\ 1451,14491
 +\long\def\ifclearfailxxx #1\end ifclear{\7f\ifclearfailxxx\ 1452,14551
 +\def\set{\7f\set\ 1456,14702
 +\def\setxxx #1{\7f\setxxx\ 1457,14729
 +\def\clear{\7f\clear\ 1460,14791
 +\def\clearxxx #1{\7f\clearxxx\ 1461,14822
 +\def\iftex{\7f\iftex\ 1466,14939
 +\def\Eiftex{\7f\Eiftex\ 1467,14952
 +\def\ifinfo{\7f\ifinfo\ 1468,14966
 +\long\def\ifinfoxxx #1\end ifinfo{\7f\ifinfoxxx\ 1469,15016
 +\long\def\menu #1\end menu{\7f\menu\ 1471,15075
 +\def\asis#1{\7f\asis\ 1472,15104
 +\def\math#1{\7f\math\ 1485,15647
 +\def\node{\7f\node\ 1487,15691
 +\def\nodezzz#1{\7f\nodezzz\ 1488,15729
 +\def\nodexxx[#1,#2]{\7f\nodexxx[\ 1489,15760
 +\def\donoderef{\7f\donoderef\ 1492,15822
 +\def\unnumbnoderef{\7f\unnumbnoderef\ 1496,15943
 +\def\appendixnoderef{\7f\appendixnoderef\ 1500,16074
 +\expandafter\expandafter\expandafter\appendixsetref{\7fsetref\ 1501,16120
 +\let\refill=\relax\7fill=\relax\ 1504,16209
 +\def\setfilename{\7f\setfilename\ 1509,16423
 +\outer\def\bye{\7f\bye\ 1518,16669
 +\def\inforef #1{\7f\inforef\ 1520,16725
 +\def\inforefzzz #1,#2,#3,#4**{\7f\inforefzzz\ 1521,16763
 +\def\losespace #1{\7f\losespace\ 1523,16860
 +\def\sf{\7f\sf\ 1532,17064
 +\font\defbf=cmbx10 scaled \magstep1 %was 1314\7fbf=cmbx10\ 1558,17859
 +\font\deftt=cmtt10 scaled \magstep1\7ftt=cmtt10\ 1559,17905
 +\def\df{\7f\df\ 1560,17941
 +\def\resetmathfonts{\7f\resetmathfonts\ 1635,20535
 +\def\textfonts{\7f\textfonts\ 1648,21124
 +\def\chapfonts{\7f\chapfonts\ 1653,21339
 +\def\secfonts{\7f\secfonts\ 1658,21555
 +\def\subsecfonts{\7f\subsecfonts\ 1663,21760
 +\def\indexfonts{\7f\indexfonts\ 1668,21977
 +\def\smartitalicx{\7f\smartitalicx\ 1691,22709
 +\def\smartitalic#1{\7f\smartitalic\ 1692,22785
 +\let\cite=\smartitalic\7f=\smartitalic\ 1698,22930
 +\def\b#1{\7f\b\ 1700,22954
 +\def\t#1{\7f\t\ 1703,22989
 +\def\samp #1{\7f\samp\ 1706,23141
 +\def\key #1{\7f\key\ 1707,23174
 +\def\ctrl #1{\7f\ctrl\ 1708,23235
 +\def\tclose#1{\7f\tclose\ 1716,23437
 +\def\ {\7f\\ 1720,23603
 +\def\xkey{\7f\xkey\ 1728,23872
 +\def\kbdfoo#1#2#3\par{\7f\kbdfoo\ 1729,23888
 +\def\dmn#1{\7f\dmn\ 1738,24189
 +\def\kbd#1{\7f\kbd\ 1740,24216
 +\def\l#1{\7f\l\ 1742,24273
 +\def\r#1{\7f\r\ 1744,24302
 +\def\sc#1{\7f\sc\ 1746,24370
 +\def\ii#1{\7f\ii\ 1747,24413
 +\def\titlefont#1{\7f\titlefont\ 1755,24646
 +\def\titlepage{\7f\titlepage\ 1761,24749
 +   \def\subtitlefont{\7f\subtitlefont\ 1766,24976
 +   \def\authorfont{\7f\authorfont\ 1768,25060
 +   \def\title{\7f\title\ 1774,25270
 +   \def\titlezzz##1{\7f\titlezzz\ 1775,25305
 +   \def\subtitle{\7f\subtitle\ 1783,25620
 +   \def\subtitlezzz##1{\7f\subtitlezzz\ 1784,25661
 +   \def\author{\7f\author\ 1787,25779
 +   \def\authorzzz##1{\7f\authorzzz\ 1788,25816
 +   \def\page{\7f\page\ 1794,26107
 +\def\Etitlepage{\7f\Etitlepage\ 1804,26276
 +\def\finishtitlepage{\7f\finishtitlepage\ 1817,26664
 +\def\evenheading{\7f\evenheading\ 1846,27672
 +\def\oddheading{\7f\oddheading\ 1847,27715
 +\def\everyheading{\7f\everyheading\ 1848,27756
 +\def\evenfooting{\7f\evenfooting\ 1850,27802
 +\def\oddfooting{\7f\oddfooting\ 1851,27845
 +\def\everyfooting{\7f\everyfooting\ 1852,27886
 +\def\headings #1 {\7f\headings\ 1893,29578
 +\def\HEADINGSoff{\7f\HEADINGSoff\ 1895,29627
 +\def\HEADINGSdouble{\7f\HEADINGSdouble\ 1904,30054
 +\def\HEADINGSsingle{\7f\HEADINGSsingle\ 1914,30374
 +\def\HEADINGSon{\7f\HEADINGSon\ 1922,30595
 +\def\HEADINGSafter{\7f\HEADINGSafter\ 1924,30629
 +\def\HEADINGSdoublex{\7f\HEADINGSdoublex\ 1926,30724
 +\def\HEADINGSsingleafter{\7f\HEADINGSsingleafter\ 1933,30912
 +\def\HEADINGSsinglex{\7f\HEADINGSsinglex\ 1934,30973
 +\def\today{\7f\today\ 1943,31248
 +\def\thistitle{\7f\thistitle\ 1958,31793
 +\def\settitle{\7f\settitle\ 1959,31818
 +\def\settitlezzz #1{\7f\settitlezzz\ 1960,31855
 +\def\internalBitem{\7f\internalBitem\ 1992,32785
 +\def\internalBitemx{\7f\internalBitemx\ 1993,32835
 +\def\internalBxitem "#1"{\7f\internalBxitem\ 1995,32880
 +\def\internalBxitemx "#1"{\7f\internalBxitemx\ 1996,32960
 +\def\internalBkitem{\7f\internalBkitem\ 1998,33035
 +\def\internalBkitemx{\7f\internalBkitemx\ 1999,33087
 +\def\kitemzzz #1{\7f\kitemzzz\ 11001,33134
 +\def\xitemzzz #1{\7f\xitemzzz\ 11004,33236
 +\def\itemzzz #1{\7f\itemzzz\ 11007,33339
 +\def\item{\7f\item\ 11037,34410
 +\def\itemx{\7f\itemx\ 11038,34461
 +\def\kitem{\7f\kitem\ 11039,34514
 +\def\kitemx{\7f\kitemx\ 11040,34567
 +\def\xitem{\7f\xitem\ 11041,34622
 +\def\xitemx{\7f\xitemx\ 11042,34675
 +\def\description{\7f\description\ 11045,34785
 +\def\table{\7f\table\ 11047,34835
 +\def\ftable{\7f\ftable\ 11052,34979
 +\def\Eftable{\7f\Eftable\ 11056,35125
 +\def\vtable{\7f\vtable\ 11059,35194
 +\def\Evtable{\7f\Evtable\ 11063,35340
 +\def\dontindex #1{\7f\dontindex\ 11066,35409
 +\def\fnitemindex #1{\7f\fnitemindex\ 11067,35429
 +\def\vritemindex #1{\7f\vritemindex\ 11068,35474
 +\def\tablez #1#2#3#4#5#6{\7f\tablez\ 11074,35623
 +\def\Edescription{\7f\Edescription\ 11077,35681
 +\def\itemfont{\7f\itemfont\ 11082,35883
 +\def\Etable{\7f\Etable\ 11090,36109
 +\def\itemize{\7f\itemize\ 11103,36433
 +\def\itemizezzz #1{\7f\itemizezzz\ 11105,36469
 +\def\itemizey #1#2{\7f\itemizey\ 11110,36564
 +\def#2{\7f1119,36810
 +\def\itemcontents{\7f\itemcontents\ 11120,36851
 +\def\bullet{\7f\bullet\ 11123,36899
 +\def\minus{\7f\minus\ 11124,36926
 +\def\frenchspacing{\7f\frenchspacing\ 11128,37034
 +\def\splitoff#1#2\endmark{\7f\splitoff\ 11134,37259
 +\def\enumerate{\7f\enumerate\ 11140,37489
 +\def\enumeratezzz #1{\7f\enumeratezzz\ 11141,37528
 +\def\enumeratey #1 #2\endenumeratey{\7f\enumeratey\ 11142,37581
 +  \def\thearg{\7f\thearg\ 11146,37728
 +  \ifx\thearg\empty \def\thearg{\7f\thearg\ 11147,37747
 +\def\numericenumerate{\7f\numericenumerate\ 11184,39081
 +\def\lowercaseenumerate{\7f\lowercaseenumerate\ 11190,39211
 +\def\uppercaseenumerate{\7f\uppercaseenumerate\ 11203,39558
 +\def\startenumeration#1{\7f\startenumeration\ 11219,40048
 +\def\alphaenumerate{\7f\alphaenumerate\ 11227,40230
 +\def\capsenumerate{\7f\capsenumerate\ 11228,40265
 +\def\Ealphaenumerate{\7f\Ealphaenumerate\ 11229,40299
 +\def\Ecapsenumerate{\7f\Ecapsenumerate\ 11230,40333
 +\def\itemizeitem{\7f\itemizeitem\ 11234,40413
 +\def\newindex #1{\7f\newindex\ 11259,41270
 +\def\defindex{\7f\defindex\ 11268,41559
 +\def\newcodeindex #1{\7f\newcodeindex\ 11272,41667
 +\def\defcodeindex{\7f\defcodeindex\ 11279,41927
 +\def\synindex #1 #2 {\7f\synindex\ 11283,42107
 +\def\syncodeindex #1 #2 {\7f\syncodeindex\ 11292,42447
 +\def\doindex#1{\7f\doindex\ 11309,43126
 +\def\singleindexer #1{\7f\singleindexer\ 11310,43185
 +\def\docodeindex#1{\7f\docodeindex\ 11313,43297
 +\def\singlecodeindexer #1{\7f\singlecodeindexer\ 11314,43364
 +\def\indexdummies{\7f\indexdummies\ 11316,43422
 +\def\_{\7f\_\ 11317,43442
 +\def\w{\7f\w\ 11318,43470
 +\def\bf{\7f\bf\ 11319,43497
 +\def\rm{\7f\rm\ 11320,43526
 +\def\sl{\7f\sl\ 11321,43555
 +\def\sf{\7f\sf\ 11322,43584
 +\def\tt{\7f\tt\ 11323,43612
 +\def\gtr{\7f\gtr\ 11324,43640
 +\def\less{\7f\less\ 11325,43670
 +\def\hat{\7f\hat\ 11326,43702
 +\def\char{\7f\char\ 11327,43732
 +\def\TeX{\7f\TeX\ 11328,43764
 +\def\dots{\7f\dots\ 11329,43794
 +\def\copyright{\7f\copyright\ 11330,43827
 +\def\tclose##1{\7f\tclose\ 11331,43870
 +\def\code##1{\7f\code\ 11332,43915
 +\def\samp##1{\7f\samp\ 11333,43956
 +\def\t##1{\7f\t\ 11334,43997
 +\def\r##1{\7f\r\ 11335,44032
 +\def\i##1{\7f\i\ 11336,44067
 +\def\b##1{\7f\b\ 11337,44102
 +\def\cite##1{\7f\cite\ 11338,44137
 +\def\key##1{\7f\key\ 11339,44178
 +\def\file##1{\7f\file\ 11340,44217
 +\def\var##1{\7f\var\ 11341,44258
 +\def\kbd##1{\7f\kbd\ 11342,44297
 +\def\indexdummyfont#1{\7f\indexdummyfont\ 11347,44453
 +\def\indexdummytex{\7f\indexdummytex\ 11348,44479
 +\def\indexdummydots{\7f\indexdummydots\ 11349,44503
 +\def\indexnofonts{\7f\indexnofonts\ 11351,44529
 +\let\w=\indexdummyfont\7fdummyfont\ 11352,44549
 +\let\t=\indexdummyfont\7fdummyfont\ 11353,44572
 +\let\r=\indexdummyfont\7fdummyfont\ 11354,44595
 +\let\i=\indexdummyfont\7fdummyfont\ 11355,44618
 +\let\b=\indexdummyfont\7fdummyfont\ 11356,44641
 +\let\emph=\indexdummyfont\7fdummyfont\ 11357,44664
 +\let\strong=\indexdummyfont\7fdummyfont\ 11358,44690
 +\let\cite=\indexdummyfont\7f=\indexdummyfont\ 11359,44718
 +\let\sc=\indexdummyfont\7fdummyfont\ 11360,44744
 +\let\tclose=\indexdummyfont\7fdummyfont\ 11364,44916
 +\let\code=\indexdummyfont\7fdummyfont\ 11365,44944
 +\let\file=\indexdummyfont\7fdummyfont\ 11366,44970
 +\let\samp=\indexdummyfont\7fdummyfont\ 11367,44996
 +\let\kbd=\indexdummyfont\7fdummyfont\ 11368,45022
 +\let\key=\indexdummyfont\7fdummyfont\ 11369,45047
 +\let\var=\indexdummyfont\7fdummyfont\ 11370,45072
 +\let\TeX=\indexdummytex\7fdummytex\ 11371,45097
 +\let\dots=\indexdummydots\7fdummydots\ 11372,45121
 +\let\indexbackslash=0  %overridden during \printindex.\7fbackslash=0\ 11382,45373
 +\def\doind #1#2{\7f\doind\ 11384,45429
 +{\indexdummies % Must do this here, since \bf, etc expand at this stage\7fdummies\ 11386,45472
 +\def\rawbackslashxx{\7f\rawbackslashxx\ 11389,45612
 +{\indexnofonts\7fnofonts\ 11394,45874
 +\def\dosubind #1#2#3{\7f\dosubind\ 11405,46185
 +{\indexdummies % Must do this here, since \bf, etc expand at this stage\7fdummies\ 11407,46233
 +\def\rawbackslashxx{\7f\rawbackslashxx\ 11410,46337
 +{\indexnofonts\7fnofonts\ 11414,46491
 +\def\findex {\7f\findex\ 11443,47422
 +\def\kindex {\7f\kindex\ 11444,47445
 +\def\cindex {\7f\cindex\ 11445,47468
 +\def\vindex {\7f\vindex\ 11446,47491
 +\def\tindex {\7f\tindex\ 11447,47514
 +\def\pindex {\7f\pindex\ 11448,47537
 +\def\cindexsub {\7f\cindexsub\ 11450,47561
 +\def\printindex{\7f\printindex\ 11462,47888
 +\def\doprintindex#1{\7f\doprintindex\ 11464,47929
 +  \def\indexbackslash{\7f\indexbackslash\ 11481,48414
 +  \indexfonts\rm \tolerance=9500 \advance\baselineskip -1pt\7ffonts\rm\ 11482,48453
 +\def\initial #1{\7f\initial\ 11517,49525
 +\def\entry #1#2{\7f\entry\ 11523,49732
 +  \null\nobreak\indexdotfill % Have leaders before the page number.\7fdotfill\ 11540,50379
 +\def\indexdotfill{\7f\indexdotfill\ 11549,50707
 +\def\primary #1{\7f\primary\ 11552,50813
 +\def\secondary #1#2{\7f\secondary\ 11556,50895
 +\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par\7fdotfill\ 11559,50977
 +\newbox\partialpage\7fialpage\ 11566,51150
 +\def\begindoublecolumns{\7f\begindoublecolumns\ 11572,51308
 +  \output={\global\setbox\partialpage=\7fialpage=\ 11573,51344
 +\def\enddoublecolumns{\7f\enddoublecolumns\ 11577,51532
 +\def\doublecolumnout{\7f\doublecolumnout\ 11580,51617
 +  \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage\7fialpage\ 11581,51686
 +\def\pagesofar{\7f\pagesofar\ 11584,51864
 +\def\balancecolumns{\7f\balancecolumns\ 11588,52101
 +  \availdimen@=\pageheight \advance\availdimen@ by-\ht\partialpage\7fialpage\ 11594,52272
 +     \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage\7fialpage\ 11600,52533
 +\newcount \appendixno  \appendixno = `\@\7fno\ 11627,53438
 +\def\appendixletter{\7f\appendixletter\ 11628,53479
 +\def\opencontents{\7f\opencontents\ 11632,53582
 +\def\thischapter{\7f\thischapter\ 11637,53763
 +\def\seccheck#1{\7f\seccheck\ 11638,53801
 +\def\chapternofonts{\7f\chapternofonts\ 11643,53905
 +\def\result{\7f\result\ 11646,53980
 +\def\equiv{\7f\equiv\ 11647,54015
 +\def\expansion{\7f\expansion\ 11648,54048
 +\def\print{\7f\print\ 11649,54089
 +\def\TeX{\7f\TeX\ 11650,54122
 +\def\dots{\7f\dots\ 11651,54151
 +\def\copyright{\7f\copyright\ 11652,54182
 +\def\tt{\7f\tt\ 11653,54223
 +\def\bf{\7f\bf\ 11654,54250
 +\def\w{\7f\w\ 11655,54278
 +\def\less{\7f\less\ 11656,54303
 +\def\gtr{\7f\gtr\ 11657,54334
 +\def\hat{\7f\hat\ 11658,54363
 +\def\char{\7f\char\ 11659,54392
 +\def\tclose##1{\7f\tclose\ 11660,54423
 +\def\code##1{\7f\code\ 11661,54467
 +\def\samp##1{\7f\samp\ 11662,54507
 +\def\r##1{\7f\r\ 11663,54547
 +\def\b##1{\7f\b\ 11664,54581
 +\def\key##1{\7f\key\ 11665,54615
 +\def\file##1{\7f\file\ 11666,54653
 +\def\kbd##1{\7f\kbd\ 11667,54693
 +\def\i##1{\7f\i\ 11669,54801
 +\def\cite##1{\7f\cite\ 11670,54835
 +\def\var##1{\7f\var\ 11671,54875
 +\def\emph##1{\7f\emph\ 11672,54913
 +\def\dfn##1{\7f\dfn\ 11673,54953
 +\def\thischaptername{\7f\thischaptername\ 11676,54994
 +\outer\def\chapter{\7f\chapter\ 11677,55033
 +\def\chapterzzz #1{\7f\chapterzzz\ 11678,55074
 +{\chapternofonts%\7fnofonts%\ 11687,55470
 +\global\let\section = \numberedsec\7f=\ 11692,55623
 +\global\let\subsection = \numberedsubsec\7f=\ 11693,55658
 +\global\let\subsubsection = \numberedsubsubsec\7f=\ 11694,55699
 +\outer\def\appendix{\7f\appendix\ 11697,55750
 +\def\appendixzzz #1{\7f\appendixzzz\ 11698,55793
 +\global\advance \appendixno by 1 \message{\7fno\ 11700,55870
 +\chapmacro {#1}{Appendix \appendixletter}\7fletter\ 11701,55939
 +\xdef\thischapter{Appendix \appendixletter: \noexpand\thischaptername}\7fletter:\ 11704,56032
 +{\chapternofonts%\7fnofonts%\ 11705,56104
 +  {#1}{Appendix \appendixletter}\7fletter\ 11707,56160
 +\appendixnoderef %\7fnoderef\ 11710,56260
 +\global\let\section = \appendixsec\7f=\ 11711,56279
 +\global\let\subsection = \appendixsubsec\7f=\ 11712,56314
 +\global\let\subsubsection = \appendixsubsubsec\7f=\ 11713,56355
 +\outer\def\top{\7f\top\ 11716,56406
 +\outer\def\unnumbered{\7f\unnumbered\ 11717,56446
 +\def\unnumberedzzz #1{\7f\unnumberedzzz\ 11718,56493
 +{\chapternofonts%\7fnofonts%\ 11722,56656
 +\global\let\section = \unnumberedsec\7f=\ 11727,56806
 +\global\let\subsection = \unnumberedsubsec\7f=\ 11728,56843
 +\global\let\subsubsection = \unnumberedsubsubsec\7f=\ 11729,56886
 +\outer\def\numberedsec{\7f\numberedsec\ 11732,56939
 +\def\seczzz #1{\7f\seczzz\ 11733,56980
 +{\chapternofonts%\7fnofonts%\ 11736,57136
 +\outer\def\appendixsection{\7f\appendixsection\ 11745,57322
 +\outer\def\appendixsec{\7f\appendixsec\ 11746,57379
 +\def\appendixsectionzzz #1{\7f\appendixsectionzzz\ 11747,57432
 +\gdef\thissection{#1}\secheading {#1}{\appendixletter}\7fletter\ 11749,57544
 +{\chapternofonts%\7fnofonts%\ 11750,57612
 +{#1}{\appendixletter}\7fletter\ 11752,57668
 +\appendixnoderef %\7fnoderef\ 11755,57768
 +\outer\def\unnumberedsec{\7f\unnumberedsec\ 11759,57808
 +\def\unnumberedseczzz #1{\7f\unnumberedseczzz\ 11760,57861
 +{\chapternofonts%\7fnofonts%\ 11762,57956
 +\outer\def\numberedsubsec{\7f\numberedsubsec\ 11770,58124
 +\def\numberedsubseczzz #1{\7f\numberedsubseczzz\ 11771,58179
 +{\chapternofonts%\7fnofonts%\ 11774,58358
 +\outer\def\appendixsubsec{\7f\appendixsubsec\ 11783,58562
 +\def\appendixsubseczzz #1{\7f\appendixsubseczzz\ 11784,58617
 +\subsecheading {#1}{\appendixletter}\7fletter\ 11786,58739
 +{\chapternofonts%\7fnofonts%\ 11787,58804
 +{#1}{\appendixletter}\7fletter\ 11789,58863
 +\appendixnoderef %\7fnoderef\ 11792,58978
 +\outer\def\unnumberedsubsec{\7f\unnumberedsubsec\ 11796,59018
 +\def\unnumberedsubseczzz #1{\7f\unnumberedsubseczzz\ 11797,59077
 +{\chapternofonts%\7fnofonts%\ 11799,59178
 +\outer\def\numberedsubsubsec{\7f\numberedsubsubsec\ 11807,59349
 +\def\numberedsubsubseczzz #1{\7f\numberedsubsubseczzz\ 11808,59410
 +{\chapternofonts%\7fnofonts%\ 11812,59607
 +\outer\def\appendixsubsubsec{\7f\appendixsubsubsec\ 11823,59840
 +\def\appendixsubsubseczzz #1{\7f\appendixsubsubseczzz\ 11824,59901
 +  {\appendixletter}\7fletter\ 11827,60040
 +{\chapternofonts%\7fnofonts%\ 11828,60106
 +  {\appendixletter}\7fletter\ 11830,60171
 +\appendixnoderef %\7fnoderef\ 11834,60305
 +\outer\def\unnumberedsubsubsec{\7f\unnumberedsubsubsec\ 11838,60345
 +\def\unnumberedsubsubseczzz #1{\7f\unnumberedsubsubseczzz\ 11839,60410
 +{\chapternofonts%\7fnofonts%\ 11841,60517
 +\def\infotop{\7f\infotop\ 11851,60846
 +\def\infounnumbered{\7f\infounnumbered\ 11852,60884
 +\def\infounnumberedsec{\7f\infounnumberedsec\ 11853,60929
 +\def\infounnumberedsubsec{\7f\infounnumberedsubsec\ 11854,60980
 +\def\infounnumberedsubsubsec{\7f\infounnumberedsubsubsec\ 11855,61037
 +\def\infoappendix{\7f\infoappendix\ 11857,61101
 +\def\infoappendixsec{\7f\infoappendixsec\ 11858,61142
 +\def\infoappendixsubsec{\7f\infoappendixsubsec\ 11859,61189
 +\def\infoappendixsubsubsec{\7f\infoappendixsubsubsec\ 11860,61242
 +\def\infochapter{\7f\infochapter\ 11862,61302
 +\def\infosection{\7f\infosection\ 11863,61341
 +\def\infosubsection{\7f\infosubsection\ 11864,61380
 +\def\infosubsubsection{\7f\infosubsubsection\ 11865,61425
 +\global\let\section = \numberedsec\7f=\ 11870,61662
 +\global\let\subsection = \numberedsubsec\7f=\ 11871,61697
 +\global\let\subsubsection = \numberedsubsubsec\7f=\ 11872,61738
 +\def\majorheading{\7f\majorheading\ 11886,62245
 +\def\majorheadingzzz #1{\7f\majorheadingzzz\ 11887,62290
 +\def\chapheading{\7f\chapheading\ 11893,62523
 +\def\chapheadingzzz #1{\7f\chapheadingzzz\ 11894,62566
 +\def\heading{\7f\heading\ 11899,62761
 +\def\subheading{\7f\subheading\ 11901,62798
 +\def\subsubheading{\7f\subsubheading\ 11903,62841
 +\def\dobreak#1#2{\7f\dobreak\ 11910,63118
 +\def\setchapterstyle #1 {\7f\setchapterstyle\ 11912,63196
 +\def\chapbreak{\7f\chapbreak\ 11919,63451
 +\def\chappager{\7f\chappager\ 11920,63501
 +\def\chapoddpage{\7f\chapoddpage\ 11921,63539
 +\def\setchapternewpage #1 {\7f\setchapternewpage\ 11923,63618
 +\def\CHAPPAGoff{\7f\CHAPPAGoff\ 11925,63675
 +\def\CHAPPAGon{\7f\CHAPPAGon\ 11929,63769
 +\global\def\HEADINGSon{\7f\HEADINGSon\ 11932,63860
 +\def\CHAPPAGodd{\7f\CHAPPAGodd\ 11934,63902
 +\global\def\HEADINGSon{\7f\HEADINGSon\ 11937,63998
 +\def\CHAPFplain{\7f\CHAPFplain\ 11941,64052
 +\def\chfplain #1#2{\7f\chfplain\ 11945,64144
 +\def\unnchfplain #1{\7f\unnchfplain\ 11956,64367
 +\def\unnchfopen #1{\7f\unnchfopen\ 11964,64596
 +\def\chfopen #1#2{\7f\chfopen\ 11970,64804
 +\def\CHAPFopen{\7f\CHAPFopen\ 11975,64948
 +\def\subsecheadingbreak{\7f\subsecheadingbreak\ 11982,65166
 +\def\secheadingbreak{\7f\secheadingbreak\ 11985,65295
 +\def\secheading #1#2#3{\7f\secheading\ 11993,65577
 +\def\plainsecheading #1{\7f\plainsecheading\ 11994,65633
 +\def\secheadingi #1{\7f\secheadingi\ 11995,65676
 +\def\subsecheading #1#2#3#4{\7f\subsecheading\ 12006,66044
 +\def\subsecheadingi #1{\7f\subsecheadingi\ 12007,66111
 +\def\subsubsecfonts{\7f\subsubsecfonts\ 12014,66408
 +\def\subsubsecheading #1#2#3#4#5{\7f\subsubsecheading\ 12017,66531
 +\def\subsubsecheadingi #1{\7f\subsubsecheadingi\ 12018,66609
 +\def\startcontents#1{\7f\startcontents\ 12032,67081
 +   \unnumbchapmacro{#1}\def\thischapter{\7f\thischapter\ 12040,67354
 +\outer\def\contents{\7f\contents\ 12049,67713
 +\outer\def\summarycontents{\7f\summarycontents\ 12057,67857
 +      \def\secentry ##1##2##3##4{\7f\secentry\ 12067,68228
 +      \def\unnumbsecentry ##1##2{\7f\unnumbsecentry\ 12068,68263
 +      \def\subsecentry ##1##2##3##4##5{\7f\subsecentry\ 12069,68298
 +      \def\unnumbsubsecentry ##1##2{\7f\unnumbsubsecentry\ 12070,68339
 +      \def\subsubsecentry ##1##2##3##4##5##6{\7f\subsubsecentry\ 12071,68377
 +      \def\unnumbsubsubsecentry ##1##2{\7f\unnumbsubsubsecentry\ 12072,68424
 +\def\chapentry#1#2#3{\7f\chapentry\ 12085,68858
 +\def\shortchapentry#1#2#3{\7f\shortchapentry\ 12088,68975
 +    {#2\labelspace #1}\7fspace\ 12091,69085
 +\def\unnumbchapentry#1#2{\7f\unnumbchapentry\ 12094,69139
 +\def\shortunnumberedentry#1#2{\7f\shortunnumberedentry\ 12095,69186
 +\def\secentry#1#2#3#4{\7f\secentry\ 12102,69350
 +\def\unnumbsecentry#1#2{\7f\unnumbsecentry\ 12103,69409
 +\def\subsecentry#1#2#3#4#5{\7f\subsecentry\ 12106,69470
 +\def\unnumbsubsecentry#1#2{\7f\unnumbsubsecentry\ 12107,69540
 +\def\subsubsecentry#1#2#3#4#5#6{\7f\subsubsecentry\ 12110,69614
 +  \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}\7fspace\ 12111,69648
 +\def\unnumbsubsubsecentry#1#2{\7f\unnumbsubsubsecentry\ 12112,69699
 +\def\dochapentry#1#2{\7f\dochapentry\ 12123,70073
 +\def\dosecentry#1#2{\7f\dosecentry\ 12138,70678
 +\def\dosubsecentry#1#2{\7f\dosubsecentry\ 12145,70856
 +\def\dosubsubsecentry#1#2{\7f\dosubsubsecentry\ 12152,71041
 +\def\labelspace{\7f\labelspace\ 12160,71292
 +\def\dopageno#1{\7f\dopageno\ 12162,71327
 +\def\doshortpageno#1{\7f\doshortpageno\ 12163,71353
 +\def\chapentryfonts{\7f\chapentryfonts\ 12165,71385
 +\def\secentryfonts{\7f\secentryfonts\ 12166,71420
 +\def\point{\7f\point\ 12192,72379
 +\def\result{\7f\result\ 12194,72400
 +\def\expansion{\7f\expansion\ 12195,72473
 +\def\print{\7f\print\ 12196,72544
 +\def\equiv{\7f\equiv\ 12198,72611
 +\def\error{\7f\error\ 12218,73384
 +\def\tex{\7f\tex\ 12224,73613
 +\def\@{\7f\@\ 12242,73996
 +\gdef\sepspaces{\def {\ }}}\7f\\ 12265,74728
 +\def\aboveenvbreak{\7f\aboveenvbreak\ 12268,74810
 +\def\afterenvbreak{\7f\afterenvbreak\ 12272,74976
 +\def\ctl{\7f\ctl\ 12286,75487
 +\def\ctr{\7f\ctr\ 12287,75559
 +\def\cbl{\7f\cbl\ 12288,75598
 +\def\cbr{\7f\cbr\ 12289,75638
 +\def\carttop{\7f\carttop\ 12290,75677
 +\def\cartbot{\7f\cartbot\ 12293,75785
 +\long\def\cartouche{\7f\cartouche\ 12299,75925
 +\def\Ecartouche{\7f\Ecartouche\ 12326,76713
 +\def\lisp{\7f\lisp\ 12338,76848
 +\def\Elisp{\7f\Elisp\ 12348,77195
 +\def\next##1{\7f\next\ 12360,77521
 +\def\Eexample{\7f\Eexample\ 12364,77563
 +\def\Esmallexample{\7f\Esmallexample\ 12367,77610
 +\def\smalllispx{\7f\smalllispx\ 12373,77788
 +\def\Esmalllisp{\7f\Esmalllisp\ 12383,78142
 +\obeyspaces \obeylines \ninett \indexfonts \rawbackslash\7ffonts\ 12396,78498
 +\def\next##1{\7f\next\ 12397,78555
 +\def\display{\7f\display\ 12401,78635
 +\def\Edisplay{\7f\Edisplay\ 12410,78954
 +\def\next##1{\7f\next\ 12422,79265
 +\def\format{\7f\format\ 12426,79368
 +\def\Eformat{\7f\Eformat\ 12434,79664
 +\def\next##1{\7f\next\ 12437,79753
 +\def\flushleft{\7f\flushleft\ 12441,79805
 +\def\Eflushleft{\7f\Eflushleft\ 12451,80176
 +\def\next##1{\7f\next\ 12454,80269
 +\def\flushright{\7f\flushright\ 12456,80291
 +\def\Eflushright{\7f\Eflushright\ 12466,80663
 +\def\next##1{\7f\next\ 12470,80794
 +\def\quotation{\7f\quotation\ 12474,80852
 +\def\Equotation{\7f\Equotation\ 12480,81044
 +\def\setdeffont #1 {\7f\setdeffont\ 12493,81442
 +\newskip\defbodyindent \defbodyindent=.4in\7fbodyindent\ 12495,81488
 +\newskip\defargsindent \defargsindent=50pt\7fargsindent\ 12496,81531
 +\newskip\deftypemargin \deftypemargin=12pt\7ftypemargin\ 12497,81574
 +\newskip\deflastargmargin \deflastargmargin=18pt\7flastargmargin\ 12498,81617
 +\def\activeparens{\7f\activeparens\ 12503,81815
 +\def\opnr{\7f\opnr\ 12529,83027
 +\def\lbrb{\7f\lbrb\ 12530,83092
 +\def\defname #1#2{\7f\defname\ 12536,83293
 +\advance\dimen2 by -\defbodyindent\7fbodyindent\ 12540,83411
 +\advance\dimen3 by -\defbodyindent\7fbodyindent\ 12542,83465
 +\setbox0=\hbox{\hskip \deflastargmargin{\7flastargmargin\ 12544,83519
 +\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations\7fargsindent\ 12546,83661
 +\parshape 2 0in \dimen0 \defargsindent \dimen1     %\7fargsindent\ 12547,83736
 +\rlap{\rightline{{\rm #2}\hskip \deftypemargin}\7ftypemargin\ 12554,84105
 +\advance\leftskip by -\defbodyindent\7fbodyindent\ 12557,84239
 +\exdentamount=\defbodyindent\7fbodyindent\ 12558,84276
 +\def\defparsebody #1#2#3{\7f\defparsebody\ 12568,84635
 +\def#1{\7f2572,84819
 +\def#2{\7f2573,84855
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12575,84927
 +\exdentamount=\defbodyindent\7fbodyindent\ 12576,85001
 +\def\defmethparsebody #1#2#3#4 {\7f\defmethparsebody\ 12581,85105
 +\def#1{\7f2585,85266
 +\def#2##1 {\7f2586,85302
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12588,85385
 +\exdentamount=\defbodyindent\7fbodyindent\ 12589,85459
 +\def\defopparsebody #1#2#3#4#5 {\7f\defopparsebody\ 12592,85544
 +\def#1{\7f2596,85705
 +\def#2##1 ##2 {\7f2597,85741
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12600,85841
 +\exdentamount=\defbodyindent\7fbodyindent\ 12601,85915
 +\def\defvarparsebody #1#2#3{\7f\defvarparsebody\ 12608,86186
 +\def#1{\7f2612,86373
 +\def#2{\7f2613,86409
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12615,86468
 +\exdentamount=\defbodyindent\7fbodyindent\ 12616,86542
 +\def\defvrparsebody #1#2#3#4 {\7f\defvrparsebody\ 12621,86633
 +\def#1{\7f2625,86792
 +\def#2##1 {\7f2626,86828
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12628,86898
 +\exdentamount=\defbodyindent\7fbodyindent\ 12629,86972
 +\def\defopvarparsebody #1#2#3#4#5 {\7f\defopvarparsebody\ 12632,87044
 +\def#1{\7f2636,87208
 +\def#2##1 ##2 {\7f2637,87244
 +\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent\7fbodyindent\ 12640,87331
 +\exdentamount=\defbodyindent\7fbodyindent\ 12641,87405
 +\def\defunargs #1{\7f\defunargs\ 12664,88165
 +\def\deftypefunargs #1{\7f\deftypefunargs\ 12676,88547
 +\def\deffn{\7f\deffn\ 12690,88929
 +\def\deffnheader #1#2#3{\7f\deffnheader\ 12692,88986
 +\begingroup\defname {\7fname\ 12693,89034
 +\def\defun{\7f\defun\ 12699,89179
 +\def\defunheader #1#2{\7f\defunheader\ 12701,89232
 +\begingroup\defname {\7fname\ 12702,89307
 +\defunargs {\7funargs\ 12703,89343
 +\def\deftypefun{\7f\deftypefun\ 12709,89491
 +\def\deftypefunheader #1#2{\7f\deftypefunheader\ 12712,89613
 +\def\deftypefunheaderx #1#2 #3\relax{\7f\deftypefunheaderx\ 12714,89722
 +\begingroup\defname {\7fname\ 12716,89814
 +\deftypefunargs {\7ftypefunargs\ 12717,89860
 +\def\deftypefn{\7f\deftypefn\ 12723,90031
 +\def\deftypefnheader #1#2#3{\7f\deftypefnheader\ 12726,90180
 +\def\deftypefnheaderx #1#2#3 #4\relax{\7f\deftypefnheaderx\ 12728,90316
 +\begingroup\defname {\7fname\ 12730,90409
 +\deftypefunargs {\7ftypefunargs\ 12731,90449
 +\def\defmac{\7f\defmac\ 12737,90570
 +\def\defmacheader #1#2{\7f\defmacheader\ 12739,90627
 +\begingroup\defname {\7fname\ 12740,90703
 +\defunargs {\7funargs\ 12741,90736
 +\def\defspec{\7f\defspec\ 12747,90860
 +\def\defspecheader #1#2{\7f\defspecheader\ 12749,90921
 +\begingroup\defname {\7fname\ 12750,90998
 +\defunargs {\7funargs\ 12751,91038
 +\def\deffnx #1 {\7f\deffnx\ 12758,91233
 +\def\defunx #1 {\7f\defunx\ 12759,91290
 +\def\defmacx #1 {\7f\defmacx\ 12760,91347
 +\def\defspecx #1 {\7f\defspecx\ 12761,91406
 +\def\deftypefnx #1 {\7f\deftypefnx\ 12762,91467
 +\def\deftypeunx #1 {\7f\deftypeunx\ 12763,91532
 +\def\defop #1 {\7f\defop\ 12769,91678
 +\defopparsebody\Edefop\defopx\defopheader\defoptype}\7fopparsebody\Edefop\defopx\defopheader\defoptype\ 12770,91713
 +\def\defopheader #1#2#3{\7f\defopheader\ 12772,91767
 +\begingroup\defname {\7fname\ 12774,91856
 +\defunargs {\7funargs\ 12775,91902
 +\def\defmethod{\7f\defmethod\ 12780,91963
 +\def\defmethodheader #1#2#3{\7f\defmethodheader\ 12782,92036
 +\begingroup\defname {\7fname\ 12784,92124
 +\defunargs {\7funargs\ 12785,92164
 +\def\defcv #1 {\7f\defcv\ 12790,92238
 +\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}\7fopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype\ 12791,92273
 +\def\defcvarheader #1#2#3{\7f\defcvarheader\ 12793,92332
 +\begingroup\defname {\7fname\ 12795,92418
 +\defvarargs {\7fvarargs\ 12796,92464
 +\def\defivar{\7f\defivar\ 12801,92537
 +\def\defivarheader #1#2#3{\7f\defivarheader\ 12803,92600
 +\begingroup\defname {\7fname\ 12805,92686
 +\defvarargs {\7fvarargs\ 12806,92737
 +\def\defopx #1 {\7f\defopx\ 12812,92886
 +\def\defmethodx #1 {\7f\defmethodx\ 12813,92943
 +\def\defcvx #1 {\7f\defcvx\ 12814,93008
 +\def\defivarx #1 {\7f\defivarx\ 12815,93065
 +\def\defvarargs #1{\7f\defvarargs\ 12822,93336
 +\def\defvr{\7f\defvr\ 12828,93480
 +\def\defvrheader #1#2#3{\7f\defvrheader\ 12830,93535
 +\begingroup\defname {\7fname\ 12831,93583
 +\def\defvar{\7f\defvar\ 12835,93668
 +\def\defvarheader #1#2{\7f\defvarheader\ 12837,93728
 +\begingroup\defname {\7fname\ 12838,93799
 +\defvarargs {\7fvarargs\ 12839,93835
 +\def\defopt{\7f\defopt\ 12844,93901
 +\def\defoptheader #1#2{\7f\defoptheader\ 12846,93961
 +\begingroup\defname {\7fname\ 12847,94032
 +\defvarargs {\7fvarargs\ 12848,94071
 +\def\deftypevar{\7f\deftypevar\ 12853,94128
 +\def\deftypevarheader #1#2{\7f\deftypevarheader\ 12856,94244
 +\begingroup\defname {\7fname\ 12858,94327
 +\def\deftypevr{\7f\deftypevr\ 12865,94501
 +\def\deftypevrheader #1#2#3{\7f\deftypevrheader\ 12867,94572
 +\begingroup\defname {\7fname\ 12868,94624
 +\def\defvrx #1 {\7f\defvrx\ 12876,94861
 +\def\defvarx #1 {\7f\defvarx\ 12877,94918
 +\def\defoptx #1 {\7f\defoptx\ 12878,94977
 +\def\deftypevarx #1 {\7f\deftypevarx\ 12879,95036
 +\def\deftypevrx #1 {\7f\deftypevrx\ 12880,95103
 +\def\deftpargs #1{\7f\deftpargs\ 12885,95252
 +\def\deftp{\7f\deftp\ 12889,95332
 +\def\deftpheader #1#2#3{\7f\deftpheader\ 12891,95387
 +\begingroup\defname {\7fname\ 12892,95435
 +\def\deftpx #1 {\7f\deftpx\ 12897,95594
 +\def\setref#1{\7f\setref\ 12908,95915
 +\def\unnumbsetref#1{\7f\unnumbsetref\ 12913,96029
 +\def\appendixsetref#1{\7f\appendixsetref\ 12918,96136
 +\def\pxref#1{\7f\pxref\ 12929,96547
 +\def\xref#1{\7f\xref\ 12930,96583
 +\def\ref#1{\7f\ref\ 12931,96618
 +\def\xrefX[#1,#2,#3,#4,#5,#6]{\7f\xrefX[\ 12932,96648
 +\def\printedmanual{\7f\printedmanual\ 12933,96691
 +\def\printednodename{\7f\printednodename\ 12934,96729
 +\def\printednodename{\7f\printednodename\ 12939,96854
 +section ``\printednodename'' in \cite{\printedmanual}\7f\printedmanual\ 12954,97487
 +\refx{\7fx\ 12957,97565
 +\def\dosetq #1#2{\7f\dosetq\ 12965,97785
 +\def\internalsetq #1#2{\7f\internalsetq\ 12973,98043
 +\def\Ypagenumber{\7f\Ypagenumber\ 12977,98144
 +\def\Ytitle{\7f\Ytitle\ 12979,98170
 +\def\Ynothing{\7f\Ynothing\ 12981,98197
 +\def\Ysectionnumberandtype{\7f\Ysectionnumberandtype\ 12983,98214
 +\def\Yappendixletterandtype{\7f\Yappendixletterandtype\ 12992,98530
 +\ifnum\secno=0 Appendix\xreftie'char\the\appendixno{\7fno\ 12993,98560
 +\else \ifnum \subsecno=0 Section\xreftie'char\the\appendixno.\the\secno %\7fno.\the\secno\ 12994,98615
 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno %\7fno.\the\secno.\the\subsecno\ 12996,98719
 +Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %\7fno.\the\secno.\the\subsecno.\the\subsubsecno\ 12998,98790
 +  \def\linenumber{\7f\linenumber\ 13009,99129
 +\def\refx#1#2{\7f\refx\ 13015,99313
 +\def\xrdef #1#2{\7f\xrdef\ 13037,99939
 +\def\readauxfile{\7f\readauxfile\ 13040,100024
 +\def\supereject{\7f\supereject\ 13110,101805
 +\footstrut\parindent=\defaultparindent\hang\textindent{\7faultparindent\hang\textindent\ 13131,102490
 +\def\openindices{\7f\openindices\ 13139,102676
 +\newdimen\defaultparindent \defaultparindent = 15pt\7faultparindent\ 13151,102901
 +\parindent = \defaultparindent\7faultparindent\ 13152,102953
 +\def\smallbook{\7f\smallbook\ 13175,103677
 +\global\def\Esmallexample{\7f\Esmallexample\ 13192,104104
 +\def\afourpaper{\7f\afourpaper\ 13196,104195
 +\def\finalout{\7f\finalout\ 13224,105003
 +\def\normaldoublequote{\7f\normaldoublequote\ 13235,105264
 +\def\normaltilde{\7f\normaltilde\ 13236,105290
 +\def\normalcaret{\7f\normalcaret\ 13237,105310
 +\def\normalunderscore{\7f\normalunderscore\ 13238,105330
 +\def\normalverticalbar{\7f\normalverticalbar\ 13239,105355
 +\def\normalless{\7f\normalless\ 13240,105381
 +\def\normalgreater{\7f\normalgreater\ 13241,105400
 +\def\normalplus{\7f\normalplus\ 13242,105422
 +\def\ifusingtt#1#2{\7f\ifusingtt\ 13253,105914
 +\def\activedoublequote{\7f\activedoublequote\ 13261,106242
 +\def~{\7f~\ 13264,106328
 +\def^{\7f^\ 13267,106389
 +\def_{\7f_\ 13270,106428
 +\def\_{\7f\_\ 13272,106502
 +\def\lvvmode{\7f\lvvmode\ 13279,106839
 +\def|{\7f|\ 13282,106889
 +\def<{\7f<\ 13285,106952
 +\def>{\7f>\ 13288,107009
 +\def+{\7f+\ 13290,107047
 +\def\turnoffactive{\7f\turnoffactive\ 13296,107208
 +\global\def={\7f=\ 13307,107494
 +\def\normalbackslash{\7f\normalbackslash\ 13321,107876
 +\f
 +c-src/c.c,76
 +T f(\7f1,0
 +}T i;\7f2,14
 +void bar(\7f5,69
 +int foobar(\7f6,94
 +interface_locate(\7f9,131
 +\f
 +c.c,2136
 +void (*fa)\7ffa\ 1131,
 +void \7f132,
 +my_printf \7f135,
 +void fatala \7f138,
 +void fatalb \7f139,
 +max \7f141,
 +struct bar \7f143,
 +  char z;\7f144,
 +  struct foo f;\7f145,
 +__attribute__ ((always_inline)) max \7f147,
 +extern int old_var \7f149,
 +struct foo\7f150,
 +  char a;\7f152,
 +  int x[\7fx\ 1153,
 +char stack[\7fstack\ 1155,
 +struct S \7f156,
 +struct S { short f[\7ff\ 1156,
 +  int *__ip;\7f__ip\ 1159,
 +  union wait *__up;\7f__up\ 1160,
 +} wait_status_ptr_t \7f161,
 +Some_Class  A \7f162,
 +typedef T1 T3 \7f163,
 +T3 z \7f164,
 +typedef int more_aligned_int \7f165,
 +struct S  __attribute__ ((vector_size (16))) foo;\7f166,
 +int foo \7f167,
 +char *__attribute__((aligned(8))) *f;\7ff\ 1168,
 +int i \7f169,
 +extern void foobar \7f170,
 +typedef struct cacheLRUEntry_s\7f172,
 +  U16 next;\7f174,
 +  U16 prev;\7f175,
 +__attribute__ ((packed)) cacheLRUEntry_t;\7f177,
 +struct foo \7f178,
 +  int x;\7f179,
 +  char a,\7f180,
 +  char a, b,\7f180,
 +  char a, b, c,\7f180,
 +  char a, b, c, d;\7f180,
 +     f1 \7f183,
 +void f2 \7f184,
 +__attribute__((noreturn)) void d0 \7f185,
 +  __attribute__((format(printf, 1, 2))) d1 \7f186,
 +  d2 \7f187,
 +int x \7f188,
 +struct foo \7f189,
 +struct foo { int x[\7fx\ 1189,
 +short array[\7farray\ 1190,
 +int f\7f193,
 +DEAFUN \7f196,
 +XDEFUN \7f203,
 +DEFUN ("x-get-selection-internal", Fx_get_selection_internal,\7fx-get-selection-internal\ 1206,
 +       Fx_get_selection_internal,\7fx-get-selection-internal\ 1212,
 +      Fy_get_selection_internal,\7fy-get-selection-internal\ 1216,
 +defun_func1(\7f218,
 +DEFUN_func2(\7f220,
 +typedef int bool;\7f222,
 +bool funcboo \7f223,
 +struct my_struct \7f226,
 +typedef struct my_struct my_typedef;\7f228,
 +int bla \7f229,
 +a(\7f234,
 +int func1\7f237,
 +static struct cca_control init_control \7f239,
 +static tpcmd rbtp \7f240,
 +static byte ring1 \7f241,
 +static byte ring2 \7f242,
 +request request \7f243,
 +int func2 \7f246,
 +  aaa;\7f249,
 +  bbb;\7f251,
 +struct sss1 \7f252,
 +struct sss2\7f253,
 +  struct ss3\7f255,
 +struct a b;\7f259,
 +struct aa *b;\7fb\ 1260,
 +  **b;\7fb\ 1262,
 +caccacacca \7f263,
 +a \7f267,
 +  typedef struct aa \7f269,
 +  typedef struct aa {} aaa;\7f269,
 +static void inita \7f271,
 +node *lasta \7flasta\ 1272,
 +b \7f273,
 +  typedef  int bb;\7f275,
 +static void initb \7f277,
 +node *lastb \7flastb\ 1278,
 +typedef enum { REG_ENOSYS \7f279,
 +typedef enum { REG_ENOSYS = -1, aa \7f279,
 +typedef enum { REG_ENOSYS = -1, aa } reg_errcode_t;\7f279,
 +\f
 +c-src/a/b/b.c,18
 +#define this \7f1,0
 +\f
 +../c/c.web,20
 +#define questo \7f34,
 +\f
 +y-src/parse.y,1061
 +#define obstack_chunk_alloc \7f46,1116
 +#define obstack_chunk_free \7f47,1154
 +int yylex \7f57,1322
 +void yyerror \7f59,1352
 +void yyerror \7f61,1381
 +VOIDSTAR parse_hash;\7f63,1405
 +extern VOIDSTAR hash_find(\7f64,1426
 +unsigned char fnin[\7ffnin\ 167,1524
 +#define YYSTYPE \7f71,1622
 +typedef struct node *YYSTYPE;\7fYYSTYPE\ 172,1653
 +YYSTYPE parse_return;\7f73,1683
 +YYSTYPE make_list \7f75,1721
 +YYSTYPE make_list \7f77,1765
 +char *instr;\7finstr\ 180,1795
 +int parse_error \7f81,1808
 +extern struct obstack tmp_mem;\7f82,1829
 +line:\7fline\ 186,1867
 +exp:\7fexp\ 194,1980
 +exp_list:\7fexp_list\ 1262,5647
 +range_exp:\7frange_exp\ 1268,5745
 +range_exp_list:\7frange_exp_list\ 1272,5775
 +cell:\7fcell\ 1278,5893
 +yyerror FUN1(\7f285,5940
 +make_list FUN2(\7f292,6020
 +#define ERROR \7f303,6220
 +extern struct node *yylval;\7fyylval\ 1305,6238
 +unsigned char parse_cell_or_range \7f308,6283
 +unsigned char parse_cell_or_range \7f310,6347
 +yylex FUN0(\7f314,6397
 +parse_cell_or_range FUN2(\7f586,11763
 +#define CK_ABS_R(\7f670,13205
 +#define CK_REL_R(\7f674,13284
 +#define CK_ABS_C(\7f679,13413
 +#define CK_REL_C(\7f683,13492
 +#define MAYBEREL(\7f688,13621
 +str_to_col FUN1(\7f846,16822
 +\f
 +y-src/parse.c,520
 +#define YYBISON \7f4,64
 +# define      NE      \7f6,114
 +# define      LE      \7f7,130
 +# define      GE      \7f8,146
 +# define      NEG     \7f9,162
 +# define      L_CELL  \7f10,179
 +# define      L_RANGE \7f11,199
 +# define      L_VAR   \7f12,220
 +# define      L_CONST \7f13,239
 +# define      L_FN0   \7f14,260
 +# define      L_FN1   \7f15,279
 +# define      L_FN2   \7f16,298
 +# define      L_FN3   \7f17,317
 +# define      L_FN4   \7f18,336
 +# define      L_FNN   \7f19,355
 +# define      L_FN1R  \7f20,374
 +# define      L_FN2R  \7f21,394
 +# define      L_FN3R  \7f22,414
 +# define      L_FN4R  \7f23,434
 +# define      L_FNNR  \7f24,454
 +# define      L_LE    \7f25,474
 +# define      L_NE    \7f26,492
 +# define      L_GE    \7f27,510
 +\f
 +parse.y,1464
 +#define obstack_chunk_alloc \7f46,
 +#define obstack_chunk_free \7f47,
 +int yylex \7f57,
 +void yyerror \7f59,
 +void yyerror \7f61,
 +VOIDSTAR parse_hash;\7f63,
 +extern VOIDSTAR hash_find(\7f64,
 +unsigned char fnin[\7ffnin\ 167,
 +#define YYSTYPE \7f71,
 +typedef struct node *YYSTYPE;\7fYYSTYPE\ 172,
 +YYSTYPE parse_return;\7f73,
 +YYSTYPE make_list \7f75,
 +YYSTYPE make_list \7f77,
 +char *instr;\7finstr\ 180,
 +int parse_error \7f81,
 +extern struct obstack tmp_mem;\7f82,
 +#define YYSTYPE \7f85,
 +# define YYDEBUG \7f88,
 +#define       YYFINAL \7f93,
 +#define       YYFLAG  \7f94,
 +#define       YYNTBASE        \7f95,
 +#define YYTRANSLATE(\7f98,
 +static const char yytranslate[\7fyytranslate\ 1101,
 +static const short yyprhs[\7fyyprhs\ 1134,
 +static const short yyrhs[\7fyyrhs\ 1142,
 +static const short yyrline[\7fyyrline\ 1171,
 +static const char *const yytname[\7fyytname\ 1185,
 +static const short yyr1[\7fyyr1\ 1197,
 +static const short yyr2[\7fyyr2\ 1207,
 +static const short yydefact[\7fyydefact\ 1219,
 +static const short yydefgoto[\7fyydefgoto\ 1237,
 +static const short yypact[\7fyypact\ 1242,
 +static const short yypgoto[\7fyypgoto\ 1260,
 +#define       YYLAST  \7f266,
 +static const short yytable[\7fyytable\ 1269,
 +static const short yycheck[\7fyycheck\ 1330,
 +yyerror FUN1(\7f285,
 +make_list FUN2(\7f292,
 +#define ERROR \7f303,
 +extern struct node *yylval;\7fyylval\ 1305,
 +unsigned char parse_cell_or_range \7f308,
 +unsigned char parse_cell_or_range \7f310,
 +yylex FUN0(\7f314,
 +parse_cell_or_range FUN2(\7f586,
 +#define CK_ABS_R(\7f670,
 +#define CK_REL_R(\7f674,
 +#define CK_ABS_C(\7f679,
 +#define CK_REL_C(\7f683,
 +#define MAYBEREL(\7f688,
 +str_to_col FUN1(\7f846,
 +\f
 +/usr/share/bison/bison.simple,2238
 +# define YYSTD(\7f40,
 +# define YYSTD(\7f42,
 +#  define YYSTACK_ALLOC \7f50,
 +#  define YYSIZE_T \7f51,
 +#    define YYSTACK_ALLOC \7f55,
 +#    define YYSIZE_T \7f56,
 +#     define YYSTACK_ALLOC \7f59,
 +#  define YYSTACK_FREE(\7f67,
 +#   define YYSIZE_T \7f71,
 +#    define YYSIZE_T \7f75,
 +#  define YYSTACK_ALLOC \7f78,
 +#  define YYSTACK_FREE \7f79,
 +union yyalloc\7f83,
 +  short yyss;\7f85,
 +  YYSTYPE yyvs;\7f86,
 +  YYLTYPE yyls;\7f88,
 +# define YYSTACK_GAP_MAX \7f93,
 +#  define YYSTACK_BYTES(\7f98,
 +#  define YYSTACK_BYTES(\7f102,
 +# define YYSTACK_RELOCATE(\7f112,
 +# define YYSIZE_T \7f128,
 +# define YYSIZE_T \7f131,
 +#  define YYSIZE_T \7f136,
 +#   define YYSIZE_T \7f140,
 +# define YYSIZE_T \7f145,
 +#define yyerrok       \7f148,
 +#define yyclearin     \7f149,
 +#define YYEMPTY       \7f150,
 +#define YYEOF \7f151,
 +#define YYACCEPT      \7f152,
 +#define YYABORT \7f153,
 +#define YYERROR       \7f154,
 +#define YYFAIL        \7f158,
 +#define YYRECOVERING(\7f159,
 +#define YYBACKUP(\7f160,
 +#define YYTERROR      \7f177,
 +#define YYERRCODE     \7f178,
 +# define YYLLOC_DEFAULT(\7f189,
 +#   define YYLEX      \7f200,
 +#   define YYLEX      \7f202,
 +#   define YYLEX      \7f206,
 +#   define YYLEX      \7f208,
 +# define YYLEX        \7f212,
 +#  define YYFPRINTF \7f225,
 +# define YYDPRINTF(\7f228,
 +int yydebug;\7f237,
 +# define YYDPRINTF(\7f239,
 +# define YYINITDEPTH \7f244,
 +# undef YYMAXDEPTH\7f255,
 +# define YYMAXDEPTH \7f259,
 +#  define yymemcpy \7f264,
 +yymemcpy \7f271,
 +#   define yystrlen \7f293,
 +yystrlen \7f298,
 +#   define yystpcpy \7f316,
 +yystpcpy \7f322,
 +#  define YYPARSE_PARAM_ARG \7f351,
 +#  define YYPARSE_PARAM_DECL\7f352,
 +#  define YYPARSE_PARAM_ARG \7f354,
 +#  define YYPARSE_PARAM_DECL \7f355,
 +# define YYPARSE_PARAM_ARG\7f358,
 +# define YYPARSE_PARAM_DECL\7f359,
 +int yyparse \7f365,
 +int yyparse \7f367,
 +#define YY_DECL_NON_LSP_VARIABLES     \7f374,
 +# define YY_DECL_VARIABLES    \7f385,
 +# define YY_DECL_VARIABLES    \7f391,
 +yyparse \7f403,
 +# define YYPOPSTACK \7f445,
 +# define YYPOPSTACK \7f447,
 +# undef YYSTACK_RELOCATE\7f548,
 +  *++yyvsp \7fyyvsp\ 1746,
 +  *++yylsp \7fyylsp\ 1748,
 +  yyn \7f755,
 +  yystate \7f757,
 +    yystate \7f761,
 +  goto yynewstate;\7f763,
 +  goto yyerrlab1;\7f823,
 +  yyerrstatus \7f846,
 +  goto yyerrhandle;\7f848,
 +  yyn \7f861,
 +  yystate \7f875,
 +  yyn \7f895,
 +  yyn \7f903,
 +  YYDPRINTF \7f917,
 +  *++yyvsp \7fyyvsp\ 1919,
 +  *++yylsp \7fyylsp\ 1921,
 +  yystate \7f924,
 +  goto yynewstate;\7f925,
 +  yyresult \7f932,
 +  goto yyreturn;\7f933,
 +  yyresult \7f939,
 +  goto yyreturn;\7f940,
 +  yyerror \7f946,
 +  yyresult \7f947,
 +\f
 +y-src/atest.y,9
 +exp   \7f2,3
 +\f
 +y-src/cccp.c,303
 +#define YYBISON \7f4,63
 +# define      INT     \7f6,113
 +# define      CHAR    \7f7,130
 +# define      NAME    \7f8,148
 +# define      ERROR   \7f9,166
 +# define      OR      \7f10,185
 +# define      AND     \7f11,201
 +# define      EQUAL   \7f12,218
 +# define      NOTEQUAL        \7f13,237
 +# define      LEQ     \7f14,259
 +# define      GEQ     \7f15,276
 +# define      LSH     \7f16,293
 +# define      RSH     \7f17,310
 +# define      UNARY   \7f18,327
 +\f
 +cccp.y,2532
 +typedef unsigned char U_CHAR;\7f38,
 +struct arglist \7f41,
 +  struct arglist *next;\7fnext\ 142,
 +  U_CHAR *name;\7fname\ 143,
 +  int length;\7f44,
 +  int argno;\7f45,
 +#define NULL \7f51,
 +#define GENERIC_PTR \7f56,
 +#define GENERIC_PTR \7f58,
 +#define NULL_PTR \7f63,
 +int yylex \7f66,
 +void yyerror \7f67,
 +int expression_value;\7f68,
 +static jmp_buf parse_return_error;\7f70,
 +static int keyword_parsing \7f73,
 +extern unsigned char is_idstart[\7fis_idstart\ 176,
 +extern unsigned char is_idstart[], is_idchar[\7fis_idchar\ 176,
 +extern unsigned char is_idstart[], is_idchar[], is_hor_space[\7fis_hor_space\ 176,
 +extern char *xmalloc \7fxmalloc\ 178,
 +extern int pedantic;\7f81,
 +extern int traditional;\7f84,
 +#define CHAR_TYPE_SIZE \7f87,
 +#define INT_TYPE_SIZE \7f91,
 +#define LONG_TYPE_SIZE \7f95,
 +#define WCHAR_TYPE_SIZE \7f99,
 +#define possible_sum_sign(\7f104,
 +static void integer_overflow \7f106,
 +static long left_shift \7f107,
 +static long right_shift \7f108,
 +  struct constant \7f113,
 +  struct constant {long value;\7f113,
 +  struct constant {long value; int unsignedp;\7f113,
 +  struct constant {long value; int unsignedp;} integer;\7f113,
 +  struct name \7f114,
 +  struct name {U_CHAR *address;\7faddress\ 1114,
 +  struct name {U_CHAR *address; int length;\7f114,
 +  struct name {U_CHAR *address; int length;} name;\7f114,
 +  struct arglist *keywords;\7fkeywords\ 1115,
 +  int voidval;\7f116,
 +  char *sval;\7fsval\ 1117,
 +} yystype;\7f118,
 +# define YYSTYPE \7f119,
 +# define YYDEBUG \7f122,
 +#define       YYFINAL \7f127,
 +#define       YYFLAG  \7f128,
 +#define       YYNTBASE        \7f129,
 +#define YYTRANSLATE(\7f132,
 +static const char yytranslate[\7fyytranslate\ 1135,
 +static const short yyprhs[\7fyyprhs\ 1167,
 +static const short yyrhs[\7fyyrhs\ 1174,
 +static const short yyrline[\7fyyrline\ 1195,
 +static const char *const yytname[\7fyytname\ 1208,
 +static const short yyr1[\7fyyr1\ 1219,
 +static const short yyr2[\7fyyr2\ 1228,
 +static const short yydefact[\7fyydefact\ 1239,
 +static const short yydefgoto[\7fyydefgoto\ 1251,
 +static const short yypact[\7fyypact\ 1256,
 +static const short yypgoto[\7fyypgoto\ 1268,
 +#define       YYLAST  \7f274,
 +static const short yytable[\7fyytable\ 1277,
 +static const short yycheck[\7fyycheck\ 1301,
 +static char *lexptr;\7flexptr\ 1332,
 +parse_number \7f341,
 +struct token \7f437,
 +  char *operator;\7foperator\ 1438,
 +  int token;\7f439,
 +static struct token tokentab2[\7ftokentab2\ 1442,
 +yylex \7f459,
 +parse_escape \7f740,
 +yyerror \7f836,
 +integer_overflow \7f844,
 +left_shift \7f851,
 +right_shift \7f873,
 +parse_c_expression \7f893,
 +extern int yydebug;\7f919,
 +main \7f923,
 +unsigned char is_idchar[\7fis_idchar\ 1948,
 +unsigned char is_idstart[\7fis_idstart\ 1950,
 +char is_hor_space[\7fis_hor_space\ 1953,
 +initialize_random_junk \7f958,
 +error \7f988,
 +warning \7f993,
 +lookup \7f999,
 +\f
 +/usr/share/bison/bison.simple,2238
 +# define YYSTD(\7f41,
 +# define YYSTD(\7f43,
 +#  define YYSTACK_ALLOC \7f51,
 +#  define YYSIZE_T \7f52,
 +#    define YYSTACK_ALLOC \7f56,
 +#    define YYSIZE_T \7f57,
 +#     define YYSTACK_ALLOC \7f60,
 +#  define YYSTACK_FREE(\7f68,
 +#   define YYSIZE_T \7f72,
 +#    define YYSIZE_T \7f76,
 +#  define YYSTACK_ALLOC \7f79,
 +#  define YYSTACK_FREE \7f80,
 +union yyalloc\7f84,
 +  short yyss;\7f86,
 +  YYSTYPE yyvs;\7f87,
 +  YYLTYPE yyls;\7f89,
 +# define YYSTACK_GAP_MAX \7f94,
 +#  define YYSTACK_BYTES(\7f99,
 +#  define YYSTACK_BYTES(\7f103,
 +# define YYSTACK_RELOCATE(\7f113,
 +# define YYSIZE_T \7f129,
 +# define YYSIZE_T \7f132,
 +#  define YYSIZE_T \7f137,
 +#   define YYSIZE_T \7f141,
 +# define YYSIZE_T \7f146,
 +#define yyerrok       \7f149,
 +#define yyclearin     \7f150,
 +#define YYEMPTY       \7f151,
 +#define YYEOF \7f152,
 +#define YYACCEPT      \7f153,
 +#define YYABORT \7f154,
 +#define YYERROR       \7f155,
 +#define YYFAIL        \7f159,
 +#define YYRECOVERING(\7f160,
 +#define YYBACKUP(\7f161,
 +#define YYTERROR      \7f178,
 +#define YYERRCODE     \7f179,
 +# define YYLLOC_DEFAULT(\7f190,
 +#   define YYLEX      \7f201,
 +#   define YYLEX      \7f203,
 +#   define YYLEX      \7f207,
 +#   define YYLEX      \7f209,
 +# define YYLEX        \7f213,
 +#  define YYFPRINTF \7f226,
 +# define YYDPRINTF(\7f229,
 +int yydebug;\7f238,
 +# define YYDPRINTF(\7f240,
 +# define YYINITDEPTH \7f245,
 +# undef YYMAXDEPTH\7f256,
 +# define YYMAXDEPTH \7f260,
 +#  define yymemcpy \7f265,
 +yymemcpy \7f272,
 +#   define yystrlen \7f294,
 +yystrlen \7f299,
 +#   define yystpcpy \7f317,
 +yystpcpy \7f323,
 +#  define YYPARSE_PARAM_ARG \7f351,
 +#  define YYPARSE_PARAM_DECL\7f352,
 +#  define YYPARSE_PARAM_ARG \7f354,
 +#  define YYPARSE_PARAM_DECL \7f355,
 +# define YYPARSE_PARAM_ARG\7f358,
 +# define YYPARSE_PARAM_DECL\7f359,
 +int yyparse \7f365,
 +int yyparse \7f367,
 +#define YY_DECL_NON_LSP_VARIABLES     \7f374,
 +# define YY_DECL_VARIABLES    \7f385,
 +# define YY_DECL_VARIABLES    \7f391,
 +yyparse \7f403,
 +# define YYPOPSTACK \7f445,
 +# define YYPOPSTACK \7f447,
 +# undef YYSTACK_RELOCATE\7f548,
 +  *++yyvsp \7fyyvsp\ 1746,
 +  *++yylsp \7fyylsp\ 1748,
 +  yyn \7f755,
 +  yystate \7f757,
 +    yystate \7f761,
 +  goto yynewstate;\7f763,
 +  goto yyerrlab1;\7f823,
 +  yyerrstatus \7f846,
 +  goto yyerrhandle;\7f848,
 +  yyn \7f861,
 +  yystate \7f875,
 +  yyn \7f895,
 +  yyn \7f903,
 +  YYDPRINTF \7f917,
 +  *++yyvsp \7fyyvsp\ 1919,
 +  *++yylsp \7fyylsp\ 1921,
 +  yystate \7f924,
 +  goto yynewstate;\7f925,
 +  yyresult \7f932,
 +  goto yyreturn;\7f933,
 +  yyresult \7f939,
 +  goto yyreturn;\7f940,
 +  yyerror \7f946,
 +  yyresult \7f947,
 +\f
 +y-src/cccp.y,2171
 +typedef unsigned char U_CHAR;\7f38,1201
 +struct arglist \7f41,1301
 +  struct arglist *next;\7fnext\ 142,1318
 +  U_CHAR *name;\7fname\ 143,1342
 +  int length;\7f44,1358
 +  int argno;\7f45,1372
 +#define NULL \7f51,1468
 +#define GENERIC_PTR \7f56,1578
 +#define GENERIC_PTR \7f58,1611
 +#define NULL_PTR \7f63,1670
 +int yylex \7f66,1712
 +void yyerror \7f67,1726
 +int expression_value;\7f68,1743
 +static jmp_buf parse_return_error;\7f70,1766
 +static int keyword_parsing \7f73,1865
 +extern unsigned char is_idstart[\7fis_idstart\ 176,1944
 +extern unsigned char is_idstart[], is_idchar[\7fis_idchar\ 176,1944
 +extern unsigned char is_idstart[], is_idchar[], is_hor_space[\7fis_hor_space\ 176,1944
 +extern char *xmalloc \7fxmalloc\ 178,2009
 +extern int pedantic;\7f81,2062
 +extern int traditional;\7f84,2114
 +#define CHAR_TYPE_SIZE \7f87,2162
 +#define INT_TYPE_SIZE \7f91,2229
 +#define LONG_TYPE_SIZE \7f95,2296
 +#define WCHAR_TYPE_SIZE \7f99,2365
 +#define possible_sum_sign(\7f104,2556
 +static void integer_overflow \7f106,2632
 +static long left_shift \7f107,2665
 +static long right_shift \7f108,2692
 +  struct constant \7f112,2733
 +  struct constant {long value;\7f112,2733
 +  struct constant {long value; int unsignedp;\7f112,2733
 +  struct constant {long value; int unsignedp;} integer;\7f112,2733
 +  struct name \7f113,2789
 +  struct name {U_CHAR *address;\7faddress\ 1113,2789
 +  struct name {U_CHAR *address; int length;\7f113,2789
 +  struct name {U_CHAR *address; int length;} name;\7f113,2789
 +  struct arglist *keywords;\7fkeywords\ 1114,2840
 +  int voidval;\7f115,2868
 +  char *sval;\7fsval\ 1116,2883
 +start \7f143,3226
 +exp1  \7f148,3330
 +exp   \7f156,3505
 +exp   \7f185,4295
 +keywords \7f306,7835
 +static char *lexptr;\7flexptr\ 1332,8579
 +parse_number \7f341,8842
 +struct token \7f437,11038
 +  char *operator;\7foperator\ 1438,11053
 +  int token;\7f439,11071
 +static struct token tokentab2[\7ftokentab2\ 1442,11088
 +yylex \7f459,11367
 +parse_escape \7f740,17718
 +yyerror \7f836,19599
 +integer_overflow \7f844,19690
 +left_shift \7f851,19804
 +right_shift \7f873,20194
 +parse_c_expression \7f893,20732
 +extern int yydebug;\7f919,21416
 +main \7f923,21483
 +unsigned char is_idchar[\7fis_idchar\ 1948,21901
 +unsigned char is_idstart[\7fis_idstart\ 1950,21996
 +char is_hor_space[\7fis_hor_space\ 1953,22160
 +initialize_random_junk \7f958,22259
 +error \7f988,22915
 +warning \7f993,22963
 +lookup \7f999,23033
 +\f
 +tex-src/nonewline.tex,0
 +\f
 +php-src/sendmail.php,0
 +\f
 +a-src/empty.zz,0
index 077b147c76eca2bbcacfb691f96937ef1980f201,0000000000000000000000000000000000000000..68584ee71fc3d018aa4f5489343ed1c8447cae4c
mode 100644,000000..100644
--- /dev/null
@@@ -1,11960 -1,0 +1,11960 @@@
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
 +/* Keyboard and mouse input; editor command loop.
 +
 +Copyright (C) 1985-1989, 1993-1997, 1999-2016 Free Software Foundation,
 +Inc.
 +
 +This file is part of GNU Emacs.
 +
 +GNU Emacs is free software: you can redistribute it and/or modify
 +it under the terms of the GNU General Public License as published by
++the Free Software Foundation, either version 3 of the License, or (at
++your option) any later version.
 +
 +GNU Emacs is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 +
 +#include <config.h>
 +
 +#include "sysstdio.h"
 +#include <sys/stat.h>
 +
 +#include "lisp.h"
 +#include "termchar.h"
 +#include "termopts.h"
 +#include "frame.h"
 +#include "termhooks.h"
 +#include "macros.h"
 +#include "keyboard.h"
 +#include "window.h"
 +#include "commands.h"
 +#include "character.h"
 +#include "buffer.h"
 +#include "disptab.h"
 +#include "dispextern.h"
 +#include "syntax.h"
 +#include "intervals.h"
 +#include "keymap.h"
 +#include "blockinput.h"
 +#include "puresize.h"
 +#include "systime.h"
 +#include "atimer.h"
 +#include "process.h"
 +#include <errno.h>
 +
 +#ifdef HAVE_PTHREAD
 +#include <pthread.h>
 +#endif
 +#ifdef MSDOS
 +#include "msdos.h"
 +#include <time.h>
 +#else /* not MSDOS */
 +#include <sys/ioctl.h>
 +#endif /* not MSDOS */
 +
 +#if defined USABLE_FIONREAD && defined USG5_4
 +# include <sys/filio.h>
 +#endif
 +
 +#include "syssignal.h"
 +
 +#include <sys/types.h>
 +#include <unistd.h>
 +#include <fcntl.h>
 +
 +#ifdef HAVE_WINDOW_SYSTEM
 +#include TERM_HEADER
 +#endif /* HAVE_WINDOW_SYSTEM */
 +
 +/* Variables for blockinput.h:  */
 +
 +/* Positive if interrupt input is blocked right now.  */
 +volatile int interrupt_input_blocked;
 +
 +/* True means an input interrupt or alarm signal has arrived.
 +   The QUIT macro checks this.  */
 +volatile bool pending_signals;
 +
 +#define KBD_BUFFER_SIZE 4096
 +
 +KBOARD *initial_kboard;
 +KBOARD *current_kboard;
 +static KBOARD *all_kboards;
 +
 +/* True in the single-kboard state, false in the any-kboard state.  */
 +static bool single_kboard;
 +
 +#define NUM_RECENT_KEYS (300)
 +
 +/* Index for storing next element into recent_keys.  */
 +static int recent_keys_index;
 +
 +/* Total number of elements stored into recent_keys.  */
 +static int total_keys;
 +
 +/* This vector holds the last NUM_RECENT_KEYS keystrokes.  */
 +static Lisp_Object recent_keys;
 +
 +/* Vector holding the key sequence that invoked the current command.
 +   It is reused for each command, and it may be longer than the current
 +   sequence; this_command_key_count indicates how many elements
 +   actually mean something.
 +   It's easier to staticpro a single Lisp_Object than an array.  */
 +Lisp_Object this_command_keys;
 +ptrdiff_t this_command_key_count;
 +
 +/* True after calling Freset_this_command_lengths.
 +   Usually it is false.  */
 +static bool this_command_key_count_reset;
 +
 +/* This vector is used as a buffer to record the events that were actually read
 +   by read_key_sequence.  */
 +static Lisp_Object raw_keybuf;
 +static int raw_keybuf_count;
 +
 +#define GROW_RAW_KEYBUF                                                       \
 + if (raw_keybuf_count == ASIZE (raw_keybuf))                          \
 +   raw_keybuf = larger_vector (raw_keybuf, 1, -1)
 +
 +/* Number of elements of this_command_keys
 +   that precede this key sequence.  */
 +static ptrdiff_t this_single_command_key_start;
 +
 +/* Record values of this_command_key_count and echo_length ()
 +   before this command was read.  */
 +static ptrdiff_t before_command_key_count;
 +static ptrdiff_t before_command_echo_length;
 +
 +#ifdef HAVE_STACK_OVERFLOW_HANDLING
 +
 +/* For longjmp to recover from C stack overflow.  */
 +sigjmp_buf return_to_command_loop;
 +
 +/* Message displayed by Vtop_level when recovering from C stack overflow.  */
 +static Lisp_Object recover_top_level_message;
 +
 +#endif /* HAVE_STACK_OVERFLOW_HANDLING */
 +
 +/* Message normally displayed by Vtop_level.  */
 +static Lisp_Object regular_top_level_message;
 +
 +/* For longjmp to where kbd input is being done.  */
 +
 +static sys_jmp_buf getcjmp;
 +
 +/* True while doing kbd input.  */
 +bool waiting_for_input;
 +
 +/* True while displaying for echoing.   Delays C-g throwing.  */
 +
 +static bool echoing;
 +
 +/* Non-null means we can start echoing at the next input pause even
 +   though there is something in the echo area.  */
 +
 +static struct kboard *ok_to_echo_at_next_pause;
 +
 +/* The kboard last echoing, or null for none.  Reset to 0 in
 +   cancel_echoing.  If non-null, and a current echo area message
 +   exists, and echo_message_buffer is eq to the current message
 +   buffer, we know that the message comes from echo_kboard.  */
 +
 +struct kboard *echo_kboard;
 +
 +/* The buffer used for echoing.  Set in echo_now, reset in
 +   cancel_echoing.  */
 +
 +Lisp_Object echo_message_buffer;
 +
 +/* True means C-g should cause immediate error-signal.  */
 +bool immediate_quit;
 +
 +/* Character that causes a quit.  Normally C-g.
 +
 +   If we are running on an ordinary terminal, this must be an ordinary
 +   ASCII char, since we want to make it our interrupt character.
 +
 +   If we are not running on an ordinary terminal, it still needs to be
 +   an ordinary ASCII char.  This character needs to be recognized in
 +   the input interrupt handler.  At this point, the keystroke is
 +   represented as a struct input_event, while the desired quit
 +   character is specified as a lispy event.  The mapping from struct
 +   input_events to lispy events cannot run in an interrupt handler,
 +   and the reverse mapping is difficult for anything but ASCII
 +   keystrokes.
 +
 +   FOR THESE ELABORATE AND UNSATISFYING REASONS, quit_char must be an
 +   ASCII character.  */
 +int quit_char;
 +
 +/* Current depth in recursive edits.  */
 +EMACS_INT command_loop_level;
 +
 +/* If not Qnil, this is a switch-frame event which we decided to put
 +   off until the end of a key sequence.  This should be read as the
 +   next command input, after any unread_command_events.
 +
 +   read_key_sequence uses this to delay switch-frame events until the
 +   end of the key sequence; Fread_char uses it to put off switch-frame
 +   events until a non-ASCII event is acceptable as input.  */
 +Lisp_Object unread_switch_frame;
 +
 +/* Last size recorded for a current buffer which is not a minibuffer.  */
 +static ptrdiff_t last_non_minibuf_size;
 +
 +/* Total number of times read_char has returned, modulo UINTMAX_MAX + 1.  */
 +uintmax_t num_input_events;
 +
 +/* Value of num_nonmacro_input_events as of last auto save.  */
 +
 +static EMACS_INT last_auto_save;
 +
 +/* The value of point when the last command was started.  */
 +static ptrdiff_t last_point_position;
 +
 +/* The frame in which the last input event occurred, or Qmacro if the
 +   last event came from a macro.  We use this to determine when to
 +   generate switch-frame events.  This may be cleared by functions
 +   like Fselect_frame, to make sure that a switch-frame event is
 +   generated by the next character.
 +
 +   FIXME: This is modified by a signal handler so it should be volatile.
 +   It's exported to Lisp, though, so it can't simply be marked
 +   'volatile' here.  */
 +Lisp_Object internal_last_event_frame;
 +
 +/* `read_key_sequence' stores here the command definition of the
 +   key sequence that it reads.  */
 +static Lisp_Object read_key_sequence_cmd;
 +static Lisp_Object read_key_sequence_remapped;
 +
 +/* File in which we write all commands we read.  */
 +static FILE *dribble;
 +
 +/* True if input is available.  */
 +bool input_pending;
 +
 +/* True if more input was available last time we read an event.
 +
 +   Since redisplay can take a significant amount of time and is not
 +   indispensable to perform the user's commands, when input arrives
 +   "too fast", Emacs skips redisplay.  More specifically, if the next
 +   command has already been input when we finish the previous command,
 +   we skip the intermediate redisplay.
 +
 +   This is useful to try and make sure Emacs keeps up with fast input
 +   rates, such as auto-repeating keys.  But in some cases, this proves
 +   too conservative: we may end up disabling redisplay for the whole
 +   duration of a key repetition, even though we could afford to
 +   redisplay every once in a while.
 +
 +   So we "sample" the input_pending flag before running a command and
 +   use *that* value after running the command to decide whether to
 +   skip redisplay or not.  This way, we only skip redisplay if we
 +   really can't keep up with the repeat rate.
 +
 +   This only makes a difference if the next input arrives while running the
 +   command, which is very unlikely if the command is executed quickly.
 +   IOW this tends to avoid skipping redisplay after a long running command
 +   (which is a case where skipping redisplay is not very useful since the
 +   redisplay time is small compared to the time it took to run the command).
 +
 +   A typical use case is when scrolling.  Scrolling time can be split into:
 +   - Time to do jit-lock on the newly displayed portion of buffer.
 +   - Time to run the actual scroll command.
 +   - Time to perform the redisplay.
 +   Jit-lock can happen either during the command or during the redisplay.
 +   In the most painful cases, the jit-lock time is the one that dominates.
 +   Also jit-lock can be tweaked (via jit-lock-defer) to delay its job, at the
 +   cost of temporary inaccuracy in display and scrolling.
 +   So without input_was_pending, what typically happens is the following:
 +   - when the command starts, there's no pending input (yet).
 +   - the scroll command triggers jit-lock.
 +   - during the long jit-lock time the next input arrives.
 +   - at the end of the command, we check input_pending and hence decide to
 +     skip redisplay.
 +   - we read the next input and start over.
 +   End result: all the hard work of jit-locking is "wasted" since redisplay
 +   doesn't actually happens (at least not before the input rate slows down).
 +   With input_was_pending redisplay is still skipped if Emacs can't keep up
 +   with the input rate, but if it can keep up just enough that there's no
 +   input_pending when we begin the command, then redisplay is not skipped
 +   which results in better feedback to the user.  */
 +static bool input_was_pending;
 +
 +/* Circular buffer for pre-read keyboard input.  */
 +
 +static struct input_event kbd_buffer[KBD_BUFFER_SIZE];
 +
 +/* Pointer to next available character in kbd_buffer.
 +   If kbd_fetch_ptr == kbd_store_ptr, the buffer is empty.
 +   This may be kbd_buffer + KBD_BUFFER_SIZE, meaning that the
 +   next available char is in kbd_buffer[0].  */
 +static struct input_event *kbd_fetch_ptr;
 +
 +/* Pointer to next place to store character in kbd_buffer.  This
 +   may be kbd_buffer + KBD_BUFFER_SIZE, meaning that the next
 +   character should go in kbd_buffer[0].  */
 +static struct input_event * volatile kbd_store_ptr;
 +
 +/* The above pair of variables forms a "queue empty" flag.  When we
 +   enqueue a non-hook event, we increment kbd_store_ptr.  When we
 +   dequeue a non-hook event, we increment kbd_fetch_ptr.  We say that
 +   there is input available if the two pointers are not equal.
 +
 +   Why not just have a flag set and cleared by the enqueuing and
 +   dequeuing functions?  Such a flag could be screwed up by interrupts
 +   at inopportune times.  */
 +
 +static void recursive_edit_unwind (Lisp_Object buffer);
 +static Lisp_Object command_loop (void);
 +
 +static void echo_now (void);
 +static ptrdiff_t echo_length (void);
 +
 +/* Incremented whenever a timer is run.  */
 +unsigned timers_run;
 +
 +/* Address (if not 0) of struct timespec to zero out if a SIGIO interrupt
 +   happens.  */
 +struct timespec *input_available_clear_time;
 +
 +/* True means use SIGIO interrupts; false means use CBREAK mode.
 +   Default is true if INTERRUPT_INPUT is defined.  */
 +bool interrupt_input;
 +
 +/* Nonzero while interrupts are temporarily deferred during redisplay.  */
 +bool interrupts_deferred;
 +
 +/* The time when Emacs started being idle.  */
 +
 +static struct timespec timer_idleness_start_time;
 +
 +/* After Emacs stops being idle, this saves the last value
 +   of timer_idleness_start_time from when it was idle.  */
 +
 +static struct timespec timer_last_idleness_start_time;
 +
 +\f
 +/* Global variable declarations.  */
 +
 +/* Flags for readable_events.  */
 +#define READABLE_EVENTS_DO_TIMERS_NOW         (1 << 0)
 +#define READABLE_EVENTS_FILTER_EVENTS         (1 << 1)
 +#define READABLE_EVENTS_IGNORE_SQUEEZABLES    (1 << 2)
 +
 +/* Function for init_keyboard to call with no args (if nonzero).  */
 +static void (*keyboard_init_hook) (void);
 +
 +static bool get_input_pending (int);
 +static bool readable_events (int);
 +static Lisp_Object read_char_x_menu_prompt (Lisp_Object,
 +                                            Lisp_Object, bool *);
 +static Lisp_Object read_char_minibuf_menu_prompt (int, Lisp_Object);
 +static Lisp_Object make_lispy_event (struct input_event *);
 +static Lisp_Object make_lispy_movement (struct frame *, Lisp_Object,
 +                                        enum scroll_bar_part,
 +                                        Lisp_Object, Lisp_Object,
 +                                      Time);
 +static Lisp_Object modify_event_symbol (ptrdiff_t, int, Lisp_Object,
 +                                        Lisp_Object, const char *const *,
 +                                        Lisp_Object *, ptrdiff_t);
 +static Lisp_Object make_lispy_switch_frame (Lisp_Object);
 +static Lisp_Object make_lispy_focus_in (Lisp_Object);
 +#ifdef HAVE_WINDOW_SYSTEM
 +static Lisp_Object make_lispy_focus_out (Lisp_Object);
 +#endif /* HAVE_WINDOW_SYSTEM */
 +static bool help_char_p (Lisp_Object);
 +static void save_getcjmp (sys_jmp_buf);
 +static void restore_getcjmp (sys_jmp_buf);
 +static Lisp_Object apply_modifiers (int, Lisp_Object);
 +static void clear_event (struct input_event *);
 +static void restore_kboard_configuration (int);
 +#ifdef USABLE_SIGIO
 +static void deliver_input_available_signal (int signo);
 +#endif
 +static void handle_interrupt (bool);
 +static _Noreturn void quit_throw_to_read_char (bool);
 +static void process_special_events (void);
 +static void timer_start_idle (void);
 +static void timer_stop_idle (void);
 +static void timer_resume_idle (void);
 +static void deliver_user_signal (int);
 +static char *find_user_signal_name (int);
 +static void store_user_signal_events (void);
 +
 +/* These setters are used only in this file, so they can be private.  */
 +static void
 +kset_echo_string (struct kboard *kb, Lisp_Object val)
 +{
 +  kb->echo_string_ = val;
 +}
 +static void
 +kset_kbd_queue (struct kboard *kb, Lisp_Object val)
 +{
 +  kb->kbd_queue_ = val;
 +}
 +static void
 +kset_keyboard_translate_table (struct kboard *kb, Lisp_Object val)
 +{
 +  kb->Vkeyboard_translate_table_ = val;
 +}
 +static void
 +kset_last_prefix_arg (struct kboard *kb, Lisp_Object val)
 +{
 +  kb->Vlast_prefix_arg_ = val;
 +}
 +static void
 +kset_last_repeatable_command (struct kboard *kb, Lisp_Object val)
 +{
 +  kb->Vlast_repeatable_command_ = val;
 +}
 +static void
 +kset_local_function_key_map (struct kboard *kb, Lisp_Object val)
 +{
 +  kb->Vlocal_function_key_map_ = val;
 +}
 +static void
 +kset_overriding_terminal_local_map (struct kboard *kb, Lisp_Object val)
 +{
 +  kb->Voverriding_terminal_local_map_ = val;
 +}
 +static void
 +kset_real_last_command (struct kboard *kb, Lisp_Object val)
 +{
 +  kb->Vreal_last_command_ = val;
 +}
 +static void
 +kset_system_key_syms (struct kboard *kb, Lisp_Object val)
 +{
 +  kb->system_key_syms_ = val;
 +}
 +
 +\f
 +/* Add C to the echo string, without echoing it immediately.  C can be
 +   a character, which is pretty-printed, or a symbol, whose name is
 +   printed.  */
 +
 +static void
 +echo_add_key (Lisp_Object c)
 +{
 +  char initbuf[KEY_DESCRIPTION_SIZE + 100];
 +  ptrdiff_t size = sizeof initbuf;
 +  char *buffer = initbuf;
 +  char *ptr = buffer;
 +  Lisp_Object echo_string;
 +  USE_SAFE_ALLOCA;
 +
 +  echo_string = KVAR (current_kboard, echo_string);
 +
 +  /* If someone has passed us a composite event, use its head symbol.  */
 +  c = EVENT_HEAD (c);
 +
 +  if (INTEGERP (c))
 +    ptr = push_key_description (XINT (c), ptr);
 +  else if (SYMBOLP (c))
 +    {
 +      Lisp_Object name = SYMBOL_NAME (c);
 +      ptrdiff_t nbytes = SBYTES (name);
 +
 +      if (size - (ptr - buffer) < nbytes)
 +      {
 +        ptrdiff_t offset = ptr - buffer;
 +        size = max (2 * size, size + nbytes);
 +        buffer = SAFE_ALLOCA (size);
 +        ptr = buffer + offset;
 +      }
 +
 +      ptr += copy_text (SDATA (name), (unsigned char *) ptr, nbytes,
 +                      STRING_MULTIBYTE (name), 1);
 +    }
 +
 +  if ((NILP (echo_string) || SCHARS (echo_string) == 0)
 +      && help_char_p (c))
 +    {
 +      static const char text[] = " (Type ? for further options)";
 +      int len = sizeof text - 1;
 +
 +      if (size - (ptr - buffer) < len)
 +      {
 +        ptrdiff_t offset = ptr - buffer;
 +        size += len;
 +        buffer = SAFE_ALLOCA (size);
 +        ptr = buffer + offset;
 +      }
 +
 +      memcpy (ptr, text, len);
 +      ptr += len;
 +    }
 +
 +  /* Replace a dash from echo_dash with a space, otherwise add a space
 +     at the end as a separator between keys.  */
 +  AUTO_STRING (space, " ");
 +  if (STRINGP (echo_string) && SCHARS (echo_string) > 1)
 +    {
 +      Lisp_Object last_char, prev_char, idx;
 +
 +      idx = make_number (SCHARS (echo_string) - 2);
 +      prev_char = Faref (echo_string, idx);
 +
 +      idx = make_number (SCHARS (echo_string) - 1);
 +      last_char = Faref (echo_string, idx);
 +
 +      /* We test PREV_CHAR to make sure this isn't the echoing of a
 +       minus-sign.  */
 +      if (XINT (last_char) == '-' && XINT (prev_char) != ' ')
 +      Faset (echo_string, idx, make_number (' '));
 +      else
 +      echo_string = concat2 (echo_string, space);
 +    }
 +  else if (STRINGP (echo_string) && SCHARS (echo_string) > 0)
 +    echo_string = concat2 (echo_string, space);
 +
 +  kset_echo_string
 +    (current_kboard,
 +     concat2 (echo_string, make_string (buffer, ptr - buffer)));
 +  SAFE_FREE ();
 +}
 +
 +/* Add C to the echo string, if echoing is going on.  C can be a
 +   character or a symbol.  */
 +
 +static void
 +echo_char (Lisp_Object c)
 +{
 +  if (current_kboard->immediate_echo)
 +    {
 +      echo_add_key (c);
 +      echo_now ();
 +    }
 +}
 +
 +/* Temporarily add a dash to the end of the echo string if it's not
 +   empty, so that it serves as a mini-prompt for the very next
 +   character.  */
 +
 +static void
 +echo_dash (void)
 +{
 +  /* Do nothing if not echoing at all.  */
 +  if (NILP (KVAR (current_kboard, echo_string)))
 +    return;
 +
 +  if (this_command_key_count == 0)
 +    return;
 +
 +  if (!current_kboard->immediate_echo
 +      && SCHARS (KVAR (current_kboard, echo_string)) == 0)
 +    return;
 +
 +  /* Do nothing if we just printed a prompt.  */
 +  if (current_kboard->echo_after_prompt
 +      == SCHARS (KVAR (current_kboard, echo_string)))
 +    return;
 +
 +  /* Do nothing if we have already put a dash at the end.  */
 +  if (SCHARS (KVAR (current_kboard, echo_string)) > 1)
 +    {
 +      Lisp_Object last_char, prev_char, idx;
 +
 +      idx = make_number (SCHARS (KVAR (current_kboard, echo_string)) - 2);
 +      prev_char = Faref (KVAR (current_kboard, echo_string), idx);
 +
 +      idx = make_number (SCHARS (KVAR (current_kboard, echo_string)) - 1);
 +      last_char = Faref (KVAR (current_kboard, echo_string), idx);
 +
 +      if (XINT (last_char) == '-' && XINT (prev_char) != ' ')
 +      return;
 +    }
 +
 +  /* Put a dash at the end of the buffer temporarily,
 +     but make it go away when the next character is added.  */
 +  AUTO_STRING (dash, "-");
 +  kset_echo_string (current_kboard,
 +                  concat2 (KVAR (current_kboard, echo_string), dash));
 +  echo_now ();
 +}
 +
 +/* Display the current echo string, and begin echoing if not already
 +   doing so.  */
 +
 +static void
 +echo_now (void)
 +{
 +  if (!current_kboard->immediate_echo)
 +    {
 +      ptrdiff_t i;
 +      current_kboard->immediate_echo = 1;
 +
 +      for (i = 0; i < this_command_key_count; i++)
 +      {
 +        Lisp_Object c;
 +
 +        /* Set before_command_echo_length to the value that would
 +           have been saved before the start of this subcommand in
 +           command_loop_1, if we had already been echoing then.  */
 +        if (i == this_single_command_key_start)
 +          before_command_echo_length = echo_length ();
 +
 +        c = AREF (this_command_keys, i);
 +        if (! (EVENT_HAS_PARAMETERS (c)
 +               && EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qmouse_movement)))
 +          echo_char (c);
 +      }
 +
 +      /* Set before_command_echo_length to the value that would
 +       have been saved before the start of this subcommand in
 +       command_loop_1, if we had already been echoing then.  */
 +      if (this_command_key_count == this_single_command_key_start)
 +      before_command_echo_length = echo_length ();
 +
 +      /* Put a dash at the end to invite the user to type more.  */
 +      echo_dash ();
 +    }
 +
 +  echoing = 1;
 +  /* FIXME: Use call (Qmessage) so it can be advised (e.g. emacspeak).  */
 +  message3_nolog (KVAR (current_kboard, echo_string));
 +  echoing = 0;
 +
 +  /* Record in what buffer we echoed, and from which kboard.  */
 +  echo_message_buffer = echo_area_buffer[0];
 +  echo_kboard = current_kboard;
 +
 +  if (waiting_for_input && !NILP (Vquit_flag))
 +    quit_throw_to_read_char (0);
 +}
 +
 +/* Turn off echoing, for the start of a new command.  */
 +
 +void
 +cancel_echoing (void)
 +{
 +  current_kboard->immediate_echo = 0;
 +  current_kboard->echo_after_prompt = -1;
 +  kset_echo_string (current_kboard, Qnil);
 +  ok_to_echo_at_next_pause = NULL;
 +  echo_kboard = NULL;
 +  echo_message_buffer = Qnil;
 +}
 +
 +/* Return the length of the current echo string.  */
 +
 +static ptrdiff_t
 +echo_length (void)
 +{
 +  return (STRINGP (KVAR (current_kboard, echo_string))
 +        ? SCHARS (KVAR (current_kboard, echo_string))
 +        : 0);
 +}
 +
 +/* Truncate the current echo message to its first LEN chars.
 +   This and echo_char get used by read_key_sequence when the user
 +   switches frames while entering a key sequence.  */
 +
 +static void
 +echo_truncate (ptrdiff_t nchars)
 +{
 +  if (STRINGP (KVAR (current_kboard, echo_string)))
 +    kset_echo_string (current_kboard,
 +                    Fsubstring (KVAR (current_kboard, echo_string),
 +                                make_number (0), make_number (nchars)));
 +  truncate_echo_area (nchars);
 +}
 +
 +\f
 +/* Functions for manipulating this_command_keys.  */
 +static void
 +add_command_key (Lisp_Object key)
 +{
 +#if 0 /* Not needed after we made Freset_this_command_lengths
 +       do the job immediately.  */
 +  /* If reset-this-command-length was called recently, obey it now.
 +     See the doc string of that function for an explanation of why.  */
 +  if (before_command_restore_flag)
 +    {
 +      this_command_key_count = before_command_key_count_1;
 +      if (this_command_key_count < this_single_command_key_start)
 +      this_single_command_key_start = this_command_key_count;
 +      echo_truncate (before_command_echo_length_1);
 +      before_command_restore_flag = 0;
 +    }
 +#endif
 +
 +  if (this_command_key_count >= ASIZE (this_command_keys))
 +    this_command_keys = larger_vector (this_command_keys, 1, -1);
 +
 +  ASET (this_command_keys, this_command_key_count, key);
 +  ++this_command_key_count;
 +}
 +
 +\f
 +Lisp_Object
 +recursive_edit_1 (void)
 +{
 +  ptrdiff_t count = SPECPDL_INDEX ();
 +  Lisp_Object val;
 +
 +  if (command_loop_level > 0)
 +    {
 +      specbind (Qstandard_output, Qt);
 +      specbind (Qstandard_input, Qt);
 +    }
 +
 +#ifdef HAVE_WINDOW_SYSTEM
 +  /* The command loop has started an hourglass timer, so we have to
 +     cancel it here, otherwise it will fire because the recursive edit
 +     can take some time.  Do not check for display_hourglass_p here,
 +     because it could already be nil.  */
 +    cancel_hourglass ();
 +#endif
 +
 +  /* This function may have been called from a debugger called from
 +     within redisplay, for instance by Edebugging a function called
 +     from fontification-functions.  We want to allow redisplay in
 +     the debugging session.
 +
 +     The recursive edit is left with a `(throw exit ...)'.  The `exit'
 +     tag is not caught anywhere in redisplay, i.e. when we leave the
 +     recursive edit, the original redisplay leading to the recursive
 +     edit will be unwound.  The outcome should therefore be safe.  */
 +  specbind (Qinhibit_redisplay, Qnil);
 +  redisplaying_p = 0;
 +
 +  val = command_loop ();
 +  if (EQ (val, Qt))
 +    Fsignal (Qquit, Qnil);
 +  /* Handle throw from read_minibuf when using minibuffer
 +     while it's active but we're in another window.  */
 +  if (STRINGP (val))
 +    xsignal1 (Qerror, val);
 +
 +  return unbind_to (count, Qnil);
 +}
 +
 +/* When an auto-save happens, record the "time", and don't do again soon.  */
 +
 +void
 +record_auto_save (void)
 +{
 +  last_auto_save = num_nonmacro_input_events;
 +}
 +
 +/* Make an auto save happen as soon as possible at command level.  */
 +
 +#ifdef SIGDANGER
 +void
 +force_auto_save_soon (void)
 +{
 +  last_auto_save = - auto_save_interval - 1;
 +
 +  record_asynch_buffer_change ();
 +}
 +#endif
 +\f
 +DEFUN ("recursive-edit", Frecursive_edit, Srecursive_edit, 0, 0, "",
 +       doc: /* Invoke the editor command loop recursively.
 +To get out of the recursive edit, a command can throw to `exit' -- for
 +instance `(throw 'exit nil)'.
 +If you throw a value other than t, `recursive-edit' returns normally
 +to the function that called it.  Throwing a t value causes
 +`recursive-edit' to quit, so that control returns to the command loop
 +one level up.
 +
 +This function is called by the editor initialization to begin editing.  */)
 +  (void)
 +{
 +  ptrdiff_t count = SPECPDL_INDEX ();
 +  Lisp_Object buffer;
 +
 +  /* If we enter while input is blocked, don't lock up here.
 +     This may happen through the debugger during redisplay.  */
 +  if (input_blocked_p ())
 +    return Qnil;
 +
 +  if (command_loop_level >= 0
 +      && current_buffer != XBUFFER (XWINDOW (selected_window)->contents))
 +    buffer = Fcurrent_buffer ();
 +  else
 +    buffer = Qnil;
 +
 +  /* Don't do anything interesting between the increment and the
 +     record_unwind_protect!  Otherwise, we could get distracted and
 +     never decrement the counter again.  */
 +  command_loop_level++;
 +  update_mode_lines = 17;
 +  record_unwind_protect (recursive_edit_unwind, buffer);
 +
 +  /* If we leave recursive_edit_1 below with a `throw' for instance,
 +     like it is done in the splash screen display, we have to
 +     make sure that we restore single_kboard as command_loop_1
 +     would have done if it were left normally.  */
 +  if (command_loop_level > 0)
 +    temporarily_switch_to_single_kboard (SELECTED_FRAME ());
 +
 +  recursive_edit_1 ();
 +  return unbind_to (count, Qnil);
 +}
 +
 +void
 +recursive_edit_unwind (Lisp_Object buffer)
 +{
 +  if (BUFFERP (buffer))
 +    Fset_buffer (buffer);
 +
 +  command_loop_level--;
 +  update_mode_lines = 18;
 +}
 +
 +\f
 +#if 0  /* These two functions are now replaced with
 +          temporarily_switch_to_single_kboard.  */
 +static void
 +any_kboard_state ()
 +{
 +#if 0 /* Theory: if there's anything in Vunread_command_events,
 +       it will right away be read by read_key_sequence,
 +       and then if we do switch KBOARDS, it will go into the side
 +       queue then.  So we don't need to do anything special here -- rms.  */
 +  if (CONSP (Vunread_command_events))
 +    {
 +      current_kboard->kbd_queue
 +      = nconc2 (Vunread_command_events, current_kboard->kbd_queue);
 +      current_kboard->kbd_queue_has_data = 1;
 +    }
 +  Vunread_command_events = Qnil;
 +#endif
 +  single_kboard = 0;
 +}
 +
 +/* Switch to the single-kboard state, making current_kboard
 +   the only KBOARD from which further input is accepted.  */
 +
 +void
 +single_kboard_state ()
 +{
 +  single_kboard = 1;
 +}
 +#endif
 +
 +/* If we're in single_kboard state for kboard KBOARD,
 +   get out of it.  */
 +
 +void
 +not_single_kboard_state (KBOARD *kboard)
 +{
 +  if (kboard == current_kboard)
 +    single_kboard = 0;
 +}
 +
 +/* Maintain a stack of kboards, so other parts of Emacs
 +   can switch temporarily to the kboard of a given frame
 +   and then revert to the previous status.  */
 +
 +struct kboard_stack
 +{
 +  KBOARD *kboard;
 +  struct kboard_stack *next;
 +};
 +
 +static struct kboard_stack *kboard_stack;
 +
 +void
 +push_kboard (struct kboard *k)
 +{
 +  struct kboard_stack *p = xmalloc (sizeof *p);
 +
 +  p->next = kboard_stack;
 +  p->kboard = current_kboard;
 +  kboard_stack = p;
 +
 +  current_kboard = k;
 +}
 +
 +void
 +pop_kboard (void)
 +{
 +  struct terminal *t;
 +  struct kboard_stack *p = kboard_stack;
 +  bool found = 0;
 +  for (t = terminal_list; t; t = t->next_terminal)
 +    {
 +      if (t->kboard == p->kboard)
 +        {
 +          current_kboard = p->kboard;
 +          found = 1;
 +          break;
 +        }
 +    }
 +  if (!found)
 +    {
 +      /* The terminal we remembered has been deleted.  */
 +      current_kboard = FRAME_KBOARD (SELECTED_FRAME ());
 +      single_kboard = 0;
 +    }
 +  kboard_stack = p->next;
 +  xfree (p);
 +}
 +
 +/* Switch to single_kboard mode, making current_kboard the only KBOARD
 +  from which further input is accepted.  If F is non-nil, set its
 +  KBOARD as the current keyboard.
 +
 +  This function uses record_unwind_protect_int to return to the previous
 +  state later.
 +
 +  If Emacs is already in single_kboard mode, and F's keyboard is
 +  locked, then this function will throw an error.  */
 +
 +void
 +temporarily_switch_to_single_kboard (struct frame *f)
 +{
 +  bool was_locked = single_kboard;
 +  if (was_locked)
 +    {
 +      if (f != NULL && FRAME_KBOARD (f) != current_kboard)
 +        /* We can not switch keyboards while in single_kboard mode.
 +           In rare cases, Lisp code may call `recursive-edit' (or
 +           `read-minibuffer' or `y-or-n-p') after it switched to a
 +           locked frame.  For example, this is likely to happen
 +           when server.el connects to a new terminal while Emacs is in
 +           single_kboard mode.  It is best to throw an error instead
 +           of presenting the user with a frozen screen.  */
 +        error ("Terminal %d is locked, cannot read from it",
 +               FRAME_TERMINAL (f)->id);
 +      else
 +        /* This call is unnecessary, but helps
 +           `restore_kboard_configuration' discover if somebody changed
 +           `current_kboard' behind our back.  */
 +        push_kboard (current_kboard);
 +    }
 +  else if (f != NULL)
 +    current_kboard = FRAME_KBOARD (f);
 +  single_kboard = 1;
 +  record_unwind_protect_int (restore_kboard_configuration, was_locked);
 +}
 +
 +#if 0 /* This function is not needed anymore.  */
 +void
 +record_single_kboard_state ()
 +{
 +  if (single_kboard)
 +    push_kboard (current_kboard);
 +  record_unwind_protect_int (restore_kboard_configuration, single_kboard);
 +}
 +#endif
 +
 +static void
 +restore_kboard_configuration (int was_locked)
 +{
 +  single_kboard = was_locked;
 +  if (was_locked)
 +    {
 +      struct kboard *prev = current_kboard;
 +      pop_kboard ();
 +      /* The pop should not change the kboard.  */
 +      if (single_kboard && current_kboard != prev)
 +        emacs_abort ();
 +    }
 +}
 +
 +\f
 +/* Handle errors that are not handled at inner levels
 +   by printing an error message and returning to the editor command loop.  */
 +
 +static Lisp_Object
 +cmd_error (Lisp_Object data)
 +{
 +  Lisp_Object old_level, old_length;
 +  char macroerror[sizeof "After..kbd macro iterations: "
 +                + INT_STRLEN_BOUND (EMACS_INT)];
 +
 +#ifdef HAVE_WINDOW_SYSTEM
 +  if (display_hourglass_p)
 +    cancel_hourglass ();
 +#endif
 +
 +  if (!NILP (executing_kbd_macro))
 +    {
 +      if (executing_kbd_macro_iterations == 1)
 +      sprintf (macroerror, "After 1 kbd macro iteration: ");
 +      else
 +      sprintf (macroerror, "After %"pI"d kbd macro iterations: ",
 +               executing_kbd_macro_iterations);
 +    }
 +  else
 +    *macroerror = 0;
 +
 +  Vstandard_output = Qt;
 +  Vstandard_input = Qt;
 +  Vexecuting_kbd_macro = Qnil;
 +  executing_kbd_macro = Qnil;
 +  kset_prefix_arg (current_kboard, Qnil);
 +  kset_last_prefix_arg (current_kboard, Qnil);
 +  cancel_echoing ();
 +
 +  /* Avoid unquittable loop if data contains a circular list.  */
 +  old_level = Vprint_level;
 +  old_length = Vprint_length;
 +  XSETFASTINT (Vprint_level, 10);
 +  XSETFASTINT (Vprint_length, 10);
 +  cmd_error_internal (data, macroerror);
 +  Vprint_level = old_level;
 +  Vprint_length = old_length;
 +
 +  Vquit_flag = Qnil;
 +  Vinhibit_quit = Qnil;
 +
 +  return make_number (0);
 +}
 +
 +/* Take actions on handling an error.  DATA is the data that describes
 +   the error.
 +
 +   CONTEXT is a C-string containing ASCII characters only which
 +   describes the context in which the error happened.  If we need to
 +   generalize CONTEXT to allow multibyte characters, make it a Lisp
 +   string.  */
 +
 +void
 +cmd_error_internal (Lisp_Object data, const char *context)
 +{
 +  /* The immediate context is not interesting for Quits,
 +     since they are asynchronous.  */
 +  if (EQ (XCAR (data), Qquit))
 +    Vsignaling_function = Qnil;
 +
 +  Vquit_flag = Qnil;
 +  Vinhibit_quit = Qt;
 +
 +  /* Use user's specified output function if any.  */
 +  if (!NILP (Vcommand_error_function))
 +    call3 (Vcommand_error_function, data,
 +         context ? build_string (context) : empty_unibyte_string,
 +         Vsignaling_function);
 +
 +  Vsignaling_function = Qnil;
 +}
 +
 +DEFUN ("command-error-default-function", Fcommand_error_default_function,
 +       Scommand_error_default_function, 3, 3, 0,
 +       doc: /* Produce default output for unhandled error message.
 +Default value of `command-error-function'.  */)
 +  (Lisp_Object data, Lisp_Object context, Lisp_Object signal)
 +{
 +  struct frame *sf = SELECTED_FRAME ();
 +
 +  CHECK_STRING (context);
 +
 +  /* If the window system or terminal frame hasn't been initialized
 +     yet, or we're not interactive, write the message to stderr and exit.  */
 +  if (!sf->glyphs_initialized_p
 +         /* The initial frame is a special non-displaying frame. It
 +            will be current in daemon mode when there are no frames
 +            to display, and in non-daemon mode before the real frame
 +            has finished initializing.  If an error is thrown in the
 +            latter case while creating the frame, then the frame
 +            will never be displayed, so the safest thing to do is
 +            write to stderr and quit.  In daemon mode, there are
 +            many other potential errors that do not prevent frames
 +            from being created, so continuing as normal is better in
 +            that case.  */
 +         || (!IS_DAEMON && FRAME_INITIAL_P (sf))
 +         || noninteractive)
 +    {
 +      print_error_message (data, Qexternal_debugging_output,
 +                         SSDATA (context), signal);
 +      Fterpri (Qexternal_debugging_output, Qnil);
 +      Fkill_emacs (make_number (-1));
 +    }
 +  else
 +    {
 +      clear_message (1, 0);
 +      Fdiscard_input ();
 +      message_log_maybe_newline ();
 +      bitch_at_user ();
 +
 +      print_error_message (data, Qt, SSDATA (context), signal);
 +    }
 +  return Qnil;
 +}
 +
 +static Lisp_Object command_loop_2 (Lisp_Object);
 +static Lisp_Object top_level_1 (Lisp_Object);
 +
 +/* Entry to editor-command-loop.
 +   This level has the catches for exiting/returning to editor command loop.
 +   It returns nil to exit recursive edit, t to abort it.  */
 +
 +Lisp_Object
 +command_loop (void)
 +{
 +#ifdef HAVE_STACK_OVERFLOW_HANDLING
 +  /* At least on GNU/Linux, saving signal mask is important here.  */
 +  if (sigsetjmp (return_to_command_loop, 1) != 0)
 +    {
 +      /* Comes here from handle_sigsegv, see sysdep.c.  */
 +      init_eval ();
 +      Vinternal__top_level_message = recover_top_level_message;
 +    }
 +  else
 +    Vinternal__top_level_message = regular_top_level_message;
 +#endif /* HAVE_STACK_OVERFLOW_HANDLING */
 +  if (command_loop_level > 0 || minibuf_level > 0)
 +    {
 +      Lisp_Object val;
 +      val = internal_catch (Qexit, command_loop_2, Qnil);
 +      executing_kbd_macro = Qnil;
 +      return val;
 +    }
 +  else
 +    while (1)
 +      {
 +      internal_catch (Qtop_level, top_level_1, Qnil);
 +      internal_catch (Qtop_level, command_loop_2, Qnil);
 +      executing_kbd_macro = Qnil;
 +
 +      /* End of file in -batch run causes exit here.  */
 +      if (noninteractive)
 +        Fkill_emacs (Qt);
 +      }
 +}
 +
 +/* Here we catch errors in execution of commands within the
 +   editing loop, and reenter the editing loop.
 +   When there is an error, cmd_error runs and returns a non-nil
 +   value to us.  A value of nil means that command_loop_1 itself
 +   returned due to end of file (or end of kbd macro).  */
 +
 +static Lisp_Object
 +command_loop_2 (Lisp_Object ignore)
 +{
 +  register Lisp_Object val;
 +
 +  do
 +    val = internal_condition_case (command_loop_1, Qerror, cmd_error);
 +  while (!NILP (val));
 +
 +  return Qnil;
 +}
 +
 +static Lisp_Object
 +top_level_2 (void)
 +{
 +  return Feval (Vtop_level, Qnil);
 +}
 +
 +static Lisp_Object
 +top_level_1 (Lisp_Object ignore)
 +{
 +  /* On entry to the outer level, run the startup file.  */
 +  if (!NILP (Vtop_level))
 +    internal_condition_case (top_level_2, Qerror, cmd_error);
 +  else if (!NILP (Vpurify_flag))
 +    message1 ("Bare impure Emacs (standard Lisp code not loaded)");
 +  else
 +    message1 ("Bare Emacs (standard Lisp code not loaded)");
 +  return Qnil;
 +}
 +
 +DEFUN ("top-level", Ftop_level, Stop_level, 0, 0, "",
 +       doc: /* Exit all recursive editing levels.
 +This also exits all active minibuffers.  */
 +       attributes: noreturn)
 +  (void)
 +{
 +#ifdef HAVE_WINDOW_SYSTEM
 +  if (display_hourglass_p)
 +    cancel_hourglass ();
 +#endif
 +
 +  /* Unblock input if we enter with input blocked.  This may happen if
 +     redisplay traps e.g. during tool-bar update with input blocked.  */
 +  totally_unblock_input ();
 +
 +  Fthrow (Qtop_level, Qnil);
 +}
 +
 +static _Noreturn void
 +user_error (const char *msg)
 +{
 +  xsignal1 (Quser_error, build_string (msg));
 +}
 +
 +/* _Noreturn will be added to prototype by make-docfile.  */
 +DEFUN ("exit-recursive-edit", Fexit_recursive_edit, Sexit_recursive_edit, 0, 0, "",
 +       doc: /* Exit from the innermost recursive edit or minibuffer.  */
 +       attributes: noreturn)
 +  (void)
 +{
 +  if (command_loop_level > 0 || minibuf_level > 0)
 +    Fthrow (Qexit, Qnil);
 +
 +  user_error ("No recursive edit is in progress");
 +}
 +
 +/* _Noreturn will be added to prototype by make-docfile.  */
 +DEFUN ("abort-recursive-edit", Fabort_recursive_edit, Sabort_recursive_edit, 0, 0, "",
 +       doc: /* Abort the command that requested this recursive edit or minibuffer input.  */
 +       attributes: noreturn)
 +  (void)
 +{
 +  if (command_loop_level > 0 || minibuf_level > 0)
 +    Fthrow (Qexit, Qt);
 +
 +  user_error ("No recursive edit is in progress");
 +}
 +\f
 +/* Restore mouse tracking enablement.  See Ftrack_mouse for the only use
 +   of this function.  */
 +
 +static void
 +tracking_off (Lisp_Object old_value)
 +{
 +  do_mouse_tracking = old_value;
 +  if (NILP (old_value))
 +    {
 +      /* Redisplay may have been preempted because there was input
 +       available, and it assumes it will be called again after the
 +       input has been processed.  If the only input available was
 +       the sort that we have just disabled, then we need to call
 +       redisplay.  */
 +      if (!readable_events (READABLE_EVENTS_DO_TIMERS_NOW))
 +      {
 +        redisplay_preserve_echo_area (6);
 +        get_input_pending (READABLE_EVENTS_DO_TIMERS_NOW);
 +      }
 +    }
 +}
 +
 +DEFUN ("internal--track-mouse", Ftrack_mouse, Strack_mouse, 1, 1, 0,
 +       doc: /* Call BODYFUN with mouse movement events enabled.  */)
 +  (Lisp_Object bodyfun)
 +{
 +  ptrdiff_t count = SPECPDL_INDEX ();
 +  Lisp_Object val;
 +
 +  record_unwind_protect (tracking_off, do_mouse_tracking);
 +
 +  do_mouse_tracking = Qt;
 +
 +  val = call0 (bodyfun);
 +  return unbind_to (count, val);
 +}
 +
 +/* If mouse has moved on some frame, return one of those frames.
 +
 +   Return 0 otherwise.
 +
 +   If ignore_mouse_drag_p is non-zero, ignore (implicit) mouse movement
 +   after resizing the tool-bar window.  */
 +
 +bool ignore_mouse_drag_p;
 +
 +static struct frame *
 +some_mouse_moved (void)
 +{
 +  Lisp_Object tail, frame;
 +
 +  if (ignore_mouse_drag_p)
 +    {
 +      /* ignore_mouse_drag_p = 0; */
 +      return 0;
 +    }
 +
 +  FOR_EACH_FRAME (tail, frame)
 +    {
 +      if (XFRAME (frame)->mouse_moved)
 +      return XFRAME (frame);
 +    }
 +
 +  return 0;
 +}
 +
 +\f
 +/* This is the actual command reading loop,
 +   sans error-handling encapsulation.  */
 +
 +static int read_key_sequence (Lisp_Object *, int, Lisp_Object,
 +                              bool, bool, bool, bool);
 +static void adjust_point_for_property (ptrdiff_t, bool);
 +
 +/* The last boundary auto-added to buffer-undo-list.  */
 +Lisp_Object last_undo_boundary;
 +
 +/* FIXME: This is wrong rather than test window-system, we should call
 +   a new set-selection, which will then dispatch to x-set-selection, or
 +   tty-set-selection, or w32-set-selection, ...  */
 +
 +Lisp_Object
 +command_loop_1 (void)
 +{
 +  Lisp_Object cmd;
 +  Lisp_Object keybuf[30];
 +  int i;
 +  EMACS_INT prev_modiff = 0;
 +  struct buffer *prev_buffer = NULL;
 +  bool already_adjusted = 0;
 +
 +  kset_prefix_arg (current_kboard, Qnil);
 +  kset_last_prefix_arg (current_kboard, Qnil);
 +  Vdeactivate_mark = Qnil;
 +  waiting_for_input = 0;
 +  cancel_echoing ();
 +
 +  this_command_key_count = 0;
 +  this_command_key_count_reset = 0;
 +  this_single_command_key_start = 0;
 +
 +  if (NILP (Vmemory_full))
 +    {
 +      /* Make sure this hook runs after commands that get errors and
 +       throw to top level.  */
 +      /* Note that the value cell will never directly contain nil
 +       if the symbol is a local variable.  */
 +      if (!NILP (Vpost_command_hook) && !NILP (Vrun_hooks))
 +      safe_run_hooks (Qpost_command_hook);
 +
 +      /* If displaying a message, resize the echo area window to fit
 +       that message's size exactly.  */
 +      if (!NILP (echo_area_buffer[0]))
 +      resize_echo_area_exactly ();
 +
 +      /* If there are warnings waiting, process them.  */
 +      if (!NILP (Vdelayed_warnings_list))
 +        safe_run_hooks (Qdelayed_warnings_hook);
 +
 +      if (!NILP (Vdeferred_action_list))
 +      safe_run_hooks (Qdeferred_action_function);
 +    }
 +
 +  /* Do this after running Vpost_command_hook, for consistency.  */
 +  kset_last_command (current_kboard, Vthis_command);
 +  kset_real_last_command (current_kboard, Vreal_this_command);
 +  if (!CONSP (last_command_event))
 +    kset_last_repeatable_command (current_kboard, Vreal_this_command);
 +
 +  while (1)
 +    {
 +      if (! FRAME_LIVE_P (XFRAME (selected_frame)))
 +      Fkill_emacs (Qnil);
 +
 +      /* Make sure the current window's buffer is selected.  */
 +      set_buffer_internal (XBUFFER (XWINDOW (selected_window)->contents));
 +
 +      /* Display any malloc warning that just came out.  Use while because
 +       displaying one warning can cause another.  */
 +
 +      while (pending_malloc_warning)
 +      display_malloc_warning ();
 +
 +      Vdeactivate_mark = Qnil;
 +
 +      /* Don't ignore mouse movements for more than a single command
 +       loop.  (This flag is set in xdisp.c whenever the tool bar is
 +       resized, because the resize moves text up or down, and would
 +       generate false mouse drag events if we don't ignore them.)  */
 +      ignore_mouse_drag_p = 0;
 +
 +      /* If minibuffer on and echo area in use,
 +       wait a short time and redraw minibuffer.  */
 +
 +      if (minibuf_level
 +        && !NILP (echo_area_buffer[0])
 +        && EQ (minibuf_window, echo_area_window)
 +        && NUMBERP (Vminibuffer_message_timeout))
 +      {
 +        /* Bind inhibit-quit to t so that C-g gets read in
 +           rather than quitting back to the minibuffer.  */
 +        ptrdiff_t count = SPECPDL_INDEX ();
 +        specbind (Qinhibit_quit, Qt);
 +
 +        sit_for (Vminibuffer_message_timeout, 0, 2);
 +
 +        /* Clear the echo area.  */
 +        message1 (0);
 +        safe_run_hooks (Qecho_area_clear_hook);
 +
 +        unbind_to (count, Qnil);
 +
 +        /* If a C-g came in before, treat it as input now.  */
 +        if (!NILP (Vquit_flag))
 +          {
 +            Vquit_flag = Qnil;
 +            Vunread_command_events = list1 (make_number (quit_char));
 +          }
 +      }
 +
 +      /* If it has changed current-menubar from previous value,
 +       really recompute the menubar from the value.  */
 +      if (! NILP (Vlucid_menu_bar_dirty_flag)
 +        && !NILP (Ffboundp (Qrecompute_lucid_menubar)))
 +      call0 (Qrecompute_lucid_menubar);
 +
 +      before_command_key_count = this_command_key_count;
 +      before_command_echo_length = echo_length ();
 +
 +      Vthis_command = Qnil;
 +      Vreal_this_command = Qnil;
 +      Vthis_original_command = Qnil;
 +      Vthis_command_keys_shift_translated = Qnil;
 +
 +      /* Read next key sequence; i gets its length.  */
 +      i = read_key_sequence (keybuf, ARRAYELTS (keybuf),
 +                           Qnil, 0, 1, 1, 0);
 +
 +      /* A filter may have run while we were reading the input.  */
 +      if (! FRAME_LIVE_P (XFRAME (selected_frame)))
 +      Fkill_emacs (Qnil);
 +      set_buffer_internal (XBUFFER (XWINDOW (selected_window)->contents));
 +
 +      ++num_input_keys;
 +
 +      /* Now we have read a key sequence of length I,
 +       or else I is 0 and we found end of file.  */
 +
 +      if (i == 0)             /* End of file -- happens only in */
 +      return Qnil;            /* a kbd macro, at the end.  */
 +      /* -1 means read_key_sequence got a menu that was rejected.
 +       Just loop around and read another command.  */
 +      if (i == -1)
 +      {
 +        cancel_echoing ();
 +        this_command_key_count = 0;
 +        this_command_key_count_reset = 0;
 +        this_single_command_key_start = 0;
 +        goto finalize;
 +      }
 +
 +      last_command_event = keybuf[i - 1];
 +
 +      /* If the previous command tried to force a specific window-start,
 +       forget about that, in case this command moves point far away
 +       from that position.  But also throw away beg_unchanged and
 +       end_unchanged information in that case, so that redisplay will
 +       update the whole window properly.  */
 +      if (XWINDOW (selected_window)->force_start)
 +      {
 +        struct buffer *b;
 +        XWINDOW (selected_window)->force_start = 0;
 +        b = XBUFFER (XWINDOW (selected_window)->contents);
 +        BUF_BEG_UNCHANGED (b) = BUF_END_UNCHANGED (b) = 0;
 +      }
 +
 +      cmd = read_key_sequence_cmd;
 +      if (!NILP (Vexecuting_kbd_macro))
 +      {
 +        if (!NILP (Vquit_flag))
 +          {
 +            Vexecuting_kbd_macro = Qt;
 +            QUIT;             /* Make some noise.  */
 +                              /* Will return since macro now empty.  */
 +          }
 +      }
 +
 +      /* Do redisplay processing after this command except in special
 +       cases identified below.  */
 +      prev_buffer = current_buffer;
 +      prev_modiff = MODIFF;
 +      last_point_position = PT;
 +
 +      /* By default, we adjust point to a boundary of a region that
 +         has such a property that should be treated intangible
 +         (e.g. composition, display).  But, some commands will set
 +         this variable differently.  */
 +      Vdisable_point_adjustment = Qnil;
 +
 +      /* Process filters and timers may have messed with deactivate-mark.
 +       reset it before we execute the command.  */
 +      Vdeactivate_mark = Qnil;
 +
 +      /* Remap command through active keymaps.  */
 +      Vthis_original_command = cmd;
 +      if (!NILP (read_key_sequence_remapped))
 +      cmd = read_key_sequence_remapped;
 +
 +      /* Execute the command.  */
 +
 +      {
 +      total_keys += total_keys < NUM_RECENT_KEYS;
 +      ASET (recent_keys, recent_keys_index,
 +            Fcons (Qnil, cmd));
 +      if (++recent_keys_index >= NUM_RECENT_KEYS)
 +        recent_keys_index = 0;
 +      }
 +      Vthis_command = cmd;
 +      Vreal_this_command = cmd;
 +      safe_run_hooks (Qpre_command_hook);
 +
 +      already_adjusted = 0;
 +
 +      if (NILP (Vthis_command))
 +      /* nil means key is undefined.  */
 +      call0 (Qundefined);
 +      else
 +      {
 +        /* Here for a command that isn't executed directly.  */
 +
 +#ifdef HAVE_WINDOW_SYSTEM
 +            ptrdiff_t scount = SPECPDL_INDEX ();
 +
 +            if (display_hourglass_p
 +                && NILP (Vexecuting_kbd_macro))
 +              {
 +                record_unwind_protect_void (cancel_hourglass);
 +                start_hourglass ();
 +              }
 +#endif
 +
 +            if (NILP (KVAR (current_kboard, Vprefix_arg))) /* FIXME: Why?  --Stef  */
 +              {
 +              Lisp_Object undo = BVAR (current_buffer, undo_list);
 +              Fundo_boundary ();
 +              last_undo_boundary
 +                = (EQ (undo, BVAR (current_buffer, undo_list))
 +                   ? Qnil : BVAR (current_buffer, undo_list));
 +            }
 +            call1 (Qcommand_execute, Vthis_command);
 +
 +#ifdef HAVE_WINDOW_SYSTEM
 +        /* Do not check display_hourglass_p here, because
 +           `command-execute' could change it, but we should cancel
 +           hourglass cursor anyway.
 +           But don't cancel the hourglass within a macro
 +           just because a command in the macro finishes.  */
 +        if (NILP (Vexecuting_kbd_macro))
 +            unbind_to (scount, Qnil);
 +#endif
 +          }
 +      kset_last_prefix_arg (current_kboard, Vcurrent_prefix_arg);
 +
 +      safe_run_hooks (Qpost_command_hook);
 +
 +      /* If displaying a message, resize the echo area window to fit
 +       that message's size exactly.  */
 +      if (!NILP (echo_area_buffer[0]))
 +      resize_echo_area_exactly ();
 +
 +      /* If there are warnings waiting, process them.  */
 +      if (!NILP (Vdelayed_warnings_list))
 +        safe_run_hooks (Qdelayed_warnings_hook);
 +
 +      safe_run_hooks (Qdeferred_action_function);
 +
 +      /* If there is a prefix argument,
 +       1) We don't want Vlast_command to be ``universal-argument''
 +       (that would be dumb), so don't set Vlast_command,
 +       2) we want to leave echoing on so that the prefix will be
 +       echoed as part of this key sequence, so don't call
 +       cancel_echoing, and
 +       3) we want to leave this_command_key_count non-zero, so that
 +       read_char will realize that it is re-reading a character, and
 +       not echo it a second time.
 +
 +       If the command didn't actually create a prefix arg,
 +       but is merely a frame event that is transparent to prefix args,
 +       then the above doesn't apply.  */
 +      if (NILP (KVAR (current_kboard, Vprefix_arg))
 +        || CONSP (last_command_event))
 +      {
 +        kset_last_command (current_kboard, Vthis_command);
 +        kset_real_last_command (current_kboard, Vreal_this_command);
 +        if (!CONSP (last_command_event))
 +          kset_last_repeatable_command (current_kboard, Vreal_this_command);
 +        cancel_echoing ();
 +        this_command_key_count = 0;
 +        this_command_key_count_reset = 0;
 +        this_single_command_key_start = 0;
 +      }
 +
 +      if (!NILP (BVAR (current_buffer, mark_active))
 +        && !NILP (Vrun_hooks))
 +      {
 +        /* In Emacs 22, setting transient-mark-mode to `only' was a
 +           way of turning it on for just one command.  This usage is
 +           obsolete, but support it anyway.  */
 +        if (EQ (Vtransient_mark_mode, Qidentity))
 +          Vtransient_mark_mode = Qnil;
 +        else if (EQ (Vtransient_mark_mode, Qonly))
 +          Vtransient_mark_mode = Qidentity;
 +
 +        if (!NILP (Vdeactivate_mark))
 +          /* If `select-active-regions' is non-nil, this call to
 +             `deactivate-mark' also sets the PRIMARY selection.  */
 +          call0 (Qdeactivate_mark);
 +        else
 +          {
 +            /* Even if not deactivating the mark, set PRIMARY if
 +               `select-active-regions' is non-nil.  */
 +            if (!NILP (Fwindow_system (Qnil))
 +                /* Even if mark_active is non-nil, the actual buffer
 +                   marker may not have been set yet (Bug#7044).  */
 +                && XMARKER (BVAR (current_buffer, mark))->buffer
 +                && (EQ (Vselect_active_regions, Qonly)
 +                    ? EQ (CAR_SAFE (Vtransient_mark_mode), Qonly)
 +                    : (!NILP (Vselect_active_regions)
 +                       && !NILP (Vtransient_mark_mode)))
 +                && NILP (Fmemq (Vthis_command,
 +                                Vselection_inhibit_update_commands)))
 +              {
 +                Lisp_Object txt
 +                  = call1 (Fsymbol_value (Qregion_extract_function), Qnil);
 +                if (XINT (Flength (txt)) > 0)
 +                  /* Don't set empty selections.  */
 +                  call2 (Qgui_set_selection, QPRIMARY, txt);
 +              }
 +
 +            if (current_buffer != prev_buffer || MODIFF != prev_modiff)
 +              run_hook (intern ("activate-mark-hook"));
 +          }
 +
 +        Vsaved_region_selection = Qnil;
 +      }
 +
 +    finalize:
 +
 +      if (current_buffer == prev_buffer
 +        && last_point_position != PT
 +        && NILP (Vdisable_point_adjustment)
 +        && NILP (Vglobal_disable_point_adjustment))
 +      {
 +        if (last_point_position > BEGV
 +            && last_point_position < ZV
 +            && (composition_adjust_point (last_point_position,
 +                                          last_point_position)
 +                != last_point_position))
 +          /* The last point was temporarily set within a grapheme
 +             cluster to prevent automatic composition.  To recover
 +             the automatic composition, we must update the
 +             display.  */
 +          windows_or_buffers_changed = 21;
 +        if (!already_adjusted)
 +          adjust_point_for_property (last_point_position,
 +                                     MODIFF != prev_modiff);
 +      }
 +
 +      /* Install chars successfully executed in kbd macro.  */
 +
 +      if (!NILP (KVAR (current_kboard, defining_kbd_macro))
 +        && NILP (KVAR (current_kboard, Vprefix_arg)))
 +      finalize_kbd_macro_chars ();
 +    }
 +}
 +
 +Lisp_Object
 +read_menu_command (void)
 +{
 +  Lisp_Object keybuf[30];
 +  ptrdiff_t count = SPECPDL_INDEX ();
 +  int i;
 +
 +  /* We don't want to echo the keystrokes while navigating the
 +     menus.  */
 +  specbind (Qecho_keystrokes, make_number (0));
 +
 +  i = read_key_sequence (keybuf, ARRAYELTS (keybuf),
 +                       Qnil, 0, 1, 1, 1);
 +
 +  unbind_to (count, Qnil);
 +
 +  if (! FRAME_LIVE_P (XFRAME (selected_frame)))
 +    Fkill_emacs (Qnil);
 +  if (i == 0 || i == -1)
 +    return Qt;
 +
 +  return read_key_sequence_cmd;
 +}
 +
 +/* Adjust point to a boundary of a region that has such a property
 +   that should be treated intangible.  For the moment, we check
 +   `composition', `display' and `invisible' properties.
 +   LAST_PT is the last position of point.  */
 +
 +static void
 +adjust_point_for_property (ptrdiff_t last_pt, bool modified)
 +{
 +  ptrdiff_t beg, end;
 +  Lisp_Object val, overlay, tmp;
 +  /* When called after buffer modification, we should temporarily
 +     suppress the point adjustment for automatic composition so that a
 +     user can keep inserting another character at point or keep
 +     deleting characters around point.  */
 +  bool check_composition = ! modified, check_display = 1, check_invisible = 1;
 +  ptrdiff_t orig_pt = PT;
 +
 +  /* FIXME: cycling is probably not necessary because these properties
 +     can't be usefully combined anyway.  */
 +  while (check_composition || check_display || check_invisible)
 +    {
 +      /* FIXME: check `intangible'.  */
 +      if (check_composition
 +        && PT > BEGV && PT < ZV
 +        && (beg = composition_adjust_point (last_pt, PT)) != PT)
 +      {
 +        SET_PT (beg);
 +        check_display = check_invisible = 1;
 +      }
 +      check_composition = 0;
 +      if (check_display
 +        && PT > BEGV && PT < ZV
 +        && !NILP (val = get_char_property_and_overlay
 +                            (make_number (PT), Qdisplay, Qnil, &overlay))
 +        && display_prop_intangible_p (val, overlay, PT, PT_BYTE)
 +        && (!OVERLAYP (overlay)
 +            ? get_property_and_range (PT, Qdisplay, &val, &beg, &end, Qnil)
 +            : (beg = OVERLAY_POSITION (OVERLAY_START (overlay)),
 +               end = OVERLAY_POSITION (OVERLAY_END (overlay))))
 +        && (beg < PT /* && end > PT   <- It's always the case.  */
 +            || (beg <= PT && STRINGP (val) && SCHARS (val) == 0)))
 +      {
 +        eassert (end > PT);
 +        SET_PT (PT < last_pt
 +                ? (STRINGP (val) && SCHARS (val) == 0
 +                   ? max (beg - 1, BEGV)
 +                   : beg)
 +                : end);
 +        check_composition = check_invisible = 1;
 +      }
 +      check_display = 0;
 +      if (check_invisible && PT > BEGV && PT < ZV)
 +      {
 +        int inv;
 +        bool ellipsis = 0;
 +        beg = end = PT;
 +
 +        /* Find boundaries `beg' and `end' of the invisible area, if any.  */
 +        while (end < ZV
 +#if 0
 +               /* FIXME: We should stop if we find a spot between
 +                  two runs of `invisible' where inserted text would
 +                  be visible.  This is important when we have two
 +                  invisible boundaries that enclose an area: if the
 +                  area is empty, we need this test in order to make
 +                  it possible to place point in the middle rather
 +                  than skip both boundaries.  However, this code
 +                  also stops anywhere in a non-sticky text-property,
 +                  which breaks (e.g.) Org mode.  */
 +               && (val = Fget_pos_property (make_number (end),
 +                                            Qinvisible, Qnil),
 +                   TEXT_PROP_MEANS_INVISIBLE (val))
 +#endif
 +               && !NILP (val = get_char_property_and_overlay
 +                         (make_number (end), Qinvisible, Qnil, &overlay))
 +               && (inv = TEXT_PROP_MEANS_INVISIBLE (val)))
 +          {
 +            ellipsis = ellipsis || inv > 1
 +              || (OVERLAYP (overlay)
 +                  && (!NILP (Foverlay_get (overlay, Qafter_string))
 +                      || !NILP (Foverlay_get (overlay, Qbefore_string))));
 +            tmp = Fnext_single_char_property_change
 +              (make_number (end), Qinvisible, Qnil, Qnil);
 +            end = NATNUMP (tmp) ? XFASTINT (tmp) : ZV;
 +          }
 +        while (beg > BEGV
 +#if 0
 +               && (val = Fget_pos_property (make_number (beg),
 +                                            Qinvisible, Qnil),
 +                   TEXT_PROP_MEANS_INVISIBLE (val))
 +#endif
 +               && !NILP (val = get_char_property_and_overlay
 +                         (make_number (beg - 1), Qinvisible, Qnil, &overlay))
 +               && (inv = TEXT_PROP_MEANS_INVISIBLE (val)))
 +          {
 +            ellipsis = ellipsis || inv > 1
 +              || (OVERLAYP (overlay)
 +                  && (!NILP (Foverlay_get (overlay, Qafter_string))
 +                      || !NILP (Foverlay_get (overlay, Qbefore_string))));
 +            tmp = Fprevious_single_char_property_change
 +              (make_number (beg), Qinvisible, Qnil, Qnil);
 +            beg = NATNUMP (tmp) ? XFASTINT (tmp) : BEGV;
 +          }
 +
 +        /* Move away from the inside area.  */
 +        if (beg < PT && end > PT)
 +          {
 +            SET_PT ((orig_pt == PT && (last_pt < beg || last_pt > end))
 +                    /* We haven't moved yet (so we don't need to fear
 +                       infinite-looping) and we were outside the range
 +                       before (so either end of the range still corresponds
 +                       to a move in the right direction): pretend we moved
 +                       less than we actually did, so that we still have
 +                       more freedom below in choosing which end of the range
 +                       to go to.  */
 +                    ? (orig_pt = -1, PT < last_pt ? end : beg)
 +                    /* We either have moved already or the last point
 +                       was already in the range: we don't get to choose
 +                       which end of the range we have to go to.  */
 +                    : (PT < last_pt ? beg : end));
 +            check_composition = check_display = 1;
 +          }
 +#if 0 /* This assertion isn't correct, because SET_PT may end up setting
 +       the point to something other than its argument, due to
 +       point-motion hooks, intangibility, etc.  */
 +        eassert (PT == beg || PT == end);
 +#endif
 +
 +        /* Pretend the area doesn't exist if the buffer is not
 +           modified.  */
 +        if (!modified && !ellipsis && beg < end)
 +          {
 +            if (last_pt == beg && PT == end && end < ZV)
 +              (check_composition = check_display = 1, SET_PT (end + 1));
 +            else if (last_pt == end && PT == beg && beg > BEGV)
 +              (check_composition = check_display = 1, SET_PT (beg - 1));
 +            else if (PT == ((PT < last_pt) ? beg : end))
 +              /* We've already moved as far as we can.  Trying to go
 +                 to the other end would mean moving backwards and thus
 +                 could lead to an infinite loop.  */
 +              ;
 +            else if (val = Fget_pos_property (make_number (PT),
 +                                              Qinvisible, Qnil),
 +                     TEXT_PROP_MEANS_INVISIBLE (val)
 +                     && (val = (Fget_pos_property
 +                                (make_number (PT == beg ? end : beg),
 +                                 Qinvisible, Qnil)),
 +                         !TEXT_PROP_MEANS_INVISIBLE (val)))
 +              (check_composition = check_display = 1,
 +               SET_PT (PT == beg ? end : beg));
 +          }
 +      }
 +      check_invisible = 0;
 +    }
 +}
 +
 +/* Subroutine for safe_run_hooks: run the hook, which is ARGS[1].  */
 +
 +static Lisp_Object
 +safe_run_hooks_1 (ptrdiff_t nargs, Lisp_Object *args)
 +{
 +  eassert (nargs == 2);
 +  return call0 (args[1]);
 +}
 +
 +/* Subroutine for safe_run_hooks: handle an error by clearing out the function
 +   from the hook.  */
 +
 +static Lisp_Object
 +safe_run_hooks_error (Lisp_Object error, ptrdiff_t nargs, Lisp_Object *args)
 +{
 +  eassert (nargs == 2);
 +  AUTO_STRING (format, "Error in %s (%S): %S");
 +  Lisp_Object hook = args[0];
 +  Lisp_Object fun = args[1];
 +  CALLN (Fmessage, format, hook, fun, error);
 +
 +  if (SYMBOLP (hook))
 +    {
 +      Lisp_Object val;
 +      bool found = 0;
 +      Lisp_Object newval = Qnil;
 +      for (val = find_symbol_value (hook); CONSP (val); val = XCDR (val))
 +      if (EQ (fun, XCAR (val)))
 +        found = 1;
 +      else
 +        newval = Fcons (XCAR (val), newval);
 +      if (found)
 +      return Fset (hook, Fnreverse (newval));
 +      /* Not found in the local part of the hook.  Let's look at the global
 +       part.  */
 +      newval = Qnil;
 +      for (val = (NILP (Fdefault_boundp (hook)) ? Qnil
 +                : Fdefault_value (hook));
 +         CONSP (val); val = XCDR (val))
 +      if (EQ (fun, XCAR (val)))
 +        found = 1;
 +      else
 +        newval = Fcons (XCAR (val), newval);
 +      if (found)
 +      return Fset_default (hook, Fnreverse (newval));
 +    }
 +  return Qnil;
 +}
 +
 +static Lisp_Object
 +safe_run_hook_funcall (ptrdiff_t nargs, Lisp_Object *args)
 +{
 +  eassert (nargs == 2);
 +  /* Yes, run_hook_with_args works with args in the other order.  */
 +  internal_condition_case_n (safe_run_hooks_1,
 +                           2, ((Lisp_Object []) {args[1], args[0]}),
 +                           Qt, safe_run_hooks_error);
 +  return Qnil;
 +}
 +
 +/* If we get an error while running the hook, cause the hook variable
 +   to be nil.  Also inhibit quits, so that C-g won't cause the hook
 +   to mysteriously evaporate.  */
 +
 +void
 +safe_run_hooks (Lisp_Object hook)
 +{
 +  struct gcpro gcpro1;
 +  ptrdiff_t count = SPECPDL_INDEX ();
 +
 +  GCPRO1 (hook);
 +  specbind (Qinhibit_quit, Qt);
 +  run_hook_with_args (2, ((Lisp_Object []) {hook, hook}), safe_run_hook_funcall);
 +  unbind_to (count, Qnil);
 +  UNGCPRO;
 +}
 +
 +\f
 +/* Nonzero means polling for input is temporarily suppressed.  */
 +
 +int poll_suppress_count;
 +
 +
 +#ifdef POLL_FOR_INPUT
 +
 +/* Asynchronous timer for polling.  */
 +
 +static struct atimer *poll_timer;
 +
 +/* Poll for input, so that we catch a C-g if it comes in.  */
 +void
 +poll_for_input_1 (void)
 +{
 +  if (! input_blocked_p ()
 +      && !waiting_for_input)
 +    gobble_input ();
 +}
 +
 +/* Timer callback function for poll_timer.  TIMER is equal to
 +   poll_timer.  */
 +
 +static void
 +poll_for_input (struct atimer *timer)
 +{
 +  if (poll_suppress_count == 0)
 +    pending_signals = 1;
 +}
 +
 +#endif /* POLL_FOR_INPUT */
 +
 +/* Begin signals to poll for input, if they are appropriate.
 +   This function is called unconditionally from various places.  */
 +
 +void
 +start_polling (void)
 +{
 +#ifdef POLL_FOR_INPUT
 +  /* XXX This condition was (read_socket_hook && !interrupt_input),
 +     but read_socket_hook is not global anymore.  Let's pretend that
 +     it's always set.  */
 +  if (!interrupt_input)
 +    {
 +      /* Turn alarm handling on unconditionally.  It might have
 +       been turned off in process.c.  */
 +      turn_on_atimers (1);
 +
 +      /* If poll timer doesn't exist, or we need one with
 +       a different interval, start a new one.  */
 +      if (poll_timer == NULL
 +        || poll_timer->interval.tv_sec != polling_period)
 +      {
 +        time_t period = max (1, min (polling_period, TYPE_MAXIMUM (time_t)));
 +        struct timespec interval = make_timespec (period, 0);
 +
 +        if (poll_timer)
 +          cancel_atimer (poll_timer);
 +
 +        poll_timer = start_atimer (ATIMER_CONTINUOUS, interval,
 +                                   poll_for_input, NULL);
 +      }
 +
 +      /* Let the timer's callback function poll for input
 +       if this becomes zero.  */
 +      --poll_suppress_count;
 +    }
 +#endif
 +}
 +
 +/* True if we are using polling to handle input asynchronously.  */
 +
 +bool
 +input_polling_used (void)
 +{
 +#ifdef POLL_FOR_INPUT
 +  /* XXX This condition was (read_socket_hook && !interrupt_input),
 +     but read_socket_hook is not global anymore.  Let's pretend that
 +     it's always set.  */
 +  return !interrupt_input;
 +#else
 +  return 0;
 +#endif
 +}
 +
 +/* Turn off polling.  */
 +
 +void
 +stop_polling (void)
 +{
 +#ifdef POLL_FOR_INPUT
 +  /* XXX This condition was (read_socket_hook && !interrupt_input),
 +     but read_socket_hook is not global anymore.  Let's pretend that
 +     it's always set.  */
 +  if (!interrupt_input)
 +    ++poll_suppress_count;
 +#endif
 +}
 +
 +/* Set the value of poll_suppress_count to COUNT
 +   and start or stop polling accordingly.  */
 +
 +void
 +set_poll_suppress_count (int count)
 +{
 +#ifdef POLL_FOR_INPUT
 +  if (count == 0 && poll_suppress_count != 0)
 +    {
 +      poll_suppress_count = 1;
 +      start_polling ();
 +    }
 +  else if (count != 0 && poll_suppress_count == 0)
 +    {
 +      stop_polling ();
 +    }
 +  poll_suppress_count = count;
 +#endif
 +}
 +
 +/* Bind polling_period to a value at least N.
 +   But don't decrease it.  */
 +
 +void
 +bind_polling_period (int n)
 +{
 +#ifdef POLL_FOR_INPUT
 +  EMACS_INT new = polling_period;
 +
 +  if (n > new)
 +    new = n;
 +
 +  stop_other_atimers (poll_timer);
 +  stop_polling ();
 +  specbind (Qpolling_period, make_number (new));
 +  /* Start a new alarm with the new period.  */
 +  start_polling ();
 +#endif
 +}
 +\f
 +/* Apply the control modifier to CHARACTER.  */
 +
 +int
 +make_ctrl_char (int c)
 +{
 +  /* Save the upper bits here.  */
 +  int upper = c & ~0177;
 +
 +  if (! ASCII_CHAR_P (c))
 +    return c |= ctrl_modifier;
 +
 +  c &= 0177;
 +
 +  /* Everything in the columns containing the upper-case letters
 +     denotes a control character.  */
 +  if (c >= 0100 && c < 0140)
 +    {
 +      int oc = c;
 +      c &= ~0140;
 +      /* Set the shift modifier for a control char
 +       made from a shifted letter.  But only for letters!  */
 +      if (oc >= 'A' && oc <= 'Z')
 +      c |= shift_modifier;
 +    }
 +
 +  /* The lower-case letters denote control characters too.  */
 +  else if (c >= 'a' && c <= 'z')
 +    c &= ~0140;
 +
 +  /* Include the bits for control and shift
 +     only if the basic ASCII code can't indicate them.  */
 +  else if (c >= ' ')
 +    c |= ctrl_modifier;
 +
 +  /* Replace the high bits.  */
 +  c |= (upper & ~ctrl_modifier);
 +
 +  return c;
 +}
 +
 +/* Display the help-echo property of the character after the mouse pointer.
 +   Either show it in the echo area, or call show-help-function to display
 +   it by other means (maybe in a tooltip).
 +
 +   If HELP is nil, that means clear the previous help echo.
 +
 +   If HELP is a string, display that string.  If HELP is a function,
 +   call it with OBJECT and POS as arguments; the function should
 +   return a help string or nil for none.  For all other types of HELP,
 +   evaluate it to obtain a string.
 +
 +   WINDOW is the window in which the help was generated, if any.
 +   It is nil if not in a window.
 +
 +   If OBJECT is a buffer, POS is the position in the buffer where the
 +   `help-echo' text property was found.
 +
 +   If OBJECT is an overlay, that overlay has a `help-echo' property,
 +   and POS is the position in the overlay's buffer under the mouse.
 +
 +   If OBJECT is a string (an overlay string or a string displayed with
 +   the `display' property).  POS is the position in that string under
 +   the mouse.
 +
 +   Note: this function may only be called with HELP nil or a string
 +   from X code running asynchronously.  */
 +
 +void
 +show_help_echo (Lisp_Object help, Lisp_Object window, Lisp_Object object,
 +              Lisp_Object pos)
 +{
 +  if (!NILP (help) && !STRINGP (help))
 +    {
 +      if (FUNCTIONP (help))
 +      help = safe_call (4, help, window, object, pos);
 +      else
 +      help = safe_eval (help);
 +
 +      if (!STRINGP (help))
 +      return;
 +    }
 +
 +  if (!noninteractive && STRINGP (help))
 +    {
 +      /* The mouse-fixup-help-message Lisp function can call
 +       mouse_position_hook, which resets the mouse_moved flags.
 +       This causes trouble if we are trying to read a mouse motion
 +       event (i.e., if we are inside a `track-mouse' form), so we
 +       restore the mouse_moved flag.  */
 +      struct frame *f = NILP (do_mouse_tracking) ? NULL : some_mouse_moved ();
 +      help = call1 (Qmouse_fixup_help_message, help);
 +      if (f)
 +              f->mouse_moved = 1;
 +    }
 +
 +  if (STRINGP (help) || NILP (help))
 +    {
 +      if (!NILP (Vshow_help_function))
 +      call1 (Vshow_help_function, help);
 +      help_echo_showing_p = STRINGP (help);
 +    }
 +}
 +
 +
 +\f
 +/* Input of single characters from keyboard.  */
 +
 +static Lisp_Object kbd_buffer_get_event (KBOARD **kbp, bool *used_mouse_menu,
 +                                       struct timespec *end_time);
 +static void record_char (Lisp_Object c);
 +
 +static Lisp_Object help_form_saved_window_configs;
 +static void
 +read_char_help_form_unwind (void)
 +{
 +  Lisp_Object window_config = XCAR (help_form_saved_window_configs);
 +  help_form_saved_window_configs = XCDR (help_form_saved_window_configs);
 +  if (!NILP (window_config))
 +    Fset_window_configuration (window_config);
 +}
 +
 +#define STOP_POLLING                                  \
 +do { if (! polling_stopped_here) stop_polling ();     \
 +       polling_stopped_here = 1; } while (0)
 +
 +#define RESUME_POLLING                                        \
 +do { if (polling_stopped_here) start_polling ();      \
 +       polling_stopped_here = 0; } while (0)
 +
 +static Lisp_Object
 +read_event_from_main_queue (struct timespec *end_time,
 +                            sys_jmp_buf local_getcjmp,
 +                            bool *used_mouse_menu)
 +{
 +  Lisp_Object c = Qnil;
 +  sys_jmp_buf save_jump;
 +  KBOARD *kb IF_LINT (= NULL);
 +
 + start:
 +
 +  /* Read from the main queue, and if that gives us something we can't use yet,
 +     we put it on the appropriate side queue and try again.  */
 +
 +  if (end_time && timespec_cmp (*end_time, current_timespec ()) <= 0)
 +    return c;
 +
 +  /* Actually read a character, waiting if necessary.  */
 +  save_getcjmp (save_jump);
 +  restore_getcjmp (local_getcjmp);
 +  if (!end_time)
 +    timer_start_idle ();
 +  c = kbd_buffer_get_event (&kb, used_mouse_menu, end_time);
 +  restore_getcjmp (save_jump);
 +
 +  if (! NILP (c) && (kb != current_kboard))
 +    {
 +      Lisp_Object last = KVAR (kb, kbd_queue);
 +      if (CONSP (last))
 +        {
 +          while (CONSP (XCDR (last)))
 +              last = XCDR (last);
 +          if (!NILP (XCDR (last)))
 +              emacs_abort ();
 +        }
 +      if (!CONSP (last))
 +        kset_kbd_queue (kb, list1 (c));
 +      else
 +        XSETCDR (last, list1 (c));
 +      kb->kbd_queue_has_data = 1;
 +      c = Qnil;
 +      if (single_kboard)
 +        goto start;
 +      current_kboard = kb;
 +      /* This is going to exit from read_char
 +         so we had better get rid of this frame's stuff.  */
 +      return make_number (-2);
 +    }
 +
 +  /* Terminate Emacs in batch mode if at eof.  */
 +  if (noninteractive && INTEGERP (c) && XINT (c) < 0)
 +    Fkill_emacs (make_number (1));
 +
 +  if (INTEGERP (c))
 +    {
 +      /* Add in any extra modifiers, where appropriate.  */
 +      if ((extra_keyboard_modifiers & CHAR_CTL)
 +        || ((extra_keyboard_modifiers & 0177) < ' '
 +            && (extra_keyboard_modifiers & 0177) != 0))
 +      XSETINT (c, make_ctrl_char (XINT (c)));
 +
 +      /* Transfer any other modifier bits directly from
 +       extra_keyboard_modifiers to c.  Ignore the actual character code
 +       in the low 16 bits of extra_keyboard_modifiers.  */
 +      XSETINT (c, XINT (c) | (extra_keyboard_modifiers & ~0xff7f & ~CHAR_CTL));
 +    }
 +
 +  return c;
 +}
 +
 +
 +
 +/* Like `read_event_from_main_queue' but applies keyboard-coding-system
 +   to tty input.  */
 +static Lisp_Object
 +read_decoded_event_from_main_queue (struct timespec *end_time,
 +                                    sys_jmp_buf local_getcjmp,
 +                                    Lisp_Object prev_event,
 +                                    bool *used_mouse_menu)
 +{
 +#define MAX_ENCODED_BYTES 16
 +#ifndef WINDOWSNT
 +  Lisp_Object events[MAX_ENCODED_BYTES];
 +  int n = 0;
 +#endif
 +  while (true)
 +    {
 +      Lisp_Object nextevt
 +        = read_event_from_main_queue (end_time, local_getcjmp,
 +                                      used_mouse_menu);
 +#ifdef WINDOWSNT
 +      /* w32_console already returns decoded events.  It either reads
 +       Unicode characters from the Windows keyboard input, or
 +       converts characters encoded in the current codepage into
 +       Unicode.  See w32inevt.c:key_event, near its end.  */
 +      return nextevt;
 +#else
 +      struct frame *frame = XFRAME (selected_frame);
 +      struct terminal *terminal = frame->terminal;
 +      if (!((FRAME_TERMCAP_P (frame) || FRAME_MSDOS_P (frame))
 +            /* Don't apply decoding if we're just reading a raw event
 +               (e.g. reading bytes sent by the xterm to specify the position
 +               of a mouse click).  */
 +            && (!EQ (prev_event, Qt))
 +          && (TERMINAL_KEYBOARD_CODING (terminal)->common_flags
 +              & CODING_REQUIRE_DECODING_MASK)))
 +      return nextevt;         /* No decoding needed.  */
 +      else
 +      {
 +        int meta_key = terminal->display_info.tty->meta_key;
 +        eassert (n < MAX_ENCODED_BYTES);
 +        events[n++] = nextevt;
 +        if (NATNUMP (nextevt)
 +            && XINT (nextevt) < (meta_key == 1 ? 0x80 : 0x100))
 +          { /* An encoded byte sequence, let's try to decode it.  */
 +            struct coding_system *coding
 +              = TERMINAL_KEYBOARD_CODING (terminal);
 +
 +            if (raw_text_coding_system_p (coding))
 +              {
 +                int i;
 +                if (meta_key != 2)
 +                  for (i = 0; i < n; i++)
 +                    events[i] = make_number (XINT (events[i]) & ~0x80);
 +              }
 +            else
 +              {
 +                unsigned char src[MAX_ENCODED_BYTES];
 +                unsigned char dest[MAX_ENCODED_BYTES * MAX_MULTIBYTE_LENGTH];
 +                int i;
 +                for (i = 0; i < n; i++)
 +                  src[i] = XINT (events[i]);
 +                if (meta_key != 2)
 +                  for (i = 0; i < n; i++)
 +                    src[i] &= ~0x80;
 +                coding->destination = dest;
 +                coding->dst_bytes = sizeof dest;
 +                decode_coding_c_string (coding, src, n, Qnil);
 +                eassert (coding->produced_char <= n);
 +                if (coding->produced_char == 0)
 +                  { /* The encoded sequence is incomplete.  */
 +                    if (n < MAX_ENCODED_BYTES) /* Avoid buffer overflow.  */
 +                      continue;                    /* Read on!  */
 +                  }
 +                else
 +                  {
 +                    const unsigned char *p = coding->destination;
 +                    eassert (coding->carryover_bytes == 0);
 +                    n = 0;
 +                    while (n < coding->produced_char)
 +                      events[n++] = make_number (STRING_CHAR_ADVANCE (p));
 +                  }
 +              }
 +          }
 +        /* Now `events' should hold decoded events.
 +           Normally, n should be equal to 1, but better not rely on it.
 +           We can only return one event here, so return the first we
 +           had and keep the others (if any) for later.  */
 +        while (n > 1)
 +          Vunread_command_events
 +            = Fcons (events[--n], Vunread_command_events);
 +        return events[0];
 +      }
 +#endif
 +    }
 +}
 +
 +static bool
 +echo_keystrokes_p (void)
 +{
 +  return (FLOATP (Vecho_keystrokes) ? XFLOAT_DATA (Vecho_keystrokes) > 0.0
 +        : INTEGERP (Vecho_keystrokes) ? XINT (Vecho_keystrokes) > 0 : false);
 +}
 +
 +/* Read a character from the keyboard; call the redisplay if needed.  */
 +/* commandflag 0 means do not autosave, but do redisplay.
 +   -1 means do not redisplay, but do autosave.
 +   -2 means do neither.
 +   1 means do both.
 +
 +   The argument MAP is a keymap for menu prompting.
 +
 +   PREV_EVENT is the previous input event, or nil if we are reading
 +   the first event of a key sequence (or not reading a key sequence).
 +   If PREV_EVENT is t, that is a "magic" value that says
 +   not to run input methods, but in other respects to act as if
 +   not reading a key sequence.
 +
 +   If USED_MOUSE_MENU is non-null, then set *USED_MOUSE_MENU to true
 +   if we used a mouse menu to read the input, or false otherwise.  If
 +   USED_MOUSE_MENU is null, don't dereference it.
 +
 +   Value is -2 when we find input on another keyboard.  A second call
 +   to read_char will read it.
 +
 +   If END_TIME is non-null, it is a pointer to a struct timespec
 +   specifying the maximum time to wait until.  If no input arrives by
 +   that time, stop waiting and return nil.
 +
 +   Value is t if we showed a menu and the user rejected it.  */
 +
 +Lisp_Object
 +read_char (int commandflag, Lisp_Object map,
 +         Lisp_Object prev_event,
 +         bool *used_mouse_menu, struct timespec *end_time)
 +{
 +  Lisp_Object c;
 +  ptrdiff_t jmpcount;
 +  sys_jmp_buf local_getcjmp;
 +  sys_jmp_buf save_jump;
 +  Lisp_Object tem, save;
 +  volatile Lisp_Object previous_echo_area_message;
 +  volatile Lisp_Object also_record;
 +  volatile bool reread;
 +  struct gcpro gcpro1, gcpro2;
 +  bool volatile polling_stopped_here = 0;
 +  struct kboard *orig_kboard = current_kboard;
 +
 +  also_record = Qnil;
 +
 +#if 0  /* This was commented out as part of fixing echo for C-u left.  */
 +  before_command_key_count = this_command_key_count;
 +  before_command_echo_length = echo_length ();
 +#endif
 +  c = Qnil;
 +  previous_echo_area_message = Qnil;
 +
 +  GCPRO2 (c, previous_echo_area_message);
 +
 + retry:
 +
 +  if (CONSP (Vunread_post_input_method_events))
 +    {
 +      c = XCAR (Vunread_post_input_method_events);
 +      Vunread_post_input_method_events
 +      = XCDR (Vunread_post_input_method_events);
 +
 +      /* Undo what read_char_x_menu_prompt did when it unread
 +       additional keys returned by Fx_popup_menu.  */
 +      if (CONSP (c)
 +        && (SYMBOLP (XCAR (c)) || INTEGERP (XCAR (c)))
 +        && NILP (XCDR (c)))
 +      c = XCAR (c);
 +
 +      reread = true;
 +      goto reread_first;
 +    }
 +  else
 +    reread = false;
 +
 +
 +  if (CONSP (Vunread_command_events))
 +    {
 +      bool was_disabled = 0;
 +
 +      c = XCAR (Vunread_command_events);
 +      Vunread_command_events = XCDR (Vunread_command_events);
 +
 +      /* Undo what sit-for did when it unread additional keys
 +       inside universal-argument.  */
 +
 +      if (CONSP (c) && EQ (XCAR (c), Qt))
 +      c = XCDR (c);
 +      else
 +      reread = true;
 +
 +      /* Undo what read_char_x_menu_prompt did when it unread
 +       additional keys returned by Fx_popup_menu.  */
 +      if (CONSP (c)
 +        && EQ (XCDR (c), Qdisabled)
 +        && (SYMBOLP (XCAR (c)) || INTEGERP (XCAR (c))))
 +      {
 +        was_disabled = 1;
 +        c = XCAR (c);
 +      }
 +
 +      /* If the queued event is something that used the mouse,
 +         set used_mouse_menu accordingly.  */
 +      if (used_mouse_menu
 +        /* Also check was_disabled so last-nonmenu-event won't return
 +           a bad value when submenus are involved.  (Bug#447)  */
 +        && (EQ (c, Qtool_bar) || EQ (c, Qmenu_bar) || was_disabled))
 +      *used_mouse_menu = 1;
 +
 +      goto reread_for_input_method;
 +    }
 +
 +  if (CONSP (Vunread_input_method_events))
 +    {
 +      c = XCAR (Vunread_input_method_events);
 +      Vunread_input_method_events = XCDR (Vunread_input_method_events);
 +
 +      /* Undo what read_char_x_menu_prompt did when it unread
 +       additional keys returned by Fx_popup_menu.  */
 +      if (CONSP (c)
 +        && (SYMBOLP (XCAR (c)) || INTEGERP (XCAR (c)))
 +        && NILP (XCDR (c)))
 +      c = XCAR (c);
 +      reread = true;
 +      goto reread_for_input_method;
 +    }
 +
 +  this_command_key_count_reset = 0;
 +
 +  if (!NILP (Vexecuting_kbd_macro))
 +    {
 +      /* We set this to Qmacro; since that's not a frame, nobody will
 +       try to switch frames on us, and the selected window will
 +       remain unchanged.
 +
 +         Since this event came from a macro, it would be misleading to
 +       leave internal_last_event_frame set to wherever the last
 +       real event came from.  Normally, a switch-frame event selects
 +       internal_last_event_frame after each command is read, but
 +       events read from a macro should never cause a new frame to be
 +       selected.  */
 +      Vlast_event_frame = internal_last_event_frame = Qmacro;
 +
 +      /* Exit the macro if we are at the end.
 +       Also, some things replace the macro with t
 +       to force an early exit.  */
 +      if (EQ (Vexecuting_kbd_macro, Qt)
 +        || executing_kbd_macro_index >= XFASTINT (Flength (Vexecuting_kbd_macro)))
 +      {
 +        XSETINT (c, -1);
 +        goto exit;
 +      }
 +
 +      c = Faref (Vexecuting_kbd_macro, make_number (executing_kbd_macro_index));
 +      if (STRINGP (Vexecuting_kbd_macro)
 +        && (XFASTINT (c) & 0x80) && (XFASTINT (c) <= 0xff))
 +      XSETFASTINT (c, CHAR_META | (XFASTINT (c) & ~0x80));
 +
 +      executing_kbd_macro_index++;
 +
 +      goto from_macro;
 +    }
 +
 +  if (!NILP (unread_switch_frame))
 +    {
 +      c = unread_switch_frame;
 +      unread_switch_frame = Qnil;
 +
 +      /* This event should make it into this_command_keys, and get echoed
 +       again, so we do not set `reread'.  */
 +      goto reread_first;
 +    }
 +
 +  /* If redisplay was requested.  */
 +  if (commandflag >= 0)
 +    {
 +      bool echo_current = EQ (echo_message_buffer, echo_area_buffer[0]);
 +
 +      /* If there is pending input, process any events which are not
 +         user-visible, such as X selection_request events.  */
 +      if (input_pending
 +        || detect_input_pending_run_timers (0))
 +      swallow_events (false);         /* May clear input_pending.  */
 +
 +      /* Redisplay if no pending input.  */
 +      while (!(input_pending
 +             && (input_was_pending || !redisplay_dont_pause)))
 +      {
 +        input_was_pending = input_pending;
 +        if (help_echo_showing_p && !EQ (selected_window, minibuf_window))
 +          redisplay_preserve_echo_area (5);
 +        else
 +          redisplay ();
 +
 +        if (!input_pending)
 +          /* Normal case: no input arrived during redisplay.  */
 +          break;
 +
 +        /* Input arrived and pre-empted redisplay.
 +           Process any events which are not user-visible.  */
 +        swallow_events (false);
 +        /* If that cleared input_pending, try again to redisplay.  */
 +      }
 +
 +      /* Prevent the redisplay we just did
 +       from messing up echoing of the input after the prompt.  */
 +      if (commandflag == 0 && echo_current)
 +      echo_message_buffer = echo_area_buffer[0];
 +
 +    }
 +
 +  /* Message turns off echoing unless more keystrokes turn it on again.
 +
 +     The code in 20.x for the condition was
 +
 +     1. echo_area_glyphs && *echo_area_glyphs
 +     2. && echo_area_glyphs != current_kboard->echobuf
 +     3. && ok_to_echo_at_next_pause != echo_area_glyphs
 +
 +     (1) means there's a current message displayed
 +
 +     (2) means it's not the message from echoing from the current
 +     kboard.
 +
 +     (3) There's only one place in 20.x where ok_to_echo_at_next_pause
 +     is set to a non-null value.  This is done in read_char and it is
 +     set to echo_area_glyphs after a call to echo_char.  That means
 +     ok_to_echo_at_next_pause is either null or
 +     current_kboard->echobuf with the appropriate current_kboard at
 +     that time.
 +
 +     So, condition (3) means in clear text ok_to_echo_at_next_pause
 +     must be either null, or the current message isn't from echoing at
 +     all, or it's from echoing from a different kboard than the
 +     current one.  */
 +
 +  if (/* There currently is something in the echo area.  */
 +      !NILP (echo_area_buffer[0])
 +      && (/* It's an echo from a different kboard.  */
 +        echo_kboard != current_kboard
 +        /* Or we explicitly allow overwriting whatever there is.  */
 +        || ok_to_echo_at_next_pause == NULL))
 +    cancel_echoing ();
 +  else
 +    echo_dash ();
 +
 +  /* Try reading a character via menu prompting in the minibuf.
 +     Try this before the sit-for, because the sit-for
 +     would do the wrong thing if we are supposed to do
 +     menu prompting. If EVENT_HAS_PARAMETERS then we are reading
 +     after a mouse event so don't try a minibuf menu.  */
 +  c = Qnil;
 +  if (KEYMAPP (map) && INTERACTIVE
 +      && !NILP (prev_event) && ! EVENT_HAS_PARAMETERS (prev_event)
 +      /* Don't bring up a menu if we already have another event.  */
 +      && NILP (Vunread_command_events)
 +      && !detect_input_pending_run_timers (0))
 +    {
 +      c = read_char_minibuf_menu_prompt (commandflag, map);
 +
 +      if (INTEGERP (c) && XINT (c) == -2)
 +        return c;               /* wrong_kboard_jmpbuf */
 +
 +      if (! NILP (c))
 +      goto exit;
 +    }
 +
 +  /* Make a longjmp point for quits to use, but don't alter getcjmp just yet.
 +     We will do that below, temporarily for short sections of code,
 +     when appropriate.  local_getcjmp must be in effect
 +     around any call to sit_for or kbd_buffer_get_event;
 +     it *must not* be in effect when we call redisplay.  */
 +
 +  jmpcount = SPECPDL_INDEX ();
 +  if (sys_setjmp (local_getcjmp))
 +    {
 +      /* Handle quits while reading the keyboard.  */
 +      /* We must have saved the outer value of getcjmp here,
 +       so restore it now.  */
 +      restore_getcjmp (save_jump);
 +      pthread_sigmask (SIG_SETMASK, &empty_mask, 0);
 +      unbind_to (jmpcount, Qnil);
 +      XSETINT (c, quit_char);
 +      internal_last_event_frame = selected_frame;
 +      Vlast_event_frame = internal_last_event_frame;
 +      /* If we report the quit char as an event,
 +       don't do so more than once.  */
 +      if (!NILP (Vinhibit_quit))
 +      Vquit_flag = Qnil;
 +
 +      {
 +      KBOARD *kb = FRAME_KBOARD (XFRAME (selected_frame));
 +      if (kb != current_kboard)
 +        {
 +          Lisp_Object last = KVAR (kb, kbd_queue);
 +          /* We shouldn't get here if we were in single-kboard mode!  */
 +          if (single_kboard)
 +            emacs_abort ();
 +          if (CONSP (last))
 +            {
 +              while (CONSP (XCDR (last)))
 +                last = XCDR (last);
 +              if (!NILP (XCDR (last)))
 +                emacs_abort ();
 +            }
 +          if (!CONSP (last))
 +            kset_kbd_queue (kb, list1 (c));
 +          else
 +            XSETCDR (last, list1 (c));
 +          kb->kbd_queue_has_data = 1;
 +          current_kboard = kb;
 +          /* This is going to exit from read_char
 +             so we had better get rid of this frame's stuff.  */
 +          UNGCPRO;
 +            return make_number (-2); /* wrong_kboard_jmpbuf */
 +        }
 +      }
 +      goto non_reread;
 +    }
 +
 +  /* Start idle timers if no time limit is supplied.  We don't do it
 +     if a time limit is supplied to avoid an infinite recursion in the
 +     situation where an idle timer calls `sit-for'.  */
 +
 +  if (!end_time)
 +    timer_start_idle ();
 +
 +  /* If in middle of key sequence and minibuffer not active,
 +     start echoing if enough time elapses.  */
 +
 +  if (minibuf_level == 0
 +      && !end_time
 +      && !current_kboard->immediate_echo
 +      && this_command_key_count > 0
 +      && ! noninteractive
 +      && echo_keystrokes_p ()
 +      && (/* No message.  */
 +        NILP (echo_area_buffer[0])
 +        /* Or empty message.  */
 +        || (BUF_BEG (XBUFFER (echo_area_buffer[0]))
 +            == BUF_Z (XBUFFER (echo_area_buffer[0])))
 +        /* Or already echoing from same kboard.  */
 +        || (echo_kboard && ok_to_echo_at_next_pause == echo_kboard)
 +        /* Or not echoing before and echoing allowed.  */
 +        || (!echo_kboard && ok_to_echo_at_next_pause)))
 +    {
 +      /* After a mouse event, start echoing right away.
 +       This is because we are probably about to display a menu,
 +       and we don't want to delay before doing so.  */
 +      if (EVENT_HAS_PARAMETERS (prev_event))
 +      echo_now ();
 +      else
 +      {
 +        Lisp_Object tem0;
 +
 +        save_getcjmp (save_jump);
 +        restore_getcjmp (local_getcjmp);
 +        tem0 = sit_for (Vecho_keystrokes, 1, 1);
 +        restore_getcjmp (save_jump);
 +        if (EQ (tem0, Qt)
 +            && ! CONSP (Vunread_command_events))
 +          echo_now ();
 +      }
 +    }
 +
 +  /* Maybe auto save due to number of keystrokes.  */
 +
 +  if (commandflag != 0 && commandflag != -2
 +      && auto_save_interval > 0
 +      && num_nonmacro_input_events - last_auto_save > max (auto_save_interval, 20)
 +      && !detect_input_pending_run_timers (0))
 +    {
 +      Fdo_auto_save (Qnil, Qnil);
 +      /* Hooks can actually change some buffers in auto save.  */
 +      redisplay ();
 +    }
 +
 +  /* Try reading using an X menu.
 +     This is never confused with reading using the minibuf
 +     because the recursive call of read_char in read_char_minibuf_menu_prompt
 +     does not pass on any keymaps.  */
 +
 +  if (KEYMAPP (map) && INTERACTIVE
 +      && !NILP (prev_event)
 +      && EVENT_HAS_PARAMETERS (prev_event)
 +      && !EQ (XCAR (prev_event), Qmenu_bar)
 +      && !EQ (XCAR (prev_event), Qtool_bar)
 +      /* Don't bring up a menu if we already have another event.  */
 +      && NILP (Vunread_command_events))
 +    {
 +      c = read_char_x_menu_prompt (map, prev_event, used_mouse_menu);
 +
 +      /* Now that we have read an event, Emacs is not idle.  */
 +      if (!end_time)
 +      timer_stop_idle ();
 +
 +      goto exit;
 +    }
 +
 +  /* Maybe autosave and/or garbage collect due to idleness.  */
 +
 +  if (INTERACTIVE && NILP (c))
 +    {
 +      int delay_level;
 +      ptrdiff_t buffer_size;
 +
 +      /* Slow down auto saves logarithmically in size of current buffer,
 +       and garbage collect while we're at it.  */
 +      if (! MINI_WINDOW_P (XWINDOW (selected_window)))
 +      last_non_minibuf_size = Z - BEG;
 +      buffer_size = (last_non_minibuf_size >> 8) + 1;
 +      delay_level = 0;
 +      while (buffer_size > 64)
 +      delay_level++, buffer_size -= buffer_size >> 2;
 +      if (delay_level < 4) delay_level = 4;
 +      /* delay_level is 4 for files under around 50k, 7 at 100k,
 +       9 at 200k, 11 at 300k, and 12 at 500k.  It is 15 at 1 meg.  */
 +
 +      /* Auto save if enough time goes by without input.  */
 +      if (commandflag != 0 && commandflag != -2
 +        && num_nonmacro_input_events > last_auto_save
 +        && INTEGERP (Vauto_save_timeout)
 +        && XINT (Vauto_save_timeout) > 0)
 +      {
 +        Lisp_Object tem0;
 +        EMACS_INT timeout = XFASTINT (Vauto_save_timeout);
 +
 +        timeout = min (timeout, MOST_POSITIVE_FIXNUM / delay_level * 4);
 +        timeout = delay_level * timeout / 4;
 +        save_getcjmp (save_jump);
 +        restore_getcjmp (local_getcjmp);
 +        tem0 = sit_for (make_number (timeout), 1, 1);
 +        restore_getcjmp (save_jump);
 +
 +        if (EQ (tem0, Qt)
 +            && ! CONSP (Vunread_command_events))
 +          {
 +            Fdo_auto_save (Qnil, Qnil);
 +            redisplay ();
 +          }
 +      }
 +
 +      /* If there is still no input available, ask for GC.  */
 +      if (!detect_input_pending_run_timers (0))
 +      maybe_gc ();
 +    }
 +
 +  /* Notify the caller if an autosave hook, or a timer, sentinel or
 +     filter in the sit_for calls above have changed the current
 +     kboard.  This could happen if they use the minibuffer or start a
 +     recursive edit, like the fancy splash screen in server.el's
 +     filter.  If this longjmp wasn't here, read_key_sequence would
 +     interpret the next key sequence using the wrong translation
 +     tables and function keymaps.  */
 +  if (NILP (c) && current_kboard != orig_kboard)
 +    {
 +      UNGCPRO;
 +      return make_number (-2);  /* wrong_kboard_jmpbuf */
 +    }
 +
 +  /* If this has become non-nil here, it has been set by a timer
 +     or sentinel or filter.  */
 +  if (CONSP (Vunread_command_events))
 +    {
 +      c = XCAR (Vunread_command_events);
 +      Vunread_command_events = XCDR (Vunread_command_events);
 +
 +      if (CONSP (c) && EQ (XCAR (c), Qt))
 +      c = XCDR (c);
 +      else
 +      reread = true;
 +    }
 +
 +  /* Read something from current KBOARD's side queue, if possible.  */
 +
 +  if (NILP (c))
 +    {
 +      if (current_kboard->kbd_queue_has_data)
 +      {
 +        if (!CONSP (KVAR (current_kboard, kbd_queue)))
 +          emacs_abort ();
 +        c = XCAR (KVAR (current_kboard, kbd_queue));
 +        kset_kbd_queue (current_kboard,
 +                        XCDR (KVAR (current_kboard, kbd_queue)));
 +        if (NILP (KVAR (current_kboard, kbd_queue)))
 +          current_kboard->kbd_queue_has_data = 0;
 +        input_pending = readable_events (0);
 +        if (EVENT_HAS_PARAMETERS (c)
 +            && EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qswitch_frame))
 +          internal_last_event_frame = XCAR (XCDR (c));
 +        Vlast_event_frame = internal_last_event_frame;
 +      }
 +    }
 +
 +  /* If current_kboard's side queue is empty check the other kboards.
 +     If one of them has data that we have not yet seen here,
 +     switch to it and process the data waiting for it.
 +
 +     Note: if the events queued up for another kboard
 +     have already been seen here, and therefore are not a complete command,
 +     the kbd_queue_has_data field is 0, so we skip that kboard here.
 +     That's to avoid an infinite loop switching between kboards here.  */
 +  if (NILP (c) && !single_kboard)
 +    {
 +      KBOARD *kb;
 +      for (kb = all_kboards; kb; kb = kb->next_kboard)
 +      if (kb->kbd_queue_has_data)
 +        {
 +          current_kboard = kb;
 +          /* This is going to exit from read_char
 +             so we had better get rid of this frame's stuff.  */
 +          UNGCPRO;
 +            return make_number (-2); /* wrong_kboard_jmpbuf */
 +        }
 +    }
 +
 + wrong_kboard:
 +
 +  STOP_POLLING;
 +
 +  if (NILP (c))
 +    {
 +      c = read_decoded_event_from_main_queue (end_time, local_getcjmp,
 +                                              prev_event, used_mouse_menu);
 +      if (NILP (c) && end_time
 +        && timespec_cmp (*end_time, current_timespec ()) <= 0)
 +        {
 +          goto exit;
 +        }
 +
 +      if (EQ (c, make_number (-2)))
 +        {
 +        /* This is going to exit from read_char
 +           so we had better get rid of this frame's stuff.  */
 +        UNGCPRO;
 +          return c;
 +        }
 +  }
 +
 + non_reread:
 +
 +  if (!end_time)
 +    timer_stop_idle ();
 +  RESUME_POLLING;
 +
 +  if (NILP (c))
 +    {
 +      if (commandflag >= 0
 +        && !input_pending && !detect_input_pending_run_timers (0))
 +      redisplay ();
 +
 +      goto wrong_kboard;
 +    }
 +
 +  /* Buffer switch events are only for internal wakeups
 +     so don't show them to the user.
 +     Also, don't record a key if we already did.  */
 +  if (BUFFERP (c))
 +    goto exit;
 +
 +  /* Process special events within read_char
 +     and loop around to read another event.  */
 +  save = Vquit_flag;
 +  Vquit_flag = Qnil;
 +  tem = access_keymap (get_keymap (Vspecial_event_map, 0, 1), c, 0, 0, 1);
 +  Vquit_flag = save;
 +
 +  if (!NILP (tem))
 +    {
 +      struct buffer *prev_buffer = current_buffer;
 +      last_input_event = c;
 +      call4 (Qcommand_execute, tem, Qnil, Fvector (1, &last_input_event), Qt);
 +
 +      if (CONSP (c) && EQ (XCAR (c), Qselect_window) && !end_time)
 +      /* We stopped being idle for this event; undo that.  This
 +         prevents automatic window selection (under
 +         mouse_autoselect_window from acting as a real input event, for
 +         example banishing the mouse under mouse-avoidance-mode.  */
 +      timer_resume_idle ();
 +
 +      if (current_buffer != prev_buffer)
 +      {
 +        /* The command may have changed the keymaps.  Pretend there
 +           is input in another keyboard and return.  This will
 +           recalculate keymaps.  */
 +        c = make_number (-2);
 +        goto exit;
 +      }
 +      else
 +      goto retry;
 +    }
 +
 +  /* Handle things that only apply to characters.  */
 +  if (INTEGERP (c))
 +    {
 +      /* If kbd_buffer_get_event gave us an EOF, return that.  */
 +      if (XINT (c) == -1)
 +      goto exit;
 +
 +      if ((STRINGP (KVAR (current_kboard, Vkeyboard_translate_table))
 +         && UNSIGNED_CMP (XFASTINT (c), <,
 +                          SCHARS (KVAR (current_kboard,
 +                                        Vkeyboard_translate_table))))
 +        || (VECTORP (KVAR (current_kboard, Vkeyboard_translate_table))
 +            && UNSIGNED_CMP (XFASTINT (c), <,
 +                             ASIZE (KVAR (current_kboard,
 +                                          Vkeyboard_translate_table))))
 +        || (CHAR_TABLE_P (KVAR (current_kboard, Vkeyboard_translate_table))
 +            && CHARACTERP (c)))
 +      {
 +        Lisp_Object d;
 +        d = Faref (KVAR (current_kboard, Vkeyboard_translate_table), c);
 +        /* nil in keyboard-translate-table means no translation.  */
 +        if (!NILP (d))
 +          c = d;
 +      }
 +    }
 +
 +  /* If this event is a mouse click in the menu bar,
 +     return just menu-bar for now.  Modify the mouse click event
 +     so we won't do this twice, then queue it up.  */
 +  if (EVENT_HAS_PARAMETERS (c)
 +      && CONSP (XCDR (c))
 +      && CONSP (EVENT_START (c))
 +      && CONSP (XCDR (EVENT_START (c))))
 +    {
 +      Lisp_Object posn;
 +
 +      posn = POSN_POSN (EVENT_START (c));
 +      /* Handle menu-bar events:
 +       insert the dummy prefix event `menu-bar'.  */
 +      if (EQ (posn, Qmenu_bar) || EQ (posn, Qtool_bar))
 +      {
 +        /* Change menu-bar to (menu-bar) as the event "position".  */
 +        POSN_SET_POSN (EVENT_START (c), list1 (posn));
 +
 +        also_record = c;
 +        Vunread_command_events = Fcons (c, Vunread_command_events);
 +        c = posn;
 +      }
 +    }
 +
 +  /* Store these characters into recent_keys, the dribble file if any,
 +     and the keyboard macro being defined, if any.  */
 +  record_char (c);
 +  if (! NILP (also_record))
 +    record_char (also_record);
 +
 +  /* Wipe the echo area.
 +     But first, if we are about to use an input method,
 +     save the echo area contents for it to refer to.  */
 +  if (INTEGERP (c)
 +      && ! NILP (Vinput_method_function)
 +      && ' ' <= XINT (c) && XINT (c) < 256 && XINT (c) != 127)
 +    {
 +      previous_echo_area_message = Fcurrent_message ();
 +      Vinput_method_previous_message = previous_echo_area_message;
 +    }
 +
 +  /* Now wipe the echo area, except for help events which do their
 +     own stuff with the echo area.  */
 +  if (!CONSP (c)
 +      || (!(EQ (Qhelp_echo, XCAR (c)))
 +        && !(EQ (Qswitch_frame, XCAR (c)))
 +        /* Don't wipe echo area for select window events: These might
 +           get delayed via `mouse-autoselect-window' (Bug#11304).  */
 +        && !(EQ (Qselect_window, XCAR (c)))))
 +    {
 +      if (!NILP (echo_area_buffer[0]))
 +      {
 +        safe_run_hooks (Qecho_area_clear_hook);
 +        clear_message (1, 0);
 +      }
 +    }
 +
 + reread_for_input_method:
 + from_macro:
 +  /* Pass this to the input method, if appropriate.  */
 +  if (INTEGERP (c)
 +      && ! NILP (Vinput_method_function)
 +      /* Don't run the input method within a key sequence,
 +       after the first event of the key sequence.  */
 +      && NILP (prev_event)
 +      && ' ' <= XINT (c) && XINT (c) < 256 && XINT (c) != 127)
 +    {
 +      Lisp_Object keys;
 +      ptrdiff_t key_count;
 +      bool key_count_reset;
 +      ptrdiff_t command_key_start;
 +      struct gcpro gcpro1;
 +      ptrdiff_t count = SPECPDL_INDEX ();
 +
 +      /* Save the echo status.  */
 +      bool saved_immediate_echo = current_kboard->immediate_echo;
 +      struct kboard *saved_ok_to_echo = ok_to_echo_at_next_pause;
 +      Lisp_Object saved_echo_string = KVAR (current_kboard, echo_string);
 +      ptrdiff_t saved_echo_after_prompt = current_kboard->echo_after_prompt;
 +
 +#if 0
 +      if (before_command_restore_flag)
 +      {
 +        this_command_key_count = before_command_key_count_1;
 +        if (this_command_key_count < this_single_command_key_start)
 +          this_single_command_key_start = this_command_key_count;
 +        echo_truncate (before_command_echo_length_1);
 +        before_command_restore_flag = 0;
 +      }
 +#endif
 +
 +      /* Save the this_command_keys status.  */
 +      key_count = this_command_key_count;
 +      key_count_reset = this_command_key_count_reset;
 +      command_key_start = this_single_command_key_start;
 +
 +      if (key_count > 0)
 +      keys = Fcopy_sequence (this_command_keys);
 +      else
 +      keys = Qnil;
 +      GCPRO1 (keys);
 +
 +      /* Clear out this_command_keys.  */
 +      this_command_key_count = 0;
 +      this_command_key_count_reset = 0;
 +      this_single_command_key_start = 0;
 +
 +      /* Now wipe the echo area.  */
 +      if (!NILP (echo_area_buffer[0]))
 +      safe_run_hooks (Qecho_area_clear_hook);
 +      clear_message (1, 0);
 +      echo_truncate (0);
 +
 +      /* If we are not reading a key sequence,
 +       never use the echo area.  */
 +      if (!KEYMAPP (map))
 +      {
 +        specbind (Qinput_method_use_echo_area, Qt);
 +      }
 +
 +      /* Call the input method.  */
 +      tem = call1 (Vinput_method_function, c);
 +
 +      tem = unbind_to (count, tem);
 +
 +      /* Restore the saved echoing state
 +       and this_command_keys state.  */
 +      this_command_key_count = key_count;
 +      this_command_key_count_reset = key_count_reset;
 +      this_single_command_key_start = command_key_start;
 +      if (key_count > 0)
 +      this_command_keys = keys;
 +
 +      cancel_echoing ();
 +      ok_to_echo_at_next_pause = saved_ok_to_echo;
 +      /* Do not restore the echo area string when the user is
 +         introducing a prefix argument. Otherwise we end with
 +         repetitions of the partially introduced prefix
 +         argument. (bug#19875) */
 +      if (NILP (intern ("prefix-arg")))
 +        {
 +          kset_echo_string (current_kboard, saved_echo_string);
 +        }
 +      current_kboard->echo_after_prompt = saved_echo_after_prompt;
 +      if (saved_immediate_echo)
 +      echo_now ();
 +
 +      UNGCPRO;
 +
 +      /* The input method can return no events.  */
 +      if (! CONSP (tem))
 +      {
 +        /* Bring back the previous message, if any.  */
 +        if (! NILP (previous_echo_area_message))
 +          message_with_string ("%s", previous_echo_area_message, 0);
 +        goto retry;
 +      }
 +      /* It returned one event or more.  */
 +      c = XCAR (tem);
 +      Vunread_post_input_method_events
 +      = nconc2 (XCDR (tem), Vunread_post_input_method_events);
 +    }
 +
 + reread_first:
 +
 +  /* Display help if not echoing.  */
 +  if (CONSP (c) && EQ (XCAR (c), Qhelp_echo))
 +    {
 +      /* (help-echo FRAME HELP WINDOW OBJECT POS).  */
 +      Lisp_Object help, object, position, window, htem;
 +
 +      htem = Fcdr (XCDR (c));
 +      help = Fcar (htem);
 +      htem = Fcdr (htem);
 +      window = Fcar (htem);
 +      htem = Fcdr (htem);
 +      object = Fcar (htem);
 +      htem = Fcdr (htem);
 +      position = Fcar (htem);
 +
 +      show_help_echo (help, window, object, position);
 +
 +      /* We stopped being idle for this event; undo that.  */
 +      if (!end_time)
 +      timer_resume_idle ();
 +      goto retry;
 +    }
 +
 +  if ((! reread || this_command_key_count == 0
 +       || this_command_key_count_reset)
 +      && !end_time)
 +    {
 +
 +      /* Don't echo mouse motion events.  */
 +      if (echo_keystrokes_p ()
 +        && ! (EVENT_HAS_PARAMETERS (c)
 +              && EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qmouse_movement)))
 +      {
 +        echo_char (c);
 +        if (! NILP (also_record))
 +          echo_char (also_record);
 +        /* Once we reread a character, echoing can happen
 +           the next time we pause to read a new one.  */
 +        ok_to_echo_at_next_pause = current_kboard;
 +      }
 +
 +      /* Record this character as part of the current key.  */
 +      add_command_key (c);
 +      if (! NILP (also_record))
 +      add_command_key (also_record);
 +    }
 +
 +  last_input_event = c;
 +  num_input_events++;
 +
 +  /* Process the help character specially if enabled.  */
 +  if (!NILP (Vhelp_form) && help_char_p (c))
 +    {
 +      ptrdiff_t count = SPECPDL_INDEX ();
 +
 +      help_form_saved_window_configs
 +      = Fcons (Fcurrent_window_configuration (Qnil),
 +               help_form_saved_window_configs);
 +      record_unwind_protect_void (read_char_help_form_unwind);
 +      call0 (Qhelp_form_show);
 +
 +      cancel_echoing ();
 +      do
 +      {
 +        c = read_char (0, Qnil, Qnil, 0, NULL);
 +        if (EVENT_HAS_PARAMETERS (c)
 +            && EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qmouse_click))
 +          XSETCAR (help_form_saved_window_configs, Qnil);
 +      }
 +      while (BUFFERP (c));
 +      /* Remove the help from the frame.  */
 +      unbind_to (count, Qnil);
 +
 +      redisplay ();
 +      if (EQ (c, make_number (040)))
 +      {
 +        cancel_echoing ();
 +        do
 +          c = read_char (0, Qnil, Qnil, 0, NULL);
 +        while (BUFFERP (c));
 +      }
 +    }
 +
 + exit:
 +  RESUME_POLLING;
 +  input_was_pending = input_pending;
 +  RETURN_UNGCPRO (c);
 +}
 +
 +/* Record a key that came from a mouse menu.
 +   Record it for echoing, for this-command-keys, and so on.  */
 +
 +static void
 +record_menu_key (Lisp_Object c)
 +{
 +  /* Wipe the echo area.  */
 +  clear_message (1, 0);
 +
 +  record_char (c);
 +
 +#if 0
 +  before_command_key_count = this_command_key_count;
 +  before_command_echo_length = echo_length ();
 +#endif
 +
 +  /* Don't echo mouse motion events.  */
 +  if (echo_keystrokes_p ())
 +    {
 +      echo_char (c);
 +
 +      /* Once we reread a character, echoing can happen
 +       the next time we pause to read a new one.  */
 +      ok_to_echo_at_next_pause = 0;
 +    }
 +
 +  /* Record this character as part of the current key.  */
 +  add_command_key (c);
 +
 +  /* Re-reading in the middle of a command.  */
 +  last_input_event = c;
 +  num_input_events++;
 +}
 +
 +/* Return true if should recognize C as "the help character".  */
 +
 +static bool
 +help_char_p (Lisp_Object c)
 +{
 +  Lisp_Object tail;
 +
 +  if (EQ (c, Vhelp_char))
 +    return 1;
 +  for (tail = Vhelp_event_list; CONSP (tail); tail = XCDR (tail))
 +    if (EQ (c, XCAR (tail)))
 +      return 1;
 +  return 0;
 +}
 +
 +/* Record the input event C in various ways.  */
 +
 +static void
 +record_char (Lisp_Object c)
 +{
 +  int recorded = 0;
 +
 +  if (CONSP (c) && (EQ (XCAR (c), Qhelp_echo) || EQ (XCAR (c), Qmouse_movement)))
 +    {
 +      /* To avoid filling recent_keys with help-echo and mouse-movement
 +       events, we filter out repeated help-echo events, only store the
 +       first and last in a series of mouse-movement events, and don't
 +       store repeated help-echo events which are only separated by
 +       mouse-movement events.  */
 +
 +      Lisp_Object ev1, ev2, ev3;
 +      int ix1, ix2, ix3;
 +
 +      if ((ix1 = recent_keys_index - 1) < 0)
 +      ix1 = NUM_RECENT_KEYS - 1;
 +      ev1 = AREF (recent_keys, ix1);
 +
 +      if ((ix2 = ix1 - 1) < 0)
 +      ix2 = NUM_RECENT_KEYS - 1;
 +      ev2 = AREF (recent_keys, ix2);
 +
 +      if ((ix3 = ix2 - 1) < 0)
 +      ix3 = NUM_RECENT_KEYS - 1;
 +      ev3 = AREF (recent_keys, ix3);
 +
 +      if (EQ (XCAR (c), Qhelp_echo))
 +      {
 +        /* Don't record `help-echo' in recent_keys unless it shows some help
 +           message, and a different help than the previously recorded
 +           event.  */
 +        Lisp_Object help, last_help;
 +
 +        help = Fcar_safe (Fcdr_safe (XCDR (c)));
 +        if (!STRINGP (help))
 +          recorded = 1;
 +        else if (CONSP (ev1) && EQ (XCAR (ev1), Qhelp_echo)
 +                 && (last_help = Fcar_safe (Fcdr_safe (XCDR (ev1))), EQ (last_help, help)))
 +          recorded = 1;
 +        else if (CONSP (ev1) && EQ (XCAR (ev1), Qmouse_movement)
 +                 && CONSP (ev2) && EQ (XCAR (ev2), Qhelp_echo)
 +                 && (last_help = Fcar_safe (Fcdr_safe (XCDR (ev2))), EQ (last_help, help)))
 +          recorded = -1;
 +        else if (CONSP (ev1) && EQ (XCAR (ev1), Qmouse_movement)
 +                 && CONSP (ev2) && EQ (XCAR (ev2), Qmouse_movement)
 +                 && CONSP (ev3) && EQ (XCAR (ev3), Qhelp_echo)
 +                 && (last_help = Fcar_safe (Fcdr_safe (XCDR (ev3))), EQ (last_help, help)))
 +          recorded = -2;
 +      }
 +      else if (EQ (XCAR (c), Qmouse_movement))
 +      {
 +        /* Only record one pair of `mouse-movement' on a window in recent_keys.
 +           So additional mouse movement events replace the last element.  */
 +        Lisp_Object last_window, window;
 +
 +        window = Fcar_safe (Fcar_safe (XCDR (c)));
 +        if (CONSP (ev1) && EQ (XCAR (ev1), Qmouse_movement)
 +            && (last_window = Fcar_safe (Fcar_safe (XCDR (ev1))), EQ (last_window, window))
 +            && CONSP (ev2) && EQ (XCAR (ev2), Qmouse_movement)
 +            && (last_window = Fcar_safe (Fcar_safe (XCDR (ev2))), EQ (last_window, window)))
 +          {
 +            ASET (recent_keys, ix1, c);
 +            recorded = 1;
 +          }
 +      }
 +    }
 +  else
 +    store_kbd_macro_char (c);
 +
 +  if (!recorded)
 +    {
 +      total_keys += total_keys < NUM_RECENT_KEYS;
 +      ASET (recent_keys, recent_keys_index, c);
 +      if (++recent_keys_index >= NUM_RECENT_KEYS)
 +      recent_keys_index = 0;
 +    }
 +  else if (recorded < 0)
 +    {
 +      /* We need to remove one or two events from recent_keys.
 +         To do this, we simply put nil at those events and move the
 +       recent_keys_index backwards over those events.  Usually,
 +       users will never see those nil events, as they will be
 +       overwritten by the command keys entered to see recent_keys
 +       (e.g. C-h l).  */
 +
 +      while (recorded++ < 0 && total_keys > 0)
 +      {
 +        if (total_keys < NUM_RECENT_KEYS)
 +          total_keys--;
 +        if (--recent_keys_index < 0)
 +          recent_keys_index = NUM_RECENT_KEYS - 1;
 +        ASET (recent_keys, recent_keys_index, Qnil);
 +      }
 +    }
 +
 +  num_nonmacro_input_events++;
 +
 +  /* Write c to the dribble file.  If c is a lispy event, write
 +     the event's symbol to the dribble file, in <brackets>.  Bleaugh.
 +     If you, dear reader, have a better idea, you've got the source.  :-) */
 +  if (dribble)
 +    {
 +      block_input ();
 +      if (INTEGERP (c))
 +      {
 +        if (XUINT (c) < 0x100)
 +          putc (XUINT (c), dribble);
 +        else
 +          fprintf (dribble, " 0x%"pI"x", XUINT (c));
 +      }
 +      else
 +      {
 +        Lisp_Object dribblee;
 +
 +        /* If it's a structured event, take the event header.  */
 +        dribblee = EVENT_HEAD (c);
 +
 +        if (SYMBOLP (dribblee))
 +          {
 +            putc ('<', dribble);
 +            fwrite (SDATA (SYMBOL_NAME (dribblee)), sizeof (char),
 +                    SBYTES (SYMBOL_NAME (dribblee)),
 +                    dribble);
 +            putc ('>', dribble);
 +          }
 +      }
 +
 +      fflush (dribble);
 +      unblock_input ();
 +    }
 +}
 +
 +/* Copy out or in the info on where C-g should throw to.
 +   This is used when running Lisp code from within get_char,
 +   in case get_char is called recursively.
 +   See read_process_output.  */
 +
 +static void
 +save_getcjmp (sys_jmp_buf temp)
 +{
 +  memcpy (temp, getcjmp, sizeof getcjmp);
 +}
 +
 +static void
 +restore_getcjmp (sys_jmp_buf temp)
 +{
 +  memcpy (getcjmp, temp, sizeof getcjmp);
 +}
 +\f
 +/* Low level keyboard/mouse input.
 +   kbd_buffer_store_event places events in kbd_buffer, and
 +   kbd_buffer_get_event retrieves them.  */
 +
 +/* Return true if there are any events in the queue that read-char
 +   would return.  If this returns false, a read-char would block.  */
 +static bool
 +readable_events (int flags)
 +{
 +  if (flags & READABLE_EVENTS_DO_TIMERS_NOW)
 +    timer_check ();
 +
 +  /* If the buffer contains only FOCUS_IN_EVENT events, and
 +     READABLE_EVENTS_FILTER_EVENTS is set, report it as empty.  */
 +  if (kbd_fetch_ptr != kbd_store_ptr)
 +    {
 +      if (flags & (READABLE_EVENTS_FILTER_EVENTS
 +#ifdef USE_TOOLKIT_SCROLL_BARS
 +                 | READABLE_EVENTS_IGNORE_SQUEEZABLES
 +#endif
 +                 ))
 +        {
 +          struct input_event *event;
 +
 +          event = ((kbd_fetch_ptr < kbd_buffer + KBD_BUFFER_SIZE)
 +                   ? kbd_fetch_ptr
 +                   : kbd_buffer);
 +
 +        do
 +          {
 +            if (!(
 +#ifdef USE_TOOLKIT_SCROLL_BARS
 +                  (flags & READABLE_EVENTS_FILTER_EVENTS) &&
 +#endif
 +                  event->kind == FOCUS_IN_EVENT)
 +#ifdef USE_TOOLKIT_SCROLL_BARS
 +                && !((flags & READABLE_EVENTS_IGNORE_SQUEEZABLES)
 +                     && (event->kind == SCROLL_BAR_CLICK_EVENT
 +                         || event->kind == HORIZONTAL_SCROLL_BAR_CLICK_EVENT)
 +                     && event->part == scroll_bar_handle
 +                     && event->modifiers == 0)
 +#endif
 +                && !((flags & READABLE_EVENTS_FILTER_EVENTS)
 +                     && event->kind == BUFFER_SWITCH_EVENT))
 +              return 1;
 +            event++;
 +              if (event == kbd_buffer + KBD_BUFFER_SIZE)
 +                event = kbd_buffer;
 +          }
 +        while (event != kbd_store_ptr);
 +        }
 +      else
 +      return 1;
 +    }
 +
 +  if (!(flags & READABLE_EVENTS_IGNORE_SQUEEZABLES)
 +      && !NILP (do_mouse_tracking) && some_mouse_moved ())
 +    return 1;
 +  if (single_kboard)
 +    {
 +      if (current_kboard->kbd_queue_has_data)
 +      return 1;
 +    }
 +  else
 +    {
 +      KBOARD *kb;
 +      for (kb = all_kboards; kb; kb = kb->next_kboard)
 +      if (kb->kbd_queue_has_data)
 +        return 1;
 +    }
 +  return 0;
 +}
 +
 +/* Set this for debugging, to have a way to get out */
 +int stop_character EXTERNALLY_VISIBLE;
 +
 +static KBOARD *
 +event_to_kboard (struct input_event *event)
 +{
 +  /* Not applicable for these special events.  */
 +  if (event->kind == SELECTION_REQUEST_EVENT
 +      || event->kind == SELECTION_CLEAR_EVENT)
 +    return NULL;
 +  else
 +    {
 +      Lisp_Object obj = event->frame_or_window;
 +      /* There are some events that set this field to nil or string.  */
 +      if (WINDOWP (obj))
 +      obj = WINDOW_FRAME (XWINDOW (obj));
 +      /* Also ignore dead frames here.  */
 +      return ((FRAMEP (obj) && FRAME_LIVE_P (XFRAME (obj)))
 +            ? FRAME_KBOARD (XFRAME (obj)) : NULL);
 +    }
 +}
 +
 +#ifdef subprocesses
 +/* Return the number of slots occupied in kbd_buffer.  */
 +
 +static int
 +kbd_buffer_nr_stored (void)
 +{
 +  return kbd_fetch_ptr == kbd_store_ptr
 +    ? 0
 +    : (kbd_fetch_ptr < kbd_store_ptr
 +       ? kbd_store_ptr - kbd_fetch_ptr
 +       : ((kbd_buffer + KBD_BUFFER_SIZE) - kbd_fetch_ptr
 +          + (kbd_store_ptr - kbd_buffer)));
 +}
 +#endif        /* Store an event obtained at interrupt level into kbd_buffer, fifo */
 +
 +void
 +kbd_buffer_store_event (register struct input_event *event)
 +{
 +  kbd_buffer_store_event_hold (event, 0);
 +}
 +
 +/* Store EVENT obtained at interrupt level into kbd_buffer, fifo.
 +
 +   If HOLD_QUIT is 0, just stuff EVENT into the fifo.
 +   Else, if HOLD_QUIT.kind != NO_EVENT, discard EVENT.
 +   Else, if EVENT is a quit event, store the quit event
 +   in HOLD_QUIT, and return (thus ignoring further events).
 +
 +   This is used to postpone the processing of the quit event until all
 +   subsequent input events have been parsed (and discarded).  */
 +
 +void
 +kbd_buffer_store_event_hold (register struct input_event *event,
 +                           struct input_event *hold_quit)
 +{
 +  if (event->kind == NO_EVENT)
 +    emacs_abort ();
 +
 +  if (hold_quit && hold_quit->kind != NO_EVENT)
 +    return;
 +
 +  if (event->kind == ASCII_KEYSTROKE_EVENT)
 +    {
 +      register int c = event->code & 0377;
 +
 +      if (event->modifiers & ctrl_modifier)
 +      c = make_ctrl_char (c);
 +
 +      c |= (event->modifiers
 +          & (meta_modifier | alt_modifier
 +             | hyper_modifier | super_modifier));
 +
 +      if (c == quit_char)
 +      {
 +        KBOARD *kb = FRAME_KBOARD (XFRAME (event->frame_or_window));
 +        struct input_event *sp;
 +
 +        if (single_kboard && kb != current_kboard)
 +          {
 +            kset_kbd_queue
 +              (kb, list2 (make_lispy_switch_frame (event->frame_or_window),
 +                          make_number (c)));
 +            kb->kbd_queue_has_data = 1;
 +            for (sp = kbd_fetch_ptr; sp != kbd_store_ptr; sp++)
 +              {
 +                if (sp == kbd_buffer + KBD_BUFFER_SIZE)
 +                  sp = kbd_buffer;
 +
 +                if (event_to_kboard (sp) == kb)
 +                  {
 +                    sp->kind = NO_EVENT;
 +                    sp->frame_or_window = Qnil;
 +                    sp->arg = Qnil;
 +                  }
 +              }
 +            return;
 +          }
 +
 +        if (hold_quit)
 +          {
 +            *hold_quit = *event;
 +            return;
 +          }
 +
 +        /* If this results in a quit_char being returned to Emacs as
 +           input, set Vlast_event_frame properly.  If this doesn't
 +           get returned to Emacs as an event, the next event read
 +           will set Vlast_event_frame again, so this is safe to do.  */
 +        {
 +          Lisp_Object focus;
 +
 +          focus = FRAME_FOCUS_FRAME (XFRAME (event->frame_or_window));
 +          if (NILP (focus))
 +            focus = event->frame_or_window;
 +          internal_last_event_frame = focus;
 +          Vlast_event_frame = focus;
 +        }
 +
 +        handle_interrupt (0);
 +        return;
 +      }
 +
 +      if (c && c == stop_character)
 +      {
 +        sys_suspend ();
 +        return;
 +      }
 +    }
 +  /* Don't insert two BUFFER_SWITCH_EVENT's in a row.
 +     Just ignore the second one.  */
 +  else if (event->kind == BUFFER_SWITCH_EVENT
 +         && kbd_fetch_ptr != kbd_store_ptr
 +         && ((kbd_store_ptr == kbd_buffer
 +              ? kbd_buffer + KBD_BUFFER_SIZE - 1
 +              : kbd_store_ptr - 1)->kind) == BUFFER_SWITCH_EVENT)
 +    return;
 +
 +  if (kbd_store_ptr - kbd_buffer == KBD_BUFFER_SIZE)
 +    kbd_store_ptr = kbd_buffer;
 +
 +  /* Don't let the very last slot in the buffer become full,
 +     since that would make the two pointers equal,
 +     and that is indistinguishable from an empty buffer.
 +     Discard the event if it would fill the last slot.  */
 +  if (kbd_fetch_ptr - 1 != kbd_store_ptr)
 +    {
 +      *kbd_store_ptr = *event;
 +      ++kbd_store_ptr;
 +#ifdef subprocesses
 +      if (kbd_buffer_nr_stored () > KBD_BUFFER_SIZE / 2
 +        && ! kbd_on_hold_p ())
 +        {
 +          /* Don't read keyboard input until we have processed kbd_buffer.
 +             This happens when pasting text longer than KBD_BUFFER_SIZE/2.  */
 +          hold_keyboard_input ();
 +          if (!noninteractive)
 +            ignore_sigio ();
 +          stop_polling ();
 +        }
 +#endif        /* subprocesses */
 +    }
 +
 +  /* If we're inside while-no-input, and this event qualifies
 +     as input, set quit-flag to cause an interrupt.  */
 +  if (!NILP (Vthrow_on_input)
 +      && event->kind != FOCUS_IN_EVENT
 +      && event->kind != FOCUS_OUT_EVENT
 +      && event->kind != HELP_EVENT
 +      && event->kind != ICONIFY_EVENT
 +      && event->kind != DEICONIFY_EVENT)
 +    {
 +      Vquit_flag = Vthrow_on_input;
 +      /* If we're inside a function that wants immediate quits,
 +       do it now.  */
 +      if (immediate_quit && NILP (Vinhibit_quit))
 +      {
 +        immediate_quit = 0;
 +        QUIT;
 +      }
 +    }
 +}
 +
 +
 +/* Put an input event back in the head of the event queue.  */
 +
 +void
 +kbd_buffer_unget_event (register struct input_event *event)
 +{
 +  if (kbd_fetch_ptr == kbd_buffer)
 +    kbd_fetch_ptr = kbd_buffer + KBD_BUFFER_SIZE;
 +
 +  /* Don't let the very last slot in the buffer become full,  */
 +  if (kbd_fetch_ptr - 1 != kbd_store_ptr)
 +    {
 +      --kbd_fetch_ptr;
 +      *kbd_fetch_ptr = *event;
 +    }
 +}
 +
 +/* Limit help event positions to this range, to avoid overflow problems.  */
 +#define INPUT_EVENT_POS_MAX \
 +  ((ptrdiff_t) min (PTRDIFF_MAX, min (TYPE_MAXIMUM (Time) / 2, \
 +                                    MOST_POSITIVE_FIXNUM)))
 +#define INPUT_EVENT_POS_MIN (-1 - INPUT_EVENT_POS_MAX)
 +
 +/* Return a Time that encodes position POS.  POS must be in range.  */
 +
 +static Time
 +position_to_Time (ptrdiff_t pos)
 +{
 +  eassert (INPUT_EVENT_POS_MIN <= pos && pos <= INPUT_EVENT_POS_MAX);
 +  return pos;
 +}
 +
 +/* Return the position that ENCODED_POS encodes.
 +   Avoid signed integer overflow.  */
 +
 +static ptrdiff_t
 +Time_to_position (Time encoded_pos)
 +{
 +  if (encoded_pos <= INPUT_EVENT_POS_MAX)
 +    return encoded_pos;
 +  Time encoded_pos_min = INPUT_EVENT_POS_MIN;
 +  eassert (encoded_pos_min <= encoded_pos);
 +  ptrdiff_t notpos = -1 - encoded_pos;
 +  return -1 - notpos;
 +}
 +
 +/* Generate a HELP_EVENT input_event and store it in the keyboard
 +   buffer.
 +
 +   HELP is the help form.
 +
 +   FRAME and WINDOW are the frame and window where the help is
 +   generated.  OBJECT is the Lisp object where the help was found (a
 +   buffer, a string, an overlay, or nil if neither from a string nor
 +   from a buffer).  POS is the position within OBJECT where the help
 +   was found.  */
 +
 +void
 +gen_help_event (Lisp_Object help, Lisp_Object frame, Lisp_Object window,
 +              Lisp_Object object, ptrdiff_t pos)
 +{
 +  struct input_event event;
 +
 +  event.kind = HELP_EVENT;
 +  event.frame_or_window = frame;
 +  event.arg = object;
 +  event.x = WINDOWP (window) ? window : frame;
 +  event.y = help;
 +  event.timestamp = position_to_Time (pos);
 +  kbd_buffer_store_event (&event);
 +}
 +
 +
 +/* Store HELP_EVENTs for HELP on FRAME in the input queue.  */
 +
 +void
 +kbd_buffer_store_help_event (Lisp_Object frame, Lisp_Object help)
 +{
 +  struct input_event event;
 +
 +  event.kind = HELP_EVENT;
 +  event.frame_or_window = frame;
 +  event.arg = Qnil;
 +  event.x = Qnil;
 +  event.y = help;
 +  event.timestamp = 0;
 +  kbd_buffer_store_event (&event);
 +}
 +
 +\f
 +/* Discard any mouse events in the event buffer by setting them to
 +   NO_EVENT.  */
 +void
 +discard_mouse_events (void)
 +{
 +  struct input_event *sp;
 +  for (sp = kbd_fetch_ptr; sp != kbd_store_ptr; sp++)
 +    {
 +      if (sp == kbd_buffer + KBD_BUFFER_SIZE)
 +      sp = kbd_buffer;
 +
 +      if (sp->kind == MOUSE_CLICK_EVENT
 +        || sp->kind == WHEEL_EVENT
 +          || sp->kind == HORIZ_WHEEL_EVENT
 +#ifdef HAVE_GPM
 +        || sp->kind == GPM_CLICK_EVENT
 +#endif
 +        || sp->kind == SCROLL_BAR_CLICK_EVENT
 +        || sp->kind == HORIZONTAL_SCROLL_BAR_CLICK_EVENT)
 +      {
 +        sp->kind = NO_EVENT;
 +      }
 +    }
 +}
 +
 +
 +/* Return true if there are any real events waiting in the event
 +   buffer, not counting `NO_EVENT's.
 +
 +   Discard NO_EVENT events at the front of the input queue, possibly
 +   leaving the input queue empty if there are no real input events.  */
 +
 +bool
 +kbd_buffer_events_waiting (void)
 +{
 +  struct input_event *sp;
 +
 +  for (sp = kbd_fetch_ptr;
 +       sp != kbd_store_ptr && sp->kind == NO_EVENT;
 +       ++sp)
 +    {
 +      if (sp == kbd_buffer + KBD_BUFFER_SIZE)
 +      sp = kbd_buffer;
 +    }
 +
 +  kbd_fetch_ptr = sp;
 +  return sp != kbd_store_ptr && sp->kind != NO_EVENT;
 +}
 +
 +\f
 +/* Clear input event EVENT.  */
 +
 +static void
 +clear_event (struct input_event *event)
 +{
 +  event->kind = NO_EVENT;
 +}
 +
 +
 +/* Read one event from the event buffer, waiting if necessary.
 +   The value is a Lisp object representing the event.
 +   The value is nil for an event that should be ignored,
 +   or that was handled here.
 +   We always read and discard one event.  */
 +
 +static Lisp_Object
 +kbd_buffer_get_event (KBOARD **kbp,
 +                      bool *used_mouse_menu,
 +                      struct timespec *end_time)
 +{
 +  Lisp_Object obj;
 +
 +#ifdef subprocesses
 +  if (kbd_on_hold_p () && kbd_buffer_nr_stored () < KBD_BUFFER_SIZE / 4)
 +    {
 +      /* Start reading input again because we have processed enough to
 +         be able to accept new events again.  */
 +      unhold_keyboard_input ();
 +      start_polling ();
 +    }
 +#endif        /* subprocesses */
 +
 +#if !defined HAVE_DBUS && !defined USE_FILE_NOTIFY
 +  if (noninteractive
 +      /* In case we are running as a daemon, only do this before
 +       detaching from the terminal.  */
 +      || (IS_DAEMON && DAEMON_RUNNING))
 +    {
 +      int c = getchar ();
 +      XSETINT (obj, c);
 +      *kbp = current_kboard;
 +      return obj;
 +    }
 +#endif        /* !defined HAVE_DBUS && !defined USE_FILE_NOTIFY  */
 +
 +  /* Wait until there is input available.  */
 +  for (;;)
 +    {
 +      /* Break loop if there's an unread command event.  Needed in
 +       moused window autoselection which uses a timer to insert such
 +       events.  */
 +      if (CONSP (Vunread_command_events))
 +      break;
 +
 +      if (kbd_fetch_ptr != kbd_store_ptr)
 +      break;
 +      if (!NILP (do_mouse_tracking) && some_mouse_moved ())
 +      break;
 +
 +      /* If the quit flag is set, then read_char will return
 +       quit_char, so that counts as "available input."  */
 +      if (!NILP (Vquit_flag))
 +      quit_throw_to_read_char (0);
 +
 +      /* One way or another, wait until input is available; then, if
 +       interrupt handlers have not read it, read it now.  */
 +
 +#ifdef USABLE_SIGIO
 +      gobble_input ();
 +#endif
 +      if (kbd_fetch_ptr != kbd_store_ptr)
 +      break;
 +      if (!NILP (do_mouse_tracking) && some_mouse_moved ())
 +      break;
 +      if (end_time)
 +      {
 +        struct timespec now = current_timespec ();
 +        if (timespec_cmp (*end_time, now) <= 0)
 +          return Qnil;        /* Finished waiting.  */
 +        else
 +          {
 +            struct timespec duration = timespec_sub (*end_time, now);
 +            wait_reading_process_output (min (duration.tv_sec,
 +                                              WAIT_READING_MAX),
 +                                         duration.tv_nsec,
 +                                         -1, 1, Qnil, NULL, 0);
 +          }
 +      }
 +      else
 +      {
 +        bool do_display = true;
 +
 +        if (FRAME_TERMCAP_P (SELECTED_FRAME ()))
 +          {
 +            struct tty_display_info *tty = CURTTY ();
 +
 +            /* When this TTY is displaying a menu, we must prevent
 +               any redisplay, because we modify the frame's glyph
 +               matrix behind the back of the display engine.  */
 +            if (tty->showing_menu)
 +              do_display = false;
 +          }
 +
 +        wait_reading_process_output (0, 0, -1, do_display, Qnil, NULL, 0);
 +      }
 +
 +      if (!interrupt_input && kbd_fetch_ptr == kbd_store_ptr)
 +      gobble_input ();
 +    }
 +
 +  if (CONSP (Vunread_command_events))
 +    {
 +      Lisp_Object first;
 +      first = XCAR (Vunread_command_events);
 +      Vunread_command_events = XCDR (Vunread_command_events);
 +      *kbp = current_kboard;
 +      return first;
 +    }
 +
 +  /* At this point, we know that there is a readable event available
 +     somewhere.  If the event queue is empty, then there must be a
 +     mouse movement enabled and available.  */
 +  if (kbd_fetch_ptr != kbd_store_ptr)
 +    {
 +      struct input_event *event;
 +
 +      event = ((kbd_fetch_ptr < kbd_buffer + KBD_BUFFER_SIZE)
 +             ? kbd_fetch_ptr
 +             : kbd_buffer);
 +
 +      *kbp = event_to_kboard (event);
 +      if (*kbp == 0)
 +      *kbp = current_kboard;  /* Better than returning null ptr?  */
 +
 +      obj = Qnil;
 +
 +      /* These two kinds of events get special handling
 +       and don't actually appear to the command loop.
 +       We return nil for them.  */
 +      if (event->kind == SELECTION_REQUEST_EVENT
 +        || event->kind == SELECTION_CLEAR_EVENT)
 +      {
 +#ifdef HAVE_X11
 +        struct input_event copy;
 +
 +        /* Remove it from the buffer before processing it,
 +           since otherwise swallow_events will see it
 +           and process it again.  */
 +        copy = *event;
 +        kbd_fetch_ptr = event + 1;
 +        input_pending = readable_events (0);
 +        x_handle_selection_event (&copy);
 +#else
 +        /* We're getting selection request events, but we don't have
 +             a window system.  */
 +        emacs_abort ();
 +#endif
 +      }
 +
 +#if defined (HAVE_NS)
 +      else if (event->kind == NS_TEXT_EVENT)
 +        {
 +          if (event->code == KEY_NS_PUT_WORKING_TEXT)
 +            obj = list1 (intern ("ns-put-working-text"));
 +          else
 +            obj = list1 (intern ("ns-unput-working-text"));
 +        kbd_fetch_ptr = event + 1;
 +          if (used_mouse_menu)
 +            *used_mouse_menu = 1;
 +        }
 +#endif
 +
 +#if defined (HAVE_X11) || defined (HAVE_NTGUI) \
 +    || defined (HAVE_NS)
 +      else if (event->kind == DELETE_WINDOW_EVENT)
 +      {
 +        /* Make an event (delete-frame (FRAME)).  */
 +        obj = list2 (Qdelete_frame, list1 (event->frame_or_window));
 +        kbd_fetch_ptr = event + 1;
 +      }
 +#endif
 +#if defined (HAVE_X11) || defined (HAVE_NTGUI) \
 +    || defined (HAVE_NS)
 +      else if (event->kind == ICONIFY_EVENT)
 +      {
 +        /* Make an event (iconify-frame (FRAME)).  */
 +        obj = list2 (Qiconify_frame, list1 (event->frame_or_window));
 +        kbd_fetch_ptr = event + 1;
 +      }
 +      else if (event->kind == DEICONIFY_EVENT)
 +      {
 +        /* Make an event (make-frame-visible (FRAME)).  */
 +        obj = list2 (Qmake_frame_visible, list1 (event->frame_or_window));
 +        kbd_fetch_ptr = event + 1;
 +      }
 +#endif
 +      else if (event->kind == BUFFER_SWITCH_EVENT)
 +      {
 +        /* The value doesn't matter here; only the type is tested.  */
 +        XSETBUFFER (obj, current_buffer);
 +        kbd_fetch_ptr = event + 1;
 +      }
 +#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \
 +    || defined (HAVE_NS) || defined (USE_GTK)
 +      else if (event->kind == MENU_BAR_ACTIVATE_EVENT)
 +      {
 +        kbd_fetch_ptr = event + 1;
 +        input_pending = readable_events (0);
 +        if (FRAME_LIVE_P (XFRAME (event->frame_or_window)))
 +          x_activate_menubar (XFRAME (event->frame_or_window));
 +      }
 +#endif
 +#ifdef HAVE_NTGUI
 +      else if (event->kind == LANGUAGE_CHANGE_EVENT)
 +      {
 +        /* Make an event (language-change FRAME CODEPAGE LANGUAGE-ID).  */
 +        obj = list4 (Qlanguage_change,
 +                     event->frame_or_window,
 +                     make_number (event->code),
 +                     make_number (event->modifiers));
 +        kbd_fetch_ptr = event + 1;
 +      }
 +#endif
 +#ifdef USE_FILE_NOTIFY
 +      else if (event->kind == FILE_NOTIFY_EVENT)
 +      {
 +#ifdef HAVE_W32NOTIFY
 +        /* Make an event (file-notify (DESCRIPTOR ACTION FILE) CALLBACK).  */
 +        obj = list3 (Qfile_notify, event->arg, event->frame_or_window);
 +#else
 +          obj = make_lispy_event (event);
 +#endif
 +        kbd_fetch_ptr = event + 1;
 +      }
 +#endif /* USE_FILE_NOTIFY */
 +      else if (event->kind == SAVE_SESSION_EVENT)
 +        {
 +          obj = list2 (Qsave_session, event->arg);
 +        kbd_fetch_ptr = event + 1;
 +        }
 +      /* Just discard these, by returning nil.
 +       With MULTI_KBOARD, these events are used as placeholders
 +       when we need to randomly delete events from the queue.
 +       (They shouldn't otherwise be found in the buffer,
 +       but on some machines it appears they do show up
 +       even without MULTI_KBOARD.)  */
 +      /* On Windows NT/9X, NO_EVENT is used to delete extraneous
 +         mouse events during a popup-menu call.  */
 +      else if (event->kind == NO_EVENT)
 +      kbd_fetch_ptr = event + 1;
 +      else if (event->kind == HELP_EVENT)
 +      {
 +        Lisp_Object object, position, help, frame, window;
 +
 +        frame = event->frame_or_window;
 +        object = event->arg;
 +        position = make_number (Time_to_position (event->timestamp));
 +        window = event->x;
 +        help = event->y;
 +        clear_event (event);
 +
 +        kbd_fetch_ptr = event + 1;
 +        if (!WINDOWP (window))
 +          window = Qnil;
 +        obj = Fcons (Qhelp_echo,
 +                     list5 (frame, help, window, object, position));
 +      }
 +      else if (event->kind == FOCUS_IN_EVENT)
 +      {
 +        /* Notification of a FocusIn event.  The frame receiving the
 +           focus is in event->frame_or_window.  Generate a
 +           switch-frame event if necessary.  */
 +        Lisp_Object frame, focus;
 +
 +          frame = event->frame_or_window;
 +          focus = FRAME_FOCUS_FRAME (XFRAME (frame));
 +          if (FRAMEP (focus))
 +            frame = focus;
 +
 +          if (
 +#ifdef HAVE_X11
 +              ! NILP (event->arg)
 +              &&
 +#endif
 +              !EQ (frame, internal_last_event_frame)
 +              && !EQ (frame, selected_frame))
 +            obj = make_lispy_switch_frame (frame);
 +          else
 +            obj = make_lispy_focus_in (frame);
 +
 +          internal_last_event_frame = frame;
 +          kbd_fetch_ptr = event + 1;
 +        }
 +      else if (event->kind == FOCUS_OUT_EVENT)
 +        {
 +#ifdef HAVE_WINDOW_SYSTEM
 +
 +          Display_Info *di;
 +          Lisp_Object frame = event->frame_or_window;
 +          bool focused = false;
 +
 +          for (di = x_display_list; di && ! focused; di = di->next)
 +            focused = di->x_highlight_frame != 0;
 +
 +          if (!focused)
 +          obj = make_lispy_focus_out (frame);
 +
 +#endif /* HAVE_WINDOW_SYSTEM */
 +
 +          kbd_fetch_ptr = event + 1;
 +        }
 +#ifdef HAVE_DBUS
 +      else if (event->kind == DBUS_EVENT)
 +      {
 +        obj = make_lispy_event (event);
 +        kbd_fetch_ptr = event + 1;
 +      }
 +#endif
 +      else if (event->kind == CONFIG_CHANGED_EVENT)
 +      {
 +        obj = make_lispy_event (event);
 +        kbd_fetch_ptr = event + 1;
 +      }
 +      else
 +      {
 +        /* If this event is on a different frame, return a switch-frame this
 +           time, and leave the event in the queue for next time.  */
 +        Lisp_Object frame;
 +        Lisp_Object focus;
 +
 +        frame = event->frame_or_window;
 +        if (CONSP (frame))
 +          frame = XCAR (frame);
 +        else if (WINDOWP (frame))
 +          frame = WINDOW_FRAME (XWINDOW (frame));
 +
 +        focus = FRAME_FOCUS_FRAME (XFRAME (frame));
 +        if (! NILP (focus))
 +          frame = focus;
 +
 +        if (! EQ (frame, internal_last_event_frame)
 +            && !EQ (frame, selected_frame))
 +          obj = make_lispy_switch_frame (frame);
 +        internal_last_event_frame = frame;
 +
 +        /* If we didn't decide to make a switch-frame event, go ahead
 +           and build a real event from the queue entry.  */
 +
 +        if (NILP (obj))
 +          {
 +            obj = make_lispy_event (event);
 +
 +#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \
 +    || defined (HAVE_NS) || defined (USE_GTK)
 +            /* If this was a menu selection, then set the flag to inhibit
 +               writing to last_nonmenu_event.  Don't do this if the event
 +               we're returning is (menu-bar), though; that indicates the
 +               beginning of the menu sequence, and we might as well leave
 +               that as the `event with parameters' for this selection.  */
 +            if (used_mouse_menu
 +                && !EQ (event->frame_or_window, event->arg)
 +                && (event->kind == MENU_BAR_EVENT
 +                    || event->kind == TOOL_BAR_EVENT))
 +              *used_mouse_menu = 1;
 +#endif
 +#ifdef HAVE_NS
 +            /* Certain system events are non-key events.  */
 +            if (used_mouse_menu
 +                  && event->kind == NS_NONKEY_EVENT)
 +              *used_mouse_menu = 1;
 +#endif
 +
 +            /* Wipe out this event, to catch bugs.  */
 +            clear_event (event);
 +            kbd_fetch_ptr = event + 1;
 +          }
 +      }
 +    }
 +  /* Try generating a mouse motion event.  */
 +  else if (!NILP (do_mouse_tracking) && some_mouse_moved ())
 +    {
 +      struct frame *f = some_mouse_moved ();
 +      Lisp_Object bar_window;
 +      enum scroll_bar_part part;
 +      Lisp_Object x, y;
 +      Time t;
 +
 +      *kbp = current_kboard;
 +      /* Note that this uses F to determine which terminal to look at.
 +       If there is no valid info, it does not store anything
 +       so x remains nil.  */
 +      x = Qnil;
 +
 +      /* XXX Can f or mouse_position_hook be NULL here?  */
 +      if (f && FRAME_TERMINAL (f)->mouse_position_hook)
 +        (*FRAME_TERMINAL (f)->mouse_position_hook) (&f, 0, &bar_window,
 +                                                    &part, &x, &y, &t);
 +
 +      obj = Qnil;
 +
 +      /* Decide if we should generate a switch-frame event.  Don't
 +       generate switch-frame events for motion outside of all Emacs
 +       frames.  */
 +      if (!NILP (x) && f)
 +      {
 +        Lisp_Object frame;
 +
 +        frame = FRAME_FOCUS_FRAME (f);
 +        if (NILP (frame))
 +          XSETFRAME (frame, f);
 +
 +        if (! EQ (frame, internal_last_event_frame)
 +            && !EQ (frame, selected_frame))
 +          obj = make_lispy_switch_frame (frame);
 +        internal_last_event_frame = frame;
 +      }
 +
 +      /* If we didn't decide to make a switch-frame event, go ahead and
 +       return a mouse-motion event.  */
 +      if (!NILP (x) && NILP (obj))
 +      obj = make_lispy_movement (f, bar_window, part, x, y, t);
 +    }
 +  else
 +    /* We were promised by the above while loop that there was
 +       something for us to read!  */
 +    emacs_abort ();
 +
 +  input_pending = readable_events (0);
 +
 +  Vlast_event_frame = internal_last_event_frame;
 +
 +  return (obj);
 +}
 +\f
 +/* Process any non-user-visible events (currently X selection events),
 +   without reading any user-visible events.  */
 +
 +static void
 +process_special_events (void)
 +{
 +  struct input_event *event;
 +
 +  for (event = kbd_fetch_ptr; event != kbd_store_ptr; ++event)
 +    {
 +      if (event == kbd_buffer + KBD_BUFFER_SIZE)
 +      {
 +        event = kbd_buffer;
 +        if (event == kbd_store_ptr)
 +          break;
 +      }
 +
 +      /* If we find a stored X selection request, handle it now.  */
 +      if (event->kind == SELECTION_REQUEST_EVENT
 +        || event->kind == SELECTION_CLEAR_EVENT)
 +      {
 +#ifdef HAVE_X11
 +
 +        /* Remove the event from the fifo buffer before processing;
 +           otherwise swallow_events called recursively could see it
 +           and process it again.  To do this, we move the events
 +           between kbd_fetch_ptr and EVENT one slot to the right,
 +           cyclically.  */
 +
 +        struct input_event copy = *event;
 +        struct input_event *beg
 +          = (kbd_fetch_ptr == kbd_buffer + KBD_BUFFER_SIZE)
 +          ? kbd_buffer : kbd_fetch_ptr;
 +
 +        if (event > beg)
 +          memmove (beg + 1, beg, (event - beg) * sizeof (struct input_event));
 +        else if (event < beg)
 +          {
 +            if (event > kbd_buffer)
 +              memmove (kbd_buffer + 1, kbd_buffer,
 +                       (event - kbd_buffer) * sizeof (struct input_event));
 +            *kbd_buffer = *(kbd_buffer + KBD_BUFFER_SIZE - 1);
 +            if (beg < kbd_buffer + KBD_BUFFER_SIZE - 1)
 +              memmove (beg + 1, beg,
 +                       (kbd_buffer + KBD_BUFFER_SIZE - 1 - beg)
 +                       * sizeof (struct input_event));
 +          }
 +
 +        if (kbd_fetch_ptr == kbd_buffer + KBD_BUFFER_SIZE)
 +          kbd_fetch_ptr = kbd_buffer + 1;
 +        else
 +          kbd_fetch_ptr++;
 +
 +        input_pending = readable_events (0);
 +        x_handle_selection_event (&copy);
 +#else
 +        /* We're getting selection request events, but we don't have
 +             a window system.  */
 +        emacs_abort ();
 +#endif
 +      }
 +    }
 +}
 +
 +/* Process any events that are not user-visible, run timer events that
 +   are ripe, and return, without reading any user-visible events.  */
 +
 +void
 +swallow_events (bool do_display)
 +{
 +  unsigned old_timers_run;
 +
 +  process_special_events ();
 +
 +  old_timers_run = timers_run;
 +  get_input_pending (READABLE_EVENTS_DO_TIMERS_NOW);
 +
 +  if (!input_pending && timers_run != old_timers_run && do_display)
 +    redisplay_preserve_echo_area (7);
 +}
 +\f
 +/* Record the start of when Emacs is idle,
 +   for the sake of running idle-time timers.  */
 +
 +static void
 +timer_start_idle (void)
 +{
 +  /* If we are already in the idle state, do nothing.  */
 +  if (timespec_valid_p (timer_idleness_start_time))
 +    return;
 +
 +  timer_idleness_start_time = current_timespec ();
 +  timer_last_idleness_start_time = timer_idleness_start_time;
 +
 +  /* Mark all idle-time timers as once again candidates for running.  */
 +  call0 (intern ("internal-timer-start-idle"));
 +}
 +
 +/* Record that Emacs is no longer idle, so stop running idle-time timers.  */
 +
 +static void
 +timer_stop_idle (void)
 +{
 +  timer_idleness_start_time = invalid_timespec ();
 +}
 +
 +/* Resume idle timer from last idle start time.  */
 +
 +static void
 +timer_resume_idle (void)
 +{
 +  if (timespec_valid_p (timer_idleness_start_time))
 +    return;
 +
 +  timer_idleness_start_time = timer_last_idleness_start_time;
 +}
 +
 +/* This is only for debugging.  */
 +struct input_event last_timer_event EXTERNALLY_VISIBLE;
 +
 +/* List of elisp functions to call, delayed because they were generated in
 +   a context where Elisp could not be safely run (e.g. redisplay, signal,
 +   ...).  Each element has the form (FUN . ARGS).  */
 +Lisp_Object pending_funcalls;
 +
 +/* Return true if TIMER is a valid timer, placing its value into *RESULT.  */
 +static bool
 +decode_timer (Lisp_Object timer, struct timespec *result)
 +{
 +  Lisp_Object *vec;
 +
 +  if (! (VECTORP (timer) && ASIZE (timer) == 9))
 +    return 0;
 +  vec = XVECTOR (timer)->contents;
 +  if (! NILP (vec[0]))
 +    return 0;
 +  if (! INTEGERP (vec[2]))
 +    return false;
 +
 +  struct lisp_time t;
 +  if (decode_time_components (vec[1], vec[2], vec[3], vec[8], &t, 0) <= 0)
 +    return false;
 +  *result = lisp_to_timespec (t);
 +  return timespec_valid_p (*result);
 +}
 +
 +
 +/* Check whether a timer has fired.  To prevent larger problems we simply
 +   disregard elements that are not proper timers.  Do not make a circular
 +   timer list for the time being.
 +
 +   Returns the time to wait until the next timer fires.  If a
 +   timer is triggering now, return zero.
 +   If no timer is active, return -1.
 +
 +   If a timer is ripe, we run it, with quitting turned off.
 +   In that case we return 0 to indicate that a new timer_check_2 call
 +   should be done.  */
 +
 +static struct timespec
 +timer_check_2 (Lisp_Object timers, Lisp_Object idle_timers)
 +{
 +  struct timespec nexttime;
 +  struct timespec now;
 +  struct timespec idleness_now;
 +  Lisp_Object chosen_timer;
 +  struct gcpro gcpro1;
 +
 +  nexttime = invalid_timespec ();
 +
 +  chosen_timer = Qnil;
 +  GCPRO1 (chosen_timer);
 +
 +  /* First run the code that was delayed.  */
 +  while (CONSP (pending_funcalls))
 +    {
 +      Lisp_Object funcall = XCAR (pending_funcalls);
 +      pending_funcalls = XCDR (pending_funcalls);
 +      safe_call2 (Qapply, XCAR (funcall), XCDR (funcall));
 +    }
 +
 +  if (CONSP (timers) || CONSP (idle_timers))
 +    {
 +      now = current_timespec ();
 +      idleness_now = (timespec_valid_p (timer_idleness_start_time)
 +                    ? timespec_sub (now, timer_idleness_start_time)
 +                    : make_timespec (0, 0));
 +    }
 +
 +  while (CONSP (timers) || CONSP (idle_timers))
 +    {
 +      Lisp_Object timer = Qnil, idle_timer = Qnil;
 +      struct timespec timer_time, idle_timer_time;
 +      struct timespec difference;
 +      struct timespec timer_difference = invalid_timespec ();
 +      struct timespec idle_timer_difference = invalid_timespec ();
 +      bool ripe, timer_ripe = 0, idle_timer_ripe = 0;
 +
 +      /* Set TIMER and TIMER_DIFFERENCE
 +       based on the next ordinary timer.
 +       TIMER_DIFFERENCE is the distance in time from NOW to when
 +       this timer becomes ripe.
 +         Skip past invalid timers and timers already handled.  */
 +      if (CONSP (timers))
 +      {
 +        timer = XCAR (timers);
 +        if (! decode_timer (timer, &timer_time))
 +          {
 +            timers = XCDR (timers);
 +            continue;
 +          }
 +
 +        timer_ripe = timespec_cmp (timer_time, now) <= 0;
 +        timer_difference = (timer_ripe
 +                            ? timespec_sub (now, timer_time)
 +                            : timespec_sub (timer_time, now));
 +      }
 +
 +      /* Likewise for IDLE_TIMER and IDLE_TIMER_DIFFERENCE
 +       based on the next idle timer.  */
 +      if (CONSP (idle_timers))
 +      {
 +        idle_timer = XCAR (idle_timers);
 +        if (! decode_timer (idle_timer, &idle_timer_time))
 +          {
 +            idle_timers = XCDR (idle_timers);
 +            continue;
 +          }
 +
 +        idle_timer_ripe = timespec_cmp (idle_timer_time, idleness_now) <= 0;
 +        idle_timer_difference
 +          = (idle_timer_ripe
 +             ? timespec_sub (idleness_now, idle_timer_time)
 +             : timespec_sub (idle_timer_time, idleness_now));
 +      }
 +
 +      /* Decide which timer is the next timer,
 +       and set CHOSEN_TIMER, DIFFERENCE, and RIPE accordingly.
 +       Also step down the list where we found that timer.  */
 +
 +      if (timespec_valid_p (timer_difference)
 +        && (! timespec_valid_p (idle_timer_difference)
 +            || idle_timer_ripe < timer_ripe
 +            || (idle_timer_ripe == timer_ripe
 +                && ((timer_ripe
 +                     ? timespec_cmp (idle_timer_difference,
 +                                     timer_difference)
 +                     : timespec_cmp (timer_difference,
 +                                     idle_timer_difference))
 +                    < 0))))
 +      {
 +        chosen_timer = timer;
 +        timers = XCDR (timers);
 +        difference = timer_difference;
 +        ripe = timer_ripe;
 +      }
 +      else
 +      {
 +        chosen_timer = idle_timer;
 +        idle_timers = XCDR (idle_timers);
 +        difference = idle_timer_difference;
 +        ripe = idle_timer_ripe;
 +      }
 +
 +      /* If timer is ripe, run it if it hasn't been run.  */
 +      if (ripe)
 +      {
 +        if (NILP (AREF (chosen_timer, 0)))
 +          {
 +            ptrdiff_t count = SPECPDL_INDEX ();
 +            Lisp_Object old_deactivate_mark = Vdeactivate_mark;
 +
 +            /* Mark the timer as triggered to prevent problems if the lisp
 +               code fails to reschedule it right.  */
 +            ASET (chosen_timer, 0, Qt);
 +
 +            specbind (Qinhibit_quit, Qt);
 +
 +            call1 (Qtimer_event_handler, chosen_timer);
 +            Vdeactivate_mark = old_deactivate_mark;
 +            timers_run++;
 +            unbind_to (count, Qnil);
 +
 +            /* Since we have handled the event,
 +               we don't need to tell the caller to wake up and do it.  */
 +              /* But the caller must still wait for the next timer, so
 +                 return 0 to indicate that.  */
 +          }
 +
 +        nexttime = make_timespec (0, 0);
 +          break;
 +      }
 +      else
 +      /* When we encounter a timer that is still waiting,
 +         return the amount of time to wait before it is ripe.  */
 +      {
 +        UNGCPRO;
 +        return difference;
 +      }
 +    }
 +
 +  /* No timers are pending in the future.  */
 +  /* Return 0 if we generated an event, and -1 if not.  */
 +  UNGCPRO;
 +  return nexttime;
 +}
 +
 +
 +/* Check whether a timer has fired.  To prevent larger problems we simply
 +   disregard elements that are not proper timers.  Do not make a circular
 +   timer list for the time being.
 +
 +   Returns the time to wait until the next timer fires.
 +   If no timer is active, return an invalid value.
 +
 +   As long as any timer is ripe, we run it.  */
 +
 +struct timespec
 +timer_check (void)
 +{
 +  struct timespec nexttime;
 +  Lisp_Object timers, idle_timers;
 +  struct gcpro gcpro1, gcpro2;
 +
 +  Lisp_Object tem = Vinhibit_quit;
 +  Vinhibit_quit = Qt;
 +
 +  /* We use copies of the timers' lists to allow a timer to add itself
 +     again, without locking up Emacs if the newly added timer is
 +     already ripe when added.  */
 +
 +  /* Always consider the ordinary timers.  */
 +  timers = Fcopy_sequence (Vtimer_list);
 +  /* Consider the idle timers only if Emacs is idle.  */
 +  if (timespec_valid_p (timer_idleness_start_time))
 +    idle_timers = Fcopy_sequence (Vtimer_idle_list);
 +  else
 +    idle_timers = Qnil;
 +
 +  Vinhibit_quit = tem;
 +
 +  GCPRO2 (timers, idle_timers);
 +
 +  do
 +    {
 +      nexttime = timer_check_2 (timers, idle_timers);
 +    }
 +  while (nexttime.tv_sec == 0 && nexttime.tv_nsec == 0);
 +
 +  UNGCPRO;
 +  return nexttime;
 +}
 +
 +DEFUN ("current-idle-time", Fcurrent_idle_time, Scurrent_idle_time, 0, 0, 0,
 +       doc: /* Return the current length of Emacs idleness, or nil.
 +The value when Emacs is idle is a list of four integers (HIGH LOW USEC PSEC)
 +in the same style as (current-time).
 +
 +The value when Emacs is not idle is nil.
 +
 +PSEC is a multiple of the system clock resolution.  */)
 +  (void)
 +{
 +  if (timespec_valid_p (timer_idleness_start_time))
 +    return make_lisp_time (timespec_sub (current_timespec (),
 +                                       timer_idleness_start_time));
 +
 +  return Qnil;
 +}
 +\f
 +/* Caches for modify_event_symbol.  */
 +static Lisp_Object accent_key_syms;
 +static Lisp_Object func_key_syms;
 +static Lisp_Object mouse_syms;
 +static Lisp_Object wheel_syms;
 +static Lisp_Object drag_n_drop_syms;
 +
 +/* This is a list of keysym codes for special "accent" characters.
 +   It parallels lispy_accent_keys.  */
 +
 +static const int lispy_accent_codes[] =
 +{
 +#ifdef XK_dead_circumflex
 +  XK_dead_circumflex,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_grave
 +  XK_dead_grave,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_tilde
 +  XK_dead_tilde,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_diaeresis
 +  XK_dead_diaeresis,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_macron
 +  XK_dead_macron,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_degree
 +  XK_dead_degree,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_acute
 +  XK_dead_acute,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_cedilla
 +  XK_dead_cedilla,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_breve
 +  XK_dead_breve,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_ogonek
 +  XK_dead_ogonek,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_caron
 +  XK_dead_caron,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_doubleacute
 +  XK_dead_doubleacute,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_abovedot
 +  XK_dead_abovedot,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_abovering
 +  XK_dead_abovering,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_iota
 +  XK_dead_iota,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_belowdot
 +  XK_dead_belowdot,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_voiced_sound
 +  XK_dead_voiced_sound,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_semivoiced_sound
 +  XK_dead_semivoiced_sound,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_hook
 +  XK_dead_hook,
 +#else
 +  0,
 +#endif
 +#ifdef XK_dead_horn
 +  XK_dead_horn,
 +#else
 +  0,
 +#endif
 +};
 +
 +/* This is a list of Lisp names for special "accent" characters.
 +   It parallels lispy_accent_codes.  */
 +
 +static const char *const lispy_accent_keys[] =
 +{
 +  "dead-circumflex",
 +  "dead-grave",
 +  "dead-tilde",
 +  "dead-diaeresis",
 +  "dead-macron",
 +  "dead-degree",
 +  "dead-acute",
 +  "dead-cedilla",
 +  "dead-breve",
 +  "dead-ogonek",
 +  "dead-caron",
 +  "dead-doubleacute",
 +  "dead-abovedot",
 +  "dead-abovering",
 +  "dead-iota",
 +  "dead-belowdot",
 +  "dead-voiced-sound",
 +  "dead-semivoiced-sound",
 +  "dead-hook",
 +  "dead-horn",
 +};
 +
 +#ifdef HAVE_NTGUI
 +#define FUNCTION_KEY_OFFSET 0x0
 +
 +const char *const lispy_function_keys[] =
 +  {
 +    0,                /* 0                      */
 +
 +    0,                /* VK_LBUTTON        0x01 */
 +    0,                /* VK_RBUTTON        0x02 */
 +    "cancel",         /* VK_CANCEL         0x03 */
 +    0,                /* VK_MBUTTON        0x04 */
 +
 +    0, 0, 0,          /*    0x05 .. 0x07        */
 +
 +    "backspace",      /* VK_BACK           0x08 */
 +    "tab",            /* VK_TAB            0x09 */
 +
 +    0, 0,             /*    0x0A .. 0x0B        */
 +
 +    "clear",          /* VK_CLEAR          0x0C */
 +    "return",         /* VK_RETURN         0x0D */
 +
 +    0, 0,             /*    0x0E .. 0x0F        */
 +
 +    0,                /* VK_SHIFT          0x10 */
 +    0,                /* VK_CONTROL        0x11 */
 +    0,                /* VK_MENU           0x12 */
 +    "pause",          /* VK_PAUSE          0x13 */
 +    "capslock",       /* VK_CAPITAL        0x14 */
 +    "kana",           /* VK_KANA/VK_HANGUL 0x15 */
 +    0,                /*    0x16                */
 +    "junja",          /* VK_JUNJA          0x17 */
 +    "final",          /* VK_FINAL          0x18 */
 +    "kanji",          /* VK_KANJI/VK_HANJA 0x19 */
 +    0,                /*    0x1A                */
 +    "escape",         /* VK_ESCAPE         0x1B */
 +    "convert",        /* VK_CONVERT        0x1C */
 +    "non-convert",    /* VK_NONCONVERT     0x1D */
 +    "accept",         /* VK_ACCEPT         0x1E */
 +    "mode-change",    /* VK_MODECHANGE     0x1F */
 +    0,                /* VK_SPACE          0x20 */
 +    "prior",          /* VK_PRIOR          0x21 */
 +    "next",           /* VK_NEXT           0x22 */
 +    "end",            /* VK_END            0x23 */
 +    "home",           /* VK_HOME           0x24 */
 +    "left",           /* VK_LEFT           0x25 */
 +    "up",             /* VK_UP             0x26 */
 +    "right",          /* VK_RIGHT          0x27 */
 +    "down",           /* VK_DOWN           0x28 */
 +    "select",         /* VK_SELECT         0x29 */
 +    "print",          /* VK_PRINT          0x2A */
 +    "execute",        /* VK_EXECUTE        0x2B */
 +    "snapshot",       /* VK_SNAPSHOT       0x2C */
 +    "insert",         /* VK_INSERT         0x2D */
 +    "delete",         /* VK_DELETE         0x2E */
 +    "help",           /* VK_HELP           0x2F */
 +
 +    /* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */
 +
 +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 +
 +    0, 0, 0, 0, 0, 0, 0, /* 0x3A .. 0x40       */
 +
 +    /* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */
 +
 +    0, 0, 0, 0, 0, 0, 0, 0, 0,
 +    0, 0, 0, 0, 0, 0, 0, 0, 0,
 +    0, 0, 0, 0, 0, 0, 0, 0,
 +
 +    "lwindow",       /* VK_LWIN           0x5B */
 +    "rwindow",       /* VK_RWIN           0x5C */
 +    "apps",          /* VK_APPS           0x5D */
 +    0,               /*    0x5E                */
 +    "sleep",
 +    "kp-0",          /* VK_NUMPAD0        0x60 */
 +    "kp-1",          /* VK_NUMPAD1        0x61 */
 +    "kp-2",          /* VK_NUMPAD2        0x62 */
 +    "kp-3",          /* VK_NUMPAD3        0x63 */
 +    "kp-4",          /* VK_NUMPAD4        0x64 */
 +    "kp-5",          /* VK_NUMPAD5        0x65 */
 +    "kp-6",          /* VK_NUMPAD6        0x66 */
 +    "kp-7",          /* VK_NUMPAD7        0x67 */
 +    "kp-8",          /* VK_NUMPAD8        0x68 */
 +    "kp-9",          /* VK_NUMPAD9        0x69 */
 +    "kp-multiply",   /* VK_MULTIPLY       0x6A */
 +    "kp-add",        /* VK_ADD            0x6B */
 +    "kp-separator",  /* VK_SEPARATOR      0x6C */
 +    "kp-subtract",   /* VK_SUBTRACT       0x6D */
 +    "kp-decimal",    /* VK_DECIMAL        0x6E */
 +    "kp-divide",     /* VK_DIVIDE         0x6F */
 +    "f1",            /* VK_F1             0x70 */
 +    "f2",            /* VK_F2             0x71 */
 +    "f3",            /* VK_F3             0x72 */
 +    "f4",            /* VK_F4             0x73 */
 +    "f5",            /* VK_F5             0x74 */
 +    "f6",            /* VK_F6             0x75 */
 +    "f7",            /* VK_F7             0x76 */
 +    "f8",            /* VK_F8             0x77 */
 +    "f9",            /* VK_F9             0x78 */
 +    "f10",           /* VK_F10            0x79 */
 +    "f11",           /* VK_F11            0x7A */
 +    "f12",           /* VK_F12            0x7B */
 +    "f13",           /* VK_F13            0x7C */
 +    "f14",           /* VK_F14            0x7D */
 +    "f15",           /* VK_F15            0x7E */
 +    "f16",           /* VK_F16            0x7F */
 +    "f17",           /* VK_F17            0x80 */
 +    "f18",           /* VK_F18            0x81 */
 +    "f19",           /* VK_F19            0x82 */
 +    "f20",           /* VK_F20            0x83 */
 +    "f21",           /* VK_F21            0x84 */
 +    "f22",           /* VK_F22            0x85 */
 +    "f23",           /* VK_F23            0x86 */
 +    "f24",           /* VK_F24            0x87 */
 +
 +    0, 0, 0, 0,      /*    0x88 .. 0x8B        */
 +    0, 0, 0, 0,      /*    0x8C .. 0x8F        */
 +
 +    "kp-numlock",    /* VK_NUMLOCK        0x90 */
 +    "scroll",        /* VK_SCROLL         0x91 */
 +    /* Not sure where the following block comes from.
 +       Windows headers have NEC and Fujitsu specific keys in
 +       this block, but nothing generic.  */
 +    "kp-space",            /* VK_NUMPAD_CLEAR   0x92 */
 +    "kp-enter",            /* VK_NUMPAD_ENTER   0x93 */
 +    "kp-prior",            /* VK_NUMPAD_PRIOR   0x94 */
 +    "kp-next",             /* VK_NUMPAD_NEXT    0x95 */
 +    "kp-end",      /* VK_NUMPAD_END     0x96 */
 +    "kp-home",             /* VK_NUMPAD_HOME    0x97 */
 +    "kp-left",             /* VK_NUMPAD_LEFT    0x98 */
 +    "kp-up",       /* VK_NUMPAD_UP      0x99 */
 +    "kp-right",            /* VK_NUMPAD_RIGHT   0x9A */
 +    "kp-down",             /* VK_NUMPAD_DOWN    0x9B */
 +    "kp-insert",     /* VK_NUMPAD_INSERT  0x9C */
 +    "kp-delete",     /* VK_NUMPAD_DELETE  0x9D */
 +
 +    0, 0,          /*    0x9E .. 0x9F        */
 +
 +    /*
 +     * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
 +     * Used only as parameters to GetAsyncKeyState and GetKeyState.
 +     * No other API or message will distinguish left and right keys this way.
 +     * 0xA0 .. 0xA5
 +     */
 +    0, 0, 0, 0, 0, 0,
 +
 +    /* Multimedia keys. These are handled as WM_APPCOMMAND, which allows us
 +       to enable them selectively, and gives access to a few more functions.
 +       See lispy_multimedia_keys below.  */
 +    0, 0, 0, 0, 0, 0, 0, /* 0xA6 .. 0xAC        Browser */
 +    0, 0, 0,             /* 0xAD .. 0xAF         Volume */
 +    0, 0, 0, 0,          /* 0xB0 .. 0xB3          Media */
 +    0, 0, 0, 0,          /* 0xB4 .. 0xB7           Apps */
 +
 +    /* 0xB8 .. 0xC0 "OEM" keys - all seem to be punctuation.  */
 +    0, 0, 0, 0, 0, 0, 0, 0, 0,
 +
 +    /* 0xC1 - 0xDA unallocated, 0xDB-0xDF more OEM keys */
 +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 +
 +    0,               /* 0xE0                   */
 +    "ax",            /* VK_OEM_AX         0xE1 */
 +    0,               /* VK_OEM_102        0xE2 */
 +    "ico-help",      /* VK_ICO_HELP       0xE3 */
 +    "ico-00",        /* VK_ICO_00         0xE4 */
 +    0,               /* VK_PROCESSKEY     0xE5 - used by IME */
 +    "ico-clear",     /* VK_ICO_CLEAR      0xE6 */
 +    0,               /* VK_PACKET         0xE7  - used to pass Unicode chars */
 +    0,               /*                   0xE8 */
 +    "reset",         /* VK_OEM_RESET      0xE9 */
 +    "jump",          /* VK_OEM_JUMP       0xEA */
 +    "oem-pa1",       /* VK_OEM_PA1        0xEB */
 +    "oem-pa2",       /* VK_OEM_PA2        0xEC */
 +    "oem-pa3",       /* VK_OEM_PA3        0xED */
 +    "wsctrl",        /* VK_OEM_WSCTRL     0xEE */
 +    "cusel",         /* VK_OEM_CUSEL      0xEF */
 +    "oem-attn",      /* VK_OEM_ATTN       0xF0 */
 +    "finish",        /* VK_OEM_FINISH     0xF1 */
 +    "copy",          /* VK_OEM_COPY       0xF2 */
 +    "auto",          /* VK_OEM_AUTO       0xF3 */
 +    "enlw",          /* VK_OEM_ENLW       0xF4 */
 +    "backtab",       /* VK_OEM_BACKTAB    0xF5 */
 +    "attn",          /* VK_ATTN           0xF6 */
 +    "crsel",         /* VK_CRSEL          0xF7 */
 +    "exsel",         /* VK_EXSEL          0xF8 */
 +    "ereof",         /* VK_EREOF          0xF9 */
 +    "play",          /* VK_PLAY           0xFA */
 +    "zoom",          /* VK_ZOOM           0xFB */
 +    "noname",        /* VK_NONAME         0xFC */
 +    "pa1",           /* VK_PA1            0xFD */
 +    "oem_clear",     /* VK_OEM_CLEAR      0xFE */
 +    0 /* 0xFF */
 +  };
 +
 +/* Some of these duplicate the "Media keys" on newer keyboards,
 +   but they are delivered to the application in a different way.  */
 +static const char *const lispy_multimedia_keys[] =
 +  {
 +    0,
 +    "browser-back",
 +    "browser-forward",
 +    "browser-refresh",
 +    "browser-stop",
 +    "browser-search",
 +    "browser-favorites",
 +    "browser-home",
 +    "volume-mute",
 +    "volume-down",
 +    "volume-up",
 +    "media-next",
 +    "media-previous",
 +    "media-stop",
 +    "media-play-pause",
 +    "mail",
 +    "media-select",
 +    "app-1",
 +    "app-2",
 +    "bass-down",
 +    "bass-boost",
 +    "bass-up",
 +    "treble-down",
 +    "treble-up",
 +    "mic-volume-mute",
 +    "mic-volume-down",
 +    "mic-volume-up",
 +    "help",
 +    "find",
 +    "new",
 +    "open",
 +    "close",
 +    "save",
 +    "print",
 +    "undo",
 +    "redo",
 +    "copy",
 +    "cut",
 +    "paste",
 +    "mail-reply",
 +    "mail-forward",
 +    "mail-send",
 +    "spell-check",
 +    "toggle-dictate-command",
 +    "mic-toggle",
 +    "correction-list",
 +    "media-play",
 +    "media-pause",
 +    "media-record",
 +    "media-fast-forward",
 +    "media-rewind",
 +    "media-channel-up",
 +    "media-channel-down"
 +  };
 +
 +#else /* not HAVE_NTGUI */
 +
 +/* This should be dealt with in XTread_socket now, and that doesn't
 +   depend on the client system having the Kana syms defined.  See also
 +   the XK_kana_A case below.  */
 +#if 0
 +#ifdef XK_kana_A
 +static const char *const lispy_kana_keys[] =
 +  {
 +    /* X Keysym value */
 +    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x400 .. 0x40f */
 +    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x410 .. 0x41f */
 +    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x420 .. 0x42f */
 +    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x430 .. 0x43f */
 +    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x440 .. 0x44f */
 +    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x450 .. 0x45f */
 +    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x460 .. 0x46f */
 +    0,0,0,0,0,0,0,0,0,0,0,0,0,0,"overline",0,
 +    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x480 .. 0x48f */
 +    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x490 .. 0x49f */
 +    0, "kana-fullstop", "kana-openingbracket", "kana-closingbracket",
 +    "kana-comma", "kana-conjunctive", "kana-WO", "kana-a",
 +    "kana-i", "kana-u", "kana-e", "kana-o",
 +    "kana-ya", "kana-yu", "kana-yo", "kana-tsu",
 +    "prolongedsound", "kana-A", "kana-I", "kana-U",
 +    "kana-E", "kana-O", "kana-KA", "kana-KI",
 +    "kana-KU", "kana-KE", "kana-KO", "kana-SA",
 +    "kana-SHI", "kana-SU", "kana-SE", "kana-SO",
 +    "kana-TA", "kana-CHI", "kana-TSU", "kana-TE",
 +    "kana-TO", "kana-NA", "kana-NI", "kana-NU",
 +    "kana-NE", "kana-NO", "kana-HA", "kana-HI",
 +    "kana-FU", "kana-HE", "kana-HO", "kana-MA",
 +    "kana-MI", "kana-MU", "kana-ME", "kana-MO",
 +    "kana-YA", "kana-YU", "kana-YO", "kana-RA",
 +    "kana-RI", "kana-RU", "kana-RE", "kana-RO",
 +    "kana-WA", "kana-N", "voicedsound", "semivoicedsound",
 +    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x4e0 .. 0x4ef */
 +    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x4f0 .. 0x4ff */
 +  };
 +#endif /* XK_kana_A */
 +#endif /* 0 */
 +
 +#define FUNCTION_KEY_OFFSET 0xff00
 +
 +/* You'll notice that this table is arranged to be conveniently
 +   indexed by X Windows keysym values.  */
 +static const char *const lispy_function_keys[] =
 +  {
 +    /* X Keysym value */
 +
 +    0, 0, 0, 0, 0, 0, 0, 0,                         /* 0xff00...0f */
 +    "backspace", "tab", "linefeed", "clear",
 +    0, "return", 0, 0,
 +    0, 0, 0, "pause",                               /* 0xff10...1f */
 +    0, 0, 0, 0, 0, 0, 0, "escape",
 +    0, 0, 0, 0,
 +    0, "kanji", "muhenkan", "henkan",               /* 0xff20...2f */
 +    "romaji", "hiragana", "katakana", "hiragana-katakana",
 +    "zenkaku", "hankaku", "zenkaku-hankaku", "touroku",
 +    "massyo", "kana-lock", "kana-shift", "eisu-shift",
 +    "eisu-toggle",                                  /* 0xff30...3f */
 +       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   /* 0xff40...4f */
 +
 +    "home", "left", "up", "right", /* 0xff50 */       /* IsCursorKey */
 +    "down", "prior", "next", "end",
 +    "begin", 0, 0, 0, 0, 0, 0, 0,
 +    "select",                 /* 0xff60 */    /* IsMiscFunctionKey */
 +    "print",
 +    "execute",
 +    "insert",
 +    0,                /* 0xff64 */
 +    "undo",
 +    "redo",
 +    "menu",
 +    "find",
 +    "cancel",
 +    "help",
 +    "break",                  /* 0xff6b */
 +
 +    0, 0, 0, 0,
 +    0, 0, 0, 0, "backtab", 0, 0, 0,           /* 0xff70...  */
 +    0, 0, 0, 0, 0, 0, 0, "kp-numlock",                /* 0xff78...  */
 +    "kp-space",                       /* 0xff80 */    /* IsKeypadKey */
 +    0, 0, 0, 0, 0, 0, 0, 0,
 +    "kp-tab",                 /* 0xff89 */
 +    0, 0, 0,
 +    "kp-enter",                       /* 0xff8d */
 +    0, 0, 0,
 +    "kp-f1",                  /* 0xff91 */
 +    "kp-f2",
 +    "kp-f3",
 +    "kp-f4",
 +    "kp-home",                        /* 0xff95 */
 +    "kp-left",
 +    "kp-up",
 +    "kp-right",
 +    "kp-down",
 +    "kp-prior",                       /* kp-page-up */
 +    "kp-next",                        /* kp-page-down */
 +    "kp-end",
 +    "kp-begin",
 +    "kp-insert",
 +    "kp-delete",
 +    0,                                /* 0xffa0 */
 +    0, 0, 0, 0, 0, 0, 0, 0, 0,
 +    "kp-multiply",            /* 0xffaa */
 +    "kp-add",
 +    "kp-separator",
 +    "kp-subtract",
 +    "kp-decimal",
 +    "kp-divide",              /* 0xffaf */
 +    "kp-0",                   /* 0xffb0 */
 +    "kp-1",   "kp-2", "kp-3", "kp-4", "kp-5", "kp-6", "kp-7", "kp-8", "kp-9",
 +    0,                /* 0xffba */
 +    0, 0,
 +    "kp-equal",                       /* 0xffbd */
 +    "f1",                     /* 0xffbe */    /* IsFunctionKey */
 +    "f2",
 +    "f3", "f4", "f5", "f6", "f7", "f8",       "f9", "f10", /* 0xffc0 */
 +    "f11", "f12", "f13", "f14", "f15", "f16", "f17", "f18",
 +    "f19", "f20", "f21", "f22", "f23", "f24", "f25", "f26", /* 0xffd0 */
 +    "f27", "f28", "f29", "f30", "f31", "f32", "f33", "f34",
 +    "f35", 0, 0, 0, 0, 0, 0, 0,       /* 0xffe0 */
 +    0, 0, 0, 0, 0, 0, 0, 0,
 +    0, 0, 0, 0, 0, 0, 0, 0,     /* 0xfff0 */
 +    0, 0, 0, 0, 0, 0, 0, "delete"
 +  };
 +
 +/* ISO 9995 Function and Modifier Keys; the first byte is 0xFE.  */
 +#define ISO_FUNCTION_KEY_OFFSET 0xfe00
 +
 +static const char *const iso_lispy_function_keys[] =
 +  {
 +    0, 0, 0, 0, 0, 0, 0, 0,   /* 0xfe00 */
 +    0, 0, 0, 0, 0, 0, 0, 0,   /* 0xfe08 */
 +    0, 0, 0, 0, 0, 0, 0, 0,   /* 0xfe10 */
 +    0, 0, 0, 0, 0, 0, 0, 0,   /* 0xfe18 */
 +    "iso-lefttab",            /* 0xfe20 */
 +    "iso-move-line-up", "iso-move-line-down",
 +    "iso-partial-line-up", "iso-partial-line-down",
 +    "iso-partial-space-left", "iso-partial-space-right",
 +    "iso-set-margin-left", "iso-set-margin-right", /* 0xffe27, 28 */
 +    "iso-release-margin-left", "iso-release-margin-right",
 +    "iso-release-both-margins",
 +    "iso-fast-cursor-left", "iso-fast-cursor-right",
 +    "iso-fast-cursor-up", "iso-fast-cursor-down",
 +    "iso-continuous-underline", "iso-discontinuous-underline", /* 0xfe30, 31 */
 +    "iso-emphasize", "iso-center-object", "iso-enter", /* ... 0xfe34 */
 +  };
 +
 +#endif /* not HAVE_NTGUI */
 +
 +static Lisp_Object Vlispy_mouse_stem;
 +
 +static const char *const lispy_wheel_names[] =
 +{
 +  "wheel-up", "wheel-down", "wheel-left", "wheel-right"
 +};
 +
 +/* drag-n-drop events are generated when a set of selected files are
 +   dragged from another application and dropped onto an Emacs window.  */
 +static const char *const lispy_drag_n_drop_names[] =
 +{
 +  "drag-n-drop"
 +};
 +
 +/* An array of symbol indexes of scroll bar parts, indexed by an enum
 +   scroll_bar_part value.  Note that Qnil corresponds to
 +   scroll_bar_nowhere and should not appear in Lisp events.  */
 +static short const scroll_bar_parts[] = {
 +  SYMBOL_INDEX (Qnil), SYMBOL_INDEX (Qabove_handle), SYMBOL_INDEX (Qhandle),
 +  SYMBOL_INDEX (Qbelow_handle), SYMBOL_INDEX (Qup), SYMBOL_INDEX (Qdown),
 +  SYMBOL_INDEX (Qtop), SYMBOL_INDEX (Qbottom), SYMBOL_INDEX (Qend_scroll),
 +  SYMBOL_INDEX (Qratio), SYMBOL_INDEX (Qbefore_handle),
 +  SYMBOL_INDEX (Qhorizontal_handle), SYMBOL_INDEX (Qafter_handle),
 +  SYMBOL_INDEX (Qleft), SYMBOL_INDEX (Qright), SYMBOL_INDEX (Qleftmost),
 +  SYMBOL_INDEX (Qrightmost), SYMBOL_INDEX (Qend_scroll), SYMBOL_INDEX (Qratio)
 +};
 +
 +/* A vector, indexed by button number, giving the down-going location
 +   of currently depressed buttons, both scroll bar and non-scroll bar.
 +
 +   The elements have the form
 +     (BUTTON-NUMBER MODIFIER-MASK . REST)
 +   where REST is the cdr of a position as it would be reported in the event.
 +
 +   The make_lispy_event function stores positions here to tell the
 +   difference between click and drag events, and to store the starting
 +   location to be included in drag events.  */
 +
 +static Lisp_Object button_down_location;
 +
 +/* Information about the most recent up-going button event:  Which
 +   button, what location, and what time.  */
 +
 +static int last_mouse_button;
 +static int last_mouse_x;
 +static int last_mouse_y;
 +static Time button_down_time;
 +
 +/* The number of clicks in this multiple-click.  */
 +
 +static int double_click_count;
 +
 +/* X and Y are frame-relative coordinates for a click or wheel event.
 +   Return a Lisp-style event list.  */
 +
 +static Lisp_Object
 +make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y,
 +                   Time t)
 +{
 +  enum window_part part;
 +  Lisp_Object posn = Qnil;
 +  Lisp_Object extra_info = Qnil;
 +  /* Coordinate pixel positions to return.  */
 +  int xret = 0, yret = 0;
 +  /* The window under frame pixel coordinates (x,y)  */
 +  Lisp_Object window = f
 +    ? window_from_coordinates (f, XINT (x), XINT (y), &part, 0)
 +    : Qnil;
 +
 +  if (WINDOWP (window))
 +    {
 +      /* It's a click in window WINDOW at frame coordinates (X,Y)  */
 +      struct window *w = XWINDOW (window);
 +      Lisp_Object string_info = Qnil;
 +      ptrdiff_t textpos = 0;
 +      int col = -1, row = -1;
 +      int dx  = -1, dy  = -1;
 +      int width = -1, height = -1;
 +      Lisp_Object object = Qnil;
 +
 +      /* Pixel coordinates relative to the window corner.  */
 +      int wx = XINT (x) - WINDOW_LEFT_EDGE_X (w);
 +      int wy = XINT (y) - WINDOW_TOP_EDGE_Y (w);
 +
 +      /* For text area clicks, return X, Y relative to the corner of
 +       this text area.  Note that dX, dY etc are set below, by
 +       buffer_posn_from_coords.  */
 +      if (part == ON_TEXT)
 +      {
 +        xret = XINT (x) - window_box_left (w, TEXT_AREA);
 +        yret = wy - WINDOW_HEADER_LINE_HEIGHT (w);
 +      }
 +      /* For mode line and header line clicks, return X, Y relative to
 +       the left window edge.  Use mode_line_string to look for a
 +       string on the click position.  */
 +      else if (part == ON_MODE_LINE || part == ON_HEADER_LINE)
 +      {
 +        Lisp_Object string;
 +        ptrdiff_t charpos;
 +
 +        posn = (part == ON_MODE_LINE) ? Qmode_line : Qheader_line;
 +        /* Note that mode_line_string takes COL, ROW as pixels and
 +           converts them to characters.  */
 +        col = wx;
 +        row = wy;
 +        string = mode_line_string (w, part, &col, &row, &charpos,
 +                                   &object, &dx, &dy, &width, &height);
 +        if (STRINGP (string))
 +          string_info = Fcons (string, make_number (charpos));
 +        textpos = -1;
 +
 +        xret = wx;
 +        yret = wy;
 +      }
 +      /* For fringes and margins, Y is relative to the area's (and the
 +       window's) top edge, while X is meaningless.  */
 +      else if (part == ON_LEFT_MARGIN || part == ON_RIGHT_MARGIN)
 +      {
 +        Lisp_Object string;
 +        ptrdiff_t charpos;
 +
 +        posn = (part == ON_LEFT_MARGIN) ? Qleft_margin : Qright_margin;
 +        col = wx;
 +        row = wy;
 +        string = marginal_area_string (w, part, &col, &row, &charpos,
 +                                       &object, &dx, &dy, &width, &height);
 +        if (STRINGP (string))
 +          string_info = Fcons (string, make_number (charpos));
 +        xret = wx;
 +        yret = wy - WINDOW_HEADER_LINE_HEIGHT (w);
 +      }
 +      else if (part == ON_LEFT_FRINGE)
 +      {
 +        posn = Qleft_fringe;
 +        col = 0;
 +        xret = wx;
 +        dx = wx
 +          - (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)
 +             ? 0 : window_box_width (w, LEFT_MARGIN_AREA));
 +        dy = yret = wy - WINDOW_HEADER_LINE_HEIGHT (w);
 +      }
 +      else if (part == ON_RIGHT_FRINGE)
 +      {
 +        posn = Qright_fringe;
 +        col = 0;
 +        xret = wx;
 +        dx = wx
 +          - window_box_width (w, LEFT_MARGIN_AREA)
 +          - window_box_width (w, TEXT_AREA)
 +          - (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)
 +             ? window_box_width (w, RIGHT_MARGIN_AREA)
 +             : 0);
 +        dy = yret = wy - WINDOW_HEADER_LINE_HEIGHT (w);
 +      }
 +      else if (part == ON_VERTICAL_BORDER)
 +      {
 +        posn = Qvertical_line;
 +        width = 1;
 +        dx = 0;
 +        xret = wx;
 +        dy = yret = wy;
 +      }
 +      else if (part == ON_VERTICAL_SCROLL_BAR)
 +      {
 +        posn = Qvertical_scroll_bar;
 +        width = WINDOW_SCROLL_BAR_AREA_WIDTH (w);
 +        dx = xret = wx;
 +        dy = yret = wy;
 +      }
 +      else if (part == ON_HORIZONTAL_SCROLL_BAR)
 +      {
 +        posn = Qhorizontal_scroll_bar;
 +        width = WINDOW_SCROLL_BAR_AREA_HEIGHT (w);
 +        dx = xret = wx;
 +        dy = yret = wy;
 +      }
 +      else if (part == ON_RIGHT_DIVIDER)
 +      {
 +        posn = Qright_divider;
 +        width = WINDOW_RIGHT_DIVIDER_WIDTH (w);
 +        dx = xret = wx;
 +        dy = yret = wy;
 +      }
 +      else if (part == ON_BOTTOM_DIVIDER)
 +      {
 +        posn = Qbottom_divider;
 +        width = WINDOW_BOTTOM_DIVIDER_WIDTH (w);
 +        dx = xret = wx;
 +        dy = yret = wy;
 +      }
 +
 +      /* For clicks in the text area, fringes, margins, or vertical
 +       scroll bar, call buffer_posn_from_coords to extract TEXTPOS,
 +       the buffer position nearest to the click.  */
 +      if (!textpos)
 +      {
 +        Lisp_Object string2, object2 = Qnil;
 +        struct display_pos p;
 +        int dx2, dy2;
 +        int width2, height2;
 +        /* The pixel X coordinate passed to buffer_posn_from_coords
 +           is the X coordinate relative to the text area for clicks
 +           in text-area, right-margin/fringe and right-side vertical
 +           scroll bar, zero otherwise.  */
 +        int x2
 +          = (part == ON_TEXT) ? xret
 +          : (part == ON_RIGHT_FRINGE || part == ON_RIGHT_MARGIN
 +             || (part == ON_VERTICAL_SCROLL_BAR
 +                 && WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w)))
 +          ? (XINT (x) - window_box_left (w, TEXT_AREA))
 +          : 0;
 +        int y2 = wy;
 +
 +        string2 = buffer_posn_from_coords (w, &x2, &y2, &p,
 +                                           &object2, &dx2, &dy2,
 +                                           &width2, &height2);
 +        textpos = CHARPOS (p.pos);
 +        if (col < 0) col = x2;
 +        if (row < 0) row = y2;
 +        if (dx < 0) dx = dx2;
 +        if (dy < 0) dy = dy2;
 +        if (width < 0) width = width2;
 +        if (height < 0) height = height2;
 +
 +        if (NILP (posn))
 +          {
 +            posn = make_number (textpos);
 +            if (STRINGP (string2))
 +              string_info = Fcons (string2,
 +                                   make_number (CHARPOS (p.string_pos)));
 +          }
 +        if (NILP (object))
 +          object = object2;
 +      }
 +
 +#ifdef HAVE_WINDOW_SYSTEM
 +      if (IMAGEP (object))
 +      {
 +        Lisp_Object image_map, hotspot;
 +        if ((image_map = Fplist_get (XCDR (object), QCmap),
 +             !NILP (image_map))
 +            && (hotspot = find_hot_spot (image_map, dx, dy),
 +                CONSP (hotspot))
 +            && (hotspot = XCDR (hotspot), CONSP (hotspot)))
 +          posn = XCAR (hotspot);
 +      }
 +#endif
 +
 +      /* Object info.  */
 +      extra_info
 +      = list3 (object,
 +               Fcons (make_number (dx), make_number (dy)),
 +               Fcons (make_number (width), make_number (height)));
 +
 +      /* String info.  */
 +      extra_info = Fcons (string_info,
 +                        Fcons (textpos < 0 ? Qnil : make_number (textpos),
 +                               Fcons (Fcons (make_number (col),
 +                                             make_number (row)),
 +                                      extra_info)));
 +    }
 +  else if (f != 0)
 +    {
 +      /* Return mouse pixel coordinates here.  */
 +      XSETFRAME (window, f);
 +      xret = XINT (x);
 +      yret = XINT (y);
 +    }
 +  else
 +    window = Qnil;
 +
 +  return Fcons (window,
 +              Fcons (posn,
 +                     Fcons (Fcons (make_number (xret),
 +                                   make_number (yret)),
 +                            Fcons (make_number (t),
 +                                   extra_info))));
 +}
 +
 +/* Return non-zero if F is a GUI frame that uses some toolkit-managed
 +   menu bar.  This really means that Emacs draws and manages the menu
 +   bar as part of its normal display, and therefore can compute its
 +   geometry.  */
 +static bool
 +toolkit_menubar_in_use (struct frame *f)
 +{
 +#if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NS) || defined (HAVE_NTGUI)
 +  return !(!FRAME_WINDOW_P (f));
 +#else
 +  return false;
 +#endif
 +}
 +
 +/* Build the part of Lisp event which represents scroll bar state from
 +   EV.  TYPE is one of Qvertical_scroll_bar or Qhorizontal_scroll_bar.  */
 +
 +static Lisp_Object
 +make_scroll_bar_position (struct input_event *ev, Lisp_Object type)
 +{
 +  return list5 (ev->frame_or_window, type, Fcons (ev->x, ev->y),
 +              make_number (ev->timestamp),
 +              builtin_lisp_symbol (scroll_bar_parts[ev->part]));
 +}
 +
 +/* Given a struct input_event, build the lisp event which represents
 +   it.  If EVENT is 0, build a mouse movement event from the mouse
 +   movement buffer, which should have a movement event in it.
 +
 +   Note that events must be passed to this function in the order they
 +   are received; this function stores the location of button presses
 +   in order to build drag events when the button is released.  */
 +
 +static Lisp_Object
 +make_lispy_event (struct input_event *event)
 +{
 +  int i;
 +
 +  switch (event->kind)
 +    {
 +      /* A simple keystroke.  */
 +    case ASCII_KEYSTROKE_EVENT:
 +    case MULTIBYTE_CHAR_KEYSTROKE_EVENT:
 +      {
 +      Lisp_Object lispy_c;
 +      EMACS_INT c = event->code;
 +      if (event->kind == ASCII_KEYSTROKE_EVENT)
 +        {
 +          c &= 0377;
 +          eassert (c == event->code);
 +          /* Turn ASCII characters into control characters
 +             when proper.  */
 +          if (event->modifiers & ctrl_modifier)
 +            {
 +              c = make_ctrl_char (c);
 +              event->modifiers &= ~ctrl_modifier;
 +            }
 +        }
 +
 +      /* Add in the other modifier bits.  The shift key was taken care
 +         of by the X code.  */
 +      c |= (event->modifiers
 +            & (meta_modifier | alt_modifier
 +               | hyper_modifier | super_modifier | ctrl_modifier));
 +      /* Distinguish Shift-SPC from SPC.  */
 +      if ((event->code) == 040
 +          && event->modifiers & shift_modifier)
 +        c |= shift_modifier;
 +      button_down_time = 0;
 +      XSETFASTINT (lispy_c, c);
 +      return lispy_c;
 +      }
 +
 +#ifdef HAVE_NS
 +      /* NS_NONKEY_EVENTs are just like NON_ASCII_KEYSTROKE_EVENTs,
 +       except that they are non-key events (last-nonmenu-event is nil).  */
 +    case NS_NONKEY_EVENT:
 +#endif
 +
 +      /* A function key.  The symbol may need to have modifier prefixes
 +       tacked onto it.  */
 +    case NON_ASCII_KEYSTROKE_EVENT:
 +      button_down_time = 0;
 +
 +      for (i = 0; i < ARRAYELTS (lispy_accent_codes); i++)
 +      if (event->code == lispy_accent_codes[i])
 +        return modify_event_symbol (i,
 +                                    event->modifiers,
 +                                    Qfunction_key, Qnil,
 +                                    lispy_accent_keys, &accent_key_syms,
 +                                      ARRAYELTS (lispy_accent_keys));
 +
 +#if 0
 +#ifdef XK_kana_A
 +      if (event->code >= 0x400 && event->code < 0x500)
 +      return modify_event_symbol (event->code - 0x400,
 +                                  event->modifiers & ~shift_modifier,
 +                                  Qfunction_key, Qnil,
 +                                  lispy_kana_keys, &func_key_syms,
 +                                    ARRAYELTS (lispy_kana_keys));
 +#endif /* XK_kana_A */
 +#endif /* 0 */
 +
 +#ifdef ISO_FUNCTION_KEY_OFFSET
 +      if (event->code < FUNCTION_KEY_OFFSET
 +        && event->code >= ISO_FUNCTION_KEY_OFFSET)
 +      return modify_event_symbol (event->code - ISO_FUNCTION_KEY_OFFSET,
 +                                  event->modifiers,
 +                                  Qfunction_key, Qnil,
 +                                  iso_lispy_function_keys, &func_key_syms,
 +                                    ARRAYELTS (iso_lispy_function_keys));
 +#endif
 +
 +      if ((FUNCTION_KEY_OFFSET <= event->code
 +         && (event->code
 +             < FUNCTION_KEY_OFFSET + ARRAYELTS (lispy_function_keys)))
 +        && lispy_function_keys[event->code - FUNCTION_KEY_OFFSET])
 +      return modify_event_symbol (event->code - FUNCTION_KEY_OFFSET,
 +                                  event->modifiers,
 +                                  Qfunction_key, Qnil,
 +                                  lispy_function_keys, &func_key_syms,
 +                                  ARRAYELTS (lispy_function_keys));
 +
 +      /* Handle system-specific or unknown keysyms.
 +       We need to use an alist rather than a vector as the cache
 +       since we can't make a vector long enough.  */
 +      if (NILP (KVAR (current_kboard, system_key_syms)))
 +      kset_system_key_syms (current_kboard, Fcons (Qnil, Qnil));
 +      return modify_event_symbol (event->code,
 +                                event->modifiers,
 +                                Qfunction_key,
 +                                KVAR (current_kboard, Vsystem_key_alist),
 +                                0, &KVAR (current_kboard, system_key_syms),
 +                                PTRDIFF_MAX);
 +
 +#ifdef HAVE_NTGUI
 +    case MULTIMEDIA_KEY_EVENT:
 +      if (event->code < ARRAYELTS (lispy_multimedia_keys)
 +          && event->code > 0 && lispy_multimedia_keys[event->code])
 +        {
 +          return modify_event_symbol (event->code, event->modifiers,
 +                                      Qfunction_key, Qnil,
 +                                      lispy_multimedia_keys, &func_key_syms,
 +                                      ARRAYELTS (lispy_multimedia_keys));
 +        }
 +      return Qnil;
 +#endif
 +
 +      /* A mouse click.  Figure out where it is, decide whether it's
 +         a press, click or drag, and build the appropriate structure.  */
 +    case MOUSE_CLICK_EVENT:
 +#ifdef HAVE_GPM
 +    case GPM_CLICK_EVENT:
 +#endif
 +#ifndef USE_TOOLKIT_SCROLL_BARS
 +    case SCROLL_BAR_CLICK_EVENT:
 +    case HORIZONTAL_SCROLL_BAR_CLICK_EVENT:
 +#endif
 +      {
 +      int button = event->code;
 +      bool is_double;
 +      Lisp_Object position;
 +      Lisp_Object *start_pos_ptr;
 +      Lisp_Object start_pos;
 +
 +      position = Qnil;
 +
 +      /* Build the position as appropriate for this mouse click.  */
 +      if (event->kind == MOUSE_CLICK_EVENT
 +#ifdef HAVE_GPM
 +          || event->kind == GPM_CLICK_EVENT
 +#endif
 +          )
 +        {
 +          struct frame *f = XFRAME (event->frame_or_window);
 +          int row, column;
 +
 +          /* Ignore mouse events that were made on frame that
 +             have been deleted.  */
 +          if (! FRAME_LIVE_P (f))
 +            return Qnil;
 +
 +          /* EVENT->x and EVENT->y are frame-relative pixel
 +             coordinates at this place.  Under old redisplay, COLUMN
 +             and ROW are set to frame relative glyph coordinates
 +             which are then used to determine whether this click is
 +             in a menu (non-toolkit version).  */
 +          if (!toolkit_menubar_in_use (f))
 +            {
 +              pixel_to_glyph_coords (f, XINT (event->x), XINT (event->y),
 +                                     &column, &row, NULL, 1);
 +
 +              /* In the non-toolkit version, clicks on the menu bar
 +                 are ordinary button events in the event buffer.
 +                 Distinguish them, and invoke the menu.
 +
 +                 (In the toolkit version, the toolkit handles the
 +                 menu bar and Emacs doesn't know about it until
 +                 after the user makes a selection.)  */
 +              if (row >= 0 && row < FRAME_MENU_BAR_LINES (f)
 +                && (event->modifiers & down_modifier))
 +                {
 +                  Lisp_Object items, item;
 +
 +                  /* Find the menu bar item under `column'.  */
 +                  item = Qnil;
 +                  items = FRAME_MENU_BAR_ITEMS (f);
 +                  for (i = 0; i < ASIZE (items); i += 4)
 +                    {
 +                      Lisp_Object pos, string;
 +                      string = AREF (items, i + 1);
 +                      pos = AREF (items, i + 3);
 +                      if (NILP (string))
 +                        break;
 +                      if (column >= XINT (pos)
 +                          && column < XINT (pos) + SCHARS (string))
 +                        {
 +                          item = AREF (items, i);
 +                          break;
 +                        }
 +                    }
 +
 +                  /* ELisp manual 2.4b says (x y) are window
 +                     relative but code says they are
 +                     frame-relative.  */
 +                  position = list4 (event->frame_or_window,
 +                                    Qmenu_bar,
 +                                    Fcons (event->x, event->y),
 +                                    make_number (event->timestamp));
 +
 +                  return list2 (item, position);
 +                }
 +            }
 +
 +          position = make_lispy_position (f, event->x, event->y,
 +                                          event->timestamp);
 +        }
 +#ifndef USE_TOOLKIT_SCROLL_BARS
 +      else
 +        /* It's a scrollbar click.  */
 +        position = make_scroll_bar_position (event, Qvertical_scroll_bar);
 +#endif /* not USE_TOOLKIT_SCROLL_BARS */
 +
 +      if (button >= ASIZE (button_down_location))
 +        {
 +          ptrdiff_t incr = button - ASIZE (button_down_location) + 1;
 +          button_down_location = larger_vector (button_down_location,
 +                                                incr, -1);
 +          mouse_syms = larger_vector (mouse_syms, incr, -1);
 +        }
 +
 +      start_pos_ptr = aref_addr (button_down_location, button);
 +      start_pos = *start_pos_ptr;
 +      *start_pos_ptr = Qnil;
 +
 +      {
 +        /* On window-system frames, use the value of
 +           double-click-fuzz as is.  On other frames, interpret it
 +           as a multiple of 1/8 characters.  */
 +        struct frame *f;
 +        int fuzz;
 +
 +        if (WINDOWP (event->frame_or_window))
 +          f = XFRAME (XWINDOW (event->frame_or_window)->frame);
 +        else if (FRAMEP (event->frame_or_window))
 +          f = XFRAME (event->frame_or_window);
 +        else
 +          emacs_abort ();
 +
 +        if (FRAME_WINDOW_P (f))
 +          fuzz = double_click_fuzz;
 +        else
 +          fuzz = double_click_fuzz / 8;
 +
 +        is_double = (button == last_mouse_button
 +                     && (eabs (XINT (event->x) - last_mouse_x) <= fuzz)
 +                     && (eabs (XINT (event->y) - last_mouse_y) <= fuzz)
 +                     && button_down_time != 0
 +                     && (EQ (Vdouble_click_time, Qt)
 +                         || (NATNUMP (Vdouble_click_time)
 +                             && (event->timestamp - button_down_time
 +                                 < XFASTINT (Vdouble_click_time)))));
 +      }
 +
 +      last_mouse_button = button;
 +      last_mouse_x = XINT (event->x);
 +      last_mouse_y = XINT (event->y);
 +
 +      /* If this is a button press, squirrel away the location, so
 +           we can decide later whether it was a click or a drag.  */
 +      if (event->modifiers & down_modifier)
 +        {
 +          if (is_double)
 +            {
 +              double_click_count++;
 +              event->modifiers |= ((double_click_count > 2)
 +                                   ? triple_modifier
 +                                   : double_modifier);
 +            }
 +          else
 +            double_click_count = 1;
 +          button_down_time = event->timestamp;
 +          *start_pos_ptr = Fcopy_alist (position);
 +          ignore_mouse_drag_p = 0;
 +        }
 +
 +      /* Now we're releasing a button - check the co-ordinates to
 +           see if this was a click or a drag.  */
 +      else if (event->modifiers & up_modifier)
 +        {
 +          /* If we did not see a down before this up, ignore the up.
 +             Probably this happened because the down event chose a
 +             menu item.  It would be an annoyance to treat the
 +             release of the button that chose the menu item as a
 +             separate event.  */
 +
 +          if (!CONSP (start_pos))
 +            return Qnil;
 +
 +          event->modifiers &= ~up_modifier;
 +
 +            {
 +              Lisp_Object new_down, down;
 +              EMACS_INT xdiff = double_click_fuzz, ydiff = double_click_fuzz;
 +
 +              /* The third element of every position
 +                 should be the (x,y) pair.  */
 +              down = Fcar (Fcdr (Fcdr (start_pos)));
 +              new_down = Fcar (Fcdr (Fcdr (position)));
 +
 +              if (CONSP (down)
 +                  && INTEGERP (XCAR (down)) && INTEGERP (XCDR (down)))
 +                {
 +                  xdiff = XINT (XCAR (new_down)) - XINT (XCAR (down));
 +                  ydiff = XINT (XCDR (new_down)) - XINT (XCDR (down));
 +                }
 +
 +              if (ignore_mouse_drag_p)
 +                {
 +                  event->modifiers |= click_modifier;
 +                  ignore_mouse_drag_p = 0;
 +                }
 +              else if (xdiff < double_click_fuzz && xdiff > - double_click_fuzz
 +                       && ydiff < double_click_fuzz && ydiff > - double_click_fuzz
 +                /* Maybe the mouse has moved a lot, caused scrolling, and
 +                   eventually ended up at the same screen position (but
 +                   not buffer position) in which case it is a drag, not
 +                   a click.  */
 +                  /* FIXME: OTOH if the buffer position has changed
 +                     because of a timer or process filter rather than
 +                     because of mouse movement, it should be considered as
 +                     a click.  But mouse-drag-region completely ignores
 +                     this case and it hasn't caused any real problem, so
 +                     it's probably OK to ignore it as well.  */
 +                  && EQ (Fcar (Fcdr (start_pos)), Fcar (Fcdr (position))))
 +                /* Mouse hasn't moved (much).  */
 +                event->modifiers |= click_modifier;
 +              else
 +                {
 +                  button_down_time = 0;
 +                  event->modifiers |= drag_modifier;
 +                }
 +
 +              /* Don't check is_double; treat this as multiple
 +                 if the down-event was multiple.  */
 +              if (double_click_count > 1)
 +                event->modifiers |= ((double_click_count > 2)
 +                                     ? triple_modifier
 +                                     : double_modifier);
 +            }
 +        }
 +      else
 +        /* Every mouse event should either have the down_modifier or
 +             the up_modifier set.  */
 +        emacs_abort ();
 +
 +      {
 +        /* Get the symbol we should use for the mouse click.  */
 +        Lisp_Object head;
 +
 +        head = modify_event_symbol (button,
 +                                    event->modifiers,
 +                                    Qmouse_click, Vlispy_mouse_stem,
 +                                    NULL,
 +                                    &mouse_syms,
 +                                    ASIZE (mouse_syms));
 +        if (event->modifiers & drag_modifier)
 +          return list3 (head, start_pos, position);
 +        else if (event->modifiers & (double_modifier | triple_modifier))
 +          return list3 (head, position, make_number (double_click_count));
 +        else
 +          return list2 (head, position);
 +      }
 +      }
 +
 +    case WHEEL_EVENT:
 +    case HORIZ_WHEEL_EVENT:
 +      {
 +      Lisp_Object position;
 +      Lisp_Object head;
 +
 +      /* Build the position as appropriate for this mouse click.  */
 +      struct frame *f = XFRAME (event->frame_or_window);
 +
 +      /* Ignore wheel events that were made on frame that have been
 +         deleted.  */
 +      if (! FRAME_LIVE_P (f))
 +        return Qnil;
 +
 +      position = make_lispy_position (f, event->x, event->y,
 +                                      event->timestamp);
 +
 +      /* Set double or triple modifiers to indicate the wheel speed.  */
 +      {
 +        /* On window-system frames, use the value of
 +           double-click-fuzz as is.  On other frames, interpret it
 +           as a multiple of 1/8 characters.  */
 +        struct frame *fr;
 +        int fuzz;
 +        int symbol_num;
 +        bool is_double;
 +
 +        if (WINDOWP (event->frame_or_window))
 +          fr = XFRAME (XWINDOW (event->frame_or_window)->frame);
 +        else if (FRAMEP (event->frame_or_window))
 +          fr = XFRAME (event->frame_or_window);
 +        else
 +          emacs_abort ();
 +
 +        fuzz = FRAME_WINDOW_P (fr)
 +          ? double_click_fuzz : double_click_fuzz / 8;
 +
 +        if (event->modifiers & up_modifier)
 +          {
 +            /* Emit a wheel-up event.  */
 +            event->modifiers &= ~up_modifier;
 +            symbol_num = 0;
 +          }
 +        else if (event->modifiers & down_modifier)
 +          {
 +            /* Emit a wheel-down event.  */
 +            event->modifiers &= ~down_modifier;
 +            symbol_num = 1;
 +          }
 +        else
 +          /* Every wheel event should either have the down_modifier or
 +             the up_modifier set.  */
 +          emacs_abort ();
 +
 +          if (event->kind == HORIZ_WHEEL_EVENT)
 +            symbol_num += 2;
 +
 +        is_double = (last_mouse_button == - (1 + symbol_num)
 +                     && (eabs (XINT (event->x) - last_mouse_x) <= fuzz)
 +                     && (eabs (XINT (event->y) - last_mouse_y) <= fuzz)
 +                     && button_down_time != 0
 +                     && (EQ (Vdouble_click_time, Qt)
 +                         || (NATNUMP (Vdouble_click_time)
 +                             && (event->timestamp - button_down_time
 +                                 < XFASTINT (Vdouble_click_time)))));
 +        if (is_double)
 +          {
 +            double_click_count++;
 +            event->modifiers |= ((double_click_count > 2)
 +                                 ? triple_modifier
 +                                 : double_modifier);
 +          }
 +        else
 +          {
 +            double_click_count = 1;
 +            event->modifiers |= click_modifier;
 +          }
 +
 +        button_down_time = event->timestamp;
 +        /* Use a negative value to distinguish wheel from mouse button.  */
 +        last_mouse_button = - (1 + symbol_num);
 +        last_mouse_x = XINT (event->x);
 +        last_mouse_y = XINT (event->y);
 +
 +        /* Get the symbol we should use for the wheel event.  */
 +        head = modify_event_symbol (symbol_num,
 +                                    event->modifiers,
 +                                    Qmouse_click,
 +                                    Qnil,
 +                                    lispy_wheel_names,
 +                                    &wheel_syms,
 +                                    ASIZE (wheel_syms));
 +      }
 +
 +      if (event->modifiers & (double_modifier | triple_modifier))
 +        return list3 (head, position, make_number (double_click_count));
 +      else
 +        return list2 (head, position);
 +      }
 +
 +
 +#ifdef USE_TOOLKIT_SCROLL_BARS
 +
 +      /* We don't have down and up events if using toolkit scroll bars,
 +       so make this always a click event.  Store in the `part' of
 +       the Lisp event a symbol which maps to the following actions:
 +
 +       `above_handle'         page up
 +       `below_handle'         page down
 +       `up'                   line up
 +       `down'                 line down
 +       `top'                  top of buffer
 +       `bottom'               bottom of buffer
 +       `handle'               thumb has been dragged.
 +       `end-scroll'           end of interaction with scroll bar
 +
 +       The incoming input_event contains in its `part' member an
 +       index of type `enum scroll_bar_part' which we can use as an
 +       index in scroll_bar_parts to get the appropriate symbol.  */
 +
 +    case SCROLL_BAR_CLICK_EVENT:
 +      {
 +      Lisp_Object position, head;
 +
 +      position = make_scroll_bar_position (event, Qvertical_scroll_bar);
 +
 +      /* Always treat scroll bar events as clicks.  */
 +      event->modifiers |= click_modifier;
 +      event->modifiers &= ~up_modifier;
 +
 +      if (event->code >= ASIZE (mouse_syms))
 +          mouse_syms = larger_vector (mouse_syms,
 +                                    event->code - ASIZE (mouse_syms) + 1,
 +                                    -1);
 +
 +      /* Get the symbol we should use for the mouse click.  */
 +      head = modify_event_symbol (event->code,
 +                                  event->modifiers,
 +                                  Qmouse_click,
 +                                  Vlispy_mouse_stem,
 +                                  NULL, &mouse_syms,
 +                                  ASIZE (mouse_syms));
 +      return list2 (head, position);
 +      }
 +
 +    case HORIZONTAL_SCROLL_BAR_CLICK_EVENT:
 +      {
 +      Lisp_Object position, head;
 +
 +      position = make_scroll_bar_position (event, Qhorizontal_scroll_bar);
 +
 +      /* Always treat scroll bar events as clicks.  */
 +      event->modifiers |= click_modifier;
 +      event->modifiers &= ~up_modifier;
 +
 +      if (event->code >= ASIZE (mouse_syms))
 +          mouse_syms = larger_vector (mouse_syms,
 +                                    event->code - ASIZE (mouse_syms) + 1,
 +                                    -1);
 +
 +      /* Get the symbol we should use for the mouse click.  */
 +      head = modify_event_symbol (event->code,
 +                                  event->modifiers,
 +                                  Qmouse_click,
 +                                  Vlispy_mouse_stem,
 +                                  NULL, &mouse_syms,
 +                                  ASIZE (mouse_syms));
 +      return list2 (head, position);
 +      }
 +
 +#endif /* USE_TOOLKIT_SCROLL_BARS */
 +
 +    case DRAG_N_DROP_EVENT:
 +      {
 +      struct frame *f;
 +      Lisp_Object head, position;
 +      Lisp_Object files;
 +
 +      f = XFRAME (event->frame_or_window);
 +      files = event->arg;
 +
 +      /* Ignore mouse events that were made on frames that
 +         have been deleted.  */
 +      if (! FRAME_LIVE_P (f))
 +        return Qnil;
 +
 +      position = make_lispy_position (f, event->x, event->y,
 +                                      event->timestamp);
 +
 +      head = modify_event_symbol (0, event->modifiers,
 +                                  Qdrag_n_drop, Qnil,
 +                                  lispy_drag_n_drop_names,
 +                                  &drag_n_drop_syms, 1);
 +      return list3 (head, position, files);
 +      }
 +
 +#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \
 +    || defined (HAVE_NS) || defined (USE_GTK)
 +    case MENU_BAR_EVENT:
 +      if (EQ (event->arg, event->frame_or_window))
 +      /* This is the prefix key.  We translate this to
 +         `(menu_bar)' because the code in keyboard.c for menu
 +         events, which we use, relies on this.  */
 +      return list1 (Qmenu_bar);
 +      return event->arg;
 +#endif
 +
 +    case SELECT_WINDOW_EVENT:
 +      /* Make an event (select-window (WINDOW)).  */
 +      return list2 (Qselect_window, list1 (event->frame_or_window));
 +
 +    case TOOL_BAR_EVENT:
 +      if (EQ (event->arg, event->frame_or_window))
 +      /* This is the prefix key.  We translate this to
 +         `(tool_bar)' because the code in keyboard.c for tool bar
 +         events, which we use, relies on this.  */
 +      return list1 (Qtool_bar);
 +      else if (SYMBOLP (event->arg))
 +      return apply_modifiers (event->modifiers, event->arg);
 +      return event->arg;
 +
 +    case USER_SIGNAL_EVENT:
 +      /* A user signal.  */
 +      {
 +      char *name = find_user_signal_name (event->code);
 +      if (!name)
 +        emacs_abort ();
 +      return intern (name);
 +      }
 +
 +    case SAVE_SESSION_EVENT:
 +      return Qsave_session;
 +
 +#ifdef HAVE_DBUS
 +    case DBUS_EVENT:
 +      {
 +      return Fcons (Qdbus_event, event->arg);
 +      }
 +#endif /* HAVE_DBUS */
 +
 +#if defined HAVE_GFILENOTIFY || defined HAVE_INOTIFY
 +    case FILE_NOTIFY_EVENT:
 +      {
 +        return Fcons (Qfile_notify, event->arg);
 +      }
 +#endif /* defined HAVE_GFILENOTIFY || defined HAVE_INOTIFY */
 +
 +    case CONFIG_CHANGED_EVENT:
 +      return list3 (Qconfig_changed_event,
 +                    event->arg, event->frame_or_window);
 +
 +      /* The 'kind' field of the event is something we don't recognize.  */
 +    default:
 +      emacs_abort ();
 +    }
 +}
 +
 +static Lisp_Object
 +make_lispy_movement (struct frame *frame, Lisp_Object bar_window, enum scroll_bar_part part,
 +                   Lisp_Object x, Lisp_Object y, Time t)
 +{
 +  /* Is it a scroll bar movement?  */
 +  if (frame && ! NILP (bar_window))
 +    {
 +      Lisp_Object part_sym;
 +
 +      part_sym = builtin_lisp_symbol (scroll_bar_parts[part]);
 +      return list2 (Qscroll_bar_movement,
 +                  list5 (bar_window,
 +                         Qvertical_scroll_bar,
 +                         Fcons (x, y),
 +                         make_number (t),
 +                         part_sym));
 +    }
 +  /* Or is it an ordinary mouse movement?  */
 +  else
 +    {
 +      Lisp_Object position;
 +      position = make_lispy_position (frame, x, y, t);
 +      return list2 (Qmouse_movement, position);
 +    }
 +}
 +
 +/* Construct a switch frame event.  */
 +static Lisp_Object
 +make_lispy_switch_frame (Lisp_Object frame)
 +{
 +  return list2 (Qswitch_frame, frame);
 +}
 +
 +static Lisp_Object
 +make_lispy_focus_in (Lisp_Object frame)
 +{
 +  return list2 (Qfocus_in, frame);
 +}
 +
 +#ifdef HAVE_WINDOW_SYSTEM
 +
 +static Lisp_Object
 +make_lispy_focus_out (Lisp_Object frame)
 +{
 +  return list2 (Qfocus_out, frame);
 +}
 +
 +#endif /* HAVE_WINDOW_SYSTEM */
 +
 +/* Manipulating modifiers.  */
 +
 +/* Parse the name of SYMBOL, and return the set of modifiers it contains.
 +
 +   If MODIFIER_END is non-zero, set *MODIFIER_END to the position in
 +   SYMBOL's name of the end of the modifiers; the string from this
 +   position is the unmodified symbol name.
 +
 +   This doesn't use any caches.  */
 +
 +static int
 +parse_modifiers_uncached (Lisp_Object symbol, ptrdiff_t *modifier_end)
 +{
 +  Lisp_Object name;
 +  ptrdiff_t i;
 +  int modifiers;
 +
 +  CHECK_SYMBOL (symbol);
 +
 +  modifiers = 0;
 +  name = SYMBOL_NAME (symbol);
 +
 +  for (i = 0; i < SBYTES (name) - 1; )
 +    {
 +      ptrdiff_t this_mod_end = 0;
 +      int this_mod = 0;
 +
 +      /* See if the name continues with a modifier word.
 +       Check that the word appears, but don't check what follows it.
 +       Set this_mod and this_mod_end to record what we find.  */
 +
 +      switch (SREF (name, i))
 +      {
 +#define SINGLE_LETTER_MOD(BIT)                                \
 +        (this_mod_end = i + 1, this_mod = BIT)
 +
 +      case 'A':
 +        SINGLE_LETTER_MOD (alt_modifier);
 +        break;
 +
 +      case 'C':
 +        SINGLE_LETTER_MOD (ctrl_modifier);
 +        break;
 +
 +      case 'H':
 +        SINGLE_LETTER_MOD (hyper_modifier);
 +        break;
 +
 +      case 'M':
 +        SINGLE_LETTER_MOD (meta_modifier);
 +        break;
 +
 +      case 'S':
 +        SINGLE_LETTER_MOD (shift_modifier);
 +        break;
 +
 +      case 's':
 +        SINGLE_LETTER_MOD (super_modifier);
 +        break;
 +
 +#undef SINGLE_LETTER_MOD
 +
 +#define MULTI_LETTER_MOD(BIT, NAME, LEN)                      \
 +        if (i + LEN + 1 <= SBYTES (name)                      \
 +            && ! memcmp (SDATA (name) + i, NAME, LEN))        \
 +          {                                                   \
 +            this_mod_end = i + LEN;                           \
 +            this_mod = BIT;                                   \
 +          }
 +
 +      case 'd':
 +        MULTI_LETTER_MOD (drag_modifier, "drag", 4);
 +        MULTI_LETTER_MOD (down_modifier, "down", 4);
 +        MULTI_LETTER_MOD (double_modifier, "double", 6);
 +        break;
 +
 +      case 't':
 +        MULTI_LETTER_MOD (triple_modifier, "triple", 6);
 +        break;
 +#undef MULTI_LETTER_MOD
 +
 +      }
 +
 +      /* If we found no modifier, stop looking for them.  */
 +      if (this_mod_end == 0)
 +      break;
 +
 +      /* Check there is a dash after the modifier, so that it
 +       really is a modifier.  */
 +      if (this_mod_end >= SBYTES (name)
 +        || SREF (name, this_mod_end) != '-')
 +      break;
 +
 +      /* This modifier is real; look for another.  */
 +      modifiers |= this_mod;
 +      i = this_mod_end + 1;
 +    }
 +
 +  /* Should we include the `click' modifier?  */
 +  if (! (modifiers & (down_modifier | drag_modifier
 +                    | double_modifier | triple_modifier))
 +      && i + 7 == SBYTES (name)
 +      && memcmp (SDATA (name) + i, "mouse-", 6) == 0
 +      && ('0' <= SREF (name, i + 6) && SREF (name, i + 6) <= '9'))
 +    modifiers |= click_modifier;
 +
 +  if (! (modifiers & (double_modifier | triple_modifier))
 +      && i + 6 < SBYTES (name)
 +      && memcmp (SDATA (name) + i, "wheel-", 6) == 0)
 +    modifiers |= click_modifier;
 +
 +  if (modifier_end)
 +    *modifier_end = i;
 +
 +  return modifiers;
 +}
 +
 +/* Return a symbol whose name is the modifier prefixes for MODIFIERS
 +   prepended to the string BASE[0..BASE_LEN-1].
 +   This doesn't use any caches.  */
 +static Lisp_Object
 +apply_modifiers_uncached (int modifiers, char *base, int base_len, int base_len_byte)
 +{
 +  /* Since BASE could contain nulls, we can't use intern here; we have
 +     to use Fintern, which expects a genuine Lisp_String, and keeps a
 +     reference to it.  */
 +  char new_mods[sizeof "A-C-H-M-S-s-down-drag-double-triple-"];
 +  int mod_len;
 +
 +  {
 +    char *p = new_mods;
 +
 +    /* Only the event queue may use the `up' modifier; it should always
 +       be turned into a click or drag event before presented to lisp code.  */
 +    if (modifiers & up_modifier)
 +      emacs_abort ();
 +
 +    if (modifiers & alt_modifier)   { *p++ = 'A'; *p++ = '-'; }
 +    if (modifiers & ctrl_modifier)  { *p++ = 'C'; *p++ = '-'; }
 +    if (modifiers & hyper_modifier) { *p++ = 'H'; *p++ = '-'; }
 +    if (modifiers & meta_modifier)  { *p++ = 'M'; *p++ = '-'; }
 +    if (modifiers & shift_modifier) { *p++ = 'S'; *p++ = '-'; }
 +    if (modifiers & super_modifier) { *p++ = 's'; *p++ = '-'; }
 +    if (modifiers & double_modifier) p = stpcpy (p, "double-");
 +    if (modifiers & triple_modifier) p = stpcpy (p, "triple-");
 +    if (modifiers & down_modifier) p = stpcpy (p, "down-");
 +    if (modifiers & drag_modifier) p = stpcpy (p, "drag-");
 +    /* The click modifier is denoted by the absence of other modifiers.  */
 +
 +    *p = '\0';
 +
 +    mod_len = p - new_mods;
 +  }
 +
 +  {
 +    Lisp_Object new_name;
 +
 +    new_name = make_uninit_multibyte_string (mod_len + base_len,
 +                                           mod_len + base_len_byte);
 +    memcpy (SDATA (new_name), new_mods, mod_len);
 +    memcpy (SDATA (new_name) + mod_len, base, base_len_byte);
 +
 +    return Fintern (new_name, Qnil);
 +  }
 +}
 +
 +
 +static const char *const modifier_names[] =
 +{
 +  "up", "down", "drag", "click", "double", "triple", 0, 0,
 +  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 +  0, 0, "alt", "super", "hyper", "shift", "control", "meta"
 +};
 +#define NUM_MOD_NAMES ARRAYELTS (modifier_names)
 +
 +static Lisp_Object modifier_symbols;
 +
 +/* Return the list of modifier symbols corresponding to the mask MODIFIERS.  */
 +static Lisp_Object
 +lispy_modifier_list (int modifiers)
 +{
 +  Lisp_Object modifier_list;
 +  int i;
 +
 +  modifier_list = Qnil;
 +  for (i = 0; (1<<i) <= modifiers && i < NUM_MOD_NAMES; i++)
 +    if (modifiers & (1<<i))
 +      modifier_list = Fcons (AREF (modifier_symbols, i),
 +                           modifier_list);
 +
 +  return modifier_list;
 +}
 +
 +
 +/* Parse the modifiers on SYMBOL, and return a list like (UNMODIFIED MASK),
 +   where UNMODIFIED is the unmodified form of SYMBOL,
 +   MASK is the set of modifiers present in SYMBOL's name.
 +   This is similar to parse_modifiers_uncached, but uses the cache in
 +   SYMBOL's Qevent_symbol_element_mask property, and maintains the
 +   Qevent_symbol_elements property.  */
 +
 +#define KEY_TO_CHAR(k) (XINT (k) & ((1 << CHARACTERBITS) - 1))
 +
 +Lisp_Object
 +parse_modifiers (Lisp_Object symbol)
 +{
 +  Lisp_Object elements;
 +
 +  if (INTEGERP (symbol))
 +    return list2i (KEY_TO_CHAR (symbol), XINT (symbol) & CHAR_MODIFIER_MASK);
 +  else if (!SYMBOLP (symbol))
 +    return Qnil;
 +
 +  elements = Fget (symbol, Qevent_symbol_element_mask);
 +  if (CONSP (elements))
 +    return elements;
 +  else
 +    {
 +      ptrdiff_t end;
 +      int modifiers = parse_modifiers_uncached (symbol, &end);
 +      Lisp_Object unmodified;
 +      Lisp_Object mask;
 +
 +      unmodified = Fintern (make_string (SSDATA (SYMBOL_NAME (symbol)) + end,
 +                                       SBYTES (SYMBOL_NAME (symbol)) - end),
 +                          Qnil);
 +
 +      if (modifiers & ~INTMASK)
 +      emacs_abort ();
 +      XSETFASTINT (mask, modifiers);
 +      elements = list2 (unmodified, mask);
 +
 +      /* Cache the parsing results on SYMBOL.  */
 +      Fput (symbol, Qevent_symbol_element_mask,
 +          elements);
 +      Fput (symbol, Qevent_symbol_elements,
 +          Fcons (unmodified, lispy_modifier_list (modifiers)));
 +
 +      /* Since we know that SYMBOL is modifiers applied to unmodified,
 +       it would be nice to put that in unmodified's cache.
 +       But we can't, since we're not sure that parse_modifiers is
 +       canonical.  */
 +
 +      return elements;
 +    }
 +}
 +
 +DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,
 +       Sevent_symbol_parse_modifiers, 1, 1, 0,
 +       doc: /* Parse the event symbol.  For internal use.  */)
 +  (Lisp_Object symbol)
 +{
 +  /* Fill the cache if needed.  */
 +  parse_modifiers (symbol);
 +  /* Ignore the result (which is stored on Qevent_symbol_element_mask)
 +     and use the Lispier representation stored on Qevent_symbol_elements
 +     instead.  */
 +  return Fget (symbol, Qevent_symbol_elements);
 +}
 +
 +/* Apply the modifiers MODIFIERS to the symbol BASE.
 +   BASE must be unmodified.
 +
 +   This is like apply_modifiers_uncached, but uses BASE's
 +   Qmodifier_cache property, if present.  It also builds
 +   Qevent_symbol_elements properties, since it has that info anyway.
 +
 +   apply_modifiers copies the value of BASE's Qevent_kind property to
 +   the modified symbol.  */
 +static Lisp_Object
 +apply_modifiers (int modifiers, Lisp_Object base)
 +{
 +  Lisp_Object cache, idx, entry, new_symbol;
 +
 +  /* Mask out upper bits.  We don't know where this value's been.  */
 +  modifiers &= INTMASK;
 +
 +  if (INTEGERP (base))
 +    return make_number (XINT (base) | modifiers);
 +
 +  /* The click modifier never figures into cache indices.  */
 +  cache = Fget (base, Qmodifier_cache);
 +  XSETFASTINT (idx, (modifiers & ~click_modifier));
 +  entry = assq_no_quit (idx, cache);
 +
 +  if (CONSP (entry))
 +    new_symbol = XCDR (entry);
 +  else
 +    {
 +      /* We have to create the symbol ourselves.  */
 +      new_symbol = apply_modifiers_uncached (modifiers,
 +                                           SSDATA (SYMBOL_NAME (base)),
 +                                           SCHARS (SYMBOL_NAME (base)),
 +                                           SBYTES (SYMBOL_NAME (base)));
 +
 +      /* Add the new symbol to the base's cache.  */
 +      entry = Fcons (idx, new_symbol);
 +      Fput (base, Qmodifier_cache, Fcons (entry, cache));
 +
 +      /* We have the parsing info now for free, so we could add it to
 +       the caches:
 +         XSETFASTINT (idx, modifiers);
 +         Fput (new_symbol, Qevent_symbol_element_mask,
 +               list2 (base, idx));
 +         Fput (new_symbol, Qevent_symbol_elements,
 +               Fcons (base, lispy_modifier_list (modifiers)));
 +       Sadly, this is only correct if `base' is indeed a base event,
 +       which is not necessarily the case.  -stef  */
 +    }
 +
 +  /* Make sure this symbol is of the same kind as BASE.
 +
 +     You'd think we could just set this once and for all when we
 +     intern the symbol above, but reorder_modifiers may call us when
 +     BASE's property isn't set right; we can't assume that just
 +     because it has a Qmodifier_cache property it must have its
 +     Qevent_kind set right as well.  */
 +  if (NILP (Fget (new_symbol, Qevent_kind)))
 +    {
 +      Lisp_Object kind;
 +
 +      kind = Fget (base, Qevent_kind);
 +      if (! NILP (kind))
 +      Fput (new_symbol, Qevent_kind, kind);
 +    }
 +
 +  return new_symbol;
 +}
 +
 +
 +/* Given a symbol whose name begins with modifiers ("C-", "M-", etc),
 +   return a symbol with the modifiers placed in the canonical order.
 +   Canonical order is alphabetical, except for down and drag, which
 +   always come last.  The 'click' modifier is never written out.
 +
 +   Fdefine_key calls this to make sure that (for example) C-M-foo
 +   and M-C-foo end up being equivalent in the keymap.  */
 +
 +Lisp_Object
 +reorder_modifiers (Lisp_Object symbol)
 +{
 +  /* It's hopefully okay to write the code this way, since everything
 +     will soon be in caches, and no consing will be done at all.  */
 +  Lisp_Object parsed;
 +
 +  parsed = parse_modifiers (symbol);
 +  return apply_modifiers (XFASTINT (XCAR (XCDR (parsed))),
 +                        XCAR (parsed));
 +}
 +
 +
 +/* For handling events, we often want to produce a symbol whose name
 +   is a series of modifier key prefixes ("M-", "C-", etcetera) attached
 +   to some base, like the name of a function key or mouse button.
 +   modify_event_symbol produces symbols of this sort.
 +
 +   NAME_TABLE should point to an array of strings, such that NAME_TABLE[i]
 +   is the name of the i'th symbol.  TABLE_SIZE is the number of elements
 +   in the table.
 +
 +   Alternatively, NAME_ALIST_OR_STEM is either an alist mapping codes
 +   into symbol names, or a string specifying a name stem used to
 +   construct a symbol name or the form `STEM-N', where N is the decimal
 +   representation of SYMBOL_NUM.  NAME_ALIST_OR_STEM is used if it is
 +   non-nil; otherwise NAME_TABLE is used.
 +
 +   SYMBOL_TABLE should be a pointer to a Lisp_Object whose value will
 +   persist between calls to modify_event_symbol that it can use to
 +   store a cache of the symbols it's generated for this NAME_TABLE
 +   before.  The object stored there may be a vector or an alist.
 +
 +   SYMBOL_NUM is the number of the base name we want from NAME_TABLE.
 +
 +   MODIFIERS is a set of modifier bits (as given in struct input_events)
 +   whose prefixes should be applied to the symbol name.
 +
 +   SYMBOL_KIND is the value to be placed in the event_kind property of
 +   the returned symbol.
 +
 +   The symbols we create are supposed to have an
 +   `event-symbol-elements' property, which lists the modifiers present
 +   in the symbol's name.  */
 +
 +static Lisp_Object
 +modify_event_symbol (ptrdiff_t symbol_num, int modifiers, Lisp_Object symbol_kind,
 +                   Lisp_Object name_alist_or_stem, const char *const *name_table,
 +                   Lisp_Object *symbol_table, ptrdiff_t table_size)
 +{
 +  Lisp_Object value;
 +  Lisp_Object symbol_int;
 +
 +  /* Get rid of the "vendor-specific" bit here.  */
 +  XSETINT (symbol_int, symbol_num & 0xffffff);
 +
 +  /* Is this a request for a valid symbol?  */
 +  if (symbol_num < 0 || symbol_num >= table_size)
 +    return Qnil;
 +
 +  if (CONSP (*symbol_table))
 +    value = Fcdr (assq_no_quit (symbol_int, *symbol_table));
 +
 +  /* If *symbol_table doesn't seem to be initialized properly, fix that.
 +     *symbol_table should be a lisp vector TABLE_SIZE elements long,
 +     where the Nth element is the symbol for NAME_TABLE[N], or nil if
 +     we've never used that symbol before.  */
 +  else
 +    {
 +      if (! VECTORP (*symbol_table)
 +        || ASIZE (*symbol_table) != table_size)
 +      {
 +        Lisp_Object size;
 +
 +        XSETFASTINT (size, table_size);
 +        *symbol_table = Fmake_vector (size, Qnil);
 +      }
 +
 +      value = AREF (*symbol_table, symbol_num);
 +    }
 +
 +  /* Have we already used this symbol before?  */
 +  if (NILP (value))
 +    {
 +      /* No; let's create it.  */
 +      if (CONSP (name_alist_or_stem))
 +      value = Fcdr_safe (Fassq (symbol_int, name_alist_or_stem));
 +      else if (STRINGP (name_alist_or_stem))
 +      {
 +        char *buf;
 +        ptrdiff_t len = (SBYTES (name_alist_or_stem)
 +                         + sizeof "-" + INT_STRLEN_BOUND (EMACS_INT));
 +        USE_SAFE_ALLOCA;
 +        buf = SAFE_ALLOCA (len);
 +        esprintf (buf, "%s-%"pI"d", SDATA (name_alist_or_stem),
 +                  XINT (symbol_int) + 1);
 +        value = intern (buf);
 +        SAFE_FREE ();
 +      }
 +      else if (name_table != 0 && name_table[symbol_num])
 +      value = intern (name_table[symbol_num]);
 +
 +#ifdef HAVE_WINDOW_SYSTEM
 +      if (NILP (value))
 +      {
 +        char *name = x_get_keysym_name (symbol_num);
 +        if (name)
 +          value = intern (name);
 +      }
 +#endif
 +
 +      if (NILP (value))
 +      {
 +        char buf[sizeof "key-" + INT_STRLEN_BOUND (EMACS_INT)];
 +        sprintf (buf, "key-%"pD"d", symbol_num);
 +        value = intern (buf);
 +      }
 +
 +      if (CONSP (*symbol_table))
 +        *symbol_table = Fcons (Fcons (symbol_int, value), *symbol_table);
 +      else
 +      ASET (*symbol_table, symbol_num, value);
 +
 +      /* Fill in the cache entries for this symbol; this also
 +       builds the Qevent_symbol_elements property, which the user
 +       cares about.  */
 +      apply_modifiers (modifiers & click_modifier, value);
 +      Fput (value, Qevent_kind, symbol_kind);
 +    }
 +
 +  /* Apply modifiers to that symbol.  */
 +  return apply_modifiers (modifiers, value);
 +}
 +\f
 +/* Convert a list that represents an event type,
 +   such as (ctrl meta backspace), into the usual representation of that
 +   event type as a number or a symbol.  */
 +
 +DEFUN ("event-convert-list", Fevent_convert_list, Sevent_convert_list, 1, 1, 0,
 +       doc: /* Convert the event description list EVENT-DESC to an event type.
 +EVENT-DESC should contain one base event type (a character or symbol)
 +and zero or more modifier names (control, meta, hyper, super, shift, alt,
 +drag, down, double or triple).  The base must be last.
 +The return value is an event type (a character or symbol) which
 +has the same base event type and all the specified modifiers.  */)
 +  (Lisp_Object event_desc)
 +{
 +  Lisp_Object base;
 +  int modifiers = 0;
 +  Lisp_Object rest;
 +
 +  base = Qnil;
 +  rest = event_desc;
 +  while (CONSP (rest))
 +    {
 +      Lisp_Object elt;
 +      int this = 0;
 +
 +      elt = XCAR (rest);
 +      rest = XCDR (rest);
 +
 +      /* Given a symbol, see if it is a modifier name.  */
 +      if (SYMBOLP (elt) && CONSP (rest))
 +      this = parse_solitary_modifier (elt);
 +
 +      if (this != 0)
 +      modifiers |= this;
 +      else if (!NILP (base))
 +      error ("Two bases given in one event");
 +      else
 +      base = elt;
 +
 +    }
 +
 +  /* Let the symbol A refer to the character A.  */
 +  if (SYMBOLP (base) && SCHARS (SYMBOL_NAME (base)) == 1)
 +    XSETINT (base, SREF (SYMBOL_NAME (base), 0));
 +
 +  if (INTEGERP (base))
 +    {
 +      /* Turn (shift a) into A.  */
 +      if ((modifiers & shift_modifier) != 0
 +        && (XINT (base) >= 'a' && XINT (base) <= 'z'))
 +      {
 +        XSETINT (base, XINT (base) - ('a' - 'A'));
 +        modifiers &= ~shift_modifier;
 +      }
 +
 +      /* Turn (control a) into C-a.  */
 +      if (modifiers & ctrl_modifier)
 +      return make_number ((modifiers & ~ctrl_modifier)
 +                          | make_ctrl_char (XINT (base)));
 +      else
 +      return make_number (modifiers | XINT (base));
 +    }
 +  else if (SYMBOLP (base))
 +    return apply_modifiers (modifiers, base);
 +  else
 +    error ("Invalid base event");
 +}
 +
 +/* Try to recognize SYMBOL as a modifier name.
 +   Return the modifier flag bit, or 0 if not recognized.  */
 +
 +int
 +parse_solitary_modifier (Lisp_Object symbol)
 +{
 +  Lisp_Object name = SYMBOL_NAME (symbol);
 +
 +  switch (SREF (name, 0))
 +    {
 +#define SINGLE_LETTER_MOD(BIT)                                \
 +      if (SBYTES (name) == 1)                         \
 +      return BIT;
 +
 +#define MULTI_LETTER_MOD(BIT, NAME, LEN)              \
 +      if (LEN == SBYTES (name)                                \
 +        && ! memcmp (SDATA (name), NAME, LEN))        \
 +      return BIT;
 +
 +    case 'A':
 +      SINGLE_LETTER_MOD (alt_modifier);
 +      break;
 +
 +    case 'a':
 +      MULTI_LETTER_MOD (alt_modifier, "alt", 3);
 +      break;
 +
 +    case 'C':
 +      SINGLE_LETTER_MOD (ctrl_modifier);
 +      break;
 +
 +    case 'c':
 +      MULTI_LETTER_MOD (ctrl_modifier, "ctrl", 4);
 +      MULTI_LETTER_MOD (ctrl_modifier, "control", 7);
 +      break;
 +
 +    case 'H':
 +      SINGLE_LETTER_MOD (hyper_modifier);
 +      break;
 +
 +    case 'h':
 +      MULTI_LETTER_MOD (hyper_modifier, "hyper", 5);
 +      break;
 +
 +    case 'M':
 +      SINGLE_LETTER_MOD (meta_modifier);
 +      break;
 +
 +    case 'm':
 +      MULTI_LETTER_MOD (meta_modifier, "meta", 4);
 +      break;
 +
 +    case 'S':
 +      SINGLE_LETTER_MOD (shift_modifier);
 +      break;
 +
 +    case 's':
 +      MULTI_LETTER_MOD (shift_modifier, "shift", 5);
 +      MULTI_LETTER_MOD (super_modifier, "super", 5);
 +      SINGLE_LETTER_MOD (super_modifier);
 +      break;
 +
 +    case 'd':
 +      MULTI_LETTER_MOD (drag_modifier, "drag", 4);
 +      MULTI_LETTER_MOD (down_modifier, "down", 4);
 +      MULTI_LETTER_MOD (double_modifier, "double", 6);
 +      break;
 +
 +    case 't':
 +      MULTI_LETTER_MOD (triple_modifier, "triple", 6);
 +      break;
 +
 +#undef SINGLE_LETTER_MOD
 +#undef MULTI_LETTER_MOD
 +    }
 +
 +  return 0;
 +}
 +
 +/* Return true if EVENT is a list whose elements are all integers or symbols.
 +   Such a list is not valid as an event,
 +   but it can be a Lucid-style event type list.  */
 +
 +bool
 +lucid_event_type_list_p (Lisp_Object object)
 +{
 +  Lisp_Object tail;
 +
 +  if (! CONSP (object))
 +    return 0;
 +
 +  if (EQ (XCAR (object), Qhelp_echo)
 +      || EQ (XCAR (object), Qvertical_line)
 +      || EQ (XCAR (object), Qmode_line)
 +      || EQ (XCAR (object), Qheader_line))
 +    return 0;
 +
 +  for (tail = object; CONSP (tail); tail = XCDR (tail))
 +    {
 +      Lisp_Object elt;
 +      elt = XCAR (tail);
 +      if (! (INTEGERP (elt) || SYMBOLP (elt)))
 +      return 0;
 +    }
 +
 +  return NILP (tail);
 +}
 +\f
 +/* Return true if terminal input chars are available.
 +   Also, store the return value into INPUT_PENDING.
 +
 +   Serves the purpose of ioctl (0, FIONREAD, ...)
 +   but works even if FIONREAD does not exist.
 +   (In fact, this may actually read some input.)
 +
 +   If READABLE_EVENTS_DO_TIMERS_NOW is set in FLAGS, actually run
 +   timer events that are ripe.
 +   If READABLE_EVENTS_FILTER_EVENTS is set in FLAGS, ignore internal
 +   events (FOCUS_IN_EVENT).
 +   If READABLE_EVENTS_IGNORE_SQUEEZABLES is set in FLAGS, ignore mouse
 +   movements and toolkit scroll bar thumb drags.  */
 +
 +static bool
 +get_input_pending (int flags)
 +{
 +  /* First of all, have we already counted some input?  */
 +  input_pending = (!NILP (Vquit_flag) || readable_events (flags));
 +
 +  /* If input is being read as it arrives, and we have none, there is none.  */
 +  if (!input_pending && (!interrupt_input || interrupts_deferred))
 +    {
 +      /* Try to read some input and see how much we get.  */
 +      gobble_input ();
 +      input_pending = (!NILP (Vquit_flag) || readable_events (flags));
 +    }
 +
 +  return input_pending;
 +}
 +
 +/* Put a BUFFER_SWITCH_EVENT in the buffer
 +   so that read_key_sequence will notice the new current buffer.  */
 +
 +void
 +record_asynch_buffer_change (void)
 +{
 +  /* We don't need a buffer-switch event unless Emacs is waiting for input.
 +     The purpose of the event is to make read_key_sequence look up the
 +     keymaps again.  If we aren't in read_key_sequence, we don't need one,
 +     and the event could cause trouble by messing up (input-pending-p).
 +     Note: Fwaiting_for_user_input_p always returns nil when async
 +     subprocesses aren't supported.  */
 +  if (!NILP (Fwaiting_for_user_input_p ()))
 +    {
 +      struct input_event event;
 +
 +      EVENT_INIT (event);
 +      event.kind = BUFFER_SWITCH_EVENT;
 +      event.frame_or_window = Qnil;
 +      event.arg = Qnil;
 +
 +      /* Make sure no interrupt happens while storing the event.  */
 +#ifdef USABLE_SIGIO
 +      if (interrupt_input)
 +      kbd_buffer_store_event (&event);
 +      else
 +#endif
 +      {
 +        stop_polling ();
 +        kbd_buffer_store_event (&event);
 +        start_polling ();
 +      }
 +    }
 +}
 +
 +/* Read any terminal input already buffered up by the system
 +   into the kbd_buffer, but do not wait.
 +
 +   Return the number of keyboard chars read, or -1 meaning
 +   this is a bad time to try to read input.  */
 +
 +int
 +gobble_input (void)
 +{
 +  int nread = 0;
 +  bool err = 0;
 +  struct terminal *t;
 +
 +  /* Store pending user signal events, if any.  */
 +  store_user_signal_events ();
 +
 +  /* Loop through the available terminals, and call their input hooks.  */
 +  t = terminal_list;
 +  while (t)
 +    {
 +      struct terminal *next = t->next_terminal;
 +
 +      if (t->read_socket_hook)
 +        {
 +          int nr;
 +          struct input_event hold_quit;
 +
 +        if (input_blocked_p ())
 +          {
 +            pending_signals = 1;
 +            break;
 +          }
 +
 +          EVENT_INIT (hold_quit);
 +          hold_quit.kind = NO_EVENT;
 +
 +          /* No need for FIONREAD or fcntl; just say don't wait.  */
 +        while ((nr = (*t->read_socket_hook) (t, &hold_quit)) > 0)
 +          nread += nr;
 +
 +          if (nr == -1)          /* Not OK to read input now.  */
 +            {
 +              err = 1;
 +            }
 +          else if (nr == -2)          /* Non-transient error.  */
 +            {
 +              /* The terminal device terminated; it should be closed.  */
 +
 +              /* Kill Emacs if this was our last terminal.  */
 +              if (!terminal_list->next_terminal)
 +                /* Formerly simply reported no input, but that
 +                   sometimes led to a failure of Emacs to terminate.
 +                   SIGHUP seems appropriate if we can't reach the
 +                   terminal.  */
 +                /* ??? Is it really right to send the signal just to
 +                   this process rather than to the whole process
 +                   group?  Perhaps on systems with FIONREAD Emacs is
 +                   alone in its group.  */
 +              terminate_due_to_signal (SIGHUP, 10);
 +
 +              /* XXX Is calling delete_terminal safe here?  It calls delete_frame.  */
 +            {
 +              Lisp_Object tmp;
 +              XSETTERMINAL (tmp, t);
 +              Fdelete_terminal (tmp, Qnoelisp);
 +            }
 +            }
 +
 +        /* If there was no error, make sure the pointer
 +           is visible for all frames on this terminal.  */
 +        if (nr >= 0)
 +          {
 +            Lisp_Object tail, frame;
 +
 +            FOR_EACH_FRAME (tail, frame)
 +              {
 +                struct frame *f = XFRAME (frame);
 +                if (FRAME_TERMINAL (f) == t)
 +                  frame_make_pointer_visible (f);
 +              }
 +          }
 +
 +          if (hold_quit.kind != NO_EVENT)
 +            kbd_buffer_store_event (&hold_quit);
 +        }
 +
 +      t = next;
 +    }
 +
 +  if (err && !nread)
 +    nread = -1;
 +
 +  return nread;
 +}
 +
 +/* This is the tty way of reading available input.
 +
 +   Note that each terminal device has its own `struct terminal' object,
 +   and so this function is called once for each individual termcap
 +   terminal.  The first parameter indicates which terminal to read from.  */
 +
 +int
 +tty_read_avail_input (struct terminal *terminal,
 +                      struct input_event *hold_quit)
 +{
 +  /* Using KBD_BUFFER_SIZE - 1 here avoids reading more than
 +     the kbd_buffer can really hold.  That may prevent loss
 +     of characters on some systems when input is stuffed at us.  */
 +  unsigned char cbuf[KBD_BUFFER_SIZE - 1];
 +  int n_to_read, i;
 +  struct tty_display_info *tty = terminal->display_info.tty;
 +  int nread = 0;
 +#ifdef subprocesses
 +  int buffer_free = KBD_BUFFER_SIZE - kbd_buffer_nr_stored () - 1;
 +
 +  if (kbd_on_hold_p () || buffer_free <= 0)
 +    return 0;
 +#endif        /* subprocesses */
 +
 +  if (!terminal->name)                /* Don't read from a dead terminal.  */
 +    return 0;
 +
 +  if (terminal->type != output_termcap
 +      && terminal->type != output_msdos_raw)
 +    emacs_abort ();
 +
 +  /* XXX I think the following code should be moved to separate hook
 +     functions in system-dependent files.  */
 +#ifdef WINDOWSNT
 +  /* FIXME: AFAIK, tty_read_avail_input is not used under w32 since the non-GUI
 +     code sets read_socket_hook to w32_console_read_socket instead!  */
 +  return 0;
 +#else /* not WINDOWSNT */
 +  if (! tty->term_initted)      /* In case we get called during bootstrap.  */
 +    return 0;
 +
 +  if (! tty->input)
 +    return 0;                   /* The terminal is suspended.  */
 +
 +#ifdef MSDOS
 +  n_to_read = dos_keysns ();
 +  if (n_to_read == 0)
 +    return 0;
 +
 +  cbuf[0] = dos_keyread ();
 +  nread = 1;
 +
 +#else /* not MSDOS */
 +#ifdef HAVE_GPM
 +  if (gpm_tty == tty)
 +  {
 +      Gpm_Event event;
 +      struct input_event gpm_hold_quit;
 +      int gpm, fd = gpm_fd;
 +
 +      EVENT_INIT (gpm_hold_quit);
 +      gpm_hold_quit.kind = NO_EVENT;
 +
 +      /* gpm==1 if event received.
 +         gpm==0 if the GPM daemon has closed the connection, in which case
 +                Gpm_GetEvent closes gpm_fd and clears it to -1, which is why
 +              we save it in `fd' so close_gpm can remove it from the
 +              select masks.
 +         gpm==-1 if a protocol error or EWOULDBLOCK; the latter is normal.  */
 +      while (gpm = Gpm_GetEvent (&event), gpm == 1) {
 +        nread += handle_one_term_event (tty, &event, &gpm_hold_quit);
 +      }
 +      if (gpm == 0)
 +      /* Presumably the GPM daemon has closed the connection.  */
 +      close_gpm (fd);
 +      if (gpm_hold_quit.kind != NO_EVENT)
 +        kbd_buffer_store_event (&gpm_hold_quit);
 +      if (nread)
 +        return nread;
 +  }
 +#endif /* HAVE_GPM */
 +
 +/* Determine how many characters we should *try* to read.  */
 +#ifdef USABLE_FIONREAD
 +  /* Find out how much input is available.  */
 +  if (ioctl (fileno (tty->input), FIONREAD, &n_to_read) < 0)
 +    {
 +      if (! noninteractive)
 +        return -2;          /* Close this terminal.  */
 +      else
 +        n_to_read = 0;
 +    }
 +  if (n_to_read == 0)
 +    return 0;
 +  if (n_to_read > sizeof cbuf)
 +    n_to_read = sizeof cbuf;
 +#elif defined USG || defined CYGWIN
 +  /* Read some input if available, but don't wait.  */
 +  n_to_read = sizeof cbuf;
 +  fcntl (fileno (tty->input), F_SETFL, O_NONBLOCK);
 +#else
 +# error "Cannot read without possibly delaying"
 +#endif
 +
 +#ifdef subprocesses
 +  /* Don't read more than we can store.  */
 +  if (n_to_read > buffer_free)
 +    n_to_read = buffer_free;
 +#endif        /* subprocesses */
 +
 +  /* Now read; for one reason or another, this will not block.
 +     NREAD is set to the number of chars read.  */
 +  do
 +    {
 +      nread = emacs_read (fileno (tty->input), (char *) cbuf, n_to_read);
 +      /* POSIX infers that processes which are not in the session leader's
 +         process group won't get SIGHUPs at logout time.  BSDI adheres to
 +         this part standard and returns -1 from read (0) with errno==EIO
 +         when the control tty is taken away.
 +         Jeffrey Honig <jch@bsdi.com> says this is generally safe.  */
 +      if (nread == -1 && errno == EIO)
 +        return -2;          /* Close this terminal.  */
 +#if defined (AIX) && defined (_BSD)
 +      /* The kernel sometimes fails to deliver SIGHUP for ptys.
 +         This looks incorrect, but it isn't, because _BSD causes
 +         O_NDELAY to be defined in fcntl.h as O_NONBLOCK,
 +         and that causes a value other than 0 when there is no input.  */
 +      if (nread == 0)
 +        return -2;          /* Close this terminal.  */
 +#endif
 +    }
 +  while (
 +         /* We used to retry the read if it was interrupted.
 +            But this does the wrong thing when O_NONBLOCK causes
 +            an EAGAIN error.  Does anybody know of a situation
 +            where a retry is actually needed?  */
 +#if 0
 +         nread < 0 && (errno == EAGAIN || errno == EFAULT
 +#ifdef EBADSLT
 +                       || errno == EBADSLT
 +#endif
 +                       )
 +#else
 +         0
 +#endif
 +         );
 +
 +#ifndef USABLE_FIONREAD
 +#if defined (USG) || defined (CYGWIN)
 +  fcntl (fileno (tty->input), F_SETFL, 0);
 +#endif /* USG or CYGWIN */
 +#endif /* no FIONREAD */
 +
 +  if (nread <= 0)
 +    return nread;
 +
 +#endif /* not MSDOS */
 +#endif /* not WINDOWSNT */
 +
 +  for (i = 0; i < nread; i++)
 +    {
 +      struct input_event buf;
 +      EVENT_INIT (buf);
 +      buf.kind = ASCII_KEYSTROKE_EVENT;
 +      buf.modifiers = 0;
 +      if (tty->meta_key == 1 && (cbuf[i] & 0x80))
 +        buf.modifiers = meta_modifier;
 +      if (tty->meta_key != 2)
 +        cbuf[i] &= ~0x80;
 +
 +      buf.code = cbuf[i];
 +      /* Set the frame corresponding to the active tty.  Note that the
 +         value of selected_frame is not reliable here, redisplay tends
 +         to temporarily change it.  */
 +      buf.frame_or_window = tty->top_frame;
 +      buf.arg = Qnil;
 +
 +      kbd_buffer_store_event (&buf);
 +      /* Don't look at input that follows a C-g too closely.
 +         This reduces lossage due to autorepeat on C-g.  */
 +      if (buf.kind == ASCII_KEYSTROKE_EVENT
 +          && buf.code == quit_char)
 +        break;
 +    }
 +
 +  return nread;
 +}
 +\f
 +static void
 +handle_async_input (void)
 +{
 +#ifdef USABLE_SIGIO
 +  while (1)
 +    {
 +      int nread = gobble_input ();
 +      /* -1 means it's not ok to read the input now.
 +       UNBLOCK_INPUT will read it later; now, avoid infinite loop.
 +       0 means there was no keyboard input available.  */
 +      if (nread <= 0)
 +      break;
 +    }
 +#endif
 +}
 +
 +void
 +process_pending_signals (void)
 +{
 +  pending_signals = 0;
 +  handle_async_input ();
 +  do_pending_atimers ();
 +}
 +
 +/* Undo any number of BLOCK_INPUT calls down to level LEVEL,
 +   and reinvoke any pending signal if the level is now 0 and
 +   a fatal error is not already in progress.  */
 +
 +void
 +unblock_input_to (int level)
 +{
 +  interrupt_input_blocked = level;
 +  if (level == 0)
 +    {
 +      if (pending_signals && !fatal_error_in_progress)
 +      process_pending_signals ();
 +    }
 +  else if (level < 0)
 +    emacs_abort ();
 +}
 +
 +/* End critical section.
 +
 +   If doing signal-driven input, and a signal came in when input was
 +   blocked, reinvoke the signal handler now to deal with it.
 +
 +   It will also process queued input, if it was not read before.
 +   When a longer code sequence does not use block/unblock input
 +   at all, the whole input gathered up to the next call to
 +   unblock_input will be processed inside that call. */
 +
 +void
 +unblock_input (void)
 +{
 +  unblock_input_to (interrupt_input_blocked - 1);
 +}
 +
 +/* Undo any number of BLOCK_INPUT calls,
 +   and also reinvoke any pending signal.  */
 +
 +void
 +totally_unblock_input (void)
 +{
 +  unblock_input_to (0);
 +}
 +
 +#ifdef USABLE_SIGIO
 +
 +void
 +handle_input_available_signal (int sig)
 +{
 +  pending_signals = 1;
 +
 +  if (input_available_clear_time)
 +    *input_available_clear_time = make_timespec (0, 0);
 +}
 +
 +static void
 +deliver_input_available_signal (int sig)
 +{
 +  deliver_process_signal (sig, handle_input_available_signal);
 +}
 +#endif /* USABLE_SIGIO */
 +
 +\f
 +/* User signal events.  */
 +
 +struct user_signal_info
 +{
 +  /* Signal number.  */
 +  int sig;
 +
 +  /* Name of the signal.  */
 +  char *name;
 +
 +  /* Number of pending signals.  */
 +  int npending;
 +
 +  struct user_signal_info *next;
 +};
 +
 +/* List of user signals.  */
 +static struct user_signal_info *user_signals = NULL;
 +
 +void
 +add_user_signal (int sig, const char *name)
 +{
 +  struct sigaction action;
 +  struct user_signal_info *p;
 +
 +  for (p = user_signals; p; p = p->next)
 +    if (p->sig == sig)
 +      /* Already added.  */
 +      return;
 +
 +  p = xmalloc (sizeof *p);
 +  p->sig = sig;
 +  p->name = xstrdup (name);
 +  p->npending = 0;
 +  p->next = user_signals;
 +  user_signals = p;
 +
 +  emacs_sigaction_init (&action, deliver_user_signal);
 +  sigaction (sig, &action, 0);
 +}
 +
 +static void
 +handle_user_signal (int sig)
 +{
 +  struct user_signal_info *p;
 +  const char *special_event_name = NULL;
 +
 +  if (SYMBOLP (Vdebug_on_event))
 +    special_event_name = SSDATA (SYMBOL_NAME (Vdebug_on_event));
 +
 +  for (p = user_signals; p; p = p->next)
 +    if (p->sig == sig)
 +      {
 +        if (special_event_name
 +          && strcmp (special_event_name, p->name) == 0)
 +          {
 +            /* Enter the debugger in many ways.  */
 +            debug_on_next_call = 1;
 +            debug_on_quit = 1;
 +            Vquit_flag = Qt;
 +            Vinhibit_quit = Qnil;
 +
 +            /* Eat the event.  */
 +            break;
 +          }
 +
 +      p->npending++;
 +#ifdef USABLE_SIGIO
 +      if (interrupt_input)
 +        handle_input_available_signal (sig);
 +      else
 +#endif
 +        {
 +          /* Tell wait_reading_process_output that it needs to wake
 +             up and look around.  */
 +          if (input_available_clear_time)
 +            *input_available_clear_time = make_timespec (0, 0);
 +        }
 +      break;
 +      }
 +}
 +
 +static void
 +deliver_user_signal (int sig)
 +{
 +  deliver_process_signal (sig, handle_user_signal);
 +}
 +
 +static char *
 +find_user_signal_name (int sig)
 +{
 +  struct user_signal_info *p;
 +
 +  for (p = user_signals; p; p = p->next)
 +    if (p->sig == sig)
 +      return p->name;
 +
 +  return NULL;
 +}
 +
 +static void
 +store_user_signal_events (void)
 +{
 +  struct user_signal_info *p;
 +  struct input_event buf;
 +  bool buf_initialized = 0;
 +
 +  for (p = user_signals; p; p = p->next)
 +    if (p->npending > 0)
 +      {
 +      if (! buf_initialized)
 +        {
 +          memset (&buf, 0, sizeof buf);
 +          buf.kind = USER_SIGNAL_EVENT;
 +          buf.frame_or_window = selected_frame;
 +          buf_initialized = 1;
 +        }
 +
 +      do
 +        {
 +          buf.code = p->sig;
 +          kbd_buffer_store_event (&buf);
 +          p->npending--;
 +        }
 +      while (p->npending > 0);
 +      }
 +}
 +
 +\f
 +static void menu_bar_item (Lisp_Object, Lisp_Object, Lisp_Object, void *);
 +static Lisp_Object menu_bar_one_keymap_changed_items;
 +
 +/* These variables hold the vector under construction within
 +   menu_bar_items and its subroutines, and the current index
 +   for storing into that vector.  */
 +static Lisp_Object menu_bar_items_vector;
 +static int menu_bar_items_index;
 +
 +
 +static const char *separator_names[] = {
 +  "space",
 +  "no-line",
 +  "single-line",
 +  "double-line",
 +  "single-dashed-line",
 +  "double-dashed-line",
 +  "shadow-etched-in",
 +  "shadow-etched-out",
 +  "shadow-etched-in-dash",
 +  "shadow-etched-out-dash",
 +  "shadow-double-etched-in",
 +  "shadow-double-etched-out",
 +  "shadow-double-etched-in-dash",
 +  "shadow-double-etched-out-dash",
 +  0,
 +};
 +
 +/* Return true if LABEL specifies a separator.  */
 +
 +bool
 +menu_separator_name_p (const char *label)
 +{
 +  if (!label)
 +    return 0;
 +  else if (strlen (label) > 3
 +         && memcmp (label, "--", 2) == 0
 +         && label[2] != '-')
 +    {
 +      int i;
 +      label += 2;
 +      for (i = 0; separator_names[i]; ++i)
 +      if (strcmp (label, separator_names[i]) == 0)
 +          return 1;
 +    }
 +  else
 +    {
 +      /* It's a separator if it contains only dashes.  */
 +      while (*label == '-')
 +      ++label;
 +      return (*label == 0);
 +    }
 +
 +  return 0;
 +}
 +
 +
 +/* Return a vector of menu items for a menu bar, appropriate
 +   to the current buffer.  Each item has three elements in the vector:
 +   KEY STRING MAPLIST.
 +
 +   OLD is an old vector we can optionally reuse, or nil.  */
 +
 +Lisp_Object
 +menu_bar_items (Lisp_Object old)
 +{
 +  /* The number of keymaps we're scanning right now, and the number of
 +     keymaps we have allocated space for.  */
 +  ptrdiff_t nmaps;
 +
 +  /* maps[0..nmaps-1] are the prefix definitions of KEYBUF[0..t-1]
 +     in the current keymaps, or nil where it is not a prefix.  */
 +  Lisp_Object *maps;
 +
 +  Lisp_Object mapsbuf[3];
 +  Lisp_Object def, tail;
 +
 +  ptrdiff_t mapno;
 +  Lisp_Object oquit;
 +
 +  USE_SAFE_ALLOCA;
 +
 +  /* In order to build the menus, we need to call the keymap
 +     accessors.  They all call QUIT.  But this function is called
 +     during redisplay, during which a quit is fatal.  So inhibit
 +     quitting while building the menus.
 +     We do this instead of specbind because (1) errors will clear it anyway
 +     and (2) this avoids risk of specpdl overflow.  */
 +  oquit = Vinhibit_quit;
 +  Vinhibit_quit = Qt;
 +
 +  if (!NILP (old))
 +    menu_bar_items_vector = old;
 +  else
 +    menu_bar_items_vector = Fmake_vector (make_number (24), Qnil);
 +  menu_bar_items_index = 0;
 +
 +  /* Build our list of keymaps.
 +     If we recognize a function key and replace its escape sequence in
 +     keybuf with its symbol, or if the sequence starts with a mouse
 +     click and we need to switch buffers, we jump back here to rebuild
 +     the initial keymaps from the current buffer.  */
 +  {
 +    Lisp_Object *tmaps;
 +
 +    /* Should overriding-terminal-local-map and overriding-local-map apply?  */
 +    if (!NILP (Voverriding_local_map_menu_flag)
 +      && !NILP (Voverriding_local_map))
 +      {
 +      /* Yes, use them (if non-nil) as well as the global map.  */
 +      maps = mapsbuf;
 +      nmaps = 0;
 +      if (!NILP (KVAR (current_kboard, Voverriding_terminal_local_map)))
 +        maps[nmaps++] = KVAR (current_kboard, Voverriding_terminal_local_map);
 +      if (!NILP (Voverriding_local_map))
 +        maps[nmaps++] = Voverriding_local_map;
 +      }
 +    else
 +      {
 +      /* No, so use major and minor mode keymaps and keymap property.
 +         Note that menu-bar bindings in the local-map and keymap
 +         properties may not work reliable, as they are only
 +         recognized when the menu-bar (or mode-line) is updated,
 +         which does not normally happen after every command.  */
 +      Lisp_Object tem;
 +      ptrdiff_t nminor;
 +      nminor = current_minor_maps (NULL, &tmaps);
 +      SAFE_NALLOCA (maps, 1, nminor + 4);
 +      nmaps = 0;
 +      tem = KVAR (current_kboard, Voverriding_terminal_local_map);
 +      if (!NILP (tem) && !NILP (Voverriding_local_map_menu_flag))
 +        maps[nmaps++] = tem;
 +      if (tem = get_local_map (PT, current_buffer, Qkeymap), !NILP (tem))
 +        maps[nmaps++] = tem;
 +      memcpy (maps + nmaps, tmaps, nminor * sizeof (maps[0]));
 +      nmaps += nminor;
 +      maps[nmaps++] = get_local_map (PT, current_buffer, Qlocal_map);
 +      }
 +    maps[nmaps++] = current_global_map;
 +  }
 +
 +  /* Look up in each map the dummy prefix key `menu-bar'.  */
 +
 +  for (mapno = nmaps - 1; mapno >= 0; mapno--)
 +    if (!NILP (maps[mapno]))
 +      {
 +      def = get_keymap (access_keymap (maps[mapno], Qmenu_bar, 1, 0, 1),
 +                        0, 1);
 +      if (CONSP (def))
 +        {
 +          menu_bar_one_keymap_changed_items = Qnil;
 +          map_keymap_canonical (def, menu_bar_item, Qnil, NULL);
 +        }
 +      }
 +
 +  /* Move to the end those items that should be at the end.  */
 +
 +  for (tail = Vmenu_bar_final_items; CONSP (tail); tail = XCDR (tail))
 +    {
 +      int i;
 +      int end = menu_bar_items_index;
 +
 +      for (i = 0; i < end; i += 4)
 +      if (EQ (XCAR (tail), AREF (menu_bar_items_vector, i)))
 +        {
 +          Lisp_Object tem0, tem1, tem2, tem3;
 +          /* Move the item at index I to the end,
 +             shifting all the others forward.  */
 +          tem0 = AREF (menu_bar_items_vector, i + 0);
 +          tem1 = AREF (menu_bar_items_vector, i + 1);
 +          tem2 = AREF (menu_bar_items_vector, i + 2);
 +          tem3 = AREF (menu_bar_items_vector, i + 3);
 +          if (end > i + 4)
 +            memmove (aref_addr (menu_bar_items_vector, i),
 +                     aref_addr (menu_bar_items_vector, i + 4),
 +                     (end - i - 4) * word_size);
 +          ASET (menu_bar_items_vector, end - 4, tem0);
 +          ASET (menu_bar_items_vector, end - 3, tem1);
 +          ASET (menu_bar_items_vector, end - 2, tem2);
 +          ASET (menu_bar_items_vector, end - 1, tem3);
 +          break;
 +        }
 +    }
 +
 +  /* Add nil, nil, nil, nil at the end.  */
 +  {
 +    int i = menu_bar_items_index;
 +    if (i + 4 > ASIZE (menu_bar_items_vector))
 +      menu_bar_items_vector
 +      = larger_vector (menu_bar_items_vector, 4, -1);
 +    /* Add this item.  */
 +    ASET (menu_bar_items_vector, i, Qnil); i++;
 +    ASET (menu_bar_items_vector, i, Qnil); i++;
 +    ASET (menu_bar_items_vector, i, Qnil); i++;
 +    ASET (menu_bar_items_vector, i, Qnil); i++;
 +    menu_bar_items_index = i;
 +  }
 +
 +  Vinhibit_quit = oquit;
 +  SAFE_FREE ();
 +  return menu_bar_items_vector;
 +}
 +\f
 +/* Add one item to menu_bar_items_vector, for KEY, ITEM_STRING and DEF.
 +   If there's already an item for KEY, add this DEF to it.  */
 +
 +Lisp_Object item_properties;
 +
 +static void
 +menu_bar_item (Lisp_Object key, Lisp_Object item, Lisp_Object dummy1, void *dummy2)
 +{
 +  struct gcpro gcpro1;
 +  int i;
 +  bool parsed;
 +  Lisp_Object tem;
 +
 +  if (EQ (item, Qundefined))
 +    {
 +      /* If a map has an explicit `undefined' as definition,
 +       discard any previously made menu bar item.  */
 +
 +      for (i = 0; i < menu_bar_items_index; i += 4)
 +      if (EQ (key, AREF (menu_bar_items_vector, i)))
 +        {
 +          if (menu_bar_items_index > i + 4)
 +            memmove (aref_addr (menu_bar_items_vector, i),
 +                     aref_addr (menu_bar_items_vector, i + 4),
 +                     (menu_bar_items_index - i - 4) * word_size);
 +          menu_bar_items_index -= 4;
 +        }
 +    }
 +
 +  /* If this keymap has already contributed to this KEY,
 +     don't contribute to it a second time.  */
 +  tem = Fmemq (key, menu_bar_one_keymap_changed_items);
 +  if (!NILP (tem) || NILP (item))
 +    return;
 +
 +  menu_bar_one_keymap_changed_items
 +    = Fcons (key, menu_bar_one_keymap_changed_items);
 +
 +  /* We add to menu_bar_one_keymap_changed_items before doing the
 +     parse_menu_item, so that if it turns out it wasn't a menu item,
 +     it still correctly hides any further menu item.  */
 +  GCPRO1 (key);
 +  parsed = parse_menu_item (item, 1);
 +  UNGCPRO;
 +  if (!parsed)
 +    return;
 +
 +  item = AREF (item_properties, ITEM_PROPERTY_DEF);
 +
 +  /* Find any existing item for this KEY.  */
 +  for (i = 0; i < menu_bar_items_index; i += 4)
 +    if (EQ (key, AREF (menu_bar_items_vector, i)))
 +      break;
 +
 +  /* If we did not find this KEY, add it at the end.  */
 +  if (i == menu_bar_items_index)
 +    {
 +      /* If vector is too small, get a bigger one.  */
 +      if (i + 4 > ASIZE (menu_bar_items_vector))
 +      menu_bar_items_vector = larger_vector (menu_bar_items_vector, 4, -1);
 +      /* Add this item.  */
 +      ASET (menu_bar_items_vector, i, key); i++;
 +      ASET (menu_bar_items_vector, i,
 +          AREF (item_properties, ITEM_PROPERTY_NAME)); i++;
 +      ASET (menu_bar_items_vector, i, list1 (item)); i++;
 +      ASET (menu_bar_items_vector, i, make_number (0)); i++;
 +      menu_bar_items_index = i;
 +    }
 +  /* We did find an item for this KEY.  Add ITEM to its list of maps.  */
 +  else
 +    {
 +      Lisp_Object old;
 +      old = AREF (menu_bar_items_vector, i + 2);
 +      /* If the new and the old items are not both keymaps,
 +       the lookup will only find `item'.  */
 +      item = Fcons (item, KEYMAPP (item) && KEYMAPP (XCAR (old)) ? old : Qnil);
 +      ASET (menu_bar_items_vector, i + 2, item);
 +    }
 +}
 +\f
 + /* This is used as the handler when calling menu_item_eval_property.  */
 +static Lisp_Object
 +menu_item_eval_property_1 (Lisp_Object arg)
 +{
 +  /* If we got a quit from within the menu computation,
 +     quit all the way out of it.  This takes care of C-] in the debugger.  */
 +  if (CONSP (arg) && EQ (XCAR (arg), Qquit))
 +    Fsignal (Qquit, Qnil);
 +
 +  return Qnil;
 +}
 +
 +static Lisp_Object
 +eval_dyn (Lisp_Object form)
 +{
 +  return Feval (form, Qnil);
 +}
 +
 +/* Evaluate an expression and return the result (or nil if something
 +   went wrong).  Used to evaluate dynamic parts of menu items.  */
 +Lisp_Object
 +menu_item_eval_property (Lisp_Object sexpr)
 +{
 +  ptrdiff_t count = SPECPDL_INDEX ();
 +  Lisp_Object val;
 +  specbind (Qinhibit_redisplay, Qt);
 +  val = internal_condition_case_1 (eval_dyn, sexpr, Qerror,
 +                                 menu_item_eval_property_1);
 +  return unbind_to (count, val);
 +}
 +
 +/* This function parses a menu item and leaves the result in the
 +   vector item_properties.
 +   ITEM is a key binding, a possible menu item.
 +   INMENUBAR is > 0 when this is considered for an entry in a menu bar
 +   top level.
 +   INMENUBAR is < 0 when this is considered for an entry in a keyboard menu.
 +   parse_menu_item returns true if the item is a menu item and false
 +   otherwise.  */
 +
 +bool
 +parse_menu_item (Lisp_Object item, int inmenubar)
 +{
 +  Lisp_Object def, tem, item_string, start;
 +  Lisp_Object filter;
 +  Lisp_Object keyhint;
 +  int i;
 +
 +  filter = Qnil;
 +  keyhint = Qnil;
 +
 +  if (!CONSP (item))
 +    return 0;
 +
 +  /* Create item_properties vector if necessary.  */
 +  if (NILP (item_properties))
 +    item_properties
 +      = Fmake_vector (make_number (ITEM_PROPERTY_ENABLE + 1), Qnil);
 +
 +  /* Initialize optional entries.  */
 +  for (i = ITEM_PROPERTY_DEF; i < ITEM_PROPERTY_ENABLE; i++)
 +    ASET (item_properties, i, Qnil);
 +  ASET (item_properties, ITEM_PROPERTY_ENABLE, Qt);
 +
 +  /* Save the item here to protect it from GC.  */
 +  ASET (item_properties, ITEM_PROPERTY_ITEM, item);
 +
 +  item_string = XCAR (item);
 +
 +  start = item;
 +  item = XCDR (item);
 +  if (STRINGP (item_string))
 +    {
 +      /* Old format menu item.  */
 +      ASET (item_properties, ITEM_PROPERTY_NAME, item_string);
 +
 +      /* Maybe help string.  */
 +      if (CONSP (item) && STRINGP (XCAR (item)))
 +      {
 +        ASET (item_properties, ITEM_PROPERTY_HELP, XCAR (item));
 +        start = item;
 +        item = XCDR (item);
 +      }
 +
 +      /* Maybe an obsolete key binding cache.  */
 +      if (CONSP (item) && CONSP (XCAR (item))
 +        && (NILP (XCAR (XCAR (item)))
 +            || VECTORP (XCAR (XCAR (item)))))
 +      item = XCDR (item);
 +
 +      /* This is the real definition--the function to run.  */
 +      ASET (item_properties, ITEM_PROPERTY_DEF, item);
 +
 +      /* Get enable property, if any.  */
 +      if (SYMBOLP (item))
 +      {
 +        tem = Fget (item, Qmenu_enable);
 +        if (!NILP (Venable_disabled_menus_and_buttons))
 +          ASET (item_properties, ITEM_PROPERTY_ENABLE, Qt);
 +        else if (!NILP (tem))
 +          ASET (item_properties, ITEM_PROPERTY_ENABLE, tem);
 +      }
 +    }
 +  else if (EQ (item_string, Qmenu_item) && CONSP (item))
 +    {
 +      /* New format menu item.  */
 +      ASET (item_properties, ITEM_PROPERTY_NAME, XCAR (item));
 +      start = XCDR (item);
 +      if (CONSP (start))
 +      {
 +        /* We have a real binding.  */
 +        ASET (item_properties, ITEM_PROPERTY_DEF, XCAR (start));
 +
 +        item = XCDR (start);
 +        /* Is there an obsolete cache list with key equivalences.  */
 +        if (CONSP (item) && CONSP (XCAR (item)))
 +          item = XCDR (item);
 +
 +        /* Parse properties.  */
 +        while (CONSP (item) && CONSP (XCDR (item)))
 +          {
 +            tem = XCAR (item);
 +            item = XCDR (item);
 +
 +            if (EQ (tem, QCenable))
 +              {
 +                if (!NILP (Venable_disabled_menus_and_buttons))
 +                  ASET (item_properties, ITEM_PROPERTY_ENABLE, Qt);
 +                else
 +                  ASET (item_properties, ITEM_PROPERTY_ENABLE, XCAR (item));
 +              }
 +            else if (EQ (tem, QCvisible))
 +              {
 +                /* If got a visible property and that evaluates to nil
 +                   then ignore this item.  */
 +                tem = menu_item_eval_property (XCAR (item));
 +                if (NILP (tem))
 +                  return 0;
 +              }
 +            else if (EQ (tem, QChelp))
 +              ASET (item_properties, ITEM_PROPERTY_HELP, XCAR (item));
 +            else if (EQ (tem, QCfilter))
 +              filter = item;
 +            else if (EQ (tem, QCkey_sequence))
 +              {
 +                tem = XCAR (item);
 +                if (SYMBOLP (tem) || STRINGP (tem) || VECTORP (tem))
 +                  /* Be GC protected. Set keyhint to item instead of tem.  */
 +                  keyhint = item;
 +              }
 +            else if (EQ (tem, QCkeys))
 +              {
 +                tem = XCAR (item);
 +                if (CONSP (tem) || STRINGP (tem))
 +                  ASET (item_properties, ITEM_PROPERTY_KEYEQ, tem);
 +              }
 +            else if (EQ (tem, QCbutton) && CONSP (XCAR (item)))
 +              {
 +                Lisp_Object type;
 +                tem = XCAR (item);
 +                type = XCAR (tem);
 +                if (EQ (type, QCtoggle) || EQ (type, QCradio))
 +                  {
 +                    ASET (item_properties, ITEM_PROPERTY_SELECTED,
 +                          XCDR (tem));
 +                    ASET (item_properties, ITEM_PROPERTY_TYPE, type);
 +                  }
 +              }
 +            item = XCDR (item);
 +          }
 +      }
 +      else if (inmenubar || !NILP (start))
 +      return 0;
 +    }
 +  else
 +    return 0;                 /* not a menu item */
 +
 +  /* If item string is not a string, evaluate it to get string.
 +     If we don't get a string, skip this item.  */
 +  item_string = AREF (item_properties, ITEM_PROPERTY_NAME);
 +  if (!(STRINGP (item_string)))
 +    {
 +      item_string = menu_item_eval_property (item_string);
 +      if (!STRINGP (item_string))
 +      return 0;
 +      ASET (item_properties, ITEM_PROPERTY_NAME, item_string);
 +    }
 +
 +  /* If got a filter apply it on definition.  */
 +  def = AREF (item_properties, ITEM_PROPERTY_DEF);
 +  if (!NILP (filter))
 +    {
 +      def = menu_item_eval_property (list2 (XCAR (filter),
 +                                          list2 (Qquote, def)));
 +
 +      ASET (item_properties, ITEM_PROPERTY_DEF, def);
 +    }
 +
 +  /* Enable or disable selection of item.  */
 +  tem = AREF (item_properties, ITEM_PROPERTY_ENABLE);
 +  if (!EQ (tem, Qt))
 +    {
 +      tem = menu_item_eval_property (tem);
 +      if (inmenubar && NILP (tem))
 +      return 0;               /* Ignore disabled items in menu bar.  */
 +      ASET (item_properties, ITEM_PROPERTY_ENABLE, tem);
 +    }
 +
 +  /* If we got no definition, this item is just unselectable text which
 +     is OK in a submenu but not in the menubar.  */
 +  if (NILP (def))
 +    return (!inmenubar);
 +
 +  /* See if this is a separate pane or a submenu.  */
 +  def = AREF (item_properties, ITEM_PROPERTY_DEF);
 +  tem = get_keymap (def, 0, 1);
 +  /* For a subkeymap, just record its details and exit.  */
 +  if (CONSP (tem))
 +    {
 +      ASET (item_properties, ITEM_PROPERTY_MAP, tem);
 +      ASET (item_properties, ITEM_PROPERTY_DEF, tem);
 +      return 1;
 +    }
 +
 +  /* At the top level in the menu bar, do likewise for commands also.
 +     The menu bar does not display equivalent key bindings anyway.
 +     ITEM_PROPERTY_DEF is already set up properly.  */
 +  if (inmenubar > 0)
 +    return 1;
 +
 +  { /* This is a command.  See if there is an equivalent key binding.  */
 +    Lisp_Object keyeq = AREF (item_properties, ITEM_PROPERTY_KEYEQ);
 +    AUTO_STRING (space_space, "  ");
 +
 +    /* The previous code preferred :key-sequence to :keys, so we
 +       preserve this behavior.  */
 +    if (STRINGP (keyeq) && !CONSP (keyhint))
 +      keyeq = concat2 (space_space, Fsubstitute_command_keys (keyeq));
 +    else
 +      {
 +      Lisp_Object prefix = keyeq;
 +      Lisp_Object keys = Qnil;
 +
 +      if (CONSP (prefix))
 +        {
 +          def = XCAR (prefix);
 +          prefix = XCDR (prefix);
 +        }
 +      else
 +        def = AREF (item_properties, ITEM_PROPERTY_DEF);
 +
 +      if (CONSP (keyhint) && !NILP (XCAR (keyhint)))
 +        {
 +          keys = XCAR (keyhint);
 +          tem = Fkey_binding (keys, Qnil, Qnil, Qnil);
 +
 +          /* We have a suggested key.  Is it bound to the command?  */
 +          if (NILP (tem)
 +              || (!EQ (tem, def)
 +                  /* If the command is an alias for another
 +                     (such as lmenu.el set it up), check if the
 +                     original command matches the cached command.  */
 +                  && !(SYMBOLP (def)
 +                       && EQ (tem, XSYMBOL (def)->function))))
 +            keys = Qnil;
 +        }
 +
 +      if (NILP (keys))
 +        keys = Fwhere_is_internal (def, Qnil, Qt, Qnil, Qnil);
 +
 +      if (!NILP (keys))
 +        {
 +          tem = Fkey_description (keys, Qnil);
 +          if (CONSP (prefix))
 +            {
 +              if (STRINGP (XCAR (prefix)))
 +                tem = concat2 (XCAR (prefix), tem);
 +              if (STRINGP (XCDR (prefix)))
 +                tem = concat2 (tem, XCDR (prefix));
 +            }
 +          keyeq = concat2 (space_space, tem);
 +        }
 +      else
 +        keyeq = Qnil;
 +      }
 +
 +    /* If we have an equivalent key binding, use that.  */
 +    ASET (item_properties, ITEM_PROPERTY_KEYEQ, keyeq);
 +  }
 +
 +  /* Include this when menu help is implemented.
 +  tem = XVECTOR (item_properties)->contents[ITEM_PROPERTY_HELP];
 +  if (!(NILP (tem) || STRINGP (tem)))
 +    {
 +      tem = menu_item_eval_property (tem);
 +      if (!STRINGP (tem))
 +      tem = Qnil;
 +      XVECTOR (item_properties)->contents[ITEM_PROPERTY_HELP] = tem;
 +    }
 +  */
 +
 +  /* Handle radio buttons or toggle boxes.  */
 +  tem = AREF (item_properties, ITEM_PROPERTY_SELECTED);
 +  if (!NILP (tem))
 +    ASET (item_properties, ITEM_PROPERTY_SELECTED,
 +        menu_item_eval_property (tem));
 +
 +  return 1;
 +}
 +
 +
 +\f
 +/***********************************************************************
 +                             Tool-bars
 + ***********************************************************************/
 +
 +/* A vector holding tool bar items while they are parsed in function
 +   tool_bar_items. Each item occupies TOOL_BAR_ITEM_NSCLOTS elements
 +   in the vector.  */
 +
 +static Lisp_Object tool_bar_items_vector;
 +
 +/* A vector holding the result of parse_tool_bar_item.  Layout is like
 +   the one for a single item in tool_bar_items_vector.  */
 +
 +static Lisp_Object tool_bar_item_properties;
 +
 +/* Next free index in tool_bar_items_vector.  */
 +
 +static int ntool_bar_items;
 +
 +/* Function prototypes.  */
 +
 +static void init_tool_bar_items (Lisp_Object);
 +static void process_tool_bar_item (Lisp_Object, Lisp_Object, Lisp_Object,
 +                                 void *);
 +static bool parse_tool_bar_item (Lisp_Object, Lisp_Object);
 +static void append_tool_bar_item (void);
 +
 +
 +/* Return a vector of tool bar items for keymaps currently in effect.
 +   Reuse vector REUSE if non-nil.  Return in *NITEMS the number of
 +   tool bar items found.  */
 +
 +Lisp_Object
 +tool_bar_items (Lisp_Object reuse, int *nitems)
 +{
 +  Lisp_Object *maps;
 +  Lisp_Object mapsbuf[3];
 +  ptrdiff_t nmaps, i;
 +  Lisp_Object oquit;
 +  Lisp_Object *tmaps;
 +  USE_SAFE_ALLOCA;
 +
 +  *nitems = 0;
 +
 +  /* In order to build the menus, we need to call the keymap
 +     accessors.  They all call QUIT.  But this function is called
 +     during redisplay, during which a quit is fatal.  So inhibit
 +     quitting while building the menus.  We do this instead of
 +     specbind because (1) errors will clear it anyway and (2) this
 +     avoids risk of specpdl overflow.  */
 +  oquit = Vinhibit_quit;
 +  Vinhibit_quit = Qt;
 +
 +  /* Initialize tool_bar_items_vector and protect it from GC.  */
 +  init_tool_bar_items (reuse);
 +
 +  /* Build list of keymaps in maps.  Set nmaps to the number of maps
 +     to process.  */
 +
 +  /* Should overriding-terminal-local-map and overriding-local-map apply?  */
 +  if (!NILP (Voverriding_local_map_menu_flag)
 +      && !NILP (Voverriding_local_map))
 +    {
 +      /* Yes, use them (if non-nil) as well as the global map.  */
 +      maps = mapsbuf;
 +      nmaps = 0;
 +      if (!NILP (KVAR (current_kboard, Voverriding_terminal_local_map)))
 +      maps[nmaps++] = KVAR (current_kboard, Voverriding_terminal_local_map);
 +      if (!NILP (Voverriding_local_map))
 +      maps[nmaps++] = Voverriding_local_map;
 +    }
 +  else
 +    {
 +      /* No, so use major and minor mode keymaps and keymap property.
 +       Note that tool-bar bindings in the local-map and keymap
 +       properties may not work reliable, as they are only
 +       recognized when the tool-bar (or mode-line) is updated,
 +       which does not normally happen after every command.  */
 +      Lisp_Object tem;
 +      ptrdiff_t nminor;
 +      nminor = current_minor_maps (NULL, &tmaps);
 +      SAFE_NALLOCA (maps, 1, nminor + 4);
 +      nmaps = 0;
 +      tem = KVAR (current_kboard, Voverriding_terminal_local_map);
 +      if (!NILP (tem) && !NILP (Voverriding_local_map_menu_flag))
 +      maps[nmaps++] = tem;
 +      if (tem = get_local_map (PT, current_buffer, Qkeymap), !NILP (tem))
 +      maps[nmaps++] = tem;
 +      memcpy (maps + nmaps, tmaps, nminor * sizeof (maps[0]));
 +      nmaps += nminor;
 +      maps[nmaps++] = get_local_map (PT, current_buffer, Qlocal_map);
 +    }
 +
 +  /* Add global keymap at the end.  */
 +  maps[nmaps++] = current_global_map;
 +
 +  /* Process maps in reverse order and look up in each map the prefix
 +     key `tool-bar'.  */
 +  for (i = nmaps - 1; i >= 0; --i)
 +    if (!NILP (maps[i]))
 +      {
 +      Lisp_Object keymap;
 +
 +      keymap = get_keymap (access_keymap (maps[i], Qtool_bar, 1, 0, 1), 0, 1);
 +      if (CONSP (keymap))
 +        map_keymap (keymap, process_tool_bar_item, Qnil, NULL, 1);
 +      }
 +
 +  Vinhibit_quit = oquit;
 +  *nitems = ntool_bar_items / TOOL_BAR_ITEM_NSLOTS;
 +  SAFE_FREE ();
 +  return tool_bar_items_vector;
 +}
 +
 +
 +/* Process the definition of KEY which is DEF.  */
 +
 +static void
 +process_tool_bar_item (Lisp_Object key, Lisp_Object def, Lisp_Object data, void *args)
 +{
 +  int i;
 +  struct gcpro gcpro1, gcpro2;
 +
 +  /* Protect KEY and DEF from GC because parse_tool_bar_item may call
 +     eval.  */
 +  GCPRO2 (key, def);
 +
 +  if (EQ (def, Qundefined))
 +    {
 +      /* If a map has an explicit `undefined' as definition,
 +       discard any previously made item.  */
 +      for (i = 0; i < ntool_bar_items; i += TOOL_BAR_ITEM_NSLOTS)
 +      {
 +        Lisp_Object *v = XVECTOR (tool_bar_items_vector)->contents + i;
 +
 +        if (EQ (key, v[TOOL_BAR_ITEM_KEY]))
 +          {
 +            if (ntool_bar_items > i + TOOL_BAR_ITEM_NSLOTS)
 +              memmove (v, v + TOOL_BAR_ITEM_NSLOTS,
 +                       ((ntool_bar_items - i - TOOL_BAR_ITEM_NSLOTS)
 +                        * word_size));
 +            ntool_bar_items -= TOOL_BAR_ITEM_NSLOTS;
 +            break;
 +          }
 +      }
 +    }
 +  else if (parse_tool_bar_item (key, def))
 +    /* Append a new tool bar item to tool_bar_items_vector.  Accept
 +       more than one definition for the same key.  */
 +    append_tool_bar_item ();
 +
 +  UNGCPRO;
 +}
 +
 +/* Access slot with index IDX of vector tool_bar_item_properties.  */
 +#define PROP(IDX) AREF (tool_bar_item_properties, (IDX))
 +static void
 +set_prop (ptrdiff_t idx, Lisp_Object val)
 +{
 +  ASET (tool_bar_item_properties, idx, val);
 +}
 +
 +
 +/* Parse a tool bar item specification ITEM for key KEY and return the
 +   result in tool_bar_item_properties.  Value is false if ITEM is
 +   invalid.
 +
 +   ITEM is a list `(menu-item CAPTION BINDING PROPS...)'.
 +
 +   CAPTION is the caption of the item,  If it's not a string, it is
 +   evaluated to get a string.
 +
 +   BINDING is the tool bar item's binding.  Tool-bar items with keymaps
 +   as binding are currently ignored.
 +
 +   The following properties are recognized:
 +
 +   - `:enable FORM'.
 +
 +   FORM is evaluated and specifies whether the tool bar item is
 +   enabled or disabled.
 +
 +   - `:visible FORM'
 +
 +   FORM is evaluated and specifies whether the tool bar item is visible.
 +
 +   - `:filter FUNCTION'
 +
 +   FUNCTION is invoked with one parameter `(quote BINDING)'.  Its
 +   result is stored as the new binding.
 +
 +   - `:button (TYPE SELECTED)'
 +
 +   TYPE must be one of `:radio' or `:toggle'.  SELECTED is evaluated
 +   and specifies whether the button is selected (pressed) or not.
 +
 +   - `:image IMAGES'
 +
 +   IMAGES is either a single image specification or a vector of four
 +   image specifications.  See enum tool_bar_item_images.
 +
 +   - `:help HELP-STRING'.
 +
 +   Gives a help string to display for the tool bar item.
 +
 +   - `:label LABEL-STRING'.
 +
 +   A text label to show with the tool bar button if labels are enabled.  */
 +
 +static bool
 +parse_tool_bar_item (Lisp_Object key, Lisp_Object item)
 +{
 +  Lisp_Object filter = Qnil;
 +  Lisp_Object caption;
 +  int i;
 +  bool have_label = 0;
 +
 +  /* Definition looks like `(menu-item CAPTION BINDING PROPS...)'.
 +     Rule out items that aren't lists, don't start with
 +     `menu-item' or whose rest following `tool-bar-item' is not a
 +     list.  */
 +  if (!CONSP (item))
 +    return 0;
 +
 +  /* As an exception, allow old-style menu separators.  */
 +  if (STRINGP (XCAR (item)))
 +    item = list1 (XCAR (item));
 +  else if (!EQ (XCAR (item), Qmenu_item)
 +         || (item = XCDR (item), !CONSP (item)))
 +    return 0;
 +
 +  /* Create tool_bar_item_properties vector if necessary.  Reset it to
 +     defaults.  */
 +  if (VECTORP (tool_bar_item_properties))
 +    {
 +      for (i = 0; i < TOOL_BAR_ITEM_NSLOTS; ++i)
 +      set_prop (i, Qnil);
 +    }
 +  else
 +    tool_bar_item_properties
 +      = Fmake_vector (make_number (TOOL_BAR_ITEM_NSLOTS), Qnil);
 +
 +  /* Set defaults.  */
 +  set_prop (TOOL_BAR_ITEM_KEY, key);
 +  set_prop (TOOL_BAR_ITEM_ENABLED_P, Qt);
 +
 +  /* Get the caption of the item.  If the caption is not a string,
 +     evaluate it to get a string.  If we don't get a string, skip this
 +     item.  */
 +  caption = XCAR (item);
 +  if (!STRINGP (caption))
 +    {
 +      caption = menu_item_eval_property (caption);
 +      if (!STRINGP (caption))
 +      return 0;
 +    }
 +  set_prop (TOOL_BAR_ITEM_CAPTION, caption);
 +
 +  /* If the rest following the caption is not a list, the menu item is
 +     either a separator, or invalid.  */
 +  item = XCDR (item);
 +  if (!CONSP (item))
 +    {
 +      if (menu_separator_name_p (SSDATA (caption)))
 +      {
 +        set_prop (TOOL_BAR_ITEM_TYPE, Qt);
 +#if !defined (USE_GTK) && !defined (HAVE_NS)
 +        /* If we use build_desired_tool_bar_string to render the
 +           tool bar, the separator is rendered as an image.  */
 +        set_prop (TOOL_BAR_ITEM_IMAGES,
 +                  (menu_item_eval_property
 +                   (Vtool_bar_separator_image_expression)));
 +        set_prop (TOOL_BAR_ITEM_ENABLED_P, Qnil);
 +        set_prop (TOOL_BAR_ITEM_SELECTED_P, Qnil);
 +        set_prop (TOOL_BAR_ITEM_CAPTION, Qnil);
 +#endif
 +        return 1;
 +      }
 +      return 0;
 +    }
 +
 +  /* Store the binding.  */
 +  set_prop (TOOL_BAR_ITEM_BINDING, XCAR (item));
 +  item = XCDR (item);
 +
 +  /* Ignore cached key binding, if any.  */
 +  if (CONSP (item) && CONSP (XCAR (item)))
 +    item = XCDR (item);
 +
 +  /* Process the rest of the properties.  */
 +  for (; CONSP (item) && CONSP (XCDR (item)); item = XCDR (XCDR (item)))
 +    {
 +      Lisp_Object ikey, value;
 +
 +      ikey = XCAR (item);
 +      value = XCAR (XCDR (item));
 +
 +      if (EQ (ikey, QCenable))
 +      {
 +        /* `:enable FORM'.  */
 +        if (!NILP (Venable_disabled_menus_and_buttons))
 +          set_prop (TOOL_BAR_ITEM_ENABLED_P, Qt);
 +        else
 +          set_prop (TOOL_BAR_ITEM_ENABLED_P, value);
 +      }
 +      else if (EQ (ikey, QCvisible))
 +      {
 +        /* `:visible FORM'.  If got a visible property and that
 +           evaluates to nil then ignore this item.  */
 +        if (NILP (menu_item_eval_property (value)))
 +          return 0;
 +      }
 +      else if (EQ (ikey, QChelp))
 +        /* `:help HELP-STRING'.  */
 +        set_prop (TOOL_BAR_ITEM_HELP, value);
 +      else if (EQ (ikey, QCvert_only))
 +        /* `:vert-only t/nil'.  */
 +        set_prop (TOOL_BAR_ITEM_VERT_ONLY, value);
 +      else if (EQ (ikey, QClabel))
 +        {
 +          const char *bad_label = "!!?GARBLED ITEM?!!";
 +          /* `:label LABEL-STRING'.  */
 +          set_prop (TOOL_BAR_ITEM_LABEL,
 +                  STRINGP (value) ? value : build_string (bad_label));
 +          have_label = 1;
 +        }
 +      else if (EQ (ikey, QCfilter))
 +      /* ':filter FORM'.  */
 +      filter = value;
 +      else if (EQ (ikey, QCbutton) && CONSP (value))
 +      {
 +        /* `:button (TYPE . SELECTED)'.  */
 +        Lisp_Object type, selected;
 +
 +        type = XCAR (value);
 +        selected = XCDR (value);
 +        if (EQ (type, QCtoggle) || EQ (type, QCradio))
 +          {
 +            set_prop (TOOL_BAR_ITEM_SELECTED_P, selected);
 +            set_prop (TOOL_BAR_ITEM_TYPE, type);
 +          }
 +      }
 +      else if (EQ (ikey, QCimage)
 +             && (CONSP (value)
 +                 || (VECTORP (value) && ASIZE (value) == 4)))
 +      /* Value is either a single image specification or a vector
 +         of 4 such specifications for the different button states.  */
 +      set_prop (TOOL_BAR_ITEM_IMAGES, value);
 +      else if (EQ (ikey, QCrtl))
 +        /* ':rtl STRING' */
 +      set_prop (TOOL_BAR_ITEM_RTL_IMAGE, value);
 +    }
 +
 +
 +  if (!have_label)
 +    {
 +      /* Try to make one from caption and key.  */
 +      Lisp_Object tkey = PROP (TOOL_BAR_ITEM_KEY);
 +      Lisp_Object tcapt = PROP (TOOL_BAR_ITEM_CAPTION);
 +      const char *label = SYMBOLP (tkey) ? SSDATA (SYMBOL_NAME (tkey)) : "";
 +      const char *capt = STRINGP (tcapt) ? SSDATA (tcapt) : "";
 +      ptrdiff_t max_lbl =
 +      2 * max (0, min (tool_bar_max_label_size, STRING_BYTES_BOUND / 2));
 +      char *buf = xmalloc (max_lbl + 1);
 +      Lisp_Object new_lbl;
 +      ptrdiff_t caption_len = strlen (capt);
 +
 +      if (caption_len <= max_lbl && capt[0] != '\0')
 +        {
 +          strcpy (buf, capt);
 +          while (caption_len > 0 && buf[caption_len - 1] == '.')
 +            caption_len--;
 +        buf[caption_len] = '\0';
 +        label = capt = buf;
 +        }
 +
 +      if (strlen (label) <= max_lbl && label[0] != '\0')
 +        {
 +          ptrdiff_t j;
 +          if (label != buf)
 +          strcpy (buf, label);
 +
 +          for (j = 0; buf[j] != '\0'; ++j)
 +          if (buf[j] == '-')
 +            buf[j] = ' ';
 +          label = buf;
 +        }
 +      else
 +      label = "";
 +
 +      new_lbl = Fupcase_initials (build_string (label));
 +      if (SCHARS (new_lbl) <= tool_bar_max_label_size)
 +        set_prop (TOOL_BAR_ITEM_LABEL, new_lbl);
 +      else
 +        set_prop (TOOL_BAR_ITEM_LABEL, empty_unibyte_string);
 +      xfree (buf);
 +    }
 +
 +  /* If got a filter apply it on binding.  */
 +  if (!NILP (filter))
 +    set_prop (TOOL_BAR_ITEM_BINDING,
 +            (menu_item_eval_property
 +             (list2 (filter,
 +                     list2 (Qquote,
 +                            PROP (TOOL_BAR_ITEM_BINDING))))));
 +
 +  /* See if the binding is a keymap.  Give up if it is.  */
 +  if (CONSP (get_keymap (PROP (TOOL_BAR_ITEM_BINDING), 0, 1)))
 +    return 0;
 +
 +  /* Enable or disable selection of item.  */
 +  if (!EQ (PROP (TOOL_BAR_ITEM_ENABLED_P), Qt))
 +    set_prop (TOOL_BAR_ITEM_ENABLED_P,
 +            menu_item_eval_property (PROP (TOOL_BAR_ITEM_ENABLED_P)));
 +
 +  /* Handle radio buttons or toggle boxes.  */
 +  if (!NILP (PROP (TOOL_BAR_ITEM_SELECTED_P)))
 +    set_prop (TOOL_BAR_ITEM_SELECTED_P,
 +            menu_item_eval_property (PROP (TOOL_BAR_ITEM_SELECTED_P)));
 +
 +  return 1;
 +
 +#undef PROP
 +}
 +
 +
 +/* Initialize tool_bar_items_vector.  REUSE, if non-nil, is a vector
 +   that can be reused.  */
 +
 +static void
 +init_tool_bar_items (Lisp_Object reuse)
 +{
 +  if (VECTORP (reuse))
 +    tool_bar_items_vector = reuse;
 +  else
 +    tool_bar_items_vector = Fmake_vector (make_number (64), Qnil);
 +  ntool_bar_items = 0;
 +}
 +
 +
 +/* Append parsed tool bar item properties from
 +   tool_bar_item_properties */
 +
 +static void
 +append_tool_bar_item (void)
 +{
 +  ptrdiff_t incr
 +    = (ntool_bar_items
 +       - (ASIZE (tool_bar_items_vector) - TOOL_BAR_ITEM_NSLOTS));
 +
 +  /* Enlarge tool_bar_items_vector if necessary.  */
 +  if (incr > 0)
 +    tool_bar_items_vector = larger_vector (tool_bar_items_vector, incr, -1);
 +
 +  /* Append entries from tool_bar_item_properties to the end of
 +     tool_bar_items_vector.  */
 +  vcopy (tool_bar_items_vector, ntool_bar_items,
 +       XVECTOR (tool_bar_item_properties)->contents, TOOL_BAR_ITEM_NSLOTS);
 +  ntool_bar_items += TOOL_BAR_ITEM_NSLOTS;
 +}
 +
 +
 +
 +
 +\f
 +/* Read a character using menus based on the keymap MAP.
 +   Return nil if there are no menus in the maps.
 +   Return t if we displayed a menu but the user rejected it.
 +
 +   PREV_EVENT is the previous input event, or nil if we are reading
 +   the first event of a key sequence.
 +
 +   If USED_MOUSE_MENU is non-null, set *USED_MOUSE_MENU to true
 +   if we used a mouse menu to read the input, or false otherwise.  If
 +   USED_MOUSE_MENU is null, don't dereference it.
 +
 +   The prompting is done based on the prompt-string of the map
 +   and the strings associated with various map elements.
 +
 +   This can be done with X menus or with menus put in the minibuf.
 +   These are done in different ways, depending on how the input will be read.
 +   Menus using X are done after auto-saving in read-char, getting the input
 +   event from Fx_popup_menu; menus using the minibuf use read_char recursively
 +   and do auto-saving in the inner call of read_char.  */
 +
 +static Lisp_Object
 +read_char_x_menu_prompt (Lisp_Object map,
 +                       Lisp_Object prev_event, bool *used_mouse_menu)
 +{
 +  if (used_mouse_menu)
 +    *used_mouse_menu = 0;
 +
 +  /* Use local over global Menu maps.  */
 +
 +  if (! menu_prompting)
 +    return Qnil;
 +
 +  /* If we got to this point via a mouse click,
 +     use a real menu for mouse selection.  */
 +  if (EVENT_HAS_PARAMETERS (prev_event)
 +      && !EQ (XCAR (prev_event), Qmenu_bar)
 +      && !EQ (XCAR (prev_event), Qtool_bar))
 +    {
 +      /* Display the menu and get the selection.  */
 +      Lisp_Object value;
 +
 +      value = Fx_popup_menu (prev_event, get_keymap (map, 0, 1));
 +      if (CONSP (value))
 +      {
 +        Lisp_Object tem;
 +
 +        record_menu_key (XCAR (value));
 +
 +        /* If we got multiple events, unread all but
 +           the first.
 +           There is no way to prevent those unread events
 +           from showing up later in last_nonmenu_event.
 +           So turn symbol and integer events into lists,
 +           to indicate that they came from a mouse menu,
 +           so that when present in last_nonmenu_event
 +           they won't confuse things.  */
 +        for (tem = XCDR (value); CONSP (tem); tem = XCDR (tem))
 +          {
 +            record_menu_key (XCAR (tem));
 +            if (SYMBOLP (XCAR (tem))
 +                || INTEGERP (XCAR (tem)))
 +              XSETCAR (tem, Fcons (XCAR (tem), Qdisabled));
 +          }
 +
 +        /* If we got more than one event, put all but the first
 +           onto this list to be read later.
 +           Return just the first event now.  */
 +        Vunread_command_events
 +          = nconc2 (XCDR (value), Vunread_command_events);
 +        value = XCAR (value);
 +      }
 +      else if (NILP (value))
 +      value = Qt;
 +      if (used_mouse_menu)
 +      *used_mouse_menu = 1;
 +      return value;
 +    }
 +  return Qnil ;
 +}
 +
 +static Lisp_Object
 +read_char_minibuf_menu_prompt (int commandflag,
 +                             Lisp_Object map)
 +{
 +  Lisp_Object name;
 +  ptrdiff_t nlength;
 +  /* FIXME: Use the minibuffer's frame width.  */
 +  ptrdiff_t width = FRAME_COLS (SELECTED_FRAME ()) - 4;
 +  ptrdiff_t idx = -1;
 +  bool nobindings = 1;
 +  Lisp_Object rest, vector;
 +  Lisp_Object prompt_strings = Qnil;
 +
 +  vector = Qnil;
 +
 +  if (! menu_prompting)
 +    return Qnil;
 +
 +  map = get_keymap (map, 0, 1);
 +  name = Fkeymap_prompt (map);
 +
 +  /* If we don't have any menus, just read a character normally.  */
 +  if (!STRINGP (name))
 +    return Qnil;
 +
 +#define PUSH_C_STR(str, listvar) \
 +  listvar = Fcons (build_unibyte_string (str), listvar)
 +
 +  /* Prompt string always starts with map's prompt, and a space.  */
 +  prompt_strings = Fcons (name, prompt_strings);
 +  PUSH_C_STR (": ", prompt_strings);
 +  nlength = SCHARS (name) + 2;
 +
 +  rest = map;
 +
 +  /* Present the documented bindings, a line at a time.  */
 +  while (1)
 +    {
 +      bool notfirst = 0;
 +      Lisp_Object menu_strings = prompt_strings;
 +      ptrdiff_t i = nlength;
 +      Lisp_Object obj;
 +      Lisp_Object orig_defn_macro;
 +
 +      /* Loop over elements of map.  */
 +      while (i < width)
 +      {
 +        Lisp_Object elt;
 +
 +        /* FIXME: Use map_keymap to handle new keymap formats.  */
 +
 +        /* At end of map, wrap around if just starting,
 +           or end this line if already have something on it.  */
 +        if (NILP (rest))
 +          {
 +            if (notfirst || nobindings)
 +              break;
 +            else
 +              rest = map;
 +          }
 +
 +        /* Look at the next element of the map.  */
 +        if (idx >= 0)
 +          elt = AREF (vector, idx);
 +        else
 +          elt = Fcar_safe (rest);
 +
 +        if (idx < 0 && VECTORP (elt))
 +          {
 +            /* If we found a dense table in the keymap,
 +               advanced past it, but start scanning its contents.  */
 +            rest = Fcdr_safe (rest);
 +            vector = elt;
 +            idx = 0;
 +          }
 +        else
 +          {
 +            /* An ordinary element.  */
 +            Lisp_Object event, tem;
 +
 +            if (idx < 0)
 +              {
 +                event = Fcar_safe (elt); /* alist */
 +                elt = Fcdr_safe (elt);
 +              }
 +            else
 +              {
 +                XSETINT (event, idx); /* vector */
 +              }
 +
 +            /* Ignore the element if it has no prompt string.  */
 +            if (INTEGERP (event) && parse_menu_item (elt, -1))
 +              {
 +                /* True if the char to type matches the string.  */
 +                bool char_matches;
 +                Lisp_Object upcased_event, downcased_event;
 +                Lisp_Object desc = Qnil;
 +                Lisp_Object s
 +                  = AREF (item_properties, ITEM_PROPERTY_NAME);
 +
 +                upcased_event = Fupcase (event);
 +                downcased_event = Fdowncase (event);
 +                char_matches = (XINT (upcased_event) == SREF (s, 0)
 +                                || XINT (downcased_event) == SREF (s, 0));
 +                if (! char_matches)
 +                  desc = Fsingle_key_description (event, Qnil);
 +
 +#if 0  /* It is redundant to list the equivalent key bindings because
 +        the prefix is what the user has already typed.  */
 +                tem
 +                  = XVECTOR (item_properties)->contents[ITEM_PROPERTY_KEYEQ];
 +                if (!NILP (tem))
 +                  /* Insert equivalent keybinding.  */
 +                  s = concat2 (s, tem);
 +#endif
 +                tem
 +                  = AREF (item_properties, ITEM_PROPERTY_TYPE);
 +                if (EQ (tem, QCradio) || EQ (tem, QCtoggle))
 +                  {
 +                    /* Insert button prefix.  */
 +                    Lisp_Object selected
 +                      = AREF (item_properties, ITEM_PROPERTY_SELECTED);
 +                    AUTO_STRING (radio_yes, "(*) ");
 +                    AUTO_STRING (radio_no , "( ) ");
 +                    AUTO_STRING (check_yes, "[X] ");
 +                    AUTO_STRING (check_no , "[ ] ");
 +                    if (EQ (tem, QCradio))
 +                      tem = NILP (selected) ? radio_yes : radio_no;
 +                    else
 +                      tem = NILP (selected) ? check_yes : check_no;
 +                    s = concat2 (tem, s);
 +                  }
 +
 +
 +                /* If we have room for the prompt string, add it to this line.
 +                   If this is the first on the line, always add it.  */
 +                if ((SCHARS (s) + i + 2
 +                     + (char_matches ? 0 : SCHARS (desc) + 3))
 +                    < width
 +                    || !notfirst)
 +                  {
 +                    ptrdiff_t thiswidth;
 +
 +                    /* Punctuate between strings.  */
 +                    if (notfirst)
 +                      {
 +                        PUSH_C_STR (", ", menu_strings);
 +                        i += 2;
 +                      }
 +                    notfirst = 1;
 +                    nobindings = 0;
 +
 +                    /* If the char to type doesn't match the string's
 +                       first char, explicitly show what char to type.  */
 +                    if (! char_matches)
 +                      {
 +                        /* Add as much of string as fits.  */
 +                        thiswidth = min (SCHARS (desc), width - i);
 +                        menu_strings
 +                          = Fcons (Fsubstring (desc, make_number (0),
 +                                               make_number (thiswidth)),
 +                                   menu_strings);
 +                        i += thiswidth;
 +                        PUSH_C_STR (" = ", menu_strings);
 +                        i += 3;
 +                      }
 +
 +                    /* Add as much of string as fits.  */
 +                    thiswidth = min (SCHARS (s), width - i);
 +                    menu_strings
 +                      = Fcons (Fsubstring (s, make_number (0),
 +                                           make_number (thiswidth)),
 +                               menu_strings);
 +                    i += thiswidth;
 +                  }
 +                else
 +                  {
 +                    /* If this element does not fit, end the line now,
 +                       and save the element for the next line.  */
 +                    PUSH_C_STR ("...", menu_strings);
 +                    break;
 +                  }
 +              }
 +
 +            /* Move past this element.  */
 +            if (idx >= 0 && idx + 1 >= ASIZE (vector))
 +              /* Handle reaching end of dense table.  */
 +              idx = -1;
 +            if (idx >= 0)
 +              idx++;
 +            else
 +              rest = Fcdr_safe (rest);
 +          }
 +      }
 +
 +      /* Prompt with that and read response.  */
 +      message3_nolog (apply1 (intern ("concat"), Fnreverse (menu_strings)));
 +
 +      /* Make believe it's not a keyboard macro in case the help char
 +       is pressed.  Help characters are not recorded because menu prompting
 +       is not used on replay.  */
 +      orig_defn_macro = KVAR (current_kboard, defining_kbd_macro);
 +      kset_defining_kbd_macro (current_kboard, Qnil);
 +      do
 +      obj = read_char (commandflag, Qnil, Qt, 0, NULL);
 +      while (BUFFERP (obj));
 +      kset_defining_kbd_macro (current_kboard, orig_defn_macro);
 +
 +      if (!INTEGERP (obj) || XINT (obj) == -2
 +        || (! EQ (obj, menu_prompt_more_char)
 +            && (!INTEGERP (menu_prompt_more_char)
 +                || ! EQ (obj, make_number (Ctl (XINT (menu_prompt_more_char)))))))
 +      {
 +        if (!NILP (KVAR (current_kboard, defining_kbd_macro)))
 +          store_kbd_macro_char (obj);
 +        return obj;
 +      }
 +      /* Help char - go round again.  */
 +    }
 +}
 +\f
 +/* Reading key sequences.  */
 +
 +static Lisp_Object
 +follow_key (Lisp_Object keymap, Lisp_Object key)
 +{
 +  return access_keymap (get_keymap (keymap, 0, 1),
 +                      key, 1, 0, 1);
 +}
 +
 +static Lisp_Object
 +active_maps (Lisp_Object first_event)
 +{
 +  Lisp_Object position
 +    = CONSP (first_event) ? CAR_SAFE (XCDR (first_event)) : Qnil;
 +  return Fcons (Qkeymap, Fcurrent_active_maps (Qt, position));
 +}
 +
 +/* Structure used to keep track of partial application of key remapping
 +   such as Vfunction_key_map and Vkey_translation_map.  */
 +typedef struct keyremap
 +{
 +  /* This is the map originally specified for this use.  */
 +  Lisp_Object parent;
 +  /* This is a submap reached by looking up, in PARENT,
 +     the events from START to END.  */
 +  Lisp_Object map;
 +  /* Positions [START, END) in the key sequence buffer
 +     are the key that we have scanned so far.
 +     Those events are the ones that we will replace
 +     if PARENT maps them into a key sequence.  */
 +  int start, end;
 +} keyremap;
 +
 +/* Lookup KEY in MAP.
 +   MAP is a keymap mapping keys to key vectors or functions.
 +   If the mapping is a function and DO_FUNCALL is true,
 +   the function is called with PROMPT as parameter and its return
 +   value is used as the return value of this function (after checking
 +   that it is indeed a vector).  */
 +
 +static Lisp_Object
 +access_keymap_keyremap (Lisp_Object map, Lisp_Object key, Lisp_Object prompt,
 +                      bool do_funcall)
 +{
 +  Lisp_Object next;
 +
 +  next = access_keymap (map, key, 1, 0, 1);
 +
 +  /* Handle a symbol whose function definition is a keymap
 +     or an array.  */
 +  if (SYMBOLP (next) && !NILP (Ffboundp (next))
 +      && (ARRAYP (XSYMBOL (next)->function)
 +        || KEYMAPP (XSYMBOL (next)->function)))
 +    next = Fautoload_do_load (XSYMBOL (next)->function, next, Qnil);
 +
 +  /* If the keymap gives a function, not an
 +     array, then call the function with one arg and use
 +     its value instead.  */
 +  if (do_funcall && FUNCTIONP (next))
 +    {
 +      Lisp_Object tem;
 +      tem = next;
 +
 +      next = call1 (next, prompt);
 +      /* If the function returned something invalid,
 +       barf--don't ignore it.
 +       (To ignore it safely, we would need to gcpro a bunch of
 +       other variables.)  */
 +      if (! (NILP (next) || VECTORP (next) || STRINGP (next)))
 +      error ("Function %s returns invalid key sequence",
 +             SSDATA (SYMBOL_NAME (tem)));
 +    }
 +  return next;
 +}
 +
 +/* Do one step of the key remapping used for function-key-map and
 +   key-translation-map:
 +   KEYBUF is the buffer holding the input events.
 +   BUFSIZE is its maximum size.
 +   FKEY is a pointer to the keyremap structure to use.
 +   INPUT is the index of the last element in KEYBUF.
 +   DOIT if true says that the remapping can actually take place.
 +   DIFF is used to return the number of keys added/removed by the remapping.
 +   PARENT is the root of the keymap.
 +   PROMPT is the prompt to use if the remapping happens through a function.
 +   Return true if the remapping actually took place.  */
 +
 +static bool
 +keyremap_step (Lisp_Object *keybuf, int bufsize, volatile keyremap *fkey,
 +             int input, bool doit, int *diff, Lisp_Object prompt)
 +{
 +  Lisp_Object next, key;
 +
 +  key = keybuf[fkey->end++];
 +
 +  if (KEYMAPP (fkey->parent))
 +    next = access_keymap_keyremap (fkey->map, key, prompt, doit);
 +  else
 +    next = Qnil;
 +
 +  /* If keybuf[fkey->start..fkey->end] is bound in the
 +     map and we're in a position to do the key remapping, replace it with
 +     the binding and restart with fkey->start at the end.  */
 +  if ((VECTORP (next) || STRINGP (next)) && doit)
 +    {
 +      int len = XFASTINT (Flength (next));
 +      int i;
 +
 +      *diff = len - (fkey->end - fkey->start);
 +
 +      if (bufsize - input <= *diff)
 +      error ("Key sequence too long");
 +
 +      /* Shift the keys that follow fkey->end.  */
 +      if (*diff < 0)
 +      for (i = fkey->end; i < input; i++)
 +        keybuf[i + *diff] = keybuf[i];
 +      else if (*diff > 0)
 +      for (i = input - 1; i >= fkey->end; i--)
 +        keybuf[i + *diff] = keybuf[i];
 +      /* Overwrite the old keys with the new ones.  */
 +      for (i = 0; i < len; i++)
 +      keybuf[fkey->start + i]
 +        = Faref (next, make_number (i));
 +
 +      fkey->start = fkey->end += *diff;
 +      fkey->map = fkey->parent;
 +
 +      return 1;
 +    }
 +
 +  fkey->map = get_keymap (next, 0, 1);
 +
 +  /* If we no longer have a bound suffix, try a new position for
 +     fkey->start.  */
 +  if (!CONSP (fkey->map))
 +    {
 +      fkey->end = ++fkey->start;
 +      fkey->map = fkey->parent;
 +    }
 +  return 0;
 +}
 +
 +static bool
 +test_undefined (Lisp_Object binding)
 +{
 +  return (NILP (binding)
 +        || EQ (binding, Qundefined)
 +        || (SYMBOLP (binding)
 +            && EQ (Fcommand_remapping (binding, Qnil, Qnil), Qundefined)));
 +}
 +
 +/* Read a sequence of keys that ends with a non prefix character,
 +   storing it in KEYBUF, a buffer of size BUFSIZE.
 +   Prompt with PROMPT.
 +   Return the length of the key sequence stored.
 +   Return -1 if the user rejected a command menu.
 +
 +   Echo starting immediately unless `prompt' is 0.
 +
 +   If PREVENT_REDISPLAY is non-zero, avoid redisplay by calling
 +   read_char with a suitable COMMANDFLAG argument.
 +
 +   Where a key sequence ends depends on the currently active keymaps.
 +   These include any minor mode keymaps active in the current buffer,
 +   the current buffer's local map, and the global map.
 +
 +   If a key sequence has no other bindings, we check Vfunction_key_map
 +   to see if some trailing subsequence might be the beginning of a
 +   function key's sequence.  If so, we try to read the whole function
 +   key, and substitute its symbolic name into the key sequence.
 +
 +   We ignore unbound `down-' mouse clicks.  We turn unbound `drag-' and
 +   `double-' events into similar click events, if that would make them
 +   bound.  We try to turn `triple-' events first into `double-' events,
 +   then into clicks.
 +
 +   If we get a mouse click in a mode line, vertical divider, or other
 +   non-text area, we treat the click as if it were prefixed by the
 +   symbol denoting that area - `mode-line', `vertical-line', or
 +   whatever.
 +
 +   If the sequence starts with a mouse click, we read the key sequence
 +   with respect to the buffer clicked on, not the current buffer.
 +
 +   If the user switches frames in the midst of a key sequence, we put
 +   off the switch-frame event until later; the next call to
 +   read_char will return it.
 +
 +   If FIX_CURRENT_BUFFER, we restore current_buffer
 +   from the selected window's buffer.  */
 +
 +static int
 +read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
 +                 bool dont_downcase_last, bool can_return_switch_frame,
 +                 bool fix_current_buffer, bool prevent_redisplay)
 +{
 +  ptrdiff_t count = SPECPDL_INDEX ();
 +
 +  /* How many keys there are in the current key sequence.  */
 +  int t;
 +
 +  /* The length of the echo buffer when we started reading, and
 +     the length of this_command_keys when we started reading.  */
 +  ptrdiff_t echo_start IF_LINT (= 0);
 +  ptrdiff_t keys_start;
 +
 +  Lisp_Object current_binding = Qnil;
 +  Lisp_Object first_event = Qnil;
 +
 +  /* Index of the first key that has no binding.
 +     It is useless to try fkey.start larger than that.  */
 +  int first_unbound;
 +
 +  /* If t < mock_input, then KEYBUF[t] should be read as the next
 +     input key.
 +
 +     We use this to recover after recognizing a function key.  Once we
 +     realize that a suffix of the current key sequence is actually a
 +     function key's escape sequence, we replace the suffix with the
 +     function key's binding from Vfunction_key_map.  Now keybuf
 +     contains a new and different key sequence, so the echo area,
 +     this_command_keys, and the submaps and defs arrays are wrong.  In
 +     this situation, we set mock_input to t, set t to 0, and jump to
 +     restart_sequence; the loop will read keys from keybuf up until
 +     mock_input, thus rebuilding the state; and then it will resume
 +     reading characters from the keyboard.  */
 +  int mock_input = 0;
 +
 +  /* If the sequence is unbound in submaps[], then
 +     keybuf[fkey.start..fkey.end-1] is a prefix in Vfunction_key_map,
 +     and fkey.map is its binding.
 +
 +     These might be > t, indicating that all function key scanning
 +     should hold off until t reaches them.  We do this when we've just
 +     recognized a function key, to avoid searching for the function
 +     key's again in Vfunction_key_map.  */
 +  keyremap fkey;
 +
 +  /* Likewise, for key_translation_map and input-decode-map.  */
 +  keyremap keytran, indec;
 +
 +  /* True if we are trying to map a key by changing an upper-case
 +     letter to lower case, or a shifted function key to an unshifted
 +     one.  */
 +  bool shift_translated = 0;
 +
 +  /* If we receive a `switch-frame' or `select-window' event in the middle of
 +     a key sequence, we put it off for later.
 +     While we're reading, we keep the event here.  */
 +  Lisp_Object delayed_switch_frame;
 +
 +  Lisp_Object original_uppercase IF_LINT (= Qnil);
 +  int original_uppercase_position = -1;
 +
 +  /* Gets around Microsoft compiler limitations.  */
 +  bool dummyflag = 0;
 +
 +  struct buffer *starting_buffer;
 +
 +  /* List of events for which a fake prefix key has been generated.  */
 +  Lisp_Object fake_prefixed_keys = Qnil;
 +
 +  struct gcpro gcpro1;
 +
 +  GCPRO1 (fake_prefixed_keys);
 +  raw_keybuf_count = 0;
 +
 +  last_nonmenu_event = Qnil;
 +
 +  delayed_switch_frame = Qnil;
 +
 +  if (INTERACTIVE)
 +    {
 +      if (!NILP (prompt))
 +      {
 +        /* Install the string PROMPT as the beginning of the string
 +           of echoing, so that it serves as a prompt for the next
 +           character.  */
 +        kset_echo_string (current_kboard, prompt);
 +        current_kboard->echo_after_prompt = SCHARS (prompt);
 +        echo_now ();
 +      }
 +      else if (cursor_in_echo_area
 +             && echo_keystrokes_p ())
 +      /* This doesn't put in a dash if the echo buffer is empty, so
 +         you don't always see a dash hanging out in the minibuffer.  */
 +      echo_dash ();
 +    }
 +
 +  /* Record the initial state of the echo area and this_command_keys;
 +     we will need to restore them if we replay a key sequence.  */
 +  if (INTERACTIVE)
 +    echo_start = echo_length ();
 +  keys_start = this_command_key_count;
 +  this_single_command_key_start = keys_start;
 +
 +  /* We jump here when we need to reinitialize fkey and keytran; this
 +     happens if we switch keyboards between rescans.  */
 + replay_entire_sequence:
 +
 +  indec.map = indec.parent = KVAR (current_kboard, Vinput_decode_map);
 +  fkey.map = fkey.parent = KVAR (current_kboard, Vlocal_function_key_map);
 +  keytran.map = keytran.parent = Vkey_translation_map;
 +  indec.start = indec.end = 0;
 +  fkey.start = fkey.end = 0;
 +  keytran.start = keytran.end = 0;
 +
 +  /* We jump here when the key sequence has been thoroughly changed, and
 +     we need to rescan it starting from the beginning.  When we jump here,
 +     keybuf[0..mock_input] holds the sequence we should reread.  */
 + replay_sequence:
 +
 +  starting_buffer = current_buffer;
 +  first_unbound = bufsize + 1;
 +
 +  /* Build our list of keymaps.
 +     If we recognize a function key and replace its escape sequence in
 +     keybuf with its symbol, or if the sequence starts with a mouse
 +     click and we need to switch buffers, we jump back here to rebuild
 +     the initial keymaps from the current buffer.  */
 +  current_binding = active_maps (first_event);
 +
 +  /* Start from the beginning in keybuf.  */
 +  t = 0;
 +
 +  /* These are no-ops the first time through, but if we restart, they
 +     revert the echo area and this_command_keys to their original state.  */
 +  this_command_key_count = keys_start;
 +  if (INTERACTIVE && t < mock_input)
 +    echo_truncate (echo_start);
 +
 +  /* If the best binding for the current key sequence is a keymap, or
 +     we may be looking at a function key's escape sequence, keep on
 +     reading.  */
 +  while (!NILP (current_binding)
 +       /* Keep reading as long as there's a prefix binding.  */
 +       ? KEYMAPP (current_binding)
 +       /* Don't return in the middle of a possible function key sequence,
 +          if the only bindings we found were via case conversion.
 +          Thus, if ESC O a has a function-key-map translation
 +          and ESC o has a binding, don't return after ESC O,
 +          so that we can translate ESC O plus the next character.  */
 +       : (/* indec.start < t || fkey.start < t || */ keytran.start < t))
 +    {
 +      Lisp_Object key;
 +      bool used_mouse_menu = 0;
 +
 +      /* Where the last real key started.  If we need to throw away a
 +         key that has expanded into more than one element of keybuf
 +         (say, a mouse click on the mode line which is being treated
 +         as [mode-line (mouse-...)], then we backtrack to this point
 +         of keybuf.  */
 +      int last_real_key_start;
 +
 +      /* These variables are analogous to echo_start and keys_start;
 +       while those allow us to restart the entire key sequence,
 +       echo_local_start and keys_local_start allow us to throw away
 +       just one key.  */
 +      ptrdiff_t echo_local_start IF_LINT (= 0);
 +      int keys_local_start;
 +      Lisp_Object new_binding;
 +
 +      eassert (indec.end == t || (indec.end > t && indec.end <= mock_input));
 +      eassert (indec.start <= indec.end);
 +      eassert (fkey.start <= fkey.end);
 +      eassert (keytran.start <= keytran.end);
 +      /* key-translation-map is applied *after* function-key-map
 +       which is itself applied *after* input-decode-map.  */
 +      eassert (fkey.end <= indec.start);
 +      eassert (keytran.end <= fkey.start);
 +
 +      if (/* first_unbound < indec.start && first_unbound < fkey.start && */
 +        first_unbound < keytran.start)
 +      { /* The prefix upto first_unbound has no binding and has
 +           no translation left to do either, so we know it's unbound.
 +           If we don't stop now, we risk staying here indefinitely
 +           (if the user keeps entering fkey or keytran prefixes
 +           like C-c ESC ESC ESC ESC ...)  */
 +        int i;
 +        for (i = first_unbound + 1; i < t; i++)
 +          keybuf[i - first_unbound - 1] = keybuf[i];
 +        mock_input = t - first_unbound - 1;
 +        indec.end = indec.start -= first_unbound + 1;
 +        indec.map = indec.parent;
 +        fkey.end = fkey.start -= first_unbound + 1;
 +        fkey.map = fkey.parent;
 +        keytran.end = keytran.start -= first_unbound + 1;
 +        keytran.map = keytran.parent;
 +        goto replay_sequence;
 +      }
 +
 +      if (t >= bufsize)
 +      error ("Key sequence too long");
 +
 +      if (INTERACTIVE)
 +      echo_local_start = echo_length ();
 +      keys_local_start = this_command_key_count;
 +
 +    replay_key:
 +      /* These are no-ops, unless we throw away a keystroke below and
 +       jumped back up to replay_key; in that case, these restore the
 +       variables to their original state, allowing us to replay the
 +       loop.  */
 +      if (INTERACTIVE && t < mock_input)
 +      echo_truncate (echo_local_start);
 +      this_command_key_count = keys_local_start;
 +
 +      /* By default, assume each event is "real".  */
 +      last_real_key_start = t;
 +
 +      /* Does mock_input indicate that we are re-reading a key sequence?  */
 +      if (t < mock_input)
 +      {
 +        key = keybuf[t];
 +        add_command_key (key);
 +        if (echo_keystrokes_p ()
 +            && current_kboard->immediate_echo)
 +          {
 +            echo_add_key (key);
 +            echo_dash ();
 +          }
 +      }
 +
 +      /* If not, we should actually read a character.  */
 +      else
 +      {
 +        {
 +          KBOARD *interrupted_kboard = current_kboard;
 +          struct frame *interrupted_frame = SELECTED_FRAME ();
 +          /* Calling read_char with COMMANDFLAG = -2 avoids
 +             redisplay in read_char and its subroutines.  */
 +          key = read_char (prevent_redisplay ? -2 : NILP (prompt),
 +                           current_binding, last_nonmenu_event,
 +                             &used_mouse_menu, NULL);
 +          if ((INTEGERP (key) && XINT (key) == -2) /* wrong_kboard_jmpbuf */
 +              /* When switching to a new tty (with a new keyboard),
 +                 read_char returns the new buffer, rather than -2
 +                 (Bug#5095).  This is because `terminal-init-xterm'
 +                 calls read-char, which eats the wrong_kboard_jmpbuf
 +                 return.  Any better way to fix this? -- cyd  */
 +              || (interrupted_kboard != current_kboard))
 +            {
 +              bool found = 0;
 +              struct kboard *k;
 +
 +              for (k = all_kboards; k; k = k->next_kboard)
 +                if (k == interrupted_kboard)
 +                  found = 1;
 +
 +              if (!found)
 +                {
 +                  /* Don't touch interrupted_kboard when it's been
 +                     deleted.  */
 +                  delayed_switch_frame = Qnil;
 +                  goto replay_entire_sequence;
 +                }
 +
 +              if (!NILP (delayed_switch_frame))
 +                {
 +                  kset_kbd_queue
 +                    (interrupted_kboard,
 +                     Fcons (delayed_switch_frame,
 +                            KVAR (interrupted_kboard, kbd_queue)));
 +                  delayed_switch_frame = Qnil;
 +                }
 +
 +              while (t > 0)
 +                kset_kbd_queue
 +                  (interrupted_kboard,
 +                   Fcons (keybuf[--t], KVAR (interrupted_kboard, kbd_queue)));
 +
 +              /* If the side queue is non-empty, ensure it begins with a
 +                 switch-frame, so we'll replay it in the right context.  */
 +              if (CONSP (KVAR (interrupted_kboard, kbd_queue))
 +                  && (key = XCAR (KVAR (interrupted_kboard, kbd_queue)),
 +                      !(EVENT_HAS_PARAMETERS (key)
 +                        && EQ (EVENT_HEAD_KIND (EVENT_HEAD (key)),
 +                               Qswitch_frame))))
 +                {
 +                  Lisp_Object frame;
 +                  XSETFRAME (frame, interrupted_frame);
 +                  kset_kbd_queue
 +                    (interrupted_kboard,
 +                     Fcons (make_lispy_switch_frame (frame),
 +                            KVAR (interrupted_kboard, kbd_queue)));
 +                }
 +              mock_input = 0;
 +              goto replay_entire_sequence;
 +            }
 +        }
 +
 +        /* read_char returns t when it shows a menu and the user rejects it.
 +           Just return -1.  */
 +        if (EQ (key, Qt))
 +          {
 +            unbind_to (count, Qnil);
 +            UNGCPRO;
 +            return -1;
 +          }
 +
 +        /* read_char returns -1 at the end of a macro.
 +           Emacs 18 handles this by returning immediately with a
 +           zero, so that's what we'll do.  */
 +        if (INTEGERP (key) && XINT (key) == -1)
 +          {
 +            t = 0;
 +            /* The Microsoft C compiler can't handle the goto that
 +               would go here.  */
 +            dummyflag = 1;
 +            break;
 +          }
 +
 +        /* If the current buffer has been changed from under us, the
 +           keymap may have changed, so replay the sequence.  */
 +        if (BUFFERP (key))
 +          {
 +            timer_resume_idle ();
 +
 +            mock_input = t;
 +            /* Reset the current buffer from the selected window
 +               in case something changed the former and not the latter.
 +               This is to be more consistent with the behavior
 +               of the command_loop_1.  */
 +            if (fix_current_buffer)
 +              {
 +                if (! FRAME_LIVE_P (XFRAME (selected_frame)))
 +                  Fkill_emacs (Qnil);
 +                if (XBUFFER (XWINDOW (selected_window)->contents)
 +                    != current_buffer)
 +                  Fset_buffer (XWINDOW (selected_window)->contents);
 +              }
 +
 +            goto replay_sequence;
 +          }
 +
 +        /* If we have a quit that was typed in another frame, and
 +           quit_throw_to_read_char switched buffers,
 +           replay to get the right keymap.  */
 +        if (INTEGERP (key)
 +            && XINT (key) == quit_char
 +            && current_buffer != starting_buffer)
 +          {
 +            GROW_RAW_KEYBUF;
 +            ASET (raw_keybuf, raw_keybuf_count, key);
 +            raw_keybuf_count++;
 +            keybuf[t++] = key;
 +            mock_input = t;
 +            Vquit_flag = Qnil;
 +            goto replay_sequence;
 +          }
 +
 +        Vquit_flag = Qnil;
 +
 +        if (EVENT_HAS_PARAMETERS (key)
 +            /* Either a `switch-frame' or a `select-window' event.  */
 +            && EQ (EVENT_HEAD_KIND (EVENT_HEAD (key)), Qswitch_frame))
 +          {
 +            /* If we're at the beginning of a key sequence, and the caller
 +               says it's okay, go ahead and return this event.  If we're
 +               in the midst of a key sequence, delay it until the end.  */
 +            if (t > 0 || !can_return_switch_frame)
 +              {
 +                delayed_switch_frame = key;
 +                goto replay_key;
 +              }
 +          }
 +
 +        if (NILP (first_event))
 +          {
 +            first_event = key;
 +            /* Even if first_event does not specify a particular
 +               window/position, it's important to recompute the maps here
 +               since a long time might have passed since we entered
 +               read_key_sequence, and a timer (or process-filter or
 +               special-event-map, ...) might have switched the current buffer
 +               or the selected window from under us in the mean time.  */
 +            if (fix_current_buffer
 +                && (XBUFFER (XWINDOW (selected_window)->contents)
 +                    != current_buffer))
 +              Fset_buffer (XWINDOW (selected_window)->contents);
 +            current_binding = active_maps (first_event);
 +          }
 +
 +        GROW_RAW_KEYBUF;
 +        ASET (raw_keybuf, raw_keybuf_count, key);
 +        raw_keybuf_count++;
 +      }
 +
 +      /* Clicks in non-text areas get prefixed by the symbol
 +       in their CHAR-ADDRESS field.  For example, a click on
 +       the mode line is prefixed by the symbol `mode-line'.
 +
 +       Furthermore, key sequences beginning with mouse clicks
 +       are read using the keymaps of the buffer clicked on, not
 +       the current buffer.  So we may have to switch the buffer
 +       here.
 +
 +       When we turn one event into two events, we must make sure
 +       that neither of the two looks like the original--so that,
 +       if we replay the events, they won't be expanded again.
 +       If not for this, such reexpansion could happen either here
 +       or when user programs play with this-command-keys.  */
 +      if (EVENT_HAS_PARAMETERS (key))
 +      {
 +        Lisp_Object kind = EVENT_HEAD_KIND (EVENT_HEAD (key));
 +        if (EQ (kind, Qmouse_click))
 +          {
 +            Lisp_Object window = POSN_WINDOW (EVENT_START (key));
 +            Lisp_Object posn = POSN_POSN (EVENT_START (key));
 +
 +            if (CONSP (posn)
 +                || (!NILP (fake_prefixed_keys)
 +                    && !NILP (Fmemq (key, fake_prefixed_keys))))
 +              {
 +                /* We're looking a second time at an event for which
 +                   we generated a fake prefix key.  Set
 +                   last_real_key_start appropriately.  */
 +                if (t > 0)
 +                  last_real_key_start = t - 1;
 +              }
 +
 +            if (last_real_key_start == 0)
 +              {
 +                /* Key sequences beginning with mouse clicks are
 +                   read using the keymaps in the buffer clicked on,
 +                   not the current buffer.  If we're at the
 +                   beginning of a key sequence, switch buffers.  */
 +                if (WINDOWP (window)
 +                    && BUFFERP (XWINDOW (window)->contents)
 +                    && XBUFFER (XWINDOW (window)->contents) != current_buffer)
 +                  {
 +                    ASET (raw_keybuf, raw_keybuf_count, key);
 +                    raw_keybuf_count++;
 +                    keybuf[t] = key;
 +                    mock_input = t + 1;
 +
 +                    /* Arrange to go back to the original buffer once we're
 +                       done reading the key sequence.  Note that we can't
 +                       use save_excursion_{save,restore} here, because they
 +                       save point as well as the current buffer; we don't
 +                       want to save point, because redisplay may change it,
 +                       to accommodate a Fset_window_start or something.  We
 +                       don't want to do this at the top of the function,
 +                       because we may get input from a subprocess which
 +                       wants to change the selected window and stuff (say,
 +                       emacsclient).  */
 +                    record_unwind_current_buffer ();
 +
 +                    if (! FRAME_LIVE_P (XFRAME (selected_frame)))
 +                      Fkill_emacs (Qnil);
 +                    set_buffer_internal (XBUFFER (XWINDOW (window)->contents));
 +                    goto replay_sequence;
 +                  }
 +              }
 +
 +            /* Expand mode-line and scroll-bar events into two events:
 +               use posn as a fake prefix key.  */
 +            if (SYMBOLP (posn)
 +                && (NILP (fake_prefixed_keys)
 +                    || NILP (Fmemq (key, fake_prefixed_keys))))
 +              {
 +                if (bufsize - t <= 1)
 +                  error ("Key sequence too long");
 +
 +                keybuf[t]     = posn;
 +                keybuf[t + 1] = key;
 +                mock_input    = t + 2;
 +
 +                /* Record that a fake prefix key has been generated
 +                   for KEY.  Don't modify the event; this would
 +                   prevent proper action when the event is pushed
 +                   back into unread-command-events.  */
 +                fake_prefixed_keys = Fcons (key, fake_prefixed_keys);
 +                goto replay_key;
 +              }
 +          }
 +        else if (CONSP (XCDR (key))
 +                 && CONSP (EVENT_START (key))
 +                 && CONSP (XCDR (EVENT_START (key))))
 +          {
 +            Lisp_Object posn;
 +
 +            posn = POSN_POSN (EVENT_START (key));
 +            /* Handle menu-bar events:
 +               insert the dummy prefix event `menu-bar'.  */
 +            if (EQ (posn, Qmenu_bar) || EQ (posn, Qtool_bar))
 +              {
 +                if (bufsize - t <= 1)
 +                  error ("Key sequence too long");
 +                keybuf[t] = posn;
 +                keybuf[t + 1] = key;
 +
 +                /* Zap the position in key, so we know that we've
 +                   expanded it, and don't try to do so again.  */
 +                POSN_SET_POSN (EVENT_START (key), list1 (posn));
 +
 +                mock_input = t + 2;
 +                goto replay_sequence;
 +              }
 +            else if (CONSP (posn))
 +              {
 +                /* We're looking at the second event of a
 +                   sequence which we expanded before.  Set
 +                   last_real_key_start appropriately.  */
 +                if (last_real_key_start == t && t > 0)
 +                  last_real_key_start = t - 1;
 +              }
 +          }
 +      }
 +
 +      /* We have finally decided that KEY is something we might want
 +       to look up.  */
 +      new_binding = follow_key (current_binding, key);
 +
 +      /* If KEY wasn't bound, we'll try some fallbacks.  */
 +      if (!NILP (new_binding))
 +      /* This is needed for the following scenario:
 +         event 0: a down-event that gets dropped by calling replay_key.
 +         event 1: some normal prefix like C-h.
 +         After event 0, first_unbound is 0, after event 1 indec.start,
 +         fkey.start, and keytran.start are all 1, so when we see that
 +         C-h is bound, we need to update first_unbound.  */
 +      first_unbound = max (t + 1, first_unbound);
 +      else
 +      {
 +        Lisp_Object head;
 +
 +        /* Remember the position to put an upper bound on indec.start.  */
 +        first_unbound = min (t, first_unbound);
 +
 +        head = EVENT_HEAD (key);
 +
 +        if (SYMBOLP (head))
 +          {
 +            Lisp_Object breakdown;
 +            int modifiers;
 +
 +            breakdown = parse_modifiers (head);
 +            modifiers = XINT (XCAR (XCDR (breakdown)));
 +            /* Attempt to reduce an unbound mouse event to a simpler
 +               event that is bound:
 +                 Drags reduce to clicks.
 +                 Double-clicks reduce to clicks.
 +                 Triple-clicks reduce to double-clicks, then to clicks.
 +                 Down-clicks are eliminated.
 +                 Double-downs reduce to downs, then are eliminated.
 +                 Triple-downs reduce to double-downs, then to downs,
 +                   then are eliminated.  */
 +            if (modifiers & (down_modifier | drag_modifier
 +                             | double_modifier | triple_modifier))
 +              {
 +                while (modifiers & (down_modifier | drag_modifier
 +                                    | double_modifier | triple_modifier))
 +                  {
 +                    Lisp_Object new_head, new_click;
 +                    if (modifiers & triple_modifier)
 +                      modifiers ^= (double_modifier | triple_modifier);
 +                    else if (modifiers & double_modifier)
 +                      modifiers &= ~double_modifier;
 +                    else if (modifiers & drag_modifier)
 +                      modifiers &= ~drag_modifier;
 +                    else
 +                      {
 +                        /* Dispose of this `down' event by simply jumping
 +                           back to replay_key, to get another event.
 +
 +                           Note that if this event came from mock input,
 +                           then just jumping back to replay_key will just
 +                           hand it to us again.  So we have to wipe out any
 +                           mock input.
 +
 +                           We could delete keybuf[t] and shift everything
 +                           after that to the left by one spot, but we'd also
 +                           have to fix up any variable that points into
 +                           keybuf, and shifting isn't really necessary
 +                           anyway.
 +
 +                           Adding prefixes for non-textual mouse clicks
 +                           creates two characters of mock input, and both
 +                           must be thrown away.  If we're only looking at
 +                           the prefix now, we can just jump back to
 +                           replay_key.  On the other hand, if we've already
 +                           processed the prefix, and now the actual click
 +                           itself is giving us trouble, then we've lost the
 +                           state of the keymaps we want to backtrack to, and
 +                           we need to replay the whole sequence to rebuild
 +                           it.
 +
 +                           Beyond that, only function key expansion could
 +                           create more than two keys, but that should never
 +                           generate mouse events, so it's okay to zero
 +                           mock_input in that case too.
 +
 +                           FIXME: The above paragraph seems just plain
 +                           wrong, if you consider things like
 +                           xterm-mouse-mode.  -stef
 +
 +                           Isn't this just the most wonderful code ever?  */
 +
 +                        /* If mock_input > t + 1, the above simplification
 +                           will actually end up dropping keys on the floor.
 +                           This is probably OK for now, but even
 +                           if mock_input <= t + 1, we need to adjust indec,
 +                           fkey, and keytran.
 +                           Typical case [header-line down-mouse-N]:
 +                           mock_input = 2, t = 1, fkey.end = 1,
 +                           last_real_key_start = 0.  */
 +                        if (indec.end > last_real_key_start)
 +                          {
 +                            indec.end = indec.start
 +                              = min (last_real_key_start, indec.start);
 +                            indec.map = indec.parent;
 +                            if (fkey.end > last_real_key_start)
 +                              {
 +                                fkey.end = fkey.start
 +                                  = min (last_real_key_start, fkey.start);
 +                                fkey.map = fkey.parent;
 +                                if (keytran.end > last_real_key_start)
 +                                  {
 +                                    keytran.end = keytran.start
 +                                      = min (last_real_key_start, keytran.start);
 +                                    keytran.map = keytran.parent;
 +                                  }
 +                              }
 +                          }
 +                        if (t == last_real_key_start)
 +                          {
 +                            mock_input = 0;
 +                            goto replay_key;
 +                          }
 +                        else
 +                          {
 +                            mock_input = last_real_key_start;
 +                            goto replay_sequence;
 +                          }
 +                      }
 +
 +                    new_head
 +                      = apply_modifiers (modifiers, XCAR (breakdown));
 +                    new_click = list2 (new_head, EVENT_START (key));
 +
 +                    /* Look for a binding for this new key.  */
 +                    new_binding = follow_key (current_binding, new_click);
 +
 +                    /* If that click is bound, go for it.  */
 +                    if (!NILP (new_binding))
 +                      {
 +                        current_binding = new_binding;
 +                        key = new_click;
 +                        break;
 +                      }
 +                    /* Otherwise, we'll leave key set to the drag event.  */
 +                  }
 +              }
 +          }
 +      }
 +      current_binding = new_binding;
 +
 +      keybuf[t++] = key;
 +      /* Normally, last_nonmenu_event gets the previous key we read.
 +       But when a mouse popup menu is being used,
 +       we don't update last_nonmenu_event; it continues to hold the mouse
 +       event that preceded the first level of menu.  */
 +      if (!used_mouse_menu)
 +      last_nonmenu_event = key;
 +
 +      /* Record what part of this_command_keys is the current key sequence.  */
 +      this_single_command_key_start = this_command_key_count - t;
 +      /* When 'input-method-function' called above causes events to be
 +       put on 'unread-post-input-method-events', and as result
 +       'reread' is set to 'true', the value of 't' can become larger
 +       than 'this_command_key_count', because 'add_command_key' is
 +       not called to update 'this_command_key_count'.  If this
 +       happens, 'this_single_command_key_start' will become negative
 +       above, and any call to 'this-single-command-keys' will return
 +       a garbled vector.  See bug #20223 for one such situation.
 +       Here we force 'this_single_command_key_start' to never become
 +       negative, to avoid that.  */
 +      if (this_single_command_key_start < 0)
 +      this_single_command_key_start = 0;
 +
 +      /* Look for this sequence in input-decode-map.
 +       Scan from indec.end until we find a bound suffix.  */
 +      while (indec.end < t)
 +      {
 +        struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
 +        bool done;
 +        int diff;
 +
 +        GCPRO4 (indec.map, fkey.map, keytran.map, delayed_switch_frame);
 +        done = keyremap_step (keybuf, bufsize, &indec, max (t, mock_input),
 +                              1, &diff, prompt);
 +        UNGCPRO;
 +        if (done)
 +          {
 +            mock_input = diff + max (t, mock_input);
 +            goto replay_sequence;
 +          }
 +      }
 +
 +      if (!KEYMAPP (current_binding)
 +        && !test_undefined (current_binding)
 +        && indec.start >= t)
 +      /* There is a binding and it's not a prefix.
 +         (and it doesn't have any input-decode-map translation pending).
 +         There is thus no function-key in this sequence.
 +         Moving fkey.start is important in this case to allow keytran.start
 +         to go over the sequence before we return (since we keep the
 +         invariant that keytran.end <= fkey.start).  */
 +      {
 +        if (fkey.start < t)
 +          (fkey.start = fkey.end = t, fkey.map = fkey.parent);
 +      }
 +      else
 +      /* If the sequence is unbound, see if we can hang a function key
 +         off the end of it.  */
 +      /* Continue scan from fkey.end until we find a bound suffix.  */
 +      while (fkey.end < indec.start)
 +        {
 +          struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
 +          bool done;
 +          int diff;
 +
 +          GCPRO4 (indec.map, fkey.map, keytran.map, delayed_switch_frame);
 +          done = keyremap_step (keybuf, bufsize, &fkey,
 +                                max (t, mock_input),
 +                                /* If there's a binding (i.e.
 +                                   first_binding >= nmaps) we don't want
 +                                   to apply this function-key-mapping.  */
 +                                fkey.end + 1 == t
 +                                && (test_undefined (current_binding)),
 +                                &diff, prompt);
 +          UNGCPRO;
 +          if (done)
 +            {
 +              mock_input = diff + max (t, mock_input);
 +              /* Adjust the input-decode-map counters.  */
 +              indec.end += diff;
 +              indec.start += diff;
 +
 +              goto replay_sequence;
 +            }
 +        }
 +
 +      /* Look for this sequence in key-translation-map.
 +       Scan from keytran.end until we find a bound suffix.  */
 +      while (keytran.end < fkey.start)
 +      {
 +        struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
 +        bool done;
 +        int diff;
 +
 +        GCPRO4 (indec.map, fkey.map, keytran.map, delayed_switch_frame);
 +        done = keyremap_step (keybuf, bufsize, &keytran, max (t, mock_input),
 +                              1, &diff, prompt);
 +        UNGCPRO;
 +        if (done)
 +          {
 +            mock_input = diff + max (t, mock_input);
 +            /* Adjust the function-key-map and input-decode-map counters.  */
 +            indec.end += diff;
 +            indec.start += diff;
 +            fkey.end += diff;
 +            fkey.start += diff;
 +
 +            goto replay_sequence;
 +          }
 +      }
 +
 +      /* If KEY is not defined in any of the keymaps,
 +       and cannot be part of a function key or translation,
 +       and is an upper case letter
 +       use the corresponding lower-case letter instead.  */
 +      if (NILP (current_binding)
 +        && /* indec.start >= t && fkey.start >= t && */ keytran.start >= t
 +        && INTEGERP (key)
 +        && ((CHARACTERP (make_number (XINT (key) & ~CHAR_MODIFIER_MASK))
 +             && uppercasep (XINT (key) & ~CHAR_MODIFIER_MASK))
 +            || (XINT (key) & shift_modifier)))
 +      {
 +        Lisp_Object new_key;
 +
 +        original_uppercase = key;
 +        original_uppercase_position = t - 1;
 +
 +        if (XINT (key) & shift_modifier)
 +          XSETINT (new_key, XINT (key) & ~shift_modifier);
 +        else
 +          XSETINT (new_key, (downcase (XINT (key) & ~CHAR_MODIFIER_MASK)
 +                             | (XINT (key) & CHAR_MODIFIER_MASK)));
 +
 +        /* We have to do this unconditionally, regardless of whether
 +           the lower-case char is defined in the keymaps, because they
 +           might get translated through function-key-map.  */
 +        keybuf[t - 1] = new_key;
 +        mock_input = max (t, mock_input);
 +        shift_translated = 1;
 +
 +        goto replay_sequence;
 +      }
 +
 +      if (NILP (current_binding)
 +        && help_char_p (EVENT_HEAD (key)) && t > 1)
 +          {
 +            read_key_sequence_cmd = Vprefix_help_command;
 +            /* The Microsoft C compiler can't handle the goto that
 +               would go here.  */
 +            dummyflag = 1;
 +            break;
 +          }
 +
 +      /* If KEY is not defined in any of the keymaps,
 +       and cannot be part of a function key or translation,
 +       and is a shifted function key,
 +       use the corresponding unshifted function key instead.  */
 +      if (NILP (current_binding)
 +        && /* indec.start >= t && fkey.start >= t && */ keytran.start >= t)
 +      {
 +        Lisp_Object breakdown = parse_modifiers (key);
 +        int modifiers
 +          = CONSP (breakdown) ? (XINT (XCAR (XCDR (breakdown)))) : 0;
 +
 +        if (modifiers & shift_modifier
 +            /* Treat uppercase keys as shifted.  */
 +            || (INTEGERP (key)
 +                && (KEY_TO_CHAR (key)
 +                    < XCHAR_TABLE (BVAR (current_buffer, downcase_table))->header.size)
 +                && uppercasep (KEY_TO_CHAR (key))))
 +          {
 +            Lisp_Object new_key
 +              = (modifiers & shift_modifier
 +                 ? apply_modifiers (modifiers & ~shift_modifier,
 +                                    XCAR (breakdown))
 +                 : make_number (downcase (KEY_TO_CHAR (key)) | modifiers));
 +
 +            original_uppercase = key;
 +            original_uppercase_position = t - 1;
 +
 +            /* We have to do this unconditionally, regardless of whether
 +               the lower-case char is defined in the keymaps, because they
 +               might get translated through function-key-map.  */
 +            keybuf[t - 1] = new_key;
 +            mock_input = max (t, mock_input);
 +            /* Reset fkey (and consequently keytran) to apply
 +               function-key-map on the result, so that S-backspace is
 +               correctly mapped to DEL (via backspace).  OTOH,
 +               input-decode-map doesn't need to go through it again.  */
 +            fkey.start = fkey.end = 0;
 +            keytran.start = keytran.end = 0;
 +            shift_translated = 1;
 +
 +            goto replay_sequence;
 +          }
 +      }
 +    }
 +  if (!dummyflag)
 +    read_key_sequence_cmd = current_binding;
 +  read_key_sequence_remapped
 +    /* Remap command through active keymaps.
 +       Do the remapping here, before the unbind_to so it uses the keymaps
 +       of the appropriate buffer.  */
 +    = SYMBOLP (read_key_sequence_cmd)
 +    ? Fcommand_remapping (read_key_sequence_cmd, Qnil, Qnil)
 +    : Qnil;
 +
 +  unread_switch_frame = delayed_switch_frame;
 +  unbind_to (count, Qnil);
 +
 +  /* Don't downcase the last character if the caller says don't.
 +     Don't downcase it if the result is undefined, either.  */
 +  if ((dont_downcase_last || NILP (current_binding))
 +      && t > 0
 +      && t - 1 == original_uppercase_position)
 +    {
 +      keybuf[t - 1] = original_uppercase;
 +      shift_translated = 0;
 +    }
 +
 +  if (shift_translated)
 +    Vthis_command_keys_shift_translated = Qt;
 +
 +  /* Occasionally we fabricate events, perhaps by expanding something
 +     according to function-key-map, or by adding a prefix symbol to a
 +     mouse click in the scroll bar or modeline.  In this cases, return
 +     the entire generated key sequence, even if we hit an unbound
 +     prefix or a definition before the end.  This means that you will
 +     be able to push back the event properly, and also means that
 +     read-key-sequence will always return a logical unit.
 +
 +     Better ideas?  */
 +  for (; t < mock_input; t++)
 +    {
 +      if (echo_keystrokes_p ())
 +      echo_char (keybuf[t]);
 +      add_command_key (keybuf[t]);
 +    }
 +
 +  UNGCPRO;
 +  return t;
 +}
 +
 +static Lisp_Object
 +read_key_sequence_vs (Lisp_Object prompt, Lisp_Object continue_echo,
 +                    Lisp_Object dont_downcase_last,
 +                    Lisp_Object can_return_switch_frame,
 +                    Lisp_Object cmd_loop, bool allow_string)
 +{
 +  Lisp_Object keybuf[30];
 +  register int i;
 +  struct gcpro gcpro1;
 +  ptrdiff_t count = SPECPDL_INDEX ();
 +
 +  if (!NILP (prompt))
 +    CHECK_STRING (prompt);
 +  QUIT;
 +
 +  specbind (Qinput_method_exit_on_first_char,
 +          (NILP (cmd_loop) ? Qt : Qnil));
 +  specbind (Qinput_method_use_echo_area,
 +          (NILP (cmd_loop) ? Qt : Qnil));
 +
 +  memset (keybuf, 0, sizeof keybuf);
 +  GCPRO1 (keybuf[0]);
 +  gcpro1.nvars = ARRAYELTS (keybuf);
 +
 +  if (NILP (continue_echo))
 +    {
 +      this_command_key_count = 0;
 +      this_command_key_count_reset = 0;
 +      this_single_command_key_start = 0;
 +    }
 +
 +#ifdef HAVE_WINDOW_SYSTEM
 +  if (display_hourglass_p)
 +    cancel_hourglass ();
 +#endif
 +
 +  i = read_key_sequence (keybuf, ARRAYELTS (keybuf),
 +                       prompt, ! NILP (dont_downcase_last),
 +                       ! NILP (can_return_switch_frame), 0, 0);
 +
 +#if 0  /* The following is fine for code reading a key sequence and
 +        then proceeding with a lengthy computation, but it's not good
 +        for code reading keys in a loop, like an input method.  */
 +#ifdef HAVE_WINDOW_SYSTEM
 +  if (display_hourglass_p)
 +    start_hourglass ();
 +#endif
 +#endif
 +
 +  if (i == -1)
 +    {
 +      Vquit_flag = Qt;
 +      QUIT;
 +    }
 +  UNGCPRO;
 +  return unbind_to (count,
 +                  ((allow_string ? make_event_array : Fvector)
 +                   (i, keybuf)));
 +}
 +
 +DEFUN ("read-key-sequence", Fread_key_sequence, Sread_key_sequence, 1, 5, 0,
 +       doc: /* Read a sequence of keystrokes and return as a string or vector.
 +The sequence is sufficient to specify a non-prefix command in the
 +current local and global maps.
 +
 +First arg PROMPT is a prompt string.  If nil, do not prompt specially.
 +Second (optional) arg CONTINUE-ECHO, if non-nil, means this key echos
 +as a continuation of the previous key.
 +
 +The third (optional) arg DONT-DOWNCASE-LAST, if non-nil, means do not
 +convert the last event to lower case.  (Normally any upper case event
 +is converted to lower case if the original event is undefined and the lower
 +case equivalent is defined.)  A non-nil value is appropriate for reading
 +a key sequence to be defined.
 +
 +A C-g typed while in this function is treated like any other character,
 +and `quit-flag' is not set.
 +
 +If the key sequence starts with a mouse click, then the sequence is read
 +using the keymaps of the buffer of the window clicked in, not the buffer
 +of the selected window as normal.
 +
 +`read-key-sequence' drops unbound button-down events, since you normally
 +only care about the click or drag events which follow them.  If a drag
 +or multi-click event is unbound, but the corresponding click event would
 +be bound, `read-key-sequence' turns the event into a click event at the
 +drag's starting position.  This means that you don't have to distinguish
 +between click and drag, double, or triple events unless you want to.
 +
 +`read-key-sequence' prefixes mouse events on mode lines, the vertical
 +lines separating windows, and scroll bars with imaginary keys
 +`mode-line', `vertical-line', and `vertical-scroll-bar'.
 +
 +Optional fourth argument CAN-RETURN-SWITCH-FRAME non-nil means that this
 +function will process a switch-frame event if the user switches frames
 +before typing anything.  If the user switches frames in the middle of a
 +key sequence, or at the start of the sequence but CAN-RETURN-SWITCH-FRAME
 +is nil, then the event will be put off until after the current key sequence.
 +
 +`read-key-sequence' checks `function-key-map' for function key
 +sequences, where they wouldn't conflict with ordinary bindings.  See
 +`function-key-map' for more details.
 +
 +The optional fifth argument CMD-LOOP, if non-nil, means
 +that this key sequence is being read by something that will
 +read commands one after another.  It should be nil if the caller
 +will read just one key sequence.  */)
 +  (Lisp_Object prompt, Lisp_Object continue_echo, Lisp_Object dont_downcase_last, Lisp_Object can_return_switch_frame, Lisp_Object cmd_loop)
 +{
 +  return read_key_sequence_vs (prompt, continue_echo, dont_downcase_last,
 +                             can_return_switch_frame, cmd_loop, true);
 +}
 +
 +DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,
 +       Sread_key_sequence_vector, 1, 5, 0,
 +       doc: /* Like `read-key-sequence' but always return a vector.  */)
 +  (Lisp_Object prompt, Lisp_Object continue_echo, Lisp_Object dont_downcase_last, Lisp_Object can_return_switch_frame, Lisp_Object cmd_loop)
 +{
 +  return read_key_sequence_vs (prompt, continue_echo, dont_downcase_last,
 +                             can_return_switch_frame, cmd_loop, false);
 +}
 +\f
 +/* Return true if input events are pending.  */
 +
 +bool
 +detect_input_pending (void)
 +{
 +  return input_pending || get_input_pending (0);
 +}
 +
 +/* Return true if input events other than mouse movements are
 +   pending.  */
 +
 +bool
 +detect_input_pending_ignore_squeezables (void)
 +{
 +  return input_pending || get_input_pending (READABLE_EVENTS_IGNORE_SQUEEZABLES);
 +}
 +
 +/* Return true if input events are pending, and run any pending timers.  */
 +
 +bool
 +detect_input_pending_run_timers (bool do_display)
 +{
 +  unsigned old_timers_run = timers_run;
 +
 +  if (!input_pending)
 +    get_input_pending (READABLE_EVENTS_DO_TIMERS_NOW);
 +
 +  if (old_timers_run != timers_run && do_display)
 +    redisplay_preserve_echo_area (8);
 +
 +  return input_pending;
 +}
 +
 +/* This is called in some cases before a possible quit.
 +   It cases the next call to detect_input_pending to recompute input_pending.
 +   So calling this function unnecessarily can't do any harm.  */
 +
 +void
 +clear_input_pending (void)
 +{
 +  input_pending = 0;
 +}
 +
 +/* Return true if there are pending requeued events.
 +   This isn't used yet.  The hope is to make wait_reading_process_output
 +   call it, and return if it runs Lisp code that unreads something.
 +   The problem is, kbd_buffer_get_event needs to be fixed to know what
 +   to do in that case.  It isn't trivial.  */
 +
 +bool
 +requeued_events_pending_p (void)
 +{
 +  return (!NILP (Vunread_command_events));
 +}
 +
 +DEFUN ("input-pending-p", Finput_pending_p, Sinput_pending_p, 0, 1, 0,
 +       doc: /* Return t if command input is currently available with no wait.
 +Actually, the value is nil only if we can be sure that no input is available;
 +if there is a doubt, the value is t.
 +
 +If CHECK-TIMERS is non-nil, timers that are ready to run will do so.  */)
 +  (Lisp_Object check_timers)
 +{
 +  if (!NILP (Vunread_command_events)
 +      || !NILP (Vunread_post_input_method_events)
 +      || !NILP (Vunread_input_method_events))
 +    return (Qt);
 +
 +  /* Process non-user-visible events (Bug#10195).  */
 +  process_special_events ();
 +
 +  return (get_input_pending ((NILP (check_timers)
 +                              ? 0 : READABLE_EVENTS_DO_TIMERS_NOW)
 +                           | READABLE_EVENTS_FILTER_EVENTS)
 +        ? Qt : Qnil);
 +}
 +
 +DEFUN ("recent-keys", Frecent_keys, Srecent_keys, 0, 1, 0,
 +       doc: /* Return vector of last few events, not counting those from keyboard macros.
 +If INCLUDE-CMDS is non-nil, include the commands that were run,
 +represented as events of the form (nil . COMMAND).  */)
 +  (Lisp_Object include_cmds)
 +{
 +  bool cmds = !NILP (include_cmds);
 +
 +  if (!total_keys
 +      || (cmds && total_keys < NUM_RECENT_KEYS))
 +    return Fvector (total_keys,
 +                  XVECTOR (recent_keys)->contents);
 +  else
 +    {
 +      Lisp_Object es = Qnil;
 +      int i = (total_keys < NUM_RECENT_KEYS
 +             ? 0 : recent_keys_index);
 +      eassert (recent_keys_index < NUM_RECENT_KEYS);
 +      do
 +      {
 +        Lisp_Object e = AREF (recent_keys, i);
 +        if (cmds || !CONSP (e) || !NILP (XCAR (e)))
 +          es = Fcons (e, es);
 +        if (++i >= NUM_RECENT_KEYS)
 +          i = 0;
 +      } while (i != recent_keys_index);
 +      es = Fnreverse (es);
 +      return Fvconcat (1, &es);
 +    }
 +}
 +
 +DEFUN ("this-command-keys", Fthis_command_keys, Sthis_command_keys, 0, 0, 0,
 +       doc: /* Return the key sequence that invoked this command.
 +However, if the command has called `read-key-sequence', it returns
 +the last key sequence that has been read.
 +The value is a string or a vector.
 +
 +See also `this-command-keys-vector'.  */)
 +  (void)
 +{
 +  return make_event_array (this_command_key_count,
 +                         XVECTOR (this_command_keys)->contents);
 +}
 +
 +DEFUN ("this-command-keys-vector", Fthis_command_keys_vector, Sthis_command_keys_vector, 0, 0, 0,
 +       doc: /* Return the key sequence that invoked this command, as a vector.
 +However, if the command has called `read-key-sequence', it returns
 +the last key sequence that has been read.
 +
 +See also `this-command-keys'.  */)
 +  (void)
 +{
 +  return Fvector (this_command_key_count,
 +                XVECTOR (this_command_keys)->contents);
 +}
 +
 +DEFUN ("this-single-command-keys", Fthis_single_command_keys,
 +       Sthis_single_command_keys, 0, 0, 0,
 +       doc: /* Return the key sequence that invoked this command.
 +More generally, it returns the last key sequence read, either by
 +the command loop or by `read-key-sequence'.
 +Unlike `this-command-keys', this function's value
 +does not include prefix arguments.
 +The value is always a vector.  */)
 +  (void)
 +{
 +  return Fvector (this_command_key_count
 +                - this_single_command_key_start,
 +                (XVECTOR (this_command_keys)->contents
 +                 + this_single_command_key_start));
 +}
 +
 +DEFUN ("this-single-command-raw-keys", Fthis_single_command_raw_keys,
 +       Sthis_single_command_raw_keys, 0, 0, 0,
 +       doc: /* Return the raw events that were read for this command.
 +More generally, it returns the last key sequence read, either by
 +the command loop or by `read-key-sequence'.
 +Unlike `this-single-command-keys', this function's value
 +shows the events before all translations (except for input methods).
 +The value is always a vector.  */)
 +  (void)
 +{
 +  return Fvector (raw_keybuf_count, XVECTOR (raw_keybuf)->contents);
 +}
 +
 +DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,
 +       Sreset_this_command_lengths, 0, 0, 0,
 +       doc: /* Make the unread events replace the last command and echo.
 +Used in `universal-argument-other-key'.
 +
 +`universal-argument-other-key' rereads the event just typed.
 +It then gets translated through `function-key-map'.
 +The translated event has to replace the real events,
 +both in the value of (this-command-keys) and in echoing.
 +To achieve this, `universal-argument-other-key' calls
 +`reset-this-command-lengths', which discards the record of reading
 +these events the first time.  */)
 +  (void)
 +{
 +  this_command_key_count = before_command_key_count;
 +  if (this_command_key_count < this_single_command_key_start)
 +    this_single_command_key_start = this_command_key_count;
 +
 +  echo_truncate (before_command_echo_length);
 +
 +  /* Cause whatever we put into unread-command-events
 +     to echo as if it were being freshly read from the keyboard.  */
 +  this_command_key_count_reset = 1;
 +
 +  return Qnil;
 +}
 +
 +DEFUN ("clear-this-command-keys", Fclear_this_command_keys,
 +       Sclear_this_command_keys, 0, 1, 0,
 +       doc: /* Clear out the vector that `this-command-keys' returns.
 +Also clear the record of the last 100 events, unless optional arg
 +KEEP-RECORD is non-nil.  */)
 +  (Lisp_Object keep_record)
 +{
 +  int i;
 +
 +  this_command_key_count = 0;
 +  this_command_key_count_reset = 0;
 +
 +  if (NILP (keep_record))
 +    {
 +      for (i = 0; i < ASIZE (recent_keys); ++i)
 +      ASET (recent_keys, i, Qnil);
 +      total_keys = 0;
 +      recent_keys_index = 0;
 +    }
 +  return Qnil;
 +}
 +
 +DEFUN ("recursion-depth", Frecursion_depth, Srecursion_depth, 0, 0, 0,
 +       doc: /* Return the current depth in recursive edits.  */)
 +  (void)
 +{
 +  Lisp_Object temp;
 +  /* Wrap around reliably on integer overflow.  */
 +  EMACS_INT sum = (command_loop_level & INTMASK) + (minibuf_level & INTMASK);
 +  XSETINT (temp, sum);
 +  return temp;
 +}
 +
 +DEFUN ("open-dribble-file", Fopen_dribble_file, Sopen_dribble_file, 1, 1,
 +       "FOpen dribble file: ",
 +       doc: /* Start writing all keyboard characters to a dribble file called FILE.
 +If FILE is nil, close any open dribble file.
 +The file will be closed when Emacs exits.
 +
 +Be aware that this records ALL characters you type!
 +This may include sensitive information such as passwords.  */)
 +  (Lisp_Object file)
 +{
 +  if (dribble)
 +    {
 +      block_input ();
 +      fclose (dribble);
 +      unblock_input ();
 +      dribble = 0;
 +    }
 +  if (!NILP (file))
 +    {
 +      int fd;
 +      Lisp_Object encfile;
 +
 +      file = Fexpand_file_name (file, Qnil);
 +      encfile = ENCODE_FILE (file);
 +      fd = emacs_open (SSDATA (encfile), O_WRONLY | O_CREAT | O_EXCL, 0600);
 +      if (fd < 0 && errno == EEXIST && unlink (SSDATA (encfile)) == 0)
 +      fd = emacs_open (SSDATA (encfile), O_WRONLY | O_CREAT | O_EXCL, 0600);
 +      dribble = fd < 0 ? 0 : fdopen (fd, "w");
 +      if (dribble == 0)
 +      report_file_error ("Opening dribble", file);
 +    }
 +  return Qnil;
 +}
 +
 +DEFUN ("discard-input", Fdiscard_input, Sdiscard_input, 0, 0, 0,
 +       doc: /* Discard the contents of the terminal input buffer.
 +Also end any kbd macro being defined.  */)
 +  (void)
 +{
 +  if (!NILP (KVAR (current_kboard, defining_kbd_macro)))
 +    {
 +      /* Discard the last command from the macro.  */
 +      Fcancel_kbd_macro_events ();
 +      end_kbd_macro ();
 +    }
 +
 +  Vunread_command_events = Qnil;
 +
 +  discard_tty_input ();
 +
 +  kbd_fetch_ptr =  kbd_store_ptr;
 +  input_pending = 0;
 +
 +  return Qnil;
 +}
 +\f
 +DEFUN ("suspend-emacs", Fsuspend_emacs, Ssuspend_emacs, 0, 1, "",
 +       doc: /* Stop Emacs and return to superior process.  You can resume later.
 +If `cannot-suspend' is non-nil, or if the system doesn't support job
 +control, run a subshell instead.
 +
 +If optional arg STUFFSTRING is non-nil, its characters are stuffed
 +to be read as terminal input by Emacs's parent, after suspension.
 +
 +Before suspending, run the normal hook `suspend-hook'.
 +After resumption run the normal hook `suspend-resume-hook'.
 +
 +Some operating systems cannot stop the Emacs process and resume it later.
 +On such systems, Emacs starts a subshell instead of suspending.  */)
 +  (Lisp_Object stuffstring)
 +{
 +  ptrdiff_t count = SPECPDL_INDEX ();
 +  int old_height, old_width;
 +  int width, height;
 +  struct gcpro gcpro1;
 +
 +  if (tty_list && tty_list->next)
 +    error ("There are other tty frames open; close them before suspending Emacs");
 +
 +  if (!NILP (stuffstring))
 +    CHECK_STRING (stuffstring);
 +
 +  run_hook (intern ("suspend-hook"));
 +
 +  GCPRO1 (stuffstring);
 +  get_tty_size (fileno (CURTTY ()->input), &old_width, &old_height);
 +  reset_all_sys_modes ();
 +  /* sys_suspend can get an error if it tries to fork a subshell
 +     and the system resources aren't available for that.  */
 +  record_unwind_protect_void (init_all_sys_modes);
 +  stuff_buffered_input (stuffstring);
 +  if (cannot_suspend)
 +    sys_subshell ();
 +  else
 +    sys_suspend ();
 +  unbind_to (count, Qnil);
 +
 +  /* Check if terminal/window size has changed.
 +     Note that this is not useful when we are running directly
 +     with a window system; but suspend should be disabled in that case.  */
 +  get_tty_size (fileno (CURTTY ()->input), &width, &height);
 +  if (width != old_width || height != old_height)
 +    change_frame_size (SELECTED_FRAME (), width,
 +                     height - FRAME_MENU_BAR_LINES (SELECTED_FRAME ()),
 +                     0, 0, 0, 0);
 +
 +  run_hook (intern ("suspend-resume-hook"));
 +
 +  UNGCPRO;
 +  return Qnil;
 +}
 +
 +/* If STUFFSTRING is a string, stuff its contents as pending terminal input.
 +   Then in any case stuff anything Emacs has read ahead and not used.  */
 +
 +void
 +stuff_buffered_input (Lisp_Object stuffstring)
 +{
 +#ifdef SIGTSTP  /* stuff_char is defined if SIGTSTP.  */
 +  register unsigned char *p;
 +
 +  if (STRINGP (stuffstring))
 +    {
 +      register ptrdiff_t count;
 +
 +      p = SDATA (stuffstring);
 +      count = SBYTES (stuffstring);
 +      while (count-- > 0)
 +      stuff_char (*p++);
 +      stuff_char ('\n');
 +    }
 +
 +  /* Anything we have read ahead, put back for the shell to read.  */
 +  /* ?? What should this do when we have multiple keyboards??
 +     Should we ignore anything that was typed in at the "wrong" kboard?
 +
 +     rms: we should stuff everything back into the kboard
 +     it came from.  */
 +  for (; kbd_fetch_ptr != kbd_store_ptr; kbd_fetch_ptr++)
 +    {
 +
 +      if (kbd_fetch_ptr == kbd_buffer + KBD_BUFFER_SIZE)
 +      kbd_fetch_ptr = kbd_buffer;
 +      if (kbd_fetch_ptr->kind == ASCII_KEYSTROKE_EVENT)
 +      stuff_char (kbd_fetch_ptr->code);
 +
 +      clear_event (kbd_fetch_ptr);
 +    }
 +
 +  input_pending = 0;
 +#endif /* SIGTSTP */
 +}
 +\f
 +void
 +set_waiting_for_input (struct timespec *time_to_clear)
 +{
 +  input_available_clear_time = time_to_clear;
 +
 +  /* Tell handle_interrupt to throw back to read_char,  */
 +  waiting_for_input = 1;
 +
 +  /* If handle_interrupt was called before and buffered a C-g,
 +     make it run again now, to avoid timing error.  */
 +  if (!NILP (Vquit_flag))
 +    quit_throw_to_read_char (0);
 +}
 +
 +void
 +clear_waiting_for_input (void)
 +{
 +  /* Tell handle_interrupt not to throw back to read_char,  */
 +  waiting_for_input = 0;
 +  input_available_clear_time = 0;
 +}
 +
 +/* The SIGINT handler.
 +
 +   If we have a frame on the controlling tty, we assume that the
 +   SIGINT was generated by C-g, so we call handle_interrupt.
 +   Otherwise, tell QUIT to kill Emacs.  */
 +
 +static void
 +handle_interrupt_signal (int sig)
 +{
 +  /* See if we have an active terminal on our controlling tty.  */
 +  struct terminal *terminal = get_named_terminal ("/dev/tty");
 +  if (!terminal)
 +    {
 +      /* If there are no frames there, let's pretend that we are a
 +         well-behaving UN*X program and quit.  We must not call Lisp
 +         in a signal handler, so tell QUIT to exit when it is
 +         safe.  */
 +      Vquit_flag = Qkill_emacs;
 +    }
 +  else
 +    {
 +      /* Otherwise, the SIGINT was probably generated by C-g.  */
 +
 +      /* Set internal_last_event_frame to the top frame of the
 +         controlling tty, if we have a frame there.  We disable the
 +         interrupt key on secondary ttys, so the SIGINT must have come
 +         from the controlling tty.  */
 +      internal_last_event_frame = terminal->display_info.tty->top_frame;
 +
 +      handle_interrupt (1);
 +    }
 +}
 +
 +static void
 +deliver_interrupt_signal (int sig)
 +{
 +  deliver_process_signal (sig, handle_interrupt_signal);
 +}
 +
 +
 +/* If Emacs is stuck because `inhibit-quit' is true, then keep track
 +   of the number of times C-g has been requested.  If C-g is pressed
 +   enough times, then quit anyway.  See bug#6585.  */
 +static int volatile force_quit_count;
 +
 +/* This routine is called at interrupt level in response to C-g.
 +
 +   It is called from the SIGINT handler or kbd_buffer_store_event.
 +
 +   If `waiting_for_input' is non zero, then unless `echoing' is
 +   nonzero, immediately throw back to read_char.
 +
 +   Otherwise it sets the Lisp variable quit-flag not-nil.  This causes
 +   eval to throw, when it gets a chance.  If quit-flag is already
 +   non-nil, it stops the job right away.  */
 +
 +static void
 +handle_interrupt (bool in_signal_handler)
 +{
 +  char c;
 +
 +  cancel_echoing ();
 +
 +  /* XXX This code needs to be revised for multi-tty support.  */
 +  if (!NILP (Vquit_flag) && get_named_terminal ("/dev/tty"))
 +    {
 +      if (! in_signal_handler)
 +      {
 +        /* If SIGINT isn't blocked, don't let us be interrupted by
 +           a SIGINT.  It might be harmful due to non-reentrancy
 +           in I/O functions.  */
 +        sigset_t blocked;
 +        sigemptyset (&blocked);
 +        sigaddset (&blocked, SIGINT);
 +        pthread_sigmask (SIG_BLOCK, &blocked, 0);
 +      }
 +
 +      fflush (stdout);
 +      reset_all_sys_modes ();
 +
 +#ifdef SIGTSTP
 +/*
 + * On systems which can suspend the current process and return to the original
 + * shell, this command causes the user to end up back at the shell.
 + * The "Auto-save" and "Abort" questions are not asked until
 + * the user elects to return to emacs, at which point he can save the current
 + * job and either dump core or continue.
 + */
 +      sys_suspend ();
 +#else
 +      /* Perhaps should really fork an inferior shell?
 +       But that would not provide any way to get back
 +       to the original shell, ever.  */
 +      printf ("No support for stopping a process on this operating system;\n");
 +      printf ("you can continue or abort.\n");
 +#endif /* not SIGTSTP */
 +#ifdef MSDOS
 +      /* We must remain inside the screen area when the internal terminal
 +       is used.  Note that [Enter] is not echoed by dos.  */
 +      cursor_to (SELECTED_FRAME (), 0, 0);
 +#endif
 +      /* It doesn't work to autosave while GC is in progress;
 +       the code used for auto-saving doesn't cope with the mark bit.  */
 +      if (!gc_in_progress)
 +      {
 +        printf ("Auto-save? (y or n) ");
 +        fflush (stdout);
 +        if (((c = getchar ()) & ~040) == 'Y')
 +          {
 +            Fdo_auto_save (Qt, Qnil);
 +#ifdef MSDOS
 +            printf ("\r\nAuto-save done");
 +#else /* not MSDOS */
 +            printf ("Auto-save done\n");
 +#endif /* not MSDOS */
 +          }
 +        while (c != '\n') c = getchar ();
 +      }
 +      else
 +      {
 +        /* During GC, it must be safe to reenable quitting again.  */
 +        Vinhibit_quit = Qnil;
 +#ifdef MSDOS
 +        printf ("\r\n");
 +#endif /* not MSDOS */
 +        printf ("Garbage collection in progress; cannot auto-save now\r\n");
 +        printf ("but will instead do a real quit after garbage collection ends\r\n");
 +        fflush (stdout);
 +      }
 +
 +#ifdef MSDOS
 +      printf ("\r\nAbort?  (y or n) ");
 +#else /* not MSDOS */
 +      printf ("Abort (and dump core)? (y or n) ");
 +#endif /* not MSDOS */
 +      fflush (stdout);
 +      if (((c = getchar ()) & ~040) == 'Y')
 +      emacs_abort ();
 +      while (c != '\n') c = getchar ();
 +#ifdef MSDOS
 +      printf ("\r\nContinuing...\r\n");
 +#else /* not MSDOS */
 +      printf ("Continuing...\n");
 +#endif /* not MSDOS */
 +      fflush (stdout);
 +      init_all_sys_modes ();
 +    }
 +  else
 +    {
 +      /* If executing a function that wants to be interrupted out of
 +       and the user has not deferred quitting by binding `inhibit-quit'
 +       then quit right away.  */
 +      if (immediate_quit && NILP (Vinhibit_quit))
 +      {
 +        struct gl_state_s saved;
 +        struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
 +
 +        immediate_quit = 0;
 +        pthread_sigmask (SIG_SETMASK, &empty_mask, 0);
 +        saved = gl_state;
 +        GCPRO4 (saved.object, saved.global_code,
 +                saved.current_syntax_table, saved.old_prop);
 +        Fsignal (Qquit, Qnil);
 +        gl_state = saved;
 +        UNGCPRO;
 +      }
 +      else
 +        { /* Else request quit when it's safe.  */
 +        int count = NILP (Vquit_flag) ? 1 : force_quit_count + 1;
 +        force_quit_count = count;
 +        if (count == 3)
 +            {
 +              immediate_quit = 1;
 +              Vinhibit_quit = Qnil;
 +            }
 +          Vquit_flag = Qt;
 +        }
 +    }
 +
 +  pthread_sigmask (SIG_SETMASK, &empty_mask, 0);
 +
 +/* TODO: The longjmp in this call throws the NS event loop integration off,
 +         and it seems to do fine without this.  Probably some attention
 +       needs to be paid to the setting of waiting_for_input in
 +         wait_reading_process_output() under HAVE_NS because of the call
 +         to ns_select there (needed because otherwise events aren't picked up
 +         outside of polling since we don't get SIGIO like X and we don't have a
 +         separate event loop thread like W32.  */
 +#ifndef HAVE_NS
 +  if (waiting_for_input && !echoing)
 +    quit_throw_to_read_char (in_signal_handler);
 +#endif
 +}
 +
 +/* Handle a C-g by making read_char return C-g.  */
 +
 +static void
 +quit_throw_to_read_char (bool from_signal)
 +{
 +  /* When not called from a signal handler it is safe to call
 +     Lisp.  */
 +  if (!from_signal && EQ (Vquit_flag, Qkill_emacs))
 +    Fkill_emacs (Qnil);
 +
 +  /* Prevent another signal from doing this before we finish.  */
 +  clear_waiting_for_input ();
 +  input_pending = 0;
 +
 +  Vunread_command_events = Qnil;
 +
 +  if (FRAMEP (internal_last_event_frame)
 +      && !EQ (internal_last_event_frame, selected_frame))
 +    do_switch_frame (make_lispy_switch_frame (internal_last_event_frame),
 +                   0, 0, Qnil);
 +
 +  sys_longjmp (getcjmp, 1);
 +}
 +\f
 +DEFUN ("set-input-interrupt-mode", Fset_input_interrupt_mode,
 +       Sset_input_interrupt_mode, 1, 1, 0,
 +       doc: /* Set interrupt mode of reading keyboard input.
 +If INTERRUPT is non-nil, Emacs will use input interrupts;
 +otherwise Emacs uses CBREAK mode.
 +
 +See also `current-input-mode'.  */)
 +  (Lisp_Object interrupt)
 +{
 +  bool new_interrupt_input;
 +#ifdef USABLE_SIGIO
 +#ifdef HAVE_X_WINDOWS
 +  if (x_display_list != NULL)
 +    {
 +      /* When using X, don't give the user a real choice,
 +       because we haven't implemented the mechanisms to support it.  */
 +      new_interrupt_input = 1;
 +    }
 +  else
 +#endif /* HAVE_X_WINDOWS */
 +    new_interrupt_input = !NILP (interrupt);
 +#else /* not USABLE_SIGIO */
 +  new_interrupt_input = 0;
 +#endif /* not USABLE_SIGIO */
 +
 +  if (new_interrupt_input != interrupt_input)
 +    {
 +#ifdef POLL_FOR_INPUT
 +      stop_polling ();
 +#endif
 +#ifndef DOS_NT
 +      /* this causes startup screen to be restored and messes with the mouse */
 +      reset_all_sys_modes ();
 +      interrupt_input = new_interrupt_input;
 +      init_all_sys_modes ();
 +#else
 +      interrupt_input = new_interrupt_input;
 +#endif
 +
 +#ifdef POLL_FOR_INPUT
 +      poll_suppress_count = 1;
 +      start_polling ();
 +#endif
 +    }
 +  return Qnil;
 +}
 +
 +DEFUN ("set-output-flow-control", Fset_output_flow_control, Sset_output_flow_control, 1, 2, 0,
 +       doc: /* Enable or disable ^S/^Q flow control for output to TERMINAL.
 +If FLOW is non-nil, flow control is enabled and you cannot use C-s or
 +C-q in key sequences.
 +
 +This setting only has an effect on tty terminals and only when
 +Emacs reads input in CBREAK mode; see `set-input-interrupt-mode'.
 +
 +See also `current-input-mode'.  */)
 +  (Lisp_Object flow, Lisp_Object terminal)
 +{
 +  struct terminal *t = decode_tty_terminal (terminal);
 +  struct tty_display_info *tty;
 +
 +  if (!t)
 +    return Qnil;
 +  tty = t->display_info.tty;
 +
 +  if (tty->flow_control != !NILP (flow))
 +    {
 +#ifndef DOS_NT
 +      /* This causes startup screen to be restored and messes with the mouse.  */
 +      reset_sys_modes (tty);
 +#endif
 +
 +      tty->flow_control = !NILP (flow);
 +
 +#ifndef DOS_NT
 +      init_sys_modes (tty);
 +#endif
 +    }
 +  return Qnil;
 +}
 +
 +DEFUN ("set-input-meta-mode", Fset_input_meta_mode, Sset_input_meta_mode, 1, 2, 0,
 +       doc: /* Enable or disable 8-bit input on TERMINAL.
 +If META is t, Emacs will accept 8-bit input, and interpret the 8th
 +bit as the Meta modifier.
 +
 +If META is nil, Emacs will ignore the top bit, on the assumption it is
 +parity.
 +
 +Otherwise, Emacs will accept and pass through 8-bit input without
 +specially interpreting the top bit.
 +
 +This setting only has an effect on tty terminal devices.
 +
 +Optional parameter TERMINAL specifies the tty terminal device to use.
 +It may be a terminal object, a frame, or nil for the terminal used by
 +the currently selected frame.
 +
 +See also `current-input-mode'.  */)
 +  (Lisp_Object meta, Lisp_Object terminal)
 +{
 +  struct terminal *t = decode_tty_terminal (terminal);
 +  struct tty_display_info *tty;
 +  int new_meta;
 +
 +  if (!t)
 +    return Qnil;
 +  tty = t->display_info.tty;
 +
 +  if (NILP (meta))
 +    new_meta = 0;
 +  else if (EQ (meta, Qt))
 +    new_meta = 1;
 +  else
 +    new_meta = 2;
 +
 +  if (tty->meta_key != new_meta)
 +    {
 +#ifndef DOS_NT
 +      /* this causes startup screen to be restored and messes with the mouse */
 +      reset_sys_modes (tty);
 +#endif
 +
 +      tty->meta_key = new_meta;
 +
 +#ifndef DOS_NT
 +      init_sys_modes (tty);
 +#endif
 +    }
 +  return Qnil;
 +}
 +
 +DEFUN ("set-quit-char", Fset_quit_char, Sset_quit_char, 1, 1, 0,
 +       doc: /* Specify character used for quitting.
 +QUIT must be an ASCII character.
 +
 +This function only has an effect on the controlling tty of the Emacs
 +process.
 +
 +See also `current-input-mode'.  */)
 +  (Lisp_Object quit)
 +{
 +  struct terminal *t = get_named_terminal ("/dev/tty");
 +  struct tty_display_info *tty;
 +
 +  if (!t)
 +    return Qnil;
 +  tty = t->display_info.tty;
 +
 +  if (NILP (quit) || !INTEGERP (quit) || XINT (quit) < 0 || XINT (quit) > 0400)
 +    error ("QUIT must be an ASCII character");
 +
 +#ifndef DOS_NT
 +  /* this causes startup screen to be restored and messes with the mouse */
 +  reset_sys_modes (tty);
 +#endif
 +
 +  /* Don't let this value be out of range.  */
 +  quit_char = XINT (quit) & (tty->meta_key == 0 ? 0177 : 0377);
 +
 +#ifndef DOS_NT
 +  init_sys_modes (tty);
 +#endif
 +
 +  return Qnil;
 +}
 +
 +DEFUN ("set-input-mode", Fset_input_mode, Sset_input_mode, 3, 4, 0,
 +       doc: /* Set mode of reading keyboard input.
 +First arg INTERRUPT non-nil means use input interrupts;
 + nil means use CBREAK mode.
 +Second arg FLOW non-nil means use ^S/^Q flow control for output to terminal
 + (no effect except in CBREAK mode).
 +Third arg META t means accept 8-bit input (for a Meta key).
 + META nil means ignore the top bit, on the assumption it is parity.
 + Otherwise, accept 8-bit input and don't use the top bit for Meta.
 +Optional fourth arg QUIT if non-nil specifies character to use for quitting.
 +See also `current-input-mode'.  */)
 +  (Lisp_Object interrupt, Lisp_Object flow, Lisp_Object meta, Lisp_Object quit)
 +{
 +  Fset_input_interrupt_mode (interrupt);
 +  Fset_output_flow_control (flow, Qnil);
 +  Fset_input_meta_mode (meta, Qnil);
 +  if (!NILP (quit))
 +    Fset_quit_char (quit);
 +  return Qnil;
 +}
 +
 +DEFUN ("current-input-mode", Fcurrent_input_mode, Scurrent_input_mode, 0, 0, 0,
 +       doc: /* Return information about the way Emacs currently reads keyboard input.
 +The value is a list of the form (INTERRUPT FLOW META QUIT), where
 +  INTERRUPT is non-nil if Emacs is using interrupt-driven input; if
 +    nil, Emacs is using CBREAK mode.
 +  FLOW is non-nil if Emacs uses ^S/^Q flow control for output to the
 +    terminal; this does not apply if Emacs uses interrupt-driven input.
 +  META is t if accepting 8-bit input with 8th bit as Meta flag.
 +    META nil means ignoring the top bit, on the assumption it is parity.
 +    META is neither t nor nil if accepting 8-bit input and using
 +    all 8 bits as the character code.
 +  QUIT is the character Emacs currently uses to quit.
 +The elements of this list correspond to the arguments of
 +`set-input-mode'.  */)
 +  (void)
 +{
 +  struct frame *sf = XFRAME (selected_frame);
 +
 +  Lisp_Object interrupt = interrupt_input ? Qt : Qnil;
 +  Lisp_Object flow, meta;
 +  if (FRAME_TERMCAP_P (sf) || FRAME_MSDOS_P (sf))
 +    {
 +      flow = FRAME_TTY (sf)->flow_control ? Qt : Qnil;
 +      meta = (FRAME_TTY (sf)->meta_key == 2
 +            ? make_number (0)
 +            : (CURTTY ()->meta_key == 1 ? Qt : Qnil));
 +    }
 +  else
 +    {
 +      flow = Qnil;
 +      meta = Qt;
 +    }
 +  Lisp_Object quit = make_number (quit_char);
 +
 +  return list4 (interrupt, flow, meta, quit);
 +}
 +
 +DEFUN ("posn-at-x-y", Fposn_at_x_y, Sposn_at_x_y, 2, 4, 0,
 +       doc: /* Return position information for pixel coordinates X and Y.
 +By default, X and Y are relative to text area of the selected window.
 +Optional third arg FRAME-OR-WINDOW non-nil specifies frame or window.
 +If optional fourth arg WHOLE is non-nil, X is relative to the left
 +edge of the window.
 +
 +The return value is similar to a mouse click position:
 +   (WINDOW AREA-OR-POS (X . Y) TIMESTAMP OBJECT POS (COL . ROW)
 +    IMAGE (DX . DY) (WIDTH . HEIGHT))
 +The `posn-' functions access elements of such lists.  */)
 +  (Lisp_Object x, Lisp_Object y, Lisp_Object frame_or_window, Lisp_Object whole)
 +{
 +  CHECK_NATNUM (x);
 +  CHECK_NATNUM (y);
 +
 +  if (NILP (frame_or_window))
 +    frame_or_window = selected_window;
 +
 +  if (WINDOWP (frame_or_window))
 +    {
 +      struct window *w = decode_live_window (frame_or_window);
 +
 +      XSETINT (x, (XINT (x)
 +                 + WINDOW_LEFT_EDGE_X (w)
 +                 + (NILP (whole)
 +                    ? window_box_left_offset (w, TEXT_AREA)
 +                    : 0)));
 +      XSETINT (y, WINDOW_TO_FRAME_PIXEL_Y (w, XINT (y)));
 +      frame_or_window = w->frame;
 +    }
 +
 +  CHECK_LIVE_FRAME (frame_or_window);
 +
 +  return make_lispy_position (XFRAME (frame_or_window), x, y, 0);
 +}
 +
 +DEFUN ("posn-at-point", Fposn_at_point, Sposn_at_point, 0, 2, 0,
 +       doc: /* Return position information for buffer POS in WINDOW.
 +POS defaults to point in WINDOW; WINDOW defaults to the selected window.
 +
 +Return nil if position is not visible in window.  Otherwise,
 +the return value is similar to that returned by `event-start' for
 +a mouse click at the upper left corner of the glyph corresponding
 +to the given buffer position:
 +   (WINDOW AREA-OR-POS (X . Y) TIMESTAMP OBJECT POS (COL . ROW)
 +    IMAGE (DX . DY) (WIDTH . HEIGHT))
 +The `posn-' functions access elements of such lists.  */)
 +  (Lisp_Object pos, Lisp_Object window)
 +{
 +  Lisp_Object tem;
 +
 +  if (NILP (window))
 +    window = selected_window;
 +
 +  tem = Fpos_visible_in_window_p (pos, window, Qt);
 +  if (!NILP (tem))
 +    {
 +      Lisp_Object x = XCAR (tem);
 +      Lisp_Object y = XCAR (XCDR (tem));
 +
 +      /* Point invisible due to hscrolling?  */
 +      if (XINT (x) < 0)
 +      return Qnil;
 +      tem = Fposn_at_x_y (x, y, window, Qnil);
 +    }
 +
 +  return tem;
 +}
 +
 +/* Set up a new kboard object with reasonable initial values.
 +   TYPE is a window system for which this keyboard is used.  */
 +
 +static void
 +init_kboard (KBOARD *kb, Lisp_Object type)
 +{
 +  kset_overriding_terminal_local_map (kb, Qnil);
 +  kset_last_command (kb, Qnil);
 +  kset_real_last_command (kb, Qnil);
 +  kset_keyboard_translate_table (kb, Qnil);
 +  kset_last_repeatable_command (kb, Qnil);
 +  kset_prefix_arg (kb, Qnil);
 +  kset_last_prefix_arg (kb, Qnil);
 +  kset_kbd_queue (kb, Qnil);
 +  kb->kbd_queue_has_data = 0;
 +  kb->immediate_echo = 0;
 +  kset_echo_string (kb, Qnil);
 +  kb->echo_after_prompt = -1;
 +  kb->kbd_macro_buffer = 0;
 +  kb->kbd_macro_bufsize = 0;
 +  kset_defining_kbd_macro (kb, Qnil);
 +  kset_last_kbd_macro (kb, Qnil);
 +  kb->reference_count = 0;
 +  kset_system_key_alist (kb, Qnil);
 +  kset_system_key_syms (kb, Qnil);
 +  kset_window_system (kb, type);
 +  kset_input_decode_map (kb, Fmake_sparse_keymap (Qnil));
 +  kset_local_function_key_map (kb, Fmake_sparse_keymap (Qnil));
 +  Fset_keymap_parent (KVAR (kb, Vlocal_function_key_map), Vfunction_key_map);
 +  kset_default_minibuffer_frame (kb, Qnil);
 +}
 +
 +/* Allocate and basically initialize keyboard
 +   object to use with window system TYPE.  */
 +
 +KBOARD *
 +allocate_kboard (Lisp_Object type)
 +{
 +  KBOARD *kb = xmalloc (sizeof *kb);
 +
 +  init_kboard (kb, type);
 +  kb->next_kboard = all_kboards;
 +  all_kboards = kb;
 +  return kb;
 +}
 +
 +/*
 + * Destroy the contents of a kboard object, but not the object itself.
 + * We use this just before deleting it, or if we're going to initialize
 + * it a second time.
 + */
 +static void
 +wipe_kboard (KBOARD *kb)
 +{
 +  xfree (kb->kbd_macro_buffer);
 +}
 +
 +/* Free KB and memory referenced from it.  */
 +
 +void
 +delete_kboard (KBOARD *kb)
 +{
 +  KBOARD **kbp;
 +
 +  for (kbp = &all_kboards; *kbp != kb; kbp = &(*kbp)->next_kboard)
 +    if (*kbp == NULL)
 +      emacs_abort ();
 +  *kbp = kb->next_kboard;
 +
 +  /* Prevent a dangling reference to KB.  */
 +  if (kb == current_kboard
 +      && FRAMEP (selected_frame)
 +      && FRAME_LIVE_P (XFRAME (selected_frame)))
 +    {
 +      current_kboard = FRAME_KBOARD (XFRAME (selected_frame));
 +      single_kboard = 0;
 +      if (current_kboard == kb)
 +      emacs_abort ();
 +    }
 +
 +  wipe_kboard (kb);
 +  xfree (kb);
 +}
 +
 +void
 +init_keyboard (void)
 +{
 +  /* This is correct before outermost invocation of the editor loop.  */
 +  command_loop_level = -1;
 +  immediate_quit = 0;
 +  quit_char = Ctl ('g');
 +  Vunread_command_events = Qnil;
 +  timer_idleness_start_time = invalid_timespec ();
 +  total_keys = 0;
 +  recent_keys_index = 0;
 +  kbd_fetch_ptr = kbd_buffer;
 +  kbd_store_ptr = kbd_buffer;
 +  do_mouse_tracking = Qnil;
 +  input_pending = 0;
 +  interrupt_input_blocked = 0;
 +  pending_signals = 0;
 +
 +  /* This means that command_loop_1 won't try to select anything the first
 +     time through.  */
 +  internal_last_event_frame = Qnil;
 +  Vlast_event_frame = internal_last_event_frame;
 +
 +  current_kboard = initial_kboard;
 +  /* Re-initialize the keyboard again.  */
 +  wipe_kboard (current_kboard);
 +  /* A value of nil for Vwindow_system normally means a tty, but we also use
 +     it for the initial terminal since there is no window system there.  */
 +  init_kboard (current_kboard, Qnil);
 +
 +  if (!noninteractive)
 +    {
 +      /* Before multi-tty support, these handlers used to be installed
 +         only if the current session was a tty session.  Now an Emacs
 +         session may have multiple display types, so we always handle
 +         SIGINT.  There is special code in handle_interrupt_signal to exit
 +         Emacs on SIGINT when there are no termcap frames on the
 +         controlling terminal.  */
 +      struct sigaction action;
 +      emacs_sigaction_init (&action, deliver_interrupt_signal);
 +      sigaction (SIGINT, &action, 0);
 +#ifndef DOS_NT
 +      /* For systems with SysV TERMIO, C-g is set up for both SIGINT and
 +       SIGQUIT and we can't tell which one it will give us.  */
 +      sigaction (SIGQUIT, &action, 0);
 +#endif /* not DOS_NT */
 +    }
 +#ifdef USABLE_SIGIO
 +  if (!noninteractive)
 +    {
 +      struct sigaction action;
 +      emacs_sigaction_init (&action, deliver_input_available_signal);
 +      sigaction (SIGIO, &action, 0);
 +    }
 +#endif
 +
 +/* Use interrupt input by default, if it works and noninterrupt input
 +   has deficiencies.  */
 +
 +#ifdef INTERRUPT_INPUT
 +  interrupt_input = 1;
 +#else
 +  interrupt_input = 0;
 +#endif
 +
 +  pthread_sigmask (SIG_SETMASK, &empty_mask, 0);
 +  dribble = 0;
 +
 +  if (keyboard_init_hook)
 +    (*keyboard_init_hook) ();
 +
 +#ifdef POLL_FOR_INPUT
 +  poll_timer = NULL;
 +  poll_suppress_count = 1;
 +  start_polling ();
 +#endif
 +}
 +
 +/* This type's only use is in syms_of_keyboard, to put properties on the
 +   event header symbols.  */
 +struct event_head
 +{
 +  short var;
 +  short kind;
 +};
 +
 +static const struct event_head head_table[] = {
 +  {SYMBOL_INDEX (Qmouse_movement),      SYMBOL_INDEX (Qmouse_movement)},
 +  {SYMBOL_INDEX (Qscroll_bar_movement), SYMBOL_INDEX (Qmouse_movement)},
 +
 +  /* Some of the event heads.  */
 +  {SYMBOL_INDEX (Qswitch_frame),        SYMBOL_INDEX (Qswitch_frame)},
 +
 +  {SYMBOL_INDEX (Qfocus_in),            SYMBOL_INDEX (Qfocus_in)},
 +  {SYMBOL_INDEX (Qfocus_out),           SYMBOL_INDEX (Qfocus_out)},
 +  {SYMBOL_INDEX (Qdelete_frame),        SYMBOL_INDEX (Qdelete_frame)},
 +  {SYMBOL_INDEX (Qiconify_frame),       SYMBOL_INDEX (Qiconify_frame)},
 +  {SYMBOL_INDEX (Qmake_frame_visible),  SYMBOL_INDEX (Qmake_frame_visible)},
 +  /* `select-window' should be handled just like `switch-frame'
 +     in read_key_sequence.  */
 +  {SYMBOL_INDEX (Qselect_window),       SYMBOL_INDEX (Qswitch_frame)}
 +};
 +
 +void
 +syms_of_keyboard (void)
 +{
 +  pending_funcalls = Qnil;
 +  staticpro (&pending_funcalls);
 +
 +  Vlispy_mouse_stem = build_pure_c_string ("mouse");
 +  staticpro (&Vlispy_mouse_stem);
 +
 +  regular_top_level_message = build_pure_c_string ("Back to top level");
 +#ifdef HAVE_STACK_OVERFLOW_HANDLING
 +  recover_top_level_message
 +    = build_pure_c_string ("Re-entering top level after C stack overflow");
 +#endif
 +  DEFVAR_LISP ("internal--top-level-message", Vinternal__top_level_message,
 +             doc: /* Message displayed by `normal-top-level'.  */);
 +  Vinternal__top_level_message = regular_top_level_message;
 +
 +  /* Tool-bars.  */
 +  DEFSYM (QCimage, ":image");
 +  DEFSYM (Qhelp_echo, "help-echo");
 +  DEFSYM (QCrtl, ":rtl");
 +
 +  staticpro (&item_properties);
 +  item_properties = Qnil;
 +
 +  staticpro (&tool_bar_item_properties);
 +  tool_bar_item_properties = Qnil;
 +  staticpro (&tool_bar_items_vector);
 +  tool_bar_items_vector = Qnil;
 +
 +  DEFSYM (Qtimer_event_handler, "timer-event-handler");
 +  DEFSYM (Qdisabled_command_function, "disabled-command-function");
 +  DEFSYM (Qself_insert_command, "self-insert-command");
 +  DEFSYM (Qforward_char, "forward-char");
 +  DEFSYM (Qbackward_char, "backward-char");
 +
 +  /* Non-nil disable property on a command means do not execute it;
 +     call disabled-command-function's value instead.  */
 +  DEFSYM (Qdisabled, "disabled");
 +
 +  DEFSYM (Qundefined, "undefined");
 +
 +  /* Hooks to run before and after each command.  */
 +  DEFSYM (Qpre_command_hook, "pre-command-hook");
 +  DEFSYM (Qpost_command_hook, "post-command-hook");
 +
 +  DEFSYM (Qdeferred_action_function, "deferred-action-function");
 +  DEFSYM (Qdelayed_warnings_hook, "delayed-warnings-hook");
 +  DEFSYM (Qfunction_key, "function-key");
 +
 +  /* The values of Qevent_kind properties.  */
 +  DEFSYM (Qmouse_click, "mouse-click");
 +
 +  DEFSYM (Qdrag_n_drop, "drag-n-drop");
 +  DEFSYM (Qsave_session, "save-session");
 +  DEFSYM (Qconfig_changed_event, "config-changed-event");
 +
 +  /* Menu and tool bar item parts.  */
 +  DEFSYM (Qmenu_enable, "menu-enable");
 +
 +#ifdef HAVE_NTGUI
 +  DEFSYM (Qlanguage_change, "language-change");
 +#endif
 +
 +#ifdef HAVE_DBUS
 +  DEFSYM (Qdbus_event, "dbus-event");
 +#endif
 +
 +#ifdef USE_FILE_NOTIFY
 +  DEFSYM (Qfile_notify, "file-notify");
 +#endif /* USE_FILE_NOTIFY */
 +
 +  /* Menu and tool bar item parts.  */
 +  DEFSYM (QCenable, ":enable");
 +  DEFSYM (QCvisible, ":visible");
 +  DEFSYM (QChelp, ":help");
 +  DEFSYM (QCfilter, ":filter");
 +  DEFSYM (QCbutton, ":button");
 +  DEFSYM (QCkeys, ":keys");
 +  DEFSYM (QCkey_sequence, ":key-sequence");
 +
 +  /* Non-nil disable property on a command means
 +     do not execute it; call disabled-command-function's value instead.  */
 +  DEFSYM (QCtoggle, ":toggle");
 +  DEFSYM (QCradio, ":radio");
 +  DEFSYM (QClabel, ":label");
 +  DEFSYM (QCvert_only, ":vert-only");
 +
 +  /* Symbols to use for parts of windows.  */
 +  DEFSYM (Qvertical_line, "vertical-line");
 +  DEFSYM (Qright_divider, "right-divider");
 +  DEFSYM (Qbottom_divider, "bottom-divider");
 +
 +  DEFSYM (Qmouse_fixup_help_message, "mouse-fixup-help-message");
 +
 +  DEFSYM (Qabove_handle, "above-handle");
 +  DEFSYM (Qhandle, "handle");
 +  DEFSYM (Qbelow_handle, "below-handle");
 +  DEFSYM (Qup, "up");
 +  DEFSYM (Qdown, "down");
 +  DEFSYM (Qtop, "top");
 +  DEFSYM (Qbottom, "bottom");
 +  DEFSYM (Qend_scroll, "end-scroll");
 +  DEFSYM (Qratio, "ratio");
 +  DEFSYM (Qbefore_handle, "before-handle");
 +  DEFSYM (Qhorizontal_handle, "horizontal-handle");
 +  DEFSYM (Qafter_handle, "after-handle");
 +  DEFSYM (Qleft, "left");
 +  DEFSYM (Qright, "right");
 +  DEFSYM (Qleftmost, "leftmost");
 +  DEFSYM (Qrightmost, "rightmost");
 +
 +  /* Properties of event headers.  */
 +  DEFSYM (Qevent_kind, "event-kind");
 +  DEFSYM (Qevent_symbol_elements, "event-symbol-elements");
 +
 +  /* An event header symbol HEAD may have a property named
 +     Qevent_symbol_element_mask, which is of the form (BASE MODIFIERS);
 +     BASE is the base, unmodified version of HEAD, and MODIFIERS is the
 +     mask of modifiers applied to it.  If present, this is used to help
 +     speed up parse_modifiers.  */
 +  DEFSYM (Qevent_symbol_element_mask, "event-symbol-element-mask");
 +
 +  /* An unmodified event header BASE may have a property named
 +     Qmodifier_cache, which is an alist mapping modifier masks onto
 +     modified versions of BASE.  If present, this helps speed up
 +     apply_modifiers.  */
 +  DEFSYM (Qmodifier_cache, "modifier-cache");
 +
 +  DEFSYM (Qrecompute_lucid_menubar, "recompute-lucid-menubar");
 +  DEFSYM (Qactivate_menubar_hook, "activate-menubar-hook");
 +
 +  DEFSYM (Qpolling_period, "polling-period");
 +
 +  DEFSYM (Qgui_set_selection, "gui-set-selection");
 +
 +  /* The primary selection.  */
 +  DEFSYM (QPRIMARY, "PRIMARY");
 +
 +  DEFSYM (Qhandle_switch_frame, "handle-switch-frame");
 +  DEFSYM (Qhandle_select_window, "handle-select-window");
 +
 +  DEFSYM (Qinput_method_function, "input-method-function");
 +  DEFSYM (Qinput_method_exit_on_first_char, "input-method-exit-on-first-char");
 +  DEFSYM (Qinput_method_use_echo_area, "input-method-use-echo-area");
 +
 +  DEFSYM (Qhelp_form_show, "help-form-show");
 +
 +  DEFSYM (Qecho_keystrokes, "echo-keystrokes");
 +
 +  Fset (Qinput_method_exit_on_first_char, Qnil);
 +  Fset (Qinput_method_use_echo_area, Qnil);
 +
 +  /* Symbols to head events.  */
 +  DEFSYM (Qmouse_movement, "mouse-movement");
 +  DEFSYM (Qscroll_bar_movement, "scroll-bar-movement");
 +  DEFSYM (Qswitch_frame, "switch-frame");
 +  DEFSYM (Qfocus_in, "focus-in");
 +  DEFSYM (Qfocus_out, "focus-out");
 +  DEFSYM (Qdelete_frame, "delete-frame");
 +  DEFSYM (Qiconify_frame, "iconify-frame");
 +  DEFSYM (Qmake_frame_visible, "make-frame-visible");
 +  DEFSYM (Qselect_window, "select-window");
 +  {
 +    int i;
 +
 +    for (i = 0; i < ARRAYELTS (head_table); i++)
 +      {
 +      const struct event_head *p = &head_table[i];
 +      Lisp_Object var = builtin_lisp_symbol (p->var);
 +      Lisp_Object kind = builtin_lisp_symbol (p->kind);
 +      Fput (var, Qevent_kind, kind);
 +      Fput (var, Qevent_symbol_elements, list1 (var));
 +      }
 +  }
 +
 +  button_down_location = Fmake_vector (make_number (5), Qnil);
 +  staticpro (&button_down_location);
 +  mouse_syms = Fmake_vector (make_number (5), Qnil);
 +  staticpro (&mouse_syms);
 +  wheel_syms = Fmake_vector (make_number (ARRAYELTS (lispy_wheel_names)),
 +                           Qnil);
 +  staticpro (&wheel_syms);
 +
 +  {
 +    int i;
 +    int len = ARRAYELTS (modifier_names);
 +
 +    modifier_symbols = Fmake_vector (make_number (len), Qnil);
 +    for (i = 0; i < len; i++)
 +      if (modifier_names[i])
 +      ASET (modifier_symbols, i, intern_c_string (modifier_names[i]));
 +    staticpro (&modifier_symbols);
 +  }
 +
 +  recent_keys = Fmake_vector (make_number (NUM_RECENT_KEYS), Qnil);
 +  staticpro (&recent_keys);
 +
 +  this_command_keys = Fmake_vector (make_number (40), Qnil);
 +  staticpro (&this_command_keys);
 +
 +  raw_keybuf = Fmake_vector (make_number (30), Qnil);
 +  staticpro (&raw_keybuf);
 +
 +  DEFSYM (Qcommand_execute, "command-execute");
 +
 +  accent_key_syms = Qnil;
 +  staticpro (&accent_key_syms);
 +
 +  func_key_syms = Qnil;
 +  staticpro (&func_key_syms);
 +
 +  drag_n_drop_syms = Qnil;
 +  staticpro (&drag_n_drop_syms);
 +
 +  unread_switch_frame = Qnil;
 +  staticpro (&unread_switch_frame);
 +
 +  internal_last_event_frame = Qnil;
 +  staticpro (&internal_last_event_frame);
 +
 +  read_key_sequence_cmd = Qnil;
 +  staticpro (&read_key_sequence_cmd);
 +  read_key_sequence_remapped = Qnil;
 +  staticpro (&read_key_sequence_remapped);
 +
 +  menu_bar_one_keymap_changed_items = Qnil;
 +  staticpro (&menu_bar_one_keymap_changed_items);
 +
 +  menu_bar_items_vector = Qnil;
 +  staticpro (&menu_bar_items_vector);
 +
 +  help_form_saved_window_configs = Qnil;
 +  staticpro (&help_form_saved_window_configs);
 +
 +  defsubr (&Scurrent_idle_time);
 +  defsubr (&Sevent_symbol_parse_modifiers);
 +  defsubr (&Sevent_convert_list);
 +  defsubr (&Sread_key_sequence);
 +  defsubr (&Sread_key_sequence_vector);
 +  defsubr (&Srecursive_edit);
 +  defsubr (&Strack_mouse);
 +  defsubr (&Sinput_pending_p);
 +  defsubr (&Srecent_keys);
 +  defsubr (&Sthis_command_keys);
 +  defsubr (&Sthis_command_keys_vector);
 +  defsubr (&Sthis_single_command_keys);
 +  defsubr (&Sthis_single_command_raw_keys);
 +  defsubr (&Sreset_this_command_lengths);
 +  defsubr (&Sclear_this_command_keys);
 +  defsubr (&Ssuspend_emacs);
 +  defsubr (&Sabort_recursive_edit);
 +  defsubr (&Sexit_recursive_edit);
 +  defsubr (&Srecursion_depth);
 +  defsubr (&Scommand_error_default_function);
 +  defsubr (&Stop_level);
 +  defsubr (&Sdiscard_input);
 +  defsubr (&Sopen_dribble_file);
 +  defsubr (&Sset_input_interrupt_mode);
 +  defsubr (&Sset_output_flow_control);
 +  defsubr (&Sset_input_meta_mode);
 +  defsubr (&Sset_quit_char);
 +  defsubr (&Sset_input_mode);
 +  defsubr (&Scurrent_input_mode);
 +  defsubr (&Sposn_at_point);
 +  defsubr (&Sposn_at_x_y);
 +
 +  DEFVAR_LISP ("last-command-event", last_command_event,
 +                   doc: /* Last input event that was part of a command.  */);
 +
 +  DEFVAR_LISP ("last-nonmenu-event", last_nonmenu_event,
 +             doc: /* Last input event in a command, except for mouse menu events.
 +Mouse menus give back keys that don't look like mouse events;
 +this variable holds the actual mouse event that led to the menu,
 +so that you can determine whether the command was run by mouse or not.  */);
 +
 +  DEFVAR_LISP ("last-input-event", last_input_event,
 +             doc: /* Last input event.  */);
 +
 +  DEFVAR_LISP ("unread-command-events", Vunread_command_events,
 +             doc: /* List of events to be read as the command input.
 +These events are processed first, before actual keyboard input.
 +Events read from this list are not normally added to `this-command-keys',
 +as they will already have been added once as they were read for the first time.
 +An element of the form (t . EVENT) forces EVENT to be added to that list.  */);
 +  Vunread_command_events = Qnil;
 +
 +  DEFVAR_LISP ("unread-post-input-method-events", Vunread_post_input_method_events,
 +             doc: /* List of events to be processed as input by input methods.
 +These events are processed before `unread-command-events'
 +and actual keyboard input, but are not given to `input-method-function'.  */);
 +  Vunread_post_input_method_events = Qnil;
 +
 +  DEFVAR_LISP ("unread-input-method-events", Vunread_input_method_events,
 +             doc: /* List of events to be processed as input by input methods.
 +These events are processed after `unread-command-events', but
 +before actual keyboard input.
 +If there's an active input method, the events are given to
 +`input-method-function'.  */);
 +  Vunread_input_method_events = Qnil;
 +
 +  DEFVAR_LISP ("meta-prefix-char", meta_prefix_char,
 +             doc: /* Meta-prefix character code.
 +Meta-foo as command input turns into this character followed by foo.  */);
 +  XSETINT (meta_prefix_char, 033);
 +
 +  DEFVAR_KBOARD ("last-command", Vlast_command,
 +               doc: /* The last command executed.
 +Normally a symbol with a function definition, but can be whatever was found
 +in the keymap, or whatever the variable `this-command' was set to by that
 +command.
 +
 +The value `mode-exit' is special; it means that the previous command
 +read an event that told it to exit, and it did so and unread that event.
 +In other words, the present command is the event that made the previous
 +command exit.
 +
 +The value `kill-region' is special; it means that the previous command
 +was a kill command.
 +
 +`last-command' has a separate binding for each terminal device.
 +See Info node `(elisp)Multiple Terminals'.  */);
 +
 +  DEFVAR_KBOARD ("real-last-command", Vreal_last_command,
 +               doc: /* Same as `last-command', but never altered by Lisp code.
 +Taken from the previous value of `real-this-command'.  */);
 +
 +  DEFVAR_KBOARD ("last-repeatable-command", Vlast_repeatable_command,
 +               doc: /* Last command that may be repeated.
 +The last command executed that was not bound to an input event.
 +This is the command `repeat' will try to repeat.
 +Taken from a previous value of `real-this-command'.  */);
 +
 +  DEFVAR_LISP ("this-command", Vthis_command,
 +             doc: /* The command now being executed.
 +The command can set this variable; whatever is put here
 +will be in `last-command' during the following command.  */);
 +  Vthis_command = Qnil;
 +
 +  DEFVAR_LISP ("real-this-command", Vreal_this_command,
 +             doc: /* This is like `this-command', except that commands should never modify it.  */);
 +  Vreal_this_command = Qnil;
 +
 +  DEFVAR_LISP ("this-command-keys-shift-translated",
 +             Vthis_command_keys_shift_translated,
 +             doc: /* Non-nil if the key sequence activating this command was shift-translated.
 +Shift-translation occurs when there is no binding for the key sequence
 +as entered, but a binding was found by changing an upper-case letter
 +to lower-case, or a shifted function key to an unshifted one.  */);
 +  Vthis_command_keys_shift_translated = Qnil;
 +
 +  DEFVAR_LISP ("this-original-command", Vthis_original_command,
 +             doc: /* The command bound to the current key sequence before remapping.
 +It equals `this-command' if the original command was not remapped through
 +any of the active keymaps.  Otherwise, the value of `this-command' is the
 +result of looking up the original command in the active keymaps.  */);
 +  Vthis_original_command = Qnil;
 +
 +  DEFVAR_INT ("auto-save-interval", auto_save_interval,
 +            doc: /* Number of input events between auto-saves.
 +Zero means disable autosaving due to number of characters typed.  */);
 +  auto_save_interval = 300;
 +
 +  DEFVAR_LISP ("auto-save-timeout", Vauto_save_timeout,
 +             doc: /* Number of seconds idle time before auto-save.
 +Zero or nil means disable auto-saving due to idleness.
 +After auto-saving due to this many seconds of idle time,
 +Emacs also does a garbage collection if that seems to be warranted.  */);
 +  XSETFASTINT (Vauto_save_timeout, 30);
 +
 +  DEFVAR_LISP ("echo-keystrokes", Vecho_keystrokes,
 +             doc: /* Nonzero means echo unfinished commands after this many seconds of pause.
 +The value may be integer or floating point.
 +If the value is zero, don't echo at all.  */);
 +  Vecho_keystrokes = make_number (1);
 +
 +  DEFVAR_INT ("polling-period", polling_period,
 +            doc: /* Interval between polling for input during Lisp execution.
 +The reason for polling is to make C-g work to stop a running program.
 +Polling is needed only when using X windows and SIGIO does not work.
 +Polling is automatically disabled in all other cases.  */);
 +  polling_period = 2;
 +
 +  DEFVAR_LISP ("double-click-time", Vdouble_click_time,
 +             doc: /* Maximum time between mouse clicks to make a double-click.
 +Measured in milliseconds.  The value nil means disable double-click
 +recognition; t means double-clicks have no time limit and are detected
 +by position only.  */);
 +  Vdouble_click_time = make_number (500);
 +
 +  DEFVAR_INT ("double-click-fuzz", double_click_fuzz,
 +            doc: /* Maximum mouse movement between clicks to make a double-click.
 +On window-system frames, value is the number of pixels the mouse may have
 +moved horizontally or vertically between two clicks to make a double-click.
 +On non window-system frames, value is interpreted in units of 1/8 characters
 +instead of pixels.
 +
 +This variable is also the threshold for motion of the mouse
 +to count as a drag.  */);
 +  double_click_fuzz = 3;
 +
 +  DEFVAR_INT ("num-input-keys", num_input_keys,
 +            doc: /* Number of complete key sequences read as input so far.
 +This includes key sequences read from keyboard macros.
 +The number is effectively the number of interactive command invocations.  */);
 +  num_input_keys = 0;
 +
 +  DEFVAR_INT ("num-nonmacro-input-events", num_nonmacro_input_events,
 +            doc: /* Number of input events read from the keyboard so far.
 +This does not include events generated by keyboard macros.  */);
 +  num_nonmacro_input_events = 0;
 +
 +  DEFVAR_LISP ("last-event-frame", Vlast_event_frame,
 +             doc: /* The frame in which the most recently read event occurred.
 +If the last event came from a keyboard macro, this is set to `macro'.  */);
 +  Vlast_event_frame = Qnil;
 +
 +  /* This variable is set up in sysdep.c.  */
 +  DEFVAR_LISP ("tty-erase-char", Vtty_erase_char,
 +             doc: /* The ERASE character as set by the user with stty.  */);
 +
 +  DEFVAR_LISP ("help-char", Vhelp_char,
 +             doc: /* Character to recognize as meaning Help.
 +When it is read, do `(eval help-form)', and display result if it's a string.
 +If the value of `help-form' is nil, this char can be read normally.  */);
 +  XSETINT (Vhelp_char, Ctl ('H'));
 +
 +  DEFVAR_LISP ("help-event-list", Vhelp_event_list,
 +             doc: /* List of input events to recognize as meaning Help.
 +These work just like the value of `help-char' (see that).  */);
 +  Vhelp_event_list = Qnil;
 +
 +  DEFVAR_LISP ("help-form", Vhelp_form,
 +             doc: /* Form to execute when character `help-char' is read.
 +If the form returns a string, that string is displayed.
 +If `help-form' is nil, the help char is not recognized.  */);
 +  Vhelp_form = Qnil;
 +
 +  DEFVAR_LISP ("prefix-help-command", Vprefix_help_command,
 +             doc: /* Command to run when `help-char' character follows a prefix key.
 +This command is used only when there is no actual binding
 +for that character after that prefix key.  */);
 +  Vprefix_help_command = Qnil;
 +
 +  DEFVAR_LISP ("top-level", Vtop_level,
 +             doc: /* Form to evaluate when Emacs starts up.
 +Useful to set before you dump a modified Emacs.  */);
 +  Vtop_level = Qnil;
 +  XSYMBOL (Qtop_level)->declared_special = false;
 +
 +  DEFVAR_KBOARD ("keyboard-translate-table", Vkeyboard_translate_table,
 +                 doc: /* Translate table for local keyboard input, or nil.
 +If non-nil, the value should be a char-table.  Each character read
 +from the keyboard is looked up in this char-table.  If the value found
 +there is non-nil, then it is used instead of the actual input character.
 +
 +The value can also be a string or vector, but this is considered obsolete.
 +If it is a string or vector of length N, character codes N and up are left
 +untranslated.  In a vector, an element which is nil means "no translation".
 +
 +This is applied to the characters supplied to input methods, not their
 +output.  See also `translation-table-for-input'.
 +
 +This variable has a separate binding for each terminal.
 +See Info node `(elisp)Multiple Terminals'.  */);
 +
 +  DEFVAR_BOOL ("cannot-suspend", cannot_suspend,
 +             doc: /* Non-nil means to always spawn a subshell instead of suspending.
 +\(Even if the operating system has support for stopping a process.\)  */);
 +  cannot_suspend = 0;
 +
 +  DEFVAR_BOOL ("menu-prompting", menu_prompting,
 +             doc: /* Non-nil means prompt with menus when appropriate.
 +This is done when reading from a keymap that has a prompt string,
 +for elements that have prompt strings.
 +The menu is displayed on the screen
 +if X menus were enabled at configuration
 +time and the previous event was a mouse click prefix key.
 +Otherwise, menu prompting uses the echo area.  */);
 +  menu_prompting = 1;
 +
 +  DEFVAR_LISP ("menu-prompt-more-char", menu_prompt_more_char,
 +             doc: /* Character to see next line of menu prompt.
 +Type this character while in a menu prompt to rotate around the lines of it.  */);
 +  XSETINT (menu_prompt_more_char, ' ');
 +
 +  DEFVAR_INT ("extra-keyboard-modifiers", extra_keyboard_modifiers,
 +            doc: /* A mask of additional modifier keys to use with every keyboard character.
 +Emacs applies the modifiers of the character stored here to each keyboard
 +character it reads.  For example, after evaluating the expression
 +    (setq extra-keyboard-modifiers ?\\C-x)
 +all input characters will have the control modifier applied to them.
 +
 +Note that the character ?\\C-@, equivalent to the integer zero, does
 +not count as a control character; rather, it counts as a character
 +with no modifiers; thus, setting `extra-keyboard-modifiers' to zero
 +cancels any modification.  */);
 +  extra_keyboard_modifiers = 0;
 +
 +  DEFSYM (Qdeactivate_mark, "deactivate-mark");
 +  DEFVAR_LISP ("deactivate-mark", Vdeactivate_mark,
 +             doc: /* If an editing command sets this to t, deactivate the mark afterward.
 +The command loop sets this to nil before each command,
 +and tests the value when the command returns.
 +Buffer modification stores t in this variable.  */);
 +  Vdeactivate_mark = Qnil;
 +  Fmake_variable_buffer_local (Qdeactivate_mark);
 +
 +  DEFVAR_LISP ("pre-command-hook", Vpre_command_hook,
 +             doc: /* Normal hook run before each command is executed.
 +If an unhandled error happens in running this hook,
 +the function in which the error occurred is unconditionally removed, since
 +otherwise the error might happen repeatedly and make Emacs nonfunctional.  */);
 +  Vpre_command_hook = Qnil;
 +
 +  DEFVAR_LISP ("post-command-hook", Vpost_command_hook,
 +             doc: /* Normal hook run after each command is executed.
 +If an unhandled error happens in running this hook,
 +the function in which the error occurred is unconditionally removed, since
 +otherwise the error might happen repeatedly and make Emacs nonfunctional.  */);
 +  Vpost_command_hook = Qnil;
 +
 +#if 0
 +  DEFVAR_LISP ("echo-area-clear-hook", ...,
 +             doc: /* Normal hook run when clearing the echo area.  */);
 +#endif
 +  DEFSYM (Qecho_area_clear_hook, "echo-area-clear-hook");
 +  Fset (Qecho_area_clear_hook, Qnil);
 +
 +  DEFVAR_LISP ("lucid-menu-bar-dirty-flag", Vlucid_menu_bar_dirty_flag,
 +             doc: /* Non-nil means menu bar, specified Lucid style, needs to be recomputed.  */);
 +  Vlucid_menu_bar_dirty_flag = Qnil;
 +
 +  DEFVAR_LISP ("menu-bar-final-items", Vmenu_bar_final_items,
 +             doc: /* List of menu bar items to move to the end of the menu bar.
 +The elements of the list are event types that may have menu bar bindings.  */);
 +  Vmenu_bar_final_items = Qnil;
 +
 +  DEFVAR_LISP ("tool-bar-separator-image-expression", Vtool_bar_separator_image_expression,
 +    doc: /* Expression evaluating to the image spec for a tool-bar separator.
 +This is used internally by graphical displays that do not render
 +tool-bar separators natively.  Otherwise it is unused (e.g. on GTK).  */);
 +  Vtool_bar_separator_image_expression = Qnil;
 +
 +  DEFVAR_KBOARD ("overriding-terminal-local-map",
 +               Voverriding_terminal_local_map,
 +               doc: /* Per-terminal keymap that takes precedence over all other keymaps.
 +This variable is intended to let commands such as `universal-argument'
 +set up a different keymap for reading the next command.
 +
 +`overriding-terminal-local-map' has a separate binding for each
 +terminal device.  See Info node `(elisp)Multiple Terminals'.  */);
 +
 +  DEFVAR_LISP ("overriding-local-map", Voverriding_local_map,
 +             doc: /* Keymap that replaces (overrides) local keymaps.
 +If this variable is non-nil, Emacs looks up key bindings in this
 +keymap INSTEAD OF the keymap char property, minor mode maps, and the
 +buffer's local map.  Hence, the only active keymaps would be
 +`overriding-terminal-local-map', this keymap, and `global-keymap', in
 +order of precedence.  */);
 +  Voverriding_local_map = Qnil;
 +
 +  DEFVAR_LISP ("overriding-local-map-menu-flag", Voverriding_local_map_menu_flag,
 +             doc: /* Non-nil means `overriding-local-map' applies to the menu bar.
 +Otherwise, the menu bar continues to reflect the buffer's local map
 +and the minor mode maps regardless of `overriding-local-map'.  */);
 +  Voverriding_local_map_menu_flag = Qnil;
 +
 +  DEFVAR_LISP ("special-event-map", Vspecial_event_map,
 +             doc: /* Keymap defining bindings for special events to execute at low level.  */);
 +  Vspecial_event_map = list1 (Qkeymap);
 +
 +  DEFVAR_LISP ("track-mouse", do_mouse_tracking,
 +             doc: /* Non-nil means generate motion events for mouse motion.  */);
 +
 +  DEFVAR_KBOARD ("system-key-alist", Vsystem_key_alist,
 +               doc: /* Alist of system-specific X windows key symbols.
 +Each element should have the form (N . SYMBOL) where N is the
 +numeric keysym code (sans the \"system-specific\" bit 1<<28)
 +and SYMBOL is its name.
 +
 +`system-key-alist' has a separate binding for each terminal device.
 +See Info node `(elisp)Multiple Terminals'.  */);
 +
 +  DEFVAR_KBOARD ("local-function-key-map", Vlocal_function_key_map,
 +                 doc: /* Keymap that translates key sequences to key sequences during input.
 +This is used mainly for mapping key sequences into some preferred
 +key events (symbols).
 +
 +The `read-key-sequence' function replaces any subsequence bound by
 +`local-function-key-map' with its binding.  More precisely, when the
 +active keymaps have no binding for the current key sequence but
 +`local-function-key-map' binds a suffix of the sequence to a vector or
 +string, `read-key-sequence' replaces the matching suffix with its
 +binding, and continues with the new sequence.
 +
 +If the binding is a function, it is called with one argument (the prompt)
 +and its return value (a key sequence) is used.
 +
 +The events that come from bindings in `local-function-key-map' are not
 +themselves looked up in `local-function-key-map'.
 +
 +For example, suppose `local-function-key-map' binds `ESC O P' to [f1].
 +Typing `ESC O P' to `read-key-sequence' would return [f1].  Typing
 +`C-x ESC O P' would return [?\\C-x f1].  If [f1] were a prefix key,
 +typing `ESC O P x' would return [f1 x].
 +
 +`local-function-key-map' has a separate binding for each terminal
 +device.  See Info node `(elisp)Multiple Terminals'.  If you need to
 +define a binding on all terminals, change `function-key-map'
 +instead.  Initially, `local-function-key-map' is an empty keymap that
 +has `function-key-map' as its parent on all terminal devices.  */);
 +
 +  DEFVAR_KBOARD ("input-decode-map", Vinput_decode_map,
 +               doc: /* Keymap that decodes input escape sequences.
 +This is used mainly for mapping ASCII function key sequences into
 +real Emacs function key events (symbols).
 +
 +The `read-key-sequence' function replaces any subsequence bound by
 +`input-decode-map' with its binding.  Contrary to `function-key-map',
 +this map applies its rebinding regardless of the presence of an ordinary
 +binding.  So it is more like `key-translation-map' except that it applies
 +before `function-key-map' rather than after.
 +
 +If the binding is a function, it is called with one argument (the prompt)
 +and its return value (a key sequence) is used.
 +
 +The events that come from bindings in `input-decode-map' are not
 +themselves looked up in `input-decode-map'.  */);
 +
 +  DEFVAR_LISP ("function-key-map", Vfunction_key_map,
 +               doc: /* The parent keymap of all `local-function-key-map' instances.
 +Function key definitions that apply to all terminal devices should go
 +here.  If a mapping is defined in both the current
 +`local-function-key-map' binding and this variable, then the local
 +definition will take precedence.  */);
 +  Vfunction_key_map = Fmake_sparse_keymap (Qnil);
 +
 +  DEFVAR_LISP ("key-translation-map", Vkey_translation_map,
 +               doc: /* Keymap of key translations that can override keymaps.
 +This keymap works like `input-decode-map', but comes after `function-key-map'.
 +Another difference is that it is global rather than terminal-local.  */);
 +  Vkey_translation_map = Fmake_sparse_keymap (Qnil);
 +
 +  DEFVAR_LISP ("deferred-action-list", Vdeferred_action_list,
 +             doc: /* List of deferred actions to be performed at a later time.
 +The precise format isn't relevant here; we just check whether it is nil.  */);
 +  Vdeferred_action_list = Qnil;
 +
 +  DEFVAR_LISP ("deferred-action-function", Vdeferred_action_function,
 +             doc: /* Function to call to handle deferred actions, after each command.
 +This function is called with no arguments after each command
 +whenever `deferred-action-list' is non-nil.  */);
 +  Vdeferred_action_function = Qnil;
 +
 +  DEFVAR_LISP ("delayed-warnings-list", Vdelayed_warnings_list,
 +               doc: /* List of warnings to be displayed after this command.
 +Each element must be a list (TYPE MESSAGE [LEVEL [BUFFER-NAME]]),
 +as per the args of `display-warning' (which see).
 +If this variable is non-nil, `delayed-warnings-hook' will be run
 +immediately after running `post-command-hook'.  */);
 +  Vdelayed_warnings_list = Qnil;
 +
 +  DEFVAR_LISP ("timer-list", Vtimer_list,
 +             doc: /* List of active absolute time timers in order of increasing time.  */);
 +  Vtimer_list = Qnil;
 +
 +  DEFVAR_LISP ("timer-idle-list", Vtimer_idle_list,
 +             doc: /* List of active idle-time timers in order of increasing time.  */);
 +  Vtimer_idle_list = Qnil;
 +
 +  DEFVAR_LISP ("input-method-function", Vinput_method_function,
 +             doc: /* If non-nil, the function that implements the current input method.
 +It's called with one argument, a printing character that was just read.
 +\(That means a character with code 040...0176.)
 +Typically this function uses `read-event' to read additional events.
 +When it does so, it should first bind `input-method-function' to nil
 +so it will not be called recursively.
 +
 +The function should return a list of zero or more events
 +to be used as input.  If it wants to put back some events
 +to be reconsidered, separately, by the input method,
 +it can add them to the beginning of `unread-command-events'.
 +
 +The input method function can find in `input-method-previous-message'
 +the previous echo area message.
 +
 +The input method function should refer to the variables
 +`input-method-use-echo-area' and `input-method-exit-on-first-char'
 +for guidance on what to do.  */);
 +  Vinput_method_function = Qlist;
 +
 +  DEFVAR_LISP ("input-method-previous-message",
 +             Vinput_method_previous_message,
 +             doc: /* When `input-method-function' is called, hold the previous echo area message.
 +This variable exists because `read-event' clears the echo area
 +before running the input method.  It is nil if there was no message.  */);
 +  Vinput_method_previous_message = Qnil;
 +
 +  DEFVAR_LISP ("show-help-function", Vshow_help_function,
 +             doc: /* If non-nil, the function that implements the display of help.
 +It's called with one argument, the help string to display.  */);
 +  Vshow_help_function = Qnil;
 +
 +  DEFVAR_LISP ("disable-point-adjustment", Vdisable_point_adjustment,
 +             doc: /* If non-nil, suppress point adjustment after executing a command.
 +
 +After a command is executed, if point is moved into a region that has
 +special properties (e.g. composition, display), we adjust point to
 +the boundary of the region.  But, when a command sets this variable to
 +non-nil, we suppress the point adjustment.
 +
 +This variable is set to nil before reading a command, and is checked
 +just after executing the command.  */);
 +  Vdisable_point_adjustment = Qnil;
 +
 +  DEFVAR_LISP ("global-disable-point-adjustment",
 +             Vglobal_disable_point_adjustment,
 +             doc: /* If non-nil, always suppress point adjustment.
 +
 +The default value is nil, in which case, point adjustment are
 +suppressed only after special commands that set
 +`disable-point-adjustment' (which see) to non-nil.  */);
 +  Vglobal_disable_point_adjustment = Qnil;
 +
 +  DEFVAR_LISP ("minibuffer-message-timeout", Vminibuffer_message_timeout,
 +             doc: /* How long to display an echo-area message when the minibuffer is active.
 +If the value is not a number, such messages don't time out.  */);
 +  Vminibuffer_message_timeout = make_number (2);
 +
 +  DEFVAR_LISP ("throw-on-input", Vthrow_on_input,
 +             doc: /* If non-nil, any keyboard input throws to this symbol.
 +The value of that variable is passed to `quit-flag' and later causes a
 +peculiar kind of quitting.  */);
 +  Vthrow_on_input = Qnil;
 +
 +  DEFVAR_LISP ("command-error-function", Vcommand_error_function,
 +             doc: /* Function to output error messages.
 +Called with three arguments:
 +- the error data, a list of the form (SIGNALED-CONDITION . SIGNAL-DATA)
 +  such as what `condition-case' would bind its variable to,
 +- the context (a string which normally goes at the start of the message),
 +- the Lisp function within which the error was signaled.  */);
 +  Vcommand_error_function = intern ("command-error-default-function");
 +
 +  DEFVAR_LISP ("enable-disabled-menus-and-buttons",
 +             Venable_disabled_menus_and_buttons,
 +             doc: /* If non-nil, don't ignore events produced by disabled menu items and tool-bar.
 +
 +Help functions bind this to allow help on disabled menu items
 +and tool-bar buttons.  */);
 +  Venable_disabled_menus_and_buttons = Qnil;
 +
 +  DEFVAR_LISP ("select-active-regions",
 +             Vselect_active_regions,
 +             doc: /* If non-nil, an active region automatically sets the primary selection.
 +If the value is `only', only temporarily active regions (usually made
 +by mouse-dragging or shift-selection) set the window selection.
 +
 +This takes effect only when Transient Mark mode is enabled.  */);
 +  Vselect_active_regions = Qt;
 +
 +  DEFVAR_LISP ("saved-region-selection",
 +             Vsaved_region_selection,
 +             doc: /* Contents of active region prior to buffer modification.
 +If `select-active-regions' is non-nil, Emacs sets this to the
 +text in the region before modifying the buffer.  The next call to
 +the function `deactivate-mark' uses this to set the window selection.  */);
 +  Vsaved_region_selection = Qnil;
 +
 +  DEFVAR_LISP ("selection-inhibit-update-commands",
 +             Vselection_inhibit_update_commands,
 +             doc: /* List of commands which should not update the selection.
 +Normally, if `select-active-regions' is non-nil and the mark remains
 +active after a command (i.e. the mark was not deactivated), the Emacs
 +command loop sets the selection to the text in the region.  However,
 +if the command is in this list, the selection is not updated.  */);
 +  Vselection_inhibit_update_commands
 +    = list2 (Qhandle_switch_frame, Qhandle_select_window);
 +
 +  DEFVAR_LISP ("debug-on-event",
 +               Vdebug_on_event,
 +               doc: /* Enter debugger on this event.  When Emacs
 +receives the special event specified by this variable, it will try to
 +break into the debugger as soon as possible instead of processing the
 +event normally through `special-event-map'.
 +
 +Currently, the only supported values for this
 +variable are `sigusr1' and `sigusr2'.  */);
 +  Vdebug_on_event = intern_c_string ("sigusr2");
 +
 +  /* Create the initial keyboard.  Qt means 'unset'.  */
 +  initial_kboard = allocate_kboard (Qt);
 +}
 +
 +void
 +keys_of_keyboard (void)
 +{
 +  initial_define_key (global_map, Ctl ('Z'), "suspend-emacs");
 +  initial_define_key (control_x_map, Ctl ('Z'), "suspend-emacs");
 +  initial_define_key (meta_map, Ctl ('C'), "exit-recursive-edit");
 +  initial_define_key (global_map, Ctl (']'), "abort-recursive-edit");
 +  initial_define_key (meta_map, 'x', "execute-extended-command");
 +
 +  initial_define_lispy_key (Vspecial_event_map, "delete-frame",
 +                          "handle-delete-frame");
 +  initial_define_lispy_key (Vspecial_event_map, "ns-put-working-text",
 +                          "ns-put-working-text");
 +  initial_define_lispy_key (Vspecial_event_map, "ns-unput-working-text",
 +                          "ns-unput-working-text");
 +  /* Here we used to use `ignore-event' which would simple set prefix-arg to
 +     current-prefix-arg, as is done in `handle-switch-frame'.
 +     But `handle-switch-frame is not run from the special-map.
 +     Commands from that map are run in a special way that automatically
 +     preserves the prefix-arg.  Restoring the prefix arg here is not just
 +     redundant but harmful:
 +     - C-u C-x v =
 +     - current-prefix-arg is set to non-nil, prefix-arg is set to nil.
 +     - after the first prompt, the exit-minibuffer-hook is run which may
 +       iconify a frame and thus push a `iconify-frame' event.
 +     - after running exit-minibuffer-hook, current-prefix-arg is
 +       restored to the non-nil value it had before the prompt.
 +     - we enter the second prompt.
 +       current-prefix-arg is non-nil, prefix-arg is nil.
 +     - before running the first real event, we run the special iconify-frame
 +       event, but we pass the `special' arg to command-execute so
 +       current-prefix-arg and prefix-arg are left untouched.
 +     - here we foolishly copy the non-nil current-prefix-arg to prefix-arg.
 +     - the next key event will have a spuriously non-nil current-prefix-arg.  */
 +  initial_define_lispy_key (Vspecial_event_map, "iconify-frame",
 +                          "ignore");
 +  initial_define_lispy_key (Vspecial_event_map, "make-frame-visible",
 +                          "ignore");
 +  /* Handling it at such a low-level causes read_key_sequence to get
 +   * confused because it doesn't realize that the current_buffer was
 +   * changed by read_char.
 +   *
 +   * initial_define_lispy_key (Vspecial_event_map, "select-window",
 +   *                      "handle-select-window"); */
 +  initial_define_lispy_key (Vspecial_event_map, "save-session",
 +                          "handle-save-session");
 +
 +#ifdef HAVE_DBUS
 +  /* Define a special event which is raised for dbus callback
 +     functions.  */
 +  initial_define_lispy_key (Vspecial_event_map, "dbus-event",
 +                          "dbus-handle-event");
 +#endif
 +
 +#ifdef USE_FILE_NOTIFY
 +  /* Define a special event which is raised for notification callback
 +     functions.  */
 +  initial_define_lispy_key (Vspecial_event_map, "file-notify",
 +                            "file-notify-handle-event");
 +#endif /* USE_FILE_NOTIFY */
 +
 +  initial_define_lispy_key (Vspecial_event_map, "config-changed-event",
 +                          "ignore");
 +#if defined (WINDOWSNT)
 +  initial_define_lispy_key (Vspecial_event_map, "language-change",
 +                          "ignore");
 +#endif
 +  initial_define_lispy_key (Vspecial_event_map, "focus-in",
 +                          "handle-focus-in");
 +  initial_define_lispy_key (Vspecial_event_map, "focus-out",
 +                          "handle-focus-out");
 +}
 +
 +/* Mark the pointers in the kboard objects.
 +   Called by Fgarbage_collect.  */
 +void
 +mark_kboards (void)
 +{
 +  KBOARD *kb;
 +  Lisp_Object *p;
 +  for (kb = all_kboards; kb; kb = kb->next_kboard)
 +    {
 +      if (kb->kbd_macro_buffer)
 +      for (p = kb->kbd_macro_buffer; p < kb->kbd_macro_ptr; p++)
 +        mark_object (*p);
 +      mark_object (KVAR (kb, Voverriding_terminal_local_map));
 +      mark_object (KVAR (kb, Vlast_command));
 +      mark_object (KVAR (kb, Vreal_last_command));
 +      mark_object (KVAR (kb, Vkeyboard_translate_table));
 +      mark_object (KVAR (kb, Vlast_repeatable_command));
 +      mark_object (KVAR (kb, Vprefix_arg));
 +      mark_object (KVAR (kb, Vlast_prefix_arg));
 +      mark_object (KVAR (kb, kbd_queue));
 +      mark_object (KVAR (kb, defining_kbd_macro));
 +      mark_object (KVAR (kb, Vlast_kbd_macro));
 +      mark_object (KVAR (kb, Vsystem_key_alist));
 +      mark_object (KVAR (kb, system_key_syms));
 +      mark_object (KVAR (kb, Vwindow_system));
 +      mark_object (KVAR (kb, Vinput_decode_map));
 +      mark_object (KVAR (kb, Vlocal_function_key_map));
 +      mark_object (KVAR (kb, Vdefault_minibuffer_frame));
 +      mark_object (KVAR (kb, echo_string));
 +    }
 +  {
 +    struct input_event *event;
 +    for (event = kbd_fetch_ptr; event != kbd_store_ptr; event++)
 +      {
 +      if (event == kbd_buffer + KBD_BUFFER_SIZE)
 +        event = kbd_buffer;
 +      /* These two special event types has no Lisp_Objects to mark.  */
 +      if (event->kind != SELECTION_REQUEST_EVENT
 +          && event->kind != SELECTION_CLEAR_EVENT)
 +        {
 +          mark_object (event->x);
 +          mark_object (event->y);
 +          mark_object (event->frame_or_window);
 +          mark_object (event->arg);
 +        }
 +      }
 +  }
 +}
index 96c52c0469147179e8f2db6bc57bbbf7e656213c,0000000000000000000000000000000000000000..db8722917eac6638b59cbde513ddce0c3102d29f
mode 100644,000000..100644
--- /dev/null
@@@ -1,4817 -1,0 +1,4817 @@@
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
 +/* Fundamental definitions for GNU Emacs Lisp interpreter.
 +
 +Copyright (C) 1985-1987, 1993-1995, 1997-2016 Free Software Foundation,
 +Inc.
 +
 +This file is part of GNU Emacs.
 +
 +GNU Emacs is free software: you can redistribute it and/or modify
 +it under the terms of the GNU General Public License as published by
++the Free Software Foundation, either version 3 of the License, or (at
++your option) any later version.
 +
 +GNU Emacs is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 +
 +#ifndef EMACS_LISP_H
 +#define EMACS_LISP_H
 +
 +#include <setjmp.h>
 +#include <stdalign.h>
 +#include <stdarg.h>
 +#include <stddef.h>
 +#include <float.h>
 +#include <inttypes.h>
 +#include <limits.h>
 +
 +#include <intprops.h>
 +#include <verify.h>
 +
 +INLINE_HEADER_BEGIN
 +
 +/* Define a TYPE constant ID as an externally visible name.  Use like this:
 +
 +      DEFINE_GDB_SYMBOL_BEGIN (TYPE, ID)
 +      # define ID (some integer preprocessor expression of type TYPE)
 +      DEFINE_GDB_SYMBOL_END (ID)
 +
 +   This hack is for the benefit of compilers that do not make macro
 +   definitions or enums visible to the debugger.  It's used for symbols
 +   that .gdbinit needs.  */
 +
 +#define DECLARE_GDB_SYM(type, id) type const id EXTERNALLY_VISIBLE
 +#ifdef MAIN_PROGRAM
 +# define DEFINE_GDB_SYMBOL_BEGIN(type, id) DECLARE_GDB_SYM (type, id)
 +# define DEFINE_GDB_SYMBOL_END(id) = id;
 +#else
 +# define DEFINE_GDB_SYMBOL_BEGIN(type, id) extern DECLARE_GDB_SYM (type, id)
 +# define DEFINE_GDB_SYMBOL_END(val) ;
 +#endif
 +
 +/* The ubiquitous max and min macros.  */
 +#undef min
 +#undef max
 +#define max(a, b) ((a) > (b) ? (a) : (b))
 +#define min(a, b) ((a) < (b) ? (a) : (b))
 +
 +/* Number of elements in an array.  */
 +#define ARRAYELTS(arr) (sizeof (arr) / sizeof (arr)[0])
 +
 +/* Number of bits in a Lisp_Object tag.  */
 +DEFINE_GDB_SYMBOL_BEGIN (int, GCTYPEBITS)
 +#define GCTYPEBITS 3
 +DEFINE_GDB_SYMBOL_END (GCTYPEBITS)
 +
 +/* The number of bits needed in an EMACS_INT over and above the number
 +   of bits in a pointer.  This is 0 on systems where:
 +   1.  We can specify multiple-of-8 alignment on static variables.
 +   2.  We know malloc returns a multiple of 8.  */
 +#if (defined alignas \
 +     && (defined GNU_MALLOC || defined DOUG_LEA_MALLOC || defined __GLIBC__ \
 +       || defined DARWIN_OS || defined __sun || defined __MINGW32__ \
 +       || defined CYGWIN))
 +# define NONPOINTER_BITS 0
 +#else
 +# define NONPOINTER_BITS GCTYPEBITS
 +#endif
 +
 +/* EMACS_INT - signed integer wide enough to hold an Emacs value
 +   EMACS_INT_MAX - maximum value of EMACS_INT; can be used in #if
 +   pI - printf length modifier for EMACS_INT
 +   EMACS_UINT - unsigned variant of EMACS_INT */
 +#ifndef EMACS_INT_MAX
 +# if INTPTR_MAX <= 0
 +#  error "INTPTR_MAX misconfigured"
 +# elif INTPTR_MAX <= INT_MAX >> NONPOINTER_BITS && !defined WIDE_EMACS_INT
 +typedef int EMACS_INT;
 +typedef unsigned int EMACS_UINT;
 +#  define EMACS_INT_MAX INT_MAX
 +#  define pI ""
 +# elif INTPTR_MAX <= LONG_MAX >> NONPOINTER_BITS && !defined WIDE_EMACS_INT
 +typedef long int EMACS_INT;
 +typedef unsigned long EMACS_UINT;
 +#  define EMACS_INT_MAX LONG_MAX
 +#  define pI "l"
 +/* Check versus LLONG_MAX, not LLONG_MAX >> NONPOINTER_BITS.
 +   In theory this is not safe, but in practice it seems to be OK.  */
 +# elif INTPTR_MAX <= LLONG_MAX
 +typedef long long int EMACS_INT;
 +typedef unsigned long long int EMACS_UINT;
 +#  define EMACS_INT_MAX LLONG_MAX
 +#  define pI "ll"
 +# else
 +#  error "INTPTR_MAX too large"
 +# endif
 +#endif
 +
 +/* Number of bits to put in each character in the internal representation
 +   of bool vectors.  This should not vary across implementations.  */
 +enum {  BOOL_VECTOR_BITS_PER_CHAR =
 +#define BOOL_VECTOR_BITS_PER_CHAR 8
 +        BOOL_VECTOR_BITS_PER_CHAR
 +};
 +
 +/* An unsigned integer type representing a fixed-length bit sequence,
 +   suitable for bool vector words, GC mark bits, etc.  Normally it is size_t
 +   for speed, but it is unsigned char on weird platforms.  */
 +#if BOOL_VECTOR_BITS_PER_CHAR == CHAR_BIT
 +typedef size_t bits_word;
 +# define BITS_WORD_MAX SIZE_MAX
 +enum { BITS_PER_BITS_WORD = CHAR_BIT * sizeof (bits_word) };
 +#else
 +typedef unsigned char bits_word;
 +# define BITS_WORD_MAX ((1u << BOOL_VECTOR_BITS_PER_CHAR) - 1)
 +enum { BITS_PER_BITS_WORD = BOOL_VECTOR_BITS_PER_CHAR };
 +#endif
 +verify (BITS_WORD_MAX >> (BITS_PER_BITS_WORD - 1) == 1);
 +
 +/* Number of bits in some machine integer types.  */
 +enum
 +  {
 +    BITS_PER_CHAR      = CHAR_BIT,
 +    BITS_PER_SHORT     = CHAR_BIT * sizeof (short),
 +    BITS_PER_LONG      = CHAR_BIT * sizeof (long int),
 +    BITS_PER_EMACS_INT = CHAR_BIT * sizeof (EMACS_INT)
 +  };
 +
 +/* printmax_t and uprintmax_t are types for printing large integers.
 +   These are the widest integers that are supported for printing.
 +   pMd etc. are conversions for printing them.
 +   On C99 hosts, there's no problem, as even the widest integers work.
 +   Fall back on EMACS_INT on pre-C99 hosts.  */
 +#ifdef PRIdMAX
 +typedef intmax_t printmax_t;
 +typedef uintmax_t uprintmax_t;
 +# define pMd PRIdMAX
 +# define pMu PRIuMAX
 +#else
 +typedef EMACS_INT printmax_t;
 +typedef EMACS_UINT uprintmax_t;
 +# define pMd pI"d"
 +# define pMu pI"u"
 +#endif
 +
 +/* Use pD to format ptrdiff_t values, which suffice for indexes into
 +   buffers and strings.  Emacs never allocates objects larger than
 +   PTRDIFF_MAX bytes, as they cause problems with pointer subtraction.
 +   In C99, pD can always be "t"; configure it here for the sake of
 +   pre-C99 libraries such as glibc 2.0 and Solaris 8.  */
 +#if PTRDIFF_MAX == INT_MAX
 +# define pD ""
 +#elif PTRDIFF_MAX == LONG_MAX
 +# define pD "l"
 +#elif PTRDIFF_MAX == LLONG_MAX
 +# define pD "ll"
 +#else
 +# define pD "t"
 +#endif
 +
 +/* Extra internal type checking?  */
 +
 +/* Define Emacs versions of <assert.h>'s 'assert (COND)' and <verify.h>'s
 +   'assume (COND)'.  COND should be free of side effects, as it may or
 +   may not be evaluated.
 +
 +   'eassert (COND)' checks COND at runtime if ENABLE_CHECKING is
 +   defined and suppress_checking is false, and does nothing otherwise.
 +   Emacs dies if COND is checked and is false.  The suppress_checking
 +   variable is initialized to 0 in alloc.c.  Set it to 1 using a
 +   debugger to temporarily disable aborting on detected internal
 +   inconsistencies or error conditions.
 +
 +   In some cases, a good compiler may be able to optimize away the
 +   eassert macro even if ENABLE_CHECKING is true, e.g., if XSTRING (x)
 +   uses eassert to test STRINGP (x), but a particular use of XSTRING
 +   is invoked only after testing that STRINGP (x) is true, making the
 +   test redundant.
 +
 +   eassume is like eassert except that it also causes the compiler to
 +   assume that COND is true afterwards, regardless of whether runtime
 +   checking is enabled.  This can improve performance in some cases,
 +   though it can degrade performance in others.  It's often suboptimal
 +   for COND to call external functions or access volatile storage.  */
 +
 +#ifndef ENABLE_CHECKING
 +# define eassert(cond) ((void) (false && (cond))) /* Check COND compiles.  */
 +# define eassume(cond) assume (cond)
 +#else /* ENABLE_CHECKING */
 +
 +extern _Noreturn void die (const char *, const char *, int);
 +
 +extern bool suppress_checking EXTERNALLY_VISIBLE;
 +
 +# define eassert(cond)                                                \
 +   (suppress_checking || (cond)                               \
 +    ? (void) 0                                                        \
 +    : die (# cond, __FILE__, __LINE__))
 +# define eassume(cond)                                                \
 +   (suppress_checking                                         \
 +    ? assume (cond)                                           \
 +    : (cond)                                                  \
 +    ? (void) 0                                                        \
 +    : die (# cond, __FILE__, __LINE__))
 +#endif /* ENABLE_CHECKING */
 +
 +\f
 +/* Use the configure flag --enable-check-lisp-object-type to make
 +   Lisp_Object use a struct type instead of the default int.  The flag
 +   causes CHECK_LISP_OBJECT_TYPE to be defined.  */
 +
 +/***** Select the tagging scheme.  *****/
 +/* The following option controls the tagging scheme:
 +   - USE_LSB_TAG means that we can assume the least 3 bits of pointers are
 +     always 0, and we can thus use them to hold tag bits, without
 +     restricting our addressing space.
 +
 +   If ! USE_LSB_TAG, then use the top 3 bits for tagging, thus
 +   restricting our possible address range.
 +
 +   USE_LSB_TAG not only requires the least 3 bits of pointers returned by
 +   malloc to be 0 but also needs to be able to impose a mult-of-8 alignment
 +   on the few static Lisp_Objects used: lispsym, all the defsubr, and
 +   the two special buffers buffer_defaults and buffer_local_symbols.  */
 +
 +enum Lisp_Bits
 +  {
 +    /* 2**GCTYPEBITS.  This must be a macro that expands to a literal
 +       integer constant, for MSVC.  */
 +#define GCALIGNMENT 8
 +
 +    /* Number of bits in a Lisp_Object value, not counting the tag.  */
 +    VALBITS = BITS_PER_EMACS_INT - GCTYPEBITS,
 +
 +    /* Number of bits in a Lisp fixnum tag.  */
 +    INTTYPEBITS = GCTYPEBITS - 1,
 +
 +    /* Number of bits in a Lisp fixnum value, not counting the tag.  */
 +    FIXNUM_BITS = VALBITS + 1
 +  };
 +
 +#if GCALIGNMENT != 1 << GCTYPEBITS
 +# error "GCALIGNMENT and GCTYPEBITS are inconsistent"
 +#endif
 +
 +/* The maximum value that can be stored in a EMACS_INT, assuming all
 +   bits other than the type bits contribute to a nonnegative signed value.
 +   This can be used in #if, e.g., '#if USB_TAG' below expands to an
 +   expression involving VAL_MAX.  */
 +#define VAL_MAX (EMACS_INT_MAX >> (GCTYPEBITS - 1))
 +
 +/* Whether the least-significant bits of an EMACS_INT contain the tag.
 +   On hosts where pointers-as-ints do not exceed VAL_MAX / 2, USE_LSB_TAG is:
 +    a. unnecessary, because the top bits of an EMACS_INT are unused, and
 +    b. slower, because it typically requires extra masking.
 +   So, USE_LSB_TAG is true only on hosts where it might be useful.  */
 +DEFINE_GDB_SYMBOL_BEGIN (bool, USE_LSB_TAG)
 +#define USE_LSB_TAG (VAL_MAX / 2 < INTPTR_MAX)
 +DEFINE_GDB_SYMBOL_END (USE_LSB_TAG)
 +
 +#if !USE_LSB_TAG && !defined WIDE_EMACS_INT
 +# error "USE_LSB_TAG not supported on this platform; please report this." \
 +      "Try 'configure --with-wide-int' to work around the problem."
 +error !;
 +#endif
 +
 +#ifndef alignas
 +# define alignas(alignment) /* empty */
 +# if USE_LSB_TAG
 +#  error "USE_LSB_TAG requires alignas"
 +# endif
 +#endif
 +
 +#ifdef HAVE_STRUCT_ATTRIBUTE_ALIGNED
 +# define GCALIGNED __attribute__ ((aligned (GCALIGNMENT)))
 +#else
 +# define GCALIGNED /* empty */
 +#endif
 +
 +/* Some operations are so commonly executed that they are implemented
 +   as macros, not functions, because otherwise runtime performance would
 +   suffer too much when compiling with GCC without optimization.
 +   There's no need to inline everything, just the operations that
 +   would otherwise cause a serious performance problem.
 +
 +   For each such operation OP, define a macro lisp_h_OP that contains
 +   the operation's implementation.  That way, OP can be implemented
 +   via a macro definition like this:
 +
 +     #define OP(x) lisp_h_OP (x)
 +
 +   and/or via a function definition like this:
 +
 +     LISP_MACRO_DEFUN (OP, Lisp_Object, (Lisp_Object x), (x))
 +
 +   which macro-expands to this:
 +
 +     Lisp_Object (OP) (Lisp_Object x) { return lisp_h_OP (x); }
 +
 +   without worrying about the implementations diverging, since
 +   lisp_h_OP defines the actual implementation.  The lisp_h_OP macros
 +   are intended to be private to this include file, and should not be
 +   used elsewhere.
 +
 +   FIXME: Remove the lisp_h_OP macros, and define just the inline OP
 +   functions, once most developers have access to GCC 4.8 or later and
 +   can use "gcc -Og" to debug.  Maybe in the year 2016.  See
 +   Bug#11935.
 +
 +   Commentary for these macros can be found near their corresponding
 +   functions, below.  */
 +
 +#if CHECK_LISP_OBJECT_TYPE
 +# define lisp_h_XLI(o) ((o).i)
 +# define lisp_h_XIL(i) ((Lisp_Object) { i })
 +#else
 +# define lisp_h_XLI(o) (o)
 +# define lisp_h_XIL(i) (i)
 +#endif
 +#define lisp_h_CHECK_LIST_CONS(x, y) CHECK_TYPE (CONSP (x), Qlistp, y)
 +#define lisp_h_CHECK_NUMBER(x) CHECK_TYPE (INTEGERP (x), Qintegerp, x)
 +#define lisp_h_CHECK_SYMBOL(x) CHECK_TYPE (SYMBOLP (x), Qsymbolp, x)
 +#define lisp_h_CHECK_TYPE(ok, predicate, x) \
 +   ((ok) ? (void) 0 : (void) wrong_type_argument (predicate, x))
 +#define lisp_h_CONSP(x) (XTYPE (x) == Lisp_Cons)
 +#define lisp_h_EQ(x, y) (XLI (x) == XLI (y))
 +#define lisp_h_FLOATP(x) (XTYPE (x) == Lisp_Float)
 +#define lisp_h_INTEGERP(x) ((XTYPE (x) & (Lisp_Int0 | ~Lisp_Int1)) == Lisp_Int0)
 +#define lisp_h_MARKERP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Marker)
 +#define lisp_h_MISCP(x) (XTYPE (x) == Lisp_Misc)
 +#define lisp_h_NILP(x) EQ (x, Qnil)
 +#define lisp_h_SET_SYMBOL_VAL(sym, v) \
 +   (eassert ((sym)->redirect == SYMBOL_PLAINVAL), (sym)->val.value = (v))
 +#define lisp_h_SYMBOL_CONSTANT_P(sym) (XSYMBOL (sym)->constant)
 +#define lisp_h_SYMBOL_VAL(sym) \
 +   (eassert ((sym)->redirect == SYMBOL_PLAINVAL), (sym)->val.value)
 +#define lisp_h_SYMBOLP(x) (XTYPE (x) == Lisp_Symbol)
 +#define lisp_h_VECTORLIKEP(x) (XTYPE (x) == Lisp_Vectorlike)
 +#define lisp_h_XCAR(c) XCONS (c)->car
 +#define lisp_h_XCDR(c) XCONS (c)->u.cdr
 +#define lisp_h_XCONS(a) \
 +   (eassert (CONSP (a)), (struct Lisp_Cons *) XUNTAG (a, Lisp_Cons))
 +#define lisp_h_XHASH(a) XUINT (a)
 +#define lisp_h_XPNTR(a) \
 +   (SYMBOLP (a) ? XSYMBOL (a) : (void *) ((intptr_t) (XLI (a) & VALMASK)))
 +#ifndef GC_CHECK_CONS_LIST
 +# define lisp_h_check_cons_list() ((void) 0)
 +#endif
 +#if USE_LSB_TAG
 +# define lisp_h_make_number(n) \
 +    XIL ((EMACS_INT) (((EMACS_UINT) (n) << INTTYPEBITS) + Lisp_Int0))
 +# define lisp_h_XFASTINT(a) XINT (a)
 +# define lisp_h_XINT(a) (XLI (a) >> INTTYPEBITS)
 +# define lisp_h_XSYMBOL(a) \
 +    (eassert (SYMBOLP (a)), \
 +     (struct Lisp_Symbol *) ((uintptr_t) XLI (a) - Lisp_Symbol \
 +                           + (char *) lispsym))
 +# define lisp_h_XTYPE(a) ((enum Lisp_Type) (XLI (a) & ~VALMASK))
 +# define lisp_h_XUNTAG(a, type) ((void *) (intptr_t) (XLI (a) - (type)))
 +#endif
 +
 +/* When compiling via gcc -O0, define the key operations as macros, as
 +   Emacs is too slow otherwise.  To disable this optimization, compile
 +   with -DINLINING=false.  */
 +#if (defined __NO_INLINE__ \
 +     && ! defined __OPTIMIZE__ && ! defined __OPTIMIZE_SIZE__ \
 +     && ! (defined INLINING && ! INLINING))
 +# define XLI(o) lisp_h_XLI (o)
 +# define XIL(i) lisp_h_XIL (i)
 +# define CHECK_LIST_CONS(x, y) lisp_h_CHECK_LIST_CONS (x, y)
 +# define CHECK_NUMBER(x) lisp_h_CHECK_NUMBER (x)
 +# define CHECK_SYMBOL(x) lisp_h_CHECK_SYMBOL (x)
 +# define CHECK_TYPE(ok, predicate, x) lisp_h_CHECK_TYPE (ok, predicate, x)
 +# define CONSP(x) lisp_h_CONSP (x)
 +# define EQ(x, y) lisp_h_EQ (x, y)
 +# define FLOATP(x) lisp_h_FLOATP (x)
 +# define INTEGERP(x) lisp_h_INTEGERP (x)
 +# define MARKERP(x) lisp_h_MARKERP (x)
 +# define MISCP(x) lisp_h_MISCP (x)
 +# define NILP(x) lisp_h_NILP (x)
 +# define SET_SYMBOL_VAL(sym, v) lisp_h_SET_SYMBOL_VAL (sym, v)
 +# define SYMBOL_CONSTANT_P(sym) lisp_h_SYMBOL_CONSTANT_P (sym)
 +# define SYMBOL_VAL(sym) lisp_h_SYMBOL_VAL (sym)
 +# define SYMBOLP(x) lisp_h_SYMBOLP (x)
 +# define VECTORLIKEP(x) lisp_h_VECTORLIKEP (x)
 +# define XCAR(c) lisp_h_XCAR (c)
 +# define XCDR(c) lisp_h_XCDR (c)
 +# define XCONS(a) lisp_h_XCONS (a)
 +# define XHASH(a) lisp_h_XHASH (a)
 +# define XPNTR(a) lisp_h_XPNTR (a)
 +# ifndef GC_CHECK_CONS_LIST
 +#  define check_cons_list() lisp_h_check_cons_list ()
 +# endif
 +# if USE_LSB_TAG
 +#  define make_number(n) lisp_h_make_number (n)
 +#  define XFASTINT(a) lisp_h_XFASTINT (a)
 +#  define XINT(a) lisp_h_XINT (a)
 +#  define XSYMBOL(a) lisp_h_XSYMBOL (a)
 +#  define XTYPE(a) lisp_h_XTYPE (a)
 +#  define XUNTAG(a, type) lisp_h_XUNTAG (a, type)
 +# endif
 +#endif
 +
 +/* Define NAME as a lisp.h inline function that returns TYPE and has
 +   arguments declared as ARGDECLS and passed as ARGS.  ARGDECLS and
 +   ARGS should be parenthesized.  Implement the function by calling
 +   lisp_h_NAME ARGS.  */
 +#define LISP_MACRO_DEFUN(name, type, argdecls, args) \
 +  INLINE type (name) argdecls { return lisp_h_##name args; }
 +
 +/* like LISP_MACRO_DEFUN, except NAME returns void.  */
 +#define LISP_MACRO_DEFUN_VOID(name, argdecls, args) \
 +  INLINE void (name) argdecls { lisp_h_##name args; }
 +
 +
 +/* Define the fundamental Lisp data structures.  */
 +
 +/* This is the set of Lisp data types.  If you want to define a new
 +   data type, read the comments after Lisp_Fwd_Type definition
 +   below.  */
 +
 +/* Lisp integers use 2 tags, to give them one extra bit, thus
 +   extending their range from, e.g., -2^28..2^28-1 to -2^29..2^29-1.  */
 +#define INTMASK (EMACS_INT_MAX >> (INTTYPEBITS - 1))
 +#define case_Lisp_Int case Lisp_Int0: case Lisp_Int1
 +
 +/* Idea stolen from GDB.  Pedantic GCC complains about enum bitfields,
 +   MSVC doesn't support them, and xlc and Oracle Studio c99 complain
 +   vociferously about them.  */
 +#if (defined __STRICT_ANSI__ || defined _MSC_VER || defined __IBMC__ \
 +     || (defined __SUNPRO_C && __STDC__))
 +#define ENUM_BF(TYPE) unsigned int
 +#else
 +#define ENUM_BF(TYPE) enum TYPE
 +#endif
 +
 +
 +enum Lisp_Type
 +  {
 +    /* Symbol.  XSYMBOL (object) points to a struct Lisp_Symbol.  */
 +    Lisp_Symbol = 0,
 +
 +    /* Miscellaneous.  XMISC (object) points to a union Lisp_Misc,
 +       whose first member indicates the subtype.  */
 +    Lisp_Misc = 1,
 +
 +    /* Integer.  XINT (obj) is the integer value.  */
 +    Lisp_Int0 = 2,
 +    Lisp_Int1 = USE_LSB_TAG ? 6 : 3,
 +
 +    /* String.  XSTRING (object) points to a struct Lisp_String.
 +       The length of the string, and its contents, are stored therein.  */
 +    Lisp_String = 4,
 +
 +    /* Vector of Lisp objects, or something resembling it.
 +       XVECTOR (object) points to a struct Lisp_Vector, which contains
 +       the size and contents.  The size field also contains the type
 +       information, if it's not a real vector object.  */
 +    Lisp_Vectorlike = 5,
 +
 +    /* Cons.  XCONS (object) points to a struct Lisp_Cons.  */
 +    Lisp_Cons = USE_LSB_TAG ? 3 : 6,
 +
 +    Lisp_Float = 7
 +  };
 +
 +/* This is the set of data types that share a common structure.
 +   The first member of the structure is a type code from this set.
 +   The enum values are arbitrary, but we'll use large numbers to make it
 +   more likely that we'll spot the error if a random word in memory is
 +   mistakenly interpreted as a Lisp_Misc.  */
 +enum Lisp_Misc_Type
 +  {
 +    Lisp_Misc_Free = 0x5eab,
 +    Lisp_Misc_Marker,
 +    Lisp_Misc_Overlay,
 +    Lisp_Misc_Save_Value,
 +    Lisp_Misc_Finalizer,
 +    /* Currently floats are not a misc type,
 +       but let's define this in case we want to change that.  */
 +    Lisp_Misc_Float,
 +    /* This is not a type code.  It is for range checking.  */
 +    Lisp_Misc_Limit
 +  };
 +
 +/* These are the types of forwarding objects used in the value slot
 +   of symbols for special built-in variables whose value is stored in
 +   C variables.  */
 +enum Lisp_Fwd_Type
 +  {
 +    Lisp_Fwd_Int,             /* Fwd to a C `int' variable.  */
 +    Lisp_Fwd_Bool,            /* Fwd to a C boolean var.  */
 +    Lisp_Fwd_Obj,             /* Fwd to a C Lisp_Object variable.  */
 +    Lisp_Fwd_Buffer_Obj,      /* Fwd to a Lisp_Object field of buffers.  */
 +    Lisp_Fwd_Kboard_Obj               /* Fwd to a Lisp_Object field of kboards.  */
 +  };
 +
 +/* If you want to define a new Lisp data type, here are some
 +   instructions.  See the thread at
 +   http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00561.html
 +   for more info.
 +
 +   First, there are already a couple of Lisp types that can be used if
 +   your new type does not need to be exposed to Lisp programs nor
 +   displayed to users.  These are Lisp_Save_Value, a Lisp_Misc
 +   subtype; and PVEC_OTHER, a kind of vectorlike object.  The former
 +   is suitable for temporarily stashing away pointers and integers in
 +   a Lisp object.  The latter is useful for vector-like Lisp objects
 +   that need to be used as part of other objects, but which are never
 +   shown to users or Lisp code (search for PVEC_OTHER in xterm.c for
 +   an example).
 +
 +   These two types don't look pretty when printed, so they are
 +   unsuitable for Lisp objects that can be exposed to users.
 +
 +   To define a new data type, add one more Lisp_Misc subtype or one
 +   more pseudovector subtype.  Pseudovectors are more suitable for
 +   objects with several slots that need to support fast random access,
 +   while Lisp_Misc types are for everything else.  A pseudovector object
 +   provides one or more slots for Lisp objects, followed by struct
 +   members that are accessible only from C.  A Lisp_Misc object is a
 +   wrapper for a C struct that can contain anything you like.
 +
 +   Explicit freeing is discouraged for Lisp objects in general.  But if
 +   you really need to exploit this, use Lisp_Misc (check free_misc in
 +   alloc.c to see why).  There is no way to free a vectorlike object.
 +
 +   To add a new pseudovector type, extend the pvec_type enumeration;
 +   to add a new Lisp_Misc, extend the Lisp_Misc_Type enumeration.
 +
 +   For a Lisp_Misc, you will also need to add your entry to union
 +   Lisp_Misc (but make sure the first word has the same structure as
 +   the others, starting with a 16-bit member of the Lisp_Misc_Type
 +   enumeration and a 1-bit GC markbit) and make sure the overall size
 +   of the union is not increased by your addition.
 +
 +   For a new pseudovector, it's highly desirable to limit the size
 +   of your data type by VBLOCK_BYTES_MAX bytes (defined in alloc.c).
 +   Otherwise you will need to change sweep_vectors (also in alloc.c).
 +
 +   Then you will need to add switch branches in print.c (in
 +   print_object, to print your object, and possibly also in
 +   print_preprocess) and to alloc.c, to mark your object (in
 +   mark_object) and to free it (in gc_sweep).  The latter is also the
 +   right place to call any code specific to your data type that needs
 +   to run when the object is recycled -- e.g., free any additional
 +   resources allocated for it that are not Lisp objects.  You can even
 +   make a pointer to the function that frees the resources a slot in
 +   your object -- this way, the same object could be used to represent
 +   several disparate C structures.  */
 +
 +#ifdef CHECK_LISP_OBJECT_TYPE
 +
 +typedef struct { EMACS_INT i; } Lisp_Object;
 +
 +#define LISP_INITIALLY(i) {i}
 +
 +#undef CHECK_LISP_OBJECT_TYPE
 +enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE = true };
 +#else /* CHECK_LISP_OBJECT_TYPE */
 +
 +/* If a struct type is not wanted, define Lisp_Object as just a number.  */
 +
 +typedef EMACS_INT Lisp_Object;
 +#define LISP_INITIALLY(i) (i)
 +enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE = false };
 +#endif /* CHECK_LISP_OBJECT_TYPE */
 +
 +#define LISP_INITIALLY_ZERO LISP_INITIALLY (0)
 +\f
 +/* Forward declarations.  */
 +
 +/* Defined in this file.  */
 +union Lisp_Fwd;
 +INLINE bool BOOL_VECTOR_P (Lisp_Object);
 +INLINE bool BUFFER_OBJFWDP (union Lisp_Fwd *);
 +INLINE bool BUFFERP (Lisp_Object);
 +INLINE bool CHAR_TABLE_P (Lisp_Object);
 +INLINE Lisp_Object CHAR_TABLE_REF_ASCII (Lisp_Object, ptrdiff_t);
 +INLINE bool (CONSP) (Lisp_Object);
 +INLINE bool (FLOATP) (Lisp_Object);
 +INLINE bool functionp (Lisp_Object);
 +INLINE bool (INTEGERP) (Lisp_Object);
 +INLINE bool (MARKERP) (Lisp_Object);
 +INLINE bool (MISCP) (Lisp_Object);
 +INLINE bool (NILP) (Lisp_Object);
 +INLINE bool OVERLAYP (Lisp_Object);
 +INLINE bool PROCESSP (Lisp_Object);
 +INLINE bool PSEUDOVECTORP (Lisp_Object, int);
 +INLINE bool SAVE_VALUEP (Lisp_Object);
 +INLINE bool FINALIZERP (Lisp_Object);
 +INLINE void set_sub_char_table_contents (Lisp_Object, ptrdiff_t,
 +                                            Lisp_Object);
 +INLINE bool STRINGP (Lisp_Object);
 +INLINE bool SUB_CHAR_TABLE_P (Lisp_Object);
 +INLINE bool SUBRP (Lisp_Object);
 +INLINE bool (SYMBOLP) (Lisp_Object);
 +INLINE bool (VECTORLIKEP) (Lisp_Object);
 +INLINE bool WINDOWP (Lisp_Object);
 +INLINE bool TERMINALP (Lisp_Object);
 +INLINE struct Lisp_Save_Value *XSAVE_VALUE (Lisp_Object);
 +INLINE struct Lisp_Finalizer *XFINALIZER (Lisp_Object);
 +INLINE struct Lisp_Symbol *(XSYMBOL) (Lisp_Object);
 +INLINE void *(XUNTAG) (Lisp_Object, int);
 +
 +/* Defined in chartab.c.  */
 +extern Lisp_Object char_table_ref (Lisp_Object, int);
 +extern void char_table_set (Lisp_Object, int, Lisp_Object);
 +
 +/* Defined in data.c.  */
 +extern _Noreturn Lisp_Object wrong_type_argument (Lisp_Object, Lisp_Object);
 +extern _Noreturn void wrong_choice (Lisp_Object, Lisp_Object);
 +
 +/* Defined in emacs.c.  */
 +extern bool might_dump;
 +/* True means Emacs has already been initialized.
 +   Used during startup to detect startup of dumped Emacs.  */
 +extern bool initialized;
 +
 +/* Defined in floatfns.c.  */
 +extern double extract_float (Lisp_Object);
 +
 +\f
 +/* Interned state of a symbol.  */
 +
 +enum symbol_interned
 +{
 +  SYMBOL_UNINTERNED = 0,
 +  SYMBOL_INTERNED = 1,
 +  SYMBOL_INTERNED_IN_INITIAL_OBARRAY = 2
 +};
 +
 +enum symbol_redirect
 +{
 +  SYMBOL_PLAINVAL  = 4,
 +  SYMBOL_VARALIAS  = 1,
 +  SYMBOL_LOCALIZED = 2,
 +  SYMBOL_FORWARDED = 3
 +};
 +
 +struct Lisp_Symbol
 +{
 +  bool_bf gcmarkbit : 1;
 +
 +  /* Indicates where the value can be found:
 +     0 : it's a plain var, the value is in the `value' field.
 +     1 : it's a varalias, the value is really in the `alias' symbol.
 +     2 : it's a localized var, the value is in the `blv' object.
 +     3 : it's a forwarding variable, the value is in `forward'.  */
 +  ENUM_BF (symbol_redirect) redirect : 3;
 +
 +  /* Non-zero means symbol is constant, i.e. changing its value
 +     should signal an error.  If the value is 3, then the var
 +     can be changed, but only by `defconst'.  */
 +  unsigned constant : 2;
 +
 +  /* Interned state of the symbol.  This is an enumerator from
 +     enum symbol_interned.  */
 +  unsigned interned : 2;
 +
 +  /* True means that this variable has been explicitly declared
 +     special (with `defvar' etc), and shouldn't be lexically bound.  */
 +  bool_bf declared_special : 1;
 +
 +  /* True if pointed to from purespace and hence can't be GC'd.  */
 +  bool_bf pinned : 1;
 +
 +  /* The symbol's name, as a Lisp string.  */
 +  Lisp_Object name;
 +
 +  /* Value of the symbol or Qunbound if unbound.  Which alternative of the
 +     union is used depends on the `redirect' field above.  */
 +  union {
 +    Lisp_Object value;
 +    struct Lisp_Symbol *alias;
 +    struct Lisp_Buffer_Local_Value *blv;
 +    union Lisp_Fwd *fwd;
 +  } val;
 +
 +  /* Function value of the symbol or Qnil if not fboundp.  */
 +  Lisp_Object function;
 +
 +  /* The symbol's property list.  */
 +  Lisp_Object plist;
 +
 +  /* Next symbol in obarray bucket, if the symbol is interned.  */
 +  struct Lisp_Symbol *next;
 +};
 +
 +/* Declare a Lisp-callable function.  The MAXARGS parameter has the same
 +   meaning as in the DEFUN macro, and is used to construct a prototype.  */
 +/* We can use the same trick as in the DEFUN macro to generate the
 +   appropriate prototype.  */
 +#define EXFUN(fnname, maxargs) \
 +  extern Lisp_Object fnname DEFUN_ARGS_ ## maxargs
 +
 +/* Note that the weird token-substitution semantics of ANSI C makes
 +   this work for MANY and UNEVALLED.  */
 +#define DEFUN_ARGS_MANY               (ptrdiff_t, Lisp_Object *)
 +#define DEFUN_ARGS_UNEVALLED  (Lisp_Object)
 +#define DEFUN_ARGS_0  (void)
 +#define DEFUN_ARGS_1  (Lisp_Object)
 +#define DEFUN_ARGS_2  (Lisp_Object, Lisp_Object)
 +#define DEFUN_ARGS_3  (Lisp_Object, Lisp_Object, Lisp_Object)
 +#define DEFUN_ARGS_4  (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object)
 +#define DEFUN_ARGS_5  (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, \
 +                       Lisp_Object)
 +#define DEFUN_ARGS_6  (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, \
 +                       Lisp_Object, Lisp_Object)
 +#define DEFUN_ARGS_7  (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, \
 +                       Lisp_Object, Lisp_Object, Lisp_Object)
 +#define DEFUN_ARGS_8  (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, \
 +                       Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object)
 +
 +/* Yield an integer that contains TAG along with PTR.  */
 +#define TAG_PTR(tag, ptr) \
 +  ((USE_LSB_TAG ? (tag) : (EMACS_UINT) (tag) << VALBITS) + (uintptr_t) (ptr))
 +
 +/* Yield an integer that contains a symbol tag along with OFFSET.
 +   OFFSET should be the offset in bytes from 'lispsym' to the symbol.  */
 +#define TAG_SYMOFFSET(offset)                             \
 +  TAG_PTR (Lisp_Symbol,                                           \
 +         ((uintptr_t) (offset) >> (USE_LSB_TAG ? 0 : GCTYPEBITS)))
 +
 +/* XLI_BUILTIN_LISPSYM (iQwhatever) is equivalent to
 +   XLI (builtin_lisp_symbol (Qwhatever)),
 +   except the former expands to an integer constant expression.  */
 +#define XLI_BUILTIN_LISPSYM(iname) TAG_SYMOFFSET ((iname) * sizeof *lispsym)
 +
 +/* Declare extern constants for Lisp symbols.  These can be helpful
 +   when using a debugger like GDB, on older platforms where the debug
 +   format does not represent C macros.  */
 +#define DEFINE_LISP_SYMBOL(name) \
 +  DEFINE_GDB_SYMBOL_BEGIN (Lisp_Object, name) \
 +  DEFINE_GDB_SYMBOL_END (LISP_INITIALLY (XLI_BUILTIN_LISPSYM (i##name)))
 +
 +/* By default, define macros for Qt, etc., as this leads to a bit
 +   better performance in the core Emacs interpreter.  A plugin can
 +   define DEFINE_NON_NIL_Q_SYMBOL_MACROS to be false, to be portable to
 +   other Emacs instances that assign different values to Qt, etc.  */
 +#ifndef DEFINE_NON_NIL_Q_SYMBOL_MACROS
 +# define DEFINE_NON_NIL_Q_SYMBOL_MACROS true
 +#endif
 +
 +#include "globals.h"
 +
 +/* Convert a Lisp_Object to the corresponding EMACS_INT and vice versa.
 +   At the machine level, these operations are no-ops.  */
 +LISP_MACRO_DEFUN (XLI, EMACS_INT, (Lisp_Object o), (o))
 +LISP_MACRO_DEFUN (XIL, Lisp_Object, (EMACS_INT i), (i))
 +
 +/* In the size word of a vector, this bit means the vector has been marked.  */
 +
 +DEFINE_GDB_SYMBOL_BEGIN (ptrdiff_t, ARRAY_MARK_FLAG)
 +# define ARRAY_MARK_FLAG PTRDIFF_MIN
 +DEFINE_GDB_SYMBOL_END (ARRAY_MARK_FLAG)
 +
 +/* In the size word of a struct Lisp_Vector, this bit means it's really
 +   some other vector-like object.  */
 +DEFINE_GDB_SYMBOL_BEGIN (ptrdiff_t, PSEUDOVECTOR_FLAG)
 +# define PSEUDOVECTOR_FLAG (PTRDIFF_MAX - PTRDIFF_MAX / 2)
 +DEFINE_GDB_SYMBOL_END (PSEUDOVECTOR_FLAG)
 +
 +/* In a pseudovector, the size field actually contains a word with one
 +   PSEUDOVECTOR_FLAG bit set, and one of the following values extracted
 +   with PVEC_TYPE_MASK to indicate the actual type.  */
 +enum pvec_type
 +{
 +  PVEC_NORMAL_VECTOR,
 +  PVEC_FREE,
 +  PVEC_PROCESS,
 +  PVEC_FRAME,
 +  PVEC_WINDOW,
 +  PVEC_BOOL_VECTOR,
 +  PVEC_BUFFER,
 +  PVEC_HASH_TABLE,
 +  PVEC_TERMINAL,
 +  PVEC_WINDOW_CONFIGURATION,
 +  PVEC_SUBR,
 +  PVEC_OTHER,
 +  /* These should be last, check internal_equal to see why.  */
 +  PVEC_COMPILED,
 +  PVEC_CHAR_TABLE,
 +  PVEC_SUB_CHAR_TABLE,
 +  PVEC_FONT /* Should be last because it's used for range checking.  */
 +};
 +
 +enum More_Lisp_Bits
 +  {
 +    /* For convenience, we also store the number of elements in these bits.
 +       Note that this size is not necessarily the memory-footprint size, but
 +       only the number of Lisp_Object fields (that need to be traced by GC).
 +       The distinction is used, e.g., by Lisp_Process, which places extra
 +       non-Lisp_Object fields at the end of the structure.  */
 +    PSEUDOVECTOR_SIZE_BITS = 12,
 +    PSEUDOVECTOR_SIZE_MASK = (1 << PSEUDOVECTOR_SIZE_BITS) - 1,
 +
 +    /* To calculate the memory footprint of the pseudovector, it's useful
 +       to store the size of non-Lisp area in word_size units here.  */
 +    PSEUDOVECTOR_REST_BITS = 12,
 +    PSEUDOVECTOR_REST_MASK = (((1 << PSEUDOVECTOR_REST_BITS) - 1)
 +                            << PSEUDOVECTOR_SIZE_BITS),
 +
 +    /* Used to extract pseudovector subtype information.  */
 +    PSEUDOVECTOR_AREA_BITS = PSEUDOVECTOR_SIZE_BITS + PSEUDOVECTOR_REST_BITS,
 +    PVEC_TYPE_MASK = 0x3f << PSEUDOVECTOR_AREA_BITS
 +  };
 +\f
 +/* These functions extract various sorts of values from a Lisp_Object.
 +   For example, if tem is a Lisp_Object whose type is Lisp_Cons,
 +   XCONS (tem) is the struct Lisp_Cons * pointing to the memory for
 +   that cons.  */
 +
 +/* Mask for the value (as opposed to the type bits) of a Lisp object.  */
 +DEFINE_GDB_SYMBOL_BEGIN (EMACS_INT, VALMASK)
 +# define VALMASK (USE_LSB_TAG ? - (1 << GCTYPEBITS) : VAL_MAX)
 +DEFINE_GDB_SYMBOL_END (VALMASK)
 +
 +/* Largest and smallest representable fixnum values.  These are the C
 +   values.  They are macros for use in static initializers.  */
 +#define MOST_POSITIVE_FIXNUM (EMACS_INT_MAX >> INTTYPEBITS)
 +#define MOST_NEGATIVE_FIXNUM (-1 - MOST_POSITIVE_FIXNUM)
 +
 +#if USE_LSB_TAG
 +
 +LISP_MACRO_DEFUN (make_number, Lisp_Object, (EMACS_INT n), (n))
 +LISP_MACRO_DEFUN (XINT, EMACS_INT, (Lisp_Object a), (a))
 +LISP_MACRO_DEFUN (XFASTINT, EMACS_INT, (Lisp_Object a), (a))
 +LISP_MACRO_DEFUN (XSYMBOL, struct Lisp_Symbol *, (Lisp_Object a), (a))
 +LISP_MACRO_DEFUN (XTYPE, enum Lisp_Type, (Lisp_Object a), (a))
 +LISP_MACRO_DEFUN (XUNTAG, void *, (Lisp_Object a, int type), (a, type))
 +
 +#else /* ! USE_LSB_TAG */
 +
 +/* Although compiled only if ! USE_LSB_TAG, the following functions
 +   also work when USE_LSB_TAG; this is to aid future maintenance when
 +   the lisp_h_* macros are eventually removed.  */
 +
 +/* Make a Lisp integer representing the value of the low order
 +   bits of N.  */
 +INLINE Lisp_Object
 +make_number (EMACS_INT n)
 +{
 +  EMACS_INT int0 = Lisp_Int0;
 +  if (USE_LSB_TAG)
 +    {
 +      EMACS_UINT u = n;
 +      n = u << INTTYPEBITS;
 +      n += int0;
 +    }
 +  else
 +    {
 +      n &= INTMASK;
 +      n += (int0 << VALBITS);
 +    }
 +  return XIL (n);
 +}
 +
 +/* Extract A's value as a signed integer.  */
 +INLINE EMACS_INT
 +XINT (Lisp_Object a)
 +{
 +  EMACS_INT i = XLI (a);
 +  if (! USE_LSB_TAG)
 +    {
 +      EMACS_UINT u = i;
 +      i = u << INTTYPEBITS;
 +    }
 +  return i >> INTTYPEBITS;
 +}
 +
 +/* Like XINT (A), but may be faster.  A must be nonnegative.
 +   If ! USE_LSB_TAG, this takes advantage of the fact that Lisp
 +   integers have zero-bits in their tags.  */
 +INLINE EMACS_INT
 +XFASTINT (Lisp_Object a)
 +{
 +  EMACS_INT int0 = Lisp_Int0;
 +  EMACS_INT n = USE_LSB_TAG ? XINT (a) : XLI (a) - (int0 << VALBITS);
 +  eassert (0 <= n);
 +  return n;
 +}
 +
 +/* Extract A's value as a symbol.  */
 +INLINE struct Lisp_Symbol *
 +XSYMBOL (Lisp_Object a)
 +{
 +  uintptr_t i = (uintptr_t) XUNTAG (a, Lisp_Symbol);
 +  if (! USE_LSB_TAG)
 +    i <<= GCTYPEBITS;
 +  void *p = (char *) lispsym + i;
 +  return p;
 +}
 +
 +/* Extract A's type.  */
 +INLINE enum Lisp_Type
 +XTYPE (Lisp_Object a)
 +{
 +  EMACS_UINT i = XLI (a);
 +  return USE_LSB_TAG ? i & ~VALMASK : i >> VALBITS;
 +}
 +
 +/* Extract A's pointer value, assuming A's type is TYPE.  */
 +INLINE void *
 +XUNTAG (Lisp_Object a, int type)
 +{
 +  intptr_t i = USE_LSB_TAG ? XLI (a) - type : XLI (a) & VALMASK;
 +  return (void *) i;
 +}
 +
 +#endif /* ! USE_LSB_TAG */
 +
 +/* Extract the pointer hidden within A.  */
 +LISP_MACRO_DEFUN (XPNTR, void *, (Lisp_Object a), (a))
 +
 +/* Extract A's value as an unsigned integer.  */
 +INLINE EMACS_UINT
 +XUINT (Lisp_Object a)
 +{
 +  EMACS_UINT i = XLI (a);
 +  return USE_LSB_TAG ? i >> INTTYPEBITS : i & INTMASK;
 +}
 +
 +/* Return A's (Lisp-integer sized) hash.  Happens to be like XUINT
 +   right now, but XUINT should only be applied to objects we know are
 +   integers.  */
 +LISP_MACRO_DEFUN (XHASH, EMACS_INT, (Lisp_Object a), (a))
 +
 +/* Like make_number (N), but may be faster.  N must be in nonnegative range.  */
 +INLINE Lisp_Object
 +make_natnum (EMACS_INT n)
 +{
 +  eassert (0 <= n && n <= MOST_POSITIVE_FIXNUM);
 +  EMACS_INT int0 = Lisp_Int0;
 +  return USE_LSB_TAG ? make_number (n) : XIL (n + (int0 << VALBITS));
 +}
 +
 +/* Return true if X and Y are the same object.  */
 +LISP_MACRO_DEFUN (EQ, bool, (Lisp_Object x, Lisp_Object y), (x, y))
 +
 +/* Value is true if I doesn't fit into a Lisp fixnum.  It is
 +   written this way so that it also works if I is of unsigned
 +   type or if I is a NaN.  */
 +
 +#define FIXNUM_OVERFLOW_P(i) \
 +  (! ((0 <= (i) || MOST_NEGATIVE_FIXNUM <= (i)) && (i) <= MOST_POSITIVE_FIXNUM))
 +
 +INLINE ptrdiff_t
 +clip_to_bounds (ptrdiff_t lower, EMACS_INT num, ptrdiff_t upper)
 +{
 +  return num < lower ? lower : num <= upper ? num : upper;
 +}
 +\f
 +
 +/* Extract a value or address from a Lisp_Object.  */
 +
 +LISP_MACRO_DEFUN (XCONS, struct Lisp_Cons *, (Lisp_Object a), (a))
 +
 +INLINE struct Lisp_Vector *
 +XVECTOR (Lisp_Object a)
 +{
 +  eassert (VECTORLIKEP (a));
 +  return XUNTAG (a, Lisp_Vectorlike);
 +}
 +
 +INLINE struct Lisp_String *
 +XSTRING (Lisp_Object a)
 +{
 +  eassert (STRINGP (a));
 +  return XUNTAG (a, Lisp_String);
 +}
 +
 +/* The index of the C-defined Lisp symbol SYM.
 +   This can be used in a static initializer.  */
 +#define SYMBOL_INDEX(sym) i##sym
 +
 +INLINE struct Lisp_Float *
 +XFLOAT (Lisp_Object a)
 +{
 +  eassert (FLOATP (a));
 +  return XUNTAG (a, Lisp_Float);
 +}
 +
 +/* Pseudovector types.  */
 +
 +INLINE struct Lisp_Process *
 +XPROCESS (Lisp_Object a)
 +{
 +  eassert (PROCESSP (a));
 +  return XUNTAG (a, Lisp_Vectorlike);
 +}
 +
 +INLINE struct window *
 +XWINDOW (Lisp_Object a)
 +{
 +  eassert (WINDOWP (a));
 +  return XUNTAG (a, Lisp_Vectorlike);
 +}
 +
 +INLINE struct terminal *
 +XTERMINAL (Lisp_Object a)
 +{
 +  eassert (TERMINALP (a));
 +  return XUNTAG (a, Lisp_Vectorlike);
 +}
 +
 +INLINE struct Lisp_Subr *
 +XSUBR (Lisp_Object a)
 +{
 +  eassert (SUBRP (a));
 +  return XUNTAG (a, Lisp_Vectorlike);
 +}
 +
 +INLINE struct buffer *
 +XBUFFER (Lisp_Object a)
 +{
 +  eassert (BUFFERP (a));
 +  return XUNTAG (a, Lisp_Vectorlike);
 +}
 +
 +INLINE struct Lisp_Char_Table *
 +XCHAR_TABLE (Lisp_Object a)
 +{
 +  eassert (CHAR_TABLE_P (a));
 +  return XUNTAG (a, Lisp_Vectorlike);
 +}
 +
 +INLINE struct Lisp_Sub_Char_Table *
 +XSUB_CHAR_TABLE (Lisp_Object a)
 +{
 +  eassert (SUB_CHAR_TABLE_P (a));
 +  return XUNTAG (a, Lisp_Vectorlike);
 +}
 +
 +INLINE struct Lisp_Bool_Vector *
 +XBOOL_VECTOR (Lisp_Object a)
 +{
 +  eassert (BOOL_VECTOR_P (a));
 +  return XUNTAG (a, Lisp_Vectorlike);
 +}
 +
 +/* Construct a Lisp_Object from a value or address.  */
 +
 +INLINE Lisp_Object
 +make_lisp_ptr (void *ptr, enum Lisp_Type type)
 +{
 +  Lisp_Object a = XIL (TAG_PTR (type, ptr));
 +  eassert (XTYPE (a) == type && XUNTAG (a, type) == ptr);
 +  return a;
 +}
 +
 +INLINE Lisp_Object
 +make_lisp_symbol (struct Lisp_Symbol *sym)
 +{
 +  Lisp_Object a = XIL (TAG_SYMOFFSET ((char *) sym - (char *) lispsym));
 +  eassert (XSYMBOL (a) == sym);
 +  return a;
 +}
 +
 +INLINE Lisp_Object
 +builtin_lisp_symbol (int index)
 +{
 +  return make_lisp_symbol (lispsym + index);
 +}
 +
 +#define XSETINT(a, b) ((a) = make_number (b))
 +#define XSETFASTINT(a, b) ((a) = make_natnum (b))
 +#define XSETCONS(a, b) ((a) = make_lisp_ptr (b, Lisp_Cons))
 +#define XSETVECTOR(a, b) ((a) = make_lisp_ptr (b, Lisp_Vectorlike))
 +#define XSETSTRING(a, b) ((a) = make_lisp_ptr (b, Lisp_String))
 +#define XSETSYMBOL(a, b) ((a) = make_lisp_symbol (b))
 +#define XSETFLOAT(a, b) ((a) = make_lisp_ptr (b, Lisp_Float))
 +#define XSETMISC(a, b) ((a) = make_lisp_ptr (b, Lisp_Misc))
 +
 +/* Pseudovector types.  */
 +
 +#define XSETPVECTYPE(v, code)                                         \
 +  ((v)->header.size |= PSEUDOVECTOR_FLAG | ((code) << PSEUDOVECTOR_AREA_BITS))
 +#define XSETPVECTYPESIZE(v, code, lispsize, restsize)         \
 +  ((v)->header.size = (PSEUDOVECTOR_FLAG                      \
 +                     | ((code) << PSEUDOVECTOR_AREA_BITS)     \
 +                     | ((restsize) << PSEUDOVECTOR_SIZE_BITS) \
 +                     | (lispsize)))
 +
 +/* The cast to struct vectorlike_header * avoids aliasing issues.  */
 +#define XSETPSEUDOVECTOR(a, b, code) \
 +  XSETTYPED_PSEUDOVECTOR (a, b,                                       \
 +                        (((struct vectorlike_header *)        \
 +                          XUNTAG (a, Lisp_Vectorlike))        \
 +                         ->size),                             \
 +                        code)
 +#define XSETTYPED_PSEUDOVECTOR(a, b, size, code)                      \
 +  (XSETVECTOR (a, b),                                                 \
 +   eassert ((size & (PSEUDOVECTOR_FLAG | PVEC_TYPE_MASK))             \
 +          == (PSEUDOVECTOR_FLAG | (code << PSEUDOVECTOR_AREA_BITS))))
 +
 +#define XSETWINDOW_CONFIGURATION(a, b) \
 +  (XSETPSEUDOVECTOR (a, b, PVEC_WINDOW_CONFIGURATION))
 +#define XSETPROCESS(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_PROCESS))
 +#define XSETWINDOW(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_WINDOW))
 +#define XSETTERMINAL(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_TERMINAL))
 +#define XSETSUBR(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_SUBR))
 +#define XSETCOMPILED(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_COMPILED))
 +#define XSETBUFFER(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_BUFFER))
 +#define XSETCHAR_TABLE(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_CHAR_TABLE))
 +#define XSETBOOL_VECTOR(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_BOOL_VECTOR))
 +#define XSETSUB_CHAR_TABLE(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_SUB_CHAR_TABLE))
 +
 +/* Efficiently convert a pointer to a Lisp object and back.  The
 +   pointer is represented as a Lisp integer, so the garbage collector
 +   does not know about it.  The pointer should not have both Lisp_Int1
 +   bits set, which makes this conversion inherently unportable.  */
 +
 +INLINE void *
 +XINTPTR (Lisp_Object a)
 +{
 +  return XUNTAG (a, Lisp_Int0);
 +}
 +
 +INLINE Lisp_Object
 +make_pointer_integer (void *p)
 +{
 +  Lisp_Object a = XIL (TAG_PTR (Lisp_Int0, p));
 +  eassert (INTEGERP (a) && XINTPTR (a) == p);
 +  return a;
 +}
 +
 +/* Type checking.  */
 +
 +LISP_MACRO_DEFUN_VOID (CHECK_TYPE,
 +                     (int ok, Lisp_Object predicate, Lisp_Object x),
 +                     (ok, predicate, x))
 +
 +/* See the macros in intervals.h.  */
 +
 +typedef struct interval *INTERVAL;
 +
 +struct GCALIGNED Lisp_Cons
 +  {
 +    /* Car of this cons cell.  */
 +    Lisp_Object car;
 +
 +    union
 +    {
 +      /* Cdr of this cons cell.  */
 +      Lisp_Object cdr;
 +
 +      /* Used to chain conses on a free list.  */
 +      struct Lisp_Cons *chain;
 +    } u;
 +  };
 +
 +/* Take the car or cdr of something known to be a cons cell.  */
 +/* The _addr functions shouldn't be used outside of the minimal set
 +   of code that has to know what a cons cell looks like.  Other code not
 +   part of the basic lisp implementation should assume that the car and cdr
 +   fields are not accessible.  (What if we want to switch to
 +   a copying collector someday?  Cached cons cell field addresses may be
 +   invalidated at arbitrary points.)  */
 +INLINE Lisp_Object *
 +xcar_addr (Lisp_Object c)
 +{
 +  return &XCONS (c)->car;
 +}
 +INLINE Lisp_Object *
 +xcdr_addr (Lisp_Object c)
 +{
 +  return &XCONS (c)->u.cdr;
 +}
 +
 +/* Use these from normal code.  */
 +LISP_MACRO_DEFUN (XCAR, Lisp_Object, (Lisp_Object c), (c))
 +LISP_MACRO_DEFUN (XCDR, Lisp_Object, (Lisp_Object c), (c))
 +
 +/* Use these to set the fields of a cons cell.
 +
 +   Note that both arguments may refer to the same object, so 'n'
 +   should not be read after 'c' is first modified.  */
 +INLINE void
 +XSETCAR (Lisp_Object c, Lisp_Object n)
 +{
 +  *xcar_addr (c) = n;
 +}
 +INLINE void
 +XSETCDR (Lisp_Object c, Lisp_Object n)
 +{
 +  *xcdr_addr (c) = n;
 +}
 +
 +/* Take the car or cdr of something whose type is not known.  */
 +INLINE Lisp_Object
 +CAR (Lisp_Object c)
 +{
 +  return (CONSP (c) ? XCAR (c)
 +        : NILP (c) ? Qnil
 +        : wrong_type_argument (Qlistp, c));
 +}
 +INLINE Lisp_Object
 +CDR (Lisp_Object c)
 +{
 +  return (CONSP (c) ? XCDR (c)
 +        : NILP (c) ? Qnil
 +        : wrong_type_argument (Qlistp, c));
 +}
 +
 +/* Take the car or cdr of something whose type is not known.  */
 +INLINE Lisp_Object
 +CAR_SAFE (Lisp_Object c)
 +{
 +  return CONSP (c) ? XCAR (c) : Qnil;
 +}
 +INLINE Lisp_Object
 +CDR_SAFE (Lisp_Object c)
 +{
 +  return CONSP (c) ? XCDR (c) : Qnil;
 +}
 +
 +/* In a string or vector, the sign bit of the `size' is the gc mark bit.  */
 +
 +struct GCALIGNED Lisp_String
 +  {
 +    ptrdiff_t size;
 +    ptrdiff_t size_byte;
 +    INTERVAL intervals;               /* Text properties in this string.  */
 +    unsigned char *data;
 +  };
 +
 +/* True if STR is a multibyte string.  */
 +INLINE bool
 +STRING_MULTIBYTE (Lisp_Object str)
 +{
 +  return 0 <= XSTRING (str)->size_byte;
 +}
 +
 +/* An upper bound on the number of bytes in a Lisp string, not
 +   counting the terminating null.  This a tight enough bound to
 +   prevent integer overflow errors that would otherwise occur during
 +   string size calculations.  A string cannot contain more bytes than
 +   a fixnum can represent, nor can it be so long that C pointer
 +   arithmetic stops working on the string plus its terminating null.
 +   Although the actual size limit (see STRING_BYTES_MAX in alloc.c)
 +   may be a bit smaller than STRING_BYTES_BOUND, calculating it here
 +   would expose alloc.c internal details that we'd rather keep
 +   private.
 +
 +   This is a macro for use in static initializers.  The cast to
 +   ptrdiff_t ensures that the macro is signed.  */
 +#define STRING_BYTES_BOUND  \
 +  ((ptrdiff_t) min (MOST_POSITIVE_FIXNUM, min (SIZE_MAX, PTRDIFF_MAX) - 1))
 +
 +/* Mark STR as a unibyte string.  */
 +#define STRING_SET_UNIBYTE(STR)                               \
 +  do {                                                        \
 +    if (EQ (STR, empty_multibyte_string))             \
 +      (STR) = empty_unibyte_string;                   \
 +    else                                              \
 +      XSTRING (STR)->size_byte = -1;                  \
 +  } while (false)
 +
 +/* Mark STR as a multibyte string.  Assure that STR contains only
 +   ASCII characters in advance.  */
 +#define STRING_SET_MULTIBYTE(STR)                     \
 +  do {                                                        \
 +    if (EQ (STR, empty_unibyte_string))                       \
 +      (STR) = empty_multibyte_string;                 \
 +    else                                              \
 +      XSTRING (STR)->size_byte = XSTRING (STR)->size; \
 +  } while (false)
 +
 +/* Convenience functions for dealing with Lisp strings.  */
 +
 +INLINE unsigned char *
 +SDATA (Lisp_Object string)
 +{
 +  return XSTRING (string)->data;
 +}
 +INLINE char *
 +SSDATA (Lisp_Object string)
 +{
 +  /* Avoid "differ in sign" warnings.  */
 +  return (char *) SDATA (string);
 +}
 +INLINE unsigned char
 +SREF (Lisp_Object string, ptrdiff_t index)
 +{
 +  return SDATA (string)[index];
 +}
 +INLINE void
 +SSET (Lisp_Object string, ptrdiff_t index, unsigned char new)
 +{
 +  SDATA (string)[index] = new;
 +}
 +INLINE ptrdiff_t
 +SCHARS (Lisp_Object string)
 +{
 +  return XSTRING (string)->size;
 +}
 +
 +#ifdef GC_CHECK_STRING_BYTES
 +extern ptrdiff_t string_bytes (struct Lisp_String *);
 +#endif
 +INLINE ptrdiff_t
 +STRING_BYTES (struct Lisp_String *s)
 +{
 +#ifdef GC_CHECK_STRING_BYTES
 +  return string_bytes (s);
 +#else
 +  return s->size_byte < 0 ? s->size : s->size_byte;
 +#endif
 +}
 +
 +INLINE ptrdiff_t
 +SBYTES (Lisp_Object string)
 +{
 +  return STRING_BYTES (XSTRING (string));
 +}
 +INLINE void
 +STRING_SET_CHARS (Lisp_Object string, ptrdiff_t newsize)
 +{
 +  XSTRING (string)->size = newsize;
 +}
 +
 +/* Header of vector-like objects.  This documents the layout constraints on
 +   vectors and pseudovectors (objects of PVEC_xxx subtype).  It also prevents
 +   compilers from being fooled by Emacs's type punning: XSETPSEUDOVECTOR
 +   and PSEUDOVECTORP cast their pointers to struct vectorlike_header *,
 +   because when two such pointers potentially alias, a compiler won't
 +   incorrectly reorder loads and stores to their size fields.  See
 +   Bug#8546.  */
 +struct vectorlike_header
 +  {
 +    /* The only field contains various pieces of information:
 +       - The MSB (ARRAY_MARK_FLAG) holds the gcmarkbit.
 +       - The next bit (PSEUDOVECTOR_FLAG) indicates whether this is a plain
 +         vector (0) or a pseudovector (1).
 +       - If PSEUDOVECTOR_FLAG is 0, the rest holds the size (number
 +         of slots) of the vector.
 +       - If PSEUDOVECTOR_FLAG is 1, the rest is subdivided into three fields:
 +       - a) pseudovector subtype held in PVEC_TYPE_MASK field;
 +       - b) number of Lisp_Objects slots at the beginning of the object
 +         held in PSEUDOVECTOR_SIZE_MASK field.  These objects are always
 +         traced by the GC;
 +       - c) size of the rest fields held in PSEUDOVECTOR_REST_MASK and
 +         measured in word_size units.  Rest fields may also include
 +         Lisp_Objects, but these objects usually needs some special treatment
 +         during GC.
 +       There are some exceptions.  For PVEC_FREE, b) is always zero.  For
 +       PVEC_BOOL_VECTOR and PVEC_SUBR, both b) and c) are always zero.
 +       Current layout limits the pseudovectors to 63 PVEC_xxx subtypes,
 +       4095 Lisp_Objects in GC-ed area and 4095 word-sized other slots.  */
 +    ptrdiff_t size;
 +  };
 +
 +/* A regular vector is just a header plus an array of Lisp_Objects.  */
 +
 +struct Lisp_Vector
 +  {
 +    struct vectorlike_header header;
 +    Lisp_Object contents[FLEXIBLE_ARRAY_MEMBER];
 +  };
 +
 +/* C11 prohibits alignof (struct Lisp_Vector), so compute it manually.  */
 +enum
 +  {
 +    ALIGNOF_STRUCT_LISP_VECTOR
 +      = alignof (union { struct vectorlike_header a; Lisp_Object b; })
 +  };
 +
 +/* A boolvector is a kind of vectorlike, with contents like a string.  */
 +
 +struct Lisp_Bool_Vector
 +  {
 +    /* HEADER.SIZE is the vector's size field.  It doesn't have the real size,
 +       just the subtype information.  */
 +    struct vectorlike_header header;
 +    /* This is the size in bits.  */
 +    EMACS_INT size;
 +    /* The actual bits, packed into bytes.
 +       Zeros fill out the last word if needed.
 +       The bits are in little-endian order in the bytes, and
 +       the bytes are in little-endian order in the words.  */
 +    bits_word data[FLEXIBLE_ARRAY_MEMBER];
 +  };
 +
 +INLINE EMACS_INT
 +bool_vector_size (Lisp_Object a)
 +{
 +  EMACS_INT size = XBOOL_VECTOR (a)->size;
 +  eassume (0 <= size);
 +  return size;
 +}
 +
 +INLINE bits_word *
 +bool_vector_data (Lisp_Object a)
 +{
 +  return XBOOL_VECTOR (a)->data;
 +}
 +
 +INLINE unsigned char *
 +bool_vector_uchar_data (Lisp_Object a)
 +{
 +  return (unsigned char *) bool_vector_data (a);
 +}
 +
 +/* The number of data words and bytes in a bool vector with SIZE bits.  */
 +
 +INLINE EMACS_INT
 +bool_vector_words (EMACS_INT size)
 +{
 +  eassume (0 <= size && size <= EMACS_INT_MAX - (BITS_PER_BITS_WORD - 1));
 +  return (size + BITS_PER_BITS_WORD - 1) / BITS_PER_BITS_WORD;
 +}
 +
 +INLINE EMACS_INT
 +bool_vector_bytes (EMACS_INT size)
 +{
 +  eassume (0 <= size && size <= EMACS_INT_MAX - (BITS_PER_BITS_WORD - 1));
 +  return (size + BOOL_VECTOR_BITS_PER_CHAR - 1) / BOOL_VECTOR_BITS_PER_CHAR;
 +}
 +
 +/* True if A's Ith bit is set.  */
 +
 +INLINE bool
 +bool_vector_bitref (Lisp_Object a, EMACS_INT i)
 +{
 +  eassume (0 <= i && i < bool_vector_size (a));
 +  return !! (bool_vector_uchar_data (a)[i / BOOL_VECTOR_BITS_PER_CHAR]
 +           & (1 << (i % BOOL_VECTOR_BITS_PER_CHAR)));
 +}
 +
 +INLINE Lisp_Object
 +bool_vector_ref (Lisp_Object a, EMACS_INT i)
 +{
 +  return bool_vector_bitref (a, i) ? Qt : Qnil;
 +}
 +
 +/* Set A's Ith bit to B.  */
 +
 +INLINE void
 +bool_vector_set (Lisp_Object a, EMACS_INT i, bool b)
 +{
 +  unsigned char *addr;
 +
 +  eassume (0 <= i && i < bool_vector_size (a));
 +  addr = &bool_vector_uchar_data (a)[i / BOOL_VECTOR_BITS_PER_CHAR];
 +
 +  if (b)
 +    *addr |= 1 << (i % BOOL_VECTOR_BITS_PER_CHAR);
 +  else
 +    *addr &= ~ (1 << (i % BOOL_VECTOR_BITS_PER_CHAR));
 +}
 +
 +/* Some handy constants for calculating sizes
 +   and offsets, mostly of vectorlike objects.   */
 +
 +enum
 +  {
 +    header_size = offsetof (struct Lisp_Vector, contents),
 +    bool_header_size = offsetof (struct Lisp_Bool_Vector, data),
 +    word_size = sizeof (Lisp_Object)
 +  };
 +
 +/* Conveniences for dealing with Lisp arrays.  */
 +
 +INLINE Lisp_Object
 +AREF (Lisp_Object array, ptrdiff_t idx)
 +{
 +  return XVECTOR (array)->contents[idx];
 +}
 +
 +INLINE Lisp_Object *
 +aref_addr (Lisp_Object array, ptrdiff_t idx)
 +{
 +  return & XVECTOR (array)->contents[idx];
 +}
 +
 +INLINE ptrdiff_t
 +ASIZE (Lisp_Object array)
 +{
 +  return XVECTOR (array)->header.size;
 +}
 +
 +INLINE void
 +ASET (Lisp_Object array, ptrdiff_t idx, Lisp_Object val)
 +{
 +  eassert (0 <= idx && idx < ASIZE (array));
 +  XVECTOR (array)->contents[idx] = val;
 +}
 +
 +INLINE void
 +gc_aset (Lisp_Object array, ptrdiff_t idx, Lisp_Object val)
 +{
 +  /* Like ASET, but also can be used in the garbage collector:
 +     sweep_weak_table calls set_hash_key etc. while the table is marked.  */
 +  eassert (0 <= idx && idx < (ASIZE (array) & ~ARRAY_MARK_FLAG));
 +  XVECTOR (array)->contents[idx] = val;
 +}
 +
 +/* True, since Qnil's representation is zero.  Every place in the code
 +   that assumes Qnil is zero should verify (NIL_IS_ZERO), to make it easy
 +   to find such assumptions later if we change Qnil to be nonzero.  */
 +enum { NIL_IS_ZERO = XLI_BUILTIN_LISPSYM (iQnil) == 0 };
 +
 +/* Clear the object addressed by P, with size NBYTES, so that all its
 +   bytes are zero and all its Lisp values are nil.  */
 +INLINE void
 +memclear (void *p, ptrdiff_t nbytes)
 +{
 +  eassert (0 <= nbytes);
 +  verify (NIL_IS_ZERO);
 +  /* Since Qnil is zero, memset suffices.  */
 +  memset (p, 0, nbytes);
 +}
 +
 +/* If a struct is made to look like a vector, this macro returns the length
 +   of the shortest vector that would hold that struct.  */
 +
 +#define VECSIZE(type)                                         \
 +  ((sizeof (type) - header_size + word_size - 1) / word_size)
 +
 +/* Like VECSIZE, but used when the pseudo-vector has non-Lisp_Object fields
 +   at the end and we need to compute the number of Lisp_Object fields (the
 +   ones that the GC needs to trace).  */
 +
 +#define PSEUDOVECSIZE(type, nonlispfield)                     \
 +  ((offsetof (type, nonlispfield) - header_size) / word_size)
 +
 +/* Compute A OP B, using the unsigned comparison operator OP.  A and B
 +   should be integer expressions.  This is not the same as
 +   mathematical comparison; for example, UNSIGNED_CMP (0, <, -1)
 +   returns true.  For efficiency, prefer plain unsigned comparison if A
 +   and B's sizes both fit (after integer promotion).  */
 +#define UNSIGNED_CMP(a, op, b)                                                \
 +  (max (sizeof ((a) + 0), sizeof ((b) + 0)) <= sizeof (unsigned)      \
 +   ? ((a) + (unsigned) 0) op ((b) + (unsigned) 0)                     \
 +   : ((a) + (uintmax_t) 0) op ((b) + (uintmax_t) 0))
 +
 +/* True iff C is an ASCII character.  */
 +#define ASCII_CHAR_P(c) UNSIGNED_CMP (c, <, 0x80)
 +
 +/* A char-table is a kind of vectorlike, with contents are like a
 +   vector but with a few other slots.  For some purposes, it makes
 +   sense to handle a char-table with type struct Lisp_Vector.  An
 +   element of a char table can be any Lisp objects, but if it is a sub
 +   char-table, we treat it a table that contains information of a
 +   specific range of characters.  A sub char-table is like a vector but
 +   with two integer fields between the header and Lisp data, which means
 +   that it has to be marked with some precautions (see mark_char_table
 +   in alloc.c).  A sub char-table appears only in an element of a char-table,
 +   and there's no way to access it directly from Emacs Lisp program.  */
 +
 +enum CHARTAB_SIZE_BITS
 +  {
 +    CHARTAB_SIZE_BITS_0 = 6,
 +    CHARTAB_SIZE_BITS_1 = 4,
 +    CHARTAB_SIZE_BITS_2 = 5,
 +    CHARTAB_SIZE_BITS_3 = 7
 +  };
 +
 +extern const int chartab_size[4];
 +
 +struct Lisp_Char_Table
 +  {
 +    /* HEADER.SIZE is the vector's size field, which also holds the
 +       pseudovector type information.  It holds the size, too.
 +       The size counts the defalt, parent, purpose, ascii,
 +       contents, and extras slots.  */
 +    struct vectorlike_header header;
 +
 +    /* This holds a default value,
 +       which is used whenever the value for a specific character is nil.  */
 +    Lisp_Object defalt;
 +
 +    /* This points to another char table, which we inherit from when the
 +       value for a specific character is nil.  The `defalt' slot takes
 +       precedence over this.  */
 +    Lisp_Object parent;
 +
 +    /* This is a symbol which says what kind of use this char-table is
 +       meant for.  */
 +    Lisp_Object purpose;
 +
 +    /* The bottom sub char-table for characters of the range 0..127.  It
 +       is nil if none of ASCII character has a specific value.  */
 +    Lisp_Object ascii;
 +
 +    Lisp_Object contents[(1 << CHARTAB_SIZE_BITS_0)];
 +
 +    /* These hold additional data.  It is a vector.  */
 +    Lisp_Object extras[FLEXIBLE_ARRAY_MEMBER];
 +  };
 +
 +struct Lisp_Sub_Char_Table
 +  {
 +    /* HEADER.SIZE is the vector's size field, which also holds the
 +       pseudovector type information.  It holds the size, too.  */
 +    struct vectorlike_header header;
 +
 +    /* Depth of this sub char-table.  It should be 1, 2, or 3.  A sub
 +       char-table of depth 1 contains 16 elements, and each element
 +       covers 4096 (128*32) characters.  A sub char-table of depth 2
 +       contains 32 elements, and each element covers 128 characters.  A
 +       sub char-table of depth 3 contains 128 elements, and each element
 +       is for one character.  */
 +    int depth;
 +
 +    /* Minimum character covered by the sub char-table.  */
 +    int min_char;
 +
 +    /* Use set_sub_char_table_contents to set this.  */
 +    Lisp_Object contents[FLEXIBLE_ARRAY_MEMBER];
 +  };
 +
 +INLINE Lisp_Object
 +CHAR_TABLE_REF_ASCII (Lisp_Object ct, ptrdiff_t idx)
 +{
 +  struct Lisp_Char_Table *tbl = NULL;
 +  Lisp_Object val;
 +  do
 +    {
 +      tbl = tbl ? XCHAR_TABLE (tbl->parent) : XCHAR_TABLE (ct);
 +      val = (! SUB_CHAR_TABLE_P (tbl->ascii) ? tbl->ascii
 +           : XSUB_CHAR_TABLE (tbl->ascii)->contents[idx]);
 +      if (NILP (val))
 +      val = tbl->defalt;
 +    }
 +  while (NILP (val) && ! NILP (tbl->parent));
 +
 +  return val;
 +}
 +
 +/* Almost equivalent to Faref (CT, IDX) with optimization for ASCII
 +   characters.  Do not check validity of CT.  */
 +INLINE Lisp_Object
 +CHAR_TABLE_REF (Lisp_Object ct, int idx)
 +{
 +  return (ASCII_CHAR_P (idx)
 +        ? CHAR_TABLE_REF_ASCII (ct, idx)
 +        : char_table_ref (ct, idx));
 +}
 +
 +/* Equivalent to Faset (CT, IDX, VAL) with optimization for ASCII and
 +   8-bit European characters.  Do not check validity of CT.  */
 +INLINE void
 +CHAR_TABLE_SET (Lisp_Object ct, int idx, Lisp_Object val)
 +{
 +  if (ASCII_CHAR_P (idx) && SUB_CHAR_TABLE_P (XCHAR_TABLE (ct)->ascii))
 +    set_sub_char_table_contents (XCHAR_TABLE (ct)->ascii, idx, val);
 +  else
 +    char_table_set (ct, idx, val);
 +}
 +
 +/* This structure describes a built-in function.
 +   It is generated by the DEFUN macro only.
 +   defsubr makes it into a Lisp object.  */
 +
 +struct Lisp_Subr
 +  {
 +    struct vectorlike_header header;
 +    union {
 +      Lisp_Object (*a0) (void);
 +      Lisp_Object (*a1) (Lisp_Object);
 +      Lisp_Object (*a2) (Lisp_Object, Lisp_Object);
 +      Lisp_Object (*a3) (Lisp_Object, Lisp_Object, Lisp_Object);
 +      Lisp_Object (*a4) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
 +      Lisp_Object (*a5) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
 +      Lisp_Object (*a6) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
 +      Lisp_Object (*a7) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
 +      Lisp_Object (*a8) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
 +      Lisp_Object (*aUNEVALLED) (Lisp_Object args);
 +      Lisp_Object (*aMANY) (ptrdiff_t, Lisp_Object *);
 +    } function;
 +    short min_args, max_args;
 +    const char *symbol_name;
 +    const char *intspec;
 +    const char *doc;
 +  };
 +
 +enum char_table_specials
 +  {
 +    /* This is the number of slots that every char table must have.  This
 +       counts the ordinary slots and the top, defalt, parent, and purpose
 +       slots.  */
 +    CHAR_TABLE_STANDARD_SLOTS = PSEUDOVECSIZE (struct Lisp_Char_Table, extras),
 +
 +    /* This is an index of first Lisp_Object field in Lisp_Sub_Char_Table
 +       when the latter is treated as an ordinary Lisp_Vector.  */
 +    SUB_CHAR_TABLE_OFFSET = PSEUDOVECSIZE (struct Lisp_Sub_Char_Table, contents)
 +  };
 +
 +/* Return the number of "extra" slots in the char table CT.  */
 +
 +INLINE int
 +CHAR_TABLE_EXTRA_SLOTS (struct Lisp_Char_Table *ct)
 +{
 +  return ((ct->header.size & PSEUDOVECTOR_SIZE_MASK)
 +        - CHAR_TABLE_STANDARD_SLOTS);
 +}
 +
 +/* Make sure that sub char-table contents slot is where we think it is.  */
 +verify (offsetof (struct Lisp_Sub_Char_Table, contents)
 +      == offsetof (struct Lisp_Vector, contents[SUB_CHAR_TABLE_OFFSET]));
 +
 +/***********************************************************************
 +                             Symbols
 + ***********************************************************************/
 +
 +/* Value is name of symbol.  */
 +
 +LISP_MACRO_DEFUN (SYMBOL_VAL, Lisp_Object, (struct Lisp_Symbol *sym), (sym))
 +
 +INLINE struct Lisp_Symbol *
 +SYMBOL_ALIAS (struct Lisp_Symbol *sym)
 +{
 +  eassert (sym->redirect == SYMBOL_VARALIAS);
 +  return sym->val.alias;
 +}
 +INLINE struct Lisp_Buffer_Local_Value *
 +SYMBOL_BLV (struct Lisp_Symbol *sym)
 +{
 +  eassert (sym->redirect == SYMBOL_LOCALIZED);
 +  return sym->val.blv;
 +}
 +INLINE union Lisp_Fwd *
 +SYMBOL_FWD (struct Lisp_Symbol *sym)
 +{
 +  eassert (sym->redirect == SYMBOL_FORWARDED);
 +  return sym->val.fwd;
 +}
 +
 +LISP_MACRO_DEFUN_VOID (SET_SYMBOL_VAL,
 +                     (struct Lisp_Symbol *sym, Lisp_Object v), (sym, v))
 +
 +INLINE void
 +SET_SYMBOL_ALIAS (struct Lisp_Symbol *sym, struct Lisp_Symbol *v)
 +{
 +  eassert (sym->redirect == SYMBOL_VARALIAS);
 +  sym->val.alias = v;
 +}
 +INLINE void
 +SET_SYMBOL_BLV (struct Lisp_Symbol *sym, struct Lisp_Buffer_Local_Value *v)
 +{
 +  eassert (sym->redirect == SYMBOL_LOCALIZED);
 +  sym->val.blv = v;
 +}
 +INLINE void
 +SET_SYMBOL_FWD (struct Lisp_Symbol *sym, union Lisp_Fwd *v)
 +{
 +  eassert (sym->redirect == SYMBOL_FORWARDED);
 +  sym->val.fwd = v;
 +}
 +
 +INLINE Lisp_Object
 +SYMBOL_NAME (Lisp_Object sym)
 +{
 +  return XSYMBOL (sym)->name;
 +}
 +
 +/* Value is true if SYM is an interned symbol.  */
 +
 +INLINE bool
 +SYMBOL_INTERNED_P (Lisp_Object sym)
 +{
 +  return XSYMBOL (sym)->interned != SYMBOL_UNINTERNED;
 +}
 +
 +/* Value is true if SYM is interned in initial_obarray.  */
 +
 +INLINE bool
 +SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P (Lisp_Object sym)
 +{
 +  return XSYMBOL (sym)->interned == SYMBOL_INTERNED_IN_INITIAL_OBARRAY;
 +}
 +
 +/* Value is non-zero if symbol is considered a constant, i.e. its
 +   value cannot be changed (there is an exception for keyword symbols,
 +   whose value can be set to the keyword symbol itself).  */
 +
 +LISP_MACRO_DEFUN (SYMBOL_CONSTANT_P, int, (Lisp_Object sym), (sym))
 +
 +/* Placeholder for make-docfile to process.  The actual symbol
 +   definition is done by lread.c's defsym.  */
 +#define DEFSYM(sym, name) /* empty */
 +
 +\f
 +/***********************************************************************
 +                           Hash Tables
 + ***********************************************************************/
 +
 +/* The structure of a Lisp hash table.  */
 +
 +struct hash_table_test
 +{
 +  /* Name of the function used to compare keys.  */
 +  Lisp_Object name;
 +
 +  /* User-supplied hash function, or nil.  */
 +  Lisp_Object user_hash_function;
 +
 +  /* User-supplied key comparison function, or nil.  */
 +  Lisp_Object user_cmp_function;
 +
 +  /* C function to compare two keys.  */
 +  bool (*cmpfn) (struct hash_table_test *t, Lisp_Object, Lisp_Object);
 +
 +  /* C function to compute hash code.  */
 +  EMACS_UINT (*hashfn) (struct hash_table_test *t, Lisp_Object);
 +};
 +
 +struct Lisp_Hash_Table
 +{
 +  /* This is for Lisp; the hash table code does not refer to it.  */
 +  struct vectorlike_header header;
 +
 +  /* Nil if table is non-weak.  Otherwise a symbol describing the
 +     weakness of the table.  */
 +  Lisp_Object weak;
 +
 +  /* When the table is resized, and this is an integer, compute the
 +     new size by adding this to the old size.  If a float, compute the
 +     new size by multiplying the old size with this factor.  */
 +  Lisp_Object rehash_size;
 +
 +  /* Resize hash table when number of entries/ table size is >= this
 +     ratio, a float.  */
 +  Lisp_Object rehash_threshold;
 +
 +  /* Vector of hash codes.  If hash[I] is nil, this means that the
 +     I-th entry is unused.  */
 +  Lisp_Object hash;
 +
 +  /* Vector used to chain entries.  If entry I is free, next[I] is the
 +     entry number of the next free item.  If entry I is non-free,
 +     next[I] is the index of the next entry in the collision chain.  */
 +  Lisp_Object next;
 +
 +  /* Index of first free entry in free list.  */
 +  Lisp_Object next_free;
 +
 +  /* Bucket vector.  A non-nil entry is the index of the first item in
 +     a collision chain.  This vector's size can be larger than the
 +     hash table size to reduce collisions.  */
 +  Lisp_Object index;
 +
 +  /* Only the fields above are traced normally by the GC.  The ones below
 +     `count' are special and are either ignored by the GC or traced in
 +     a special way (e.g. because of weakness).  */
 +
 +  /* Number of key/value entries in the table.  */
 +  ptrdiff_t count;
 +
 +  /* Vector of keys and values.  The key of item I is found at index
 +     2 * I, the value is found at index 2 * I + 1.
 +     This is gc_marked specially if the table is weak.  */
 +  Lisp_Object key_and_value;
 +
 +  /* The comparison and hash functions.  */
 +  struct hash_table_test test;
 +
 +  /* Next weak hash table if this is a weak hash table.  The head
 +     of the list is in weak_hash_tables.  */
 +  struct Lisp_Hash_Table *next_weak;
 +};
 +
 +
 +INLINE struct Lisp_Hash_Table *
 +XHASH_TABLE (Lisp_Object a)
 +{
 +  return XUNTAG (a, Lisp_Vectorlike);
 +}
 +
 +#define XSET_HASH_TABLE(VAR, PTR) \
 +     (XSETPSEUDOVECTOR (VAR, PTR, PVEC_HASH_TABLE))
 +
 +INLINE bool
 +HASH_TABLE_P (Lisp_Object a)
 +{
 +  return PSEUDOVECTORP (a, PVEC_HASH_TABLE);
 +}
 +
 +/* Value is the key part of entry IDX in hash table H.  */
 +INLINE Lisp_Object
 +HASH_KEY (struct Lisp_Hash_Table *h, ptrdiff_t idx)
 +{
 +  return AREF (h->key_and_value, 2 * idx);
 +}
 +
 +/* Value is the value part of entry IDX in hash table H.  */
 +INLINE Lisp_Object
 +HASH_VALUE (struct Lisp_Hash_Table *h, ptrdiff_t idx)
 +{
 +  return AREF (h->key_and_value, 2 * idx + 1);
 +}
 +
 +/* Value is the index of the next entry following the one at IDX
 +   in hash table H.  */
 +INLINE Lisp_Object
 +HASH_NEXT (struct Lisp_Hash_Table *h, ptrdiff_t idx)
 +{
 +  return AREF (h->next, idx);
 +}
 +
 +/* Value is the hash code computed for entry IDX in hash table H.  */
 +INLINE Lisp_Object
 +HASH_HASH (struct Lisp_Hash_Table *h, ptrdiff_t idx)
 +{
 +  return AREF (h->hash, idx);
 +}
 +
 +/* Value is the index of the element in hash table H that is the
 +   start of the collision list at index IDX in the index vector of H.  */
 +INLINE Lisp_Object
 +HASH_INDEX (struct Lisp_Hash_Table *h, ptrdiff_t idx)
 +{
 +  return AREF (h->index, idx);
 +}
 +
 +/* Value is the size of hash table H.  */
 +INLINE ptrdiff_t
 +HASH_TABLE_SIZE (struct Lisp_Hash_Table *h)
 +{
 +  return ASIZE (h->next);
 +}
 +
 +/* Default size for hash tables if not specified.  */
 +
 +enum DEFAULT_HASH_SIZE { DEFAULT_HASH_SIZE = 65 };
 +
 +/* Default threshold specifying when to resize a hash table.  The
 +   value gives the ratio of current entries in the hash table and the
 +   size of the hash table.  */
 +
 +static double const DEFAULT_REHASH_THRESHOLD = 0.8;
 +
 +/* Default factor by which to increase the size of a hash table.  */
 +
 +static double const DEFAULT_REHASH_SIZE = 1.5;
 +
 +/* Combine two integers X and Y for hashing.  The result might not fit
 +   into a Lisp integer.  */
 +
 +INLINE EMACS_UINT
 +sxhash_combine (EMACS_UINT x, EMACS_UINT y)
 +{
 +  return (x << 4) + (x >> (BITS_PER_EMACS_INT - 4)) + y;
 +}
 +
 +/* Hash X, returning a value that fits into a fixnum.  */
 +
 +INLINE EMACS_UINT
 +SXHASH_REDUCE (EMACS_UINT x)
 +{
 +  return (x ^ x >> (BITS_PER_EMACS_INT - FIXNUM_BITS)) & INTMASK;
 +}
 +
 +/* These structures are used for various misc types.  */
 +
 +struct Lisp_Misc_Any          /* Supertype of all Misc types.  */
 +{
 +  ENUM_BF (Lisp_Misc_Type) type : 16;         /* = Lisp_Misc_??? */
 +  bool_bf gcmarkbit : 1;
 +  unsigned spacer : 15;
 +};
 +
 +struct Lisp_Marker
 +{
 +  ENUM_BF (Lisp_Misc_Type) type : 16;         /* = Lisp_Misc_Marker */
 +  bool_bf gcmarkbit : 1;
 +  unsigned spacer : 13;
 +  /* This flag is temporarily used in the functions
 +     decode/encode_coding_object to record that the marker position
 +     must be adjusted after the conversion.  */
 +  bool_bf need_adjustment : 1;
 +  /* True means normal insertion at the marker's position
 +     leaves the marker after the inserted text.  */
 +  bool_bf insertion_type : 1;
 +  /* This is the buffer that the marker points into, or 0 if it points nowhere.
 +     Note: a chain of markers can contain markers pointing into different
 +     buffers (the chain is per buffer_text rather than per buffer, so it's
 +     shared between indirect buffers).  */
 +  /* This is used for (other than NULL-checking):
 +     - Fmarker_buffer
 +     - Fset_marker: check eq(oldbuf, newbuf) to avoid unchain+rechain.
 +     - unchain_marker: to find the list from which to unchain.
 +     - Fkill_buffer: to only unchain the markers of current indirect buffer.
 +     */
 +  struct buffer *buffer;
 +
 +  /* The remaining fields are meaningless in a marker that
 +     does not point anywhere.  */
 +
 +  /* For markers that point somewhere,
 +     this is used to chain of all the markers in a given buffer.  */
 +  /* We could remove it and use an array in buffer_text instead.
 +     That would also allow us to preserve it ordered.  */
 +  struct Lisp_Marker *next;
 +  /* This is the char position where the marker points.  */
 +  ptrdiff_t charpos;
 +  /* This is the byte position.
 +     It's mostly used as a charpos<->bytepos cache (i.e. it's not directly
 +     used to implement the functionality of markers, but rather to (ab)use
 +     markers as a cache for char<->byte mappings).  */
 +  ptrdiff_t bytepos;
 +};
 +
 +/* START and END are markers in the overlay's buffer, and
 +   PLIST is the overlay's property list.  */
 +struct Lisp_Overlay
 +/* An overlay's real data content is:
 +   - plist
 +   - buffer (really there are two buffer pointers, one per marker,
 +     and both points to the same buffer)
 +   - insertion type of both ends (per-marker fields)
 +   - start & start byte (of start marker)
 +   - end & end byte (of end marker)
 +   - next (singly linked list of overlays)
 +   - next fields of start and end markers (singly linked list of markers).
 +   I.e. 9words plus 2 bits, 3words of which are for external linked lists.
 +*/
 +  {
 +    ENUM_BF (Lisp_Misc_Type) type : 16;       /* = Lisp_Misc_Overlay */
 +    bool_bf gcmarkbit : 1;
 +    unsigned spacer : 15;
 +    struct Lisp_Overlay *next;
 +    Lisp_Object start;
 +    Lisp_Object end;
 +    Lisp_Object plist;
 +  };
 +
 +/* Types of data which may be saved in a Lisp_Save_Value.  */
 +
 +enum
 +  {
 +    SAVE_UNUSED,
 +    SAVE_INTEGER,
 +    SAVE_FUNCPOINTER,
 +    SAVE_POINTER,
 +    SAVE_OBJECT
 +  };
 +
 +/* Number of bits needed to store one of the above values.  */
 +enum { SAVE_SLOT_BITS = 3 };
 +
 +/* Number of slots in a save value where save_type is nonzero.  */
 +enum { SAVE_VALUE_SLOTS = 4 };
 +
 +/* Bit-width and values for struct Lisp_Save_Value's save_type member.  */
 +
 +enum { SAVE_TYPE_BITS = SAVE_VALUE_SLOTS * SAVE_SLOT_BITS + 1 };
 +
 +enum Lisp_Save_Type
 +  {
 +    SAVE_TYPE_INT_INT = SAVE_INTEGER + (SAVE_INTEGER << SAVE_SLOT_BITS),
 +    SAVE_TYPE_INT_INT_INT
 +      = (SAVE_INTEGER + (SAVE_TYPE_INT_INT << SAVE_SLOT_BITS)),
 +    SAVE_TYPE_OBJ_OBJ = SAVE_OBJECT + (SAVE_OBJECT << SAVE_SLOT_BITS),
 +    SAVE_TYPE_OBJ_OBJ_OBJ = SAVE_OBJECT + (SAVE_TYPE_OBJ_OBJ << SAVE_SLOT_BITS),
 +    SAVE_TYPE_OBJ_OBJ_OBJ_OBJ
 +      = SAVE_OBJECT + (SAVE_TYPE_OBJ_OBJ_OBJ << SAVE_SLOT_BITS),
 +    SAVE_TYPE_PTR_INT = SAVE_POINTER + (SAVE_INTEGER << SAVE_SLOT_BITS),
 +    SAVE_TYPE_PTR_OBJ = SAVE_POINTER + (SAVE_OBJECT << SAVE_SLOT_BITS),
 +    SAVE_TYPE_PTR_PTR = SAVE_POINTER + (SAVE_POINTER << SAVE_SLOT_BITS),
 +    SAVE_TYPE_FUNCPTR_PTR_OBJ
 +      = SAVE_FUNCPOINTER + (SAVE_TYPE_PTR_OBJ << SAVE_SLOT_BITS),
 +
 +    /* This has an extra bit indicating it's raw memory.  */
 +    SAVE_TYPE_MEMORY = SAVE_TYPE_PTR_INT + (1 << (SAVE_TYPE_BITS - 1))
 +  };
 +
 +/* Special object used to hold a different values for later use.
 +
 +   This is mostly used to package C integers and pointers to call
 +   record_unwind_protect when two or more values need to be saved.
 +   For example:
 +
 +   ...
 +     struct my_data *md = get_my_data ();
 +     ptrdiff_t mi = get_my_integer ();
 +     record_unwind_protect (my_unwind, make_save_ptr_int (md, mi));
 +   ...
 +
 +   Lisp_Object my_unwind (Lisp_Object arg)
 +   {
 +     struct my_data *md = XSAVE_POINTER (arg, 0);
 +     ptrdiff_t mi = XSAVE_INTEGER (arg, 1);
 +     ...
 +   }
 +
 +   If ENABLE_CHECKING is in effect, XSAVE_xxx macros do type checking of the
 +   saved objects and raise eassert if type of the saved object doesn't match
 +   the type which is extracted.  In the example above, XSAVE_INTEGER (arg, 2)
 +   and XSAVE_OBJECT (arg, 0) are wrong because nothing was saved in slot 2 and
 +   slot 0 is a pointer.  */
 +
 +typedef void (*voidfuncptr) (void);
 +
 +struct Lisp_Save_Value
 +  {
 +    ENUM_BF (Lisp_Misc_Type) type : 16;       /* = Lisp_Misc_Save_Value */
 +    bool_bf gcmarkbit : 1;
 +    unsigned spacer : 32 - (16 + 1 + SAVE_TYPE_BITS);
 +
 +    /* V->data may hold up to SAVE_VALUE_SLOTS entries.  The type of
 +       V's data entries are determined by V->save_type.  E.g., if
 +       V->save_type == SAVE_TYPE_PTR_OBJ, V->data[0] is a pointer,
 +       V->data[1] is an integer, and V's other data entries are unused.
 +
 +       If V->save_type == SAVE_TYPE_MEMORY, V->data[0].pointer is the address of
 +       a memory area containing V->data[1].integer potential Lisp_Objects.  */
 +    ENUM_BF (Lisp_Save_Type) save_type : SAVE_TYPE_BITS;
 +    union {
 +      void *pointer;
 +      voidfuncptr funcpointer;
 +      ptrdiff_t integer;
 +      Lisp_Object object;
 +    } data[SAVE_VALUE_SLOTS];
 +  };
 +
 +/* Return the type of V's Nth saved value.  */
 +INLINE int
 +save_type (struct Lisp_Save_Value *v, int n)
 +{
 +  eassert (0 <= n && n < SAVE_VALUE_SLOTS);
 +  return (v->save_type >> (SAVE_SLOT_BITS * n) & ((1 << SAVE_SLOT_BITS) - 1));
 +}
 +
 +/* Get and set the Nth saved pointer.  */
 +
 +INLINE void *
 +XSAVE_POINTER (Lisp_Object obj, int n)
 +{
 +  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_POINTER);
 +  return XSAVE_VALUE (obj)->data[n].pointer;
 +}
 +INLINE void
 +set_save_pointer (Lisp_Object obj, int n, void *val)
 +{
 +  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_POINTER);
 +  XSAVE_VALUE (obj)->data[n].pointer = val;
 +}
 +INLINE voidfuncptr
 +XSAVE_FUNCPOINTER (Lisp_Object obj, int n)
 +{
 +  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_FUNCPOINTER);
 +  return XSAVE_VALUE (obj)->data[n].funcpointer;
 +}
 +
 +/* Likewise for the saved integer.  */
 +
 +INLINE ptrdiff_t
 +XSAVE_INTEGER (Lisp_Object obj, int n)
 +{
 +  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_INTEGER);
 +  return XSAVE_VALUE (obj)->data[n].integer;
 +}
 +INLINE void
 +set_save_integer (Lisp_Object obj, int n, ptrdiff_t val)
 +{
 +  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_INTEGER);
 +  XSAVE_VALUE (obj)->data[n].integer = val;
 +}
 +
 +/* Extract Nth saved object.  */
 +
 +INLINE Lisp_Object
 +XSAVE_OBJECT (Lisp_Object obj, int n)
 +{
 +  eassert (save_type (XSAVE_VALUE (obj), n) == SAVE_OBJECT);
 +  return XSAVE_VALUE (obj)->data[n].object;
 +}
 +
 +/* A finalizer sentinel.  */
 +struct Lisp_Finalizer
 +  {
 +    struct Lisp_Misc_Any base;
 +
 +    /* Circular list of all active weak references.  */
 +    struct Lisp_Finalizer *prev;
 +    struct Lisp_Finalizer *next;
 +
 +    /* Call FUNCTION when the finalizer becomes unreachable, even if
 +       FUNCTION contains a reference to the finalizer; i.e., call
 +       FUNCTION when it is reachable _only_ through finalizers.  */
 +    Lisp_Object function;
 +  };
 +
 +/* A miscellaneous object, when it's on the free list.  */
 +struct Lisp_Free
 +  {
 +    ENUM_BF (Lisp_Misc_Type) type : 16;       /* = Lisp_Misc_Free */
 +    bool_bf gcmarkbit : 1;
 +    unsigned spacer : 15;
 +    union Lisp_Misc *chain;
 +  };
 +
 +/* To get the type field of a union Lisp_Misc, use XMISCTYPE.
 +   It uses one of these struct subtypes to get the type field.  */
 +
 +union Lisp_Misc
 +  {
 +    struct Lisp_Misc_Any u_any;          /* Supertype of all Misc types.  */
 +    struct Lisp_Free u_free;
 +    struct Lisp_Marker u_marker;
 +    struct Lisp_Overlay u_overlay;
 +    struct Lisp_Save_Value u_save_value;
 +    struct Lisp_Finalizer u_finalizer;
 +  };
 +
 +INLINE union Lisp_Misc *
 +XMISC (Lisp_Object a)
 +{
 +  return XUNTAG (a, Lisp_Misc);
 +}
 +
 +INLINE struct Lisp_Misc_Any *
 +XMISCANY (Lisp_Object a)
 +{
 +  eassert (MISCP (a));
 +  return & XMISC (a)->u_any;
 +}
 +
 +INLINE enum Lisp_Misc_Type
 +XMISCTYPE (Lisp_Object a)
 +{
 +  return XMISCANY (a)->type;
 +}
 +
 +INLINE struct Lisp_Marker *
 +XMARKER (Lisp_Object a)
 +{
 +  eassert (MARKERP (a));
 +  return & XMISC (a)->u_marker;
 +}
 +
 +INLINE struct Lisp_Overlay *
 +XOVERLAY (Lisp_Object a)
 +{
 +  eassert (OVERLAYP (a));
 +  return & XMISC (a)->u_overlay;
 +}
 +
 +INLINE struct Lisp_Save_Value *
 +XSAVE_VALUE (Lisp_Object a)
 +{
 +  eassert (SAVE_VALUEP (a));
 +  return & XMISC (a)->u_save_value;
 +}
 +
 +INLINE struct Lisp_Finalizer *
 +XFINALIZER (Lisp_Object a)
 +{
 +  eassert (FINALIZERP (a));
 +  return & XMISC (a)->u_finalizer;
 +}
 +
 +\f
 +/* Forwarding pointer to an int variable.
 +   This is allowed only in the value cell of a symbol,
 +   and it means that the symbol's value really lives in the
 +   specified int variable.  */
 +struct Lisp_Intfwd
 +  {
 +    enum Lisp_Fwd_Type type;  /* = Lisp_Fwd_Int */
 +    EMACS_INT *intvar;
 +  };
 +
 +/* Boolean forwarding pointer to an int variable.
 +   This is like Lisp_Intfwd except that the ostensible
 +   "value" of the symbol is t if the bool variable is true,
 +   nil if it is false.  */
 +struct Lisp_Boolfwd
 +  {
 +    enum Lisp_Fwd_Type type;  /* = Lisp_Fwd_Bool */
 +    bool *boolvar;
 +  };
 +
 +/* Forwarding pointer to a Lisp_Object variable.
 +   This is allowed only in the value cell of a symbol,
 +   and it means that the symbol's value really lives in the
 +   specified variable.  */
 +struct Lisp_Objfwd
 +  {
 +    enum Lisp_Fwd_Type type;  /* = Lisp_Fwd_Obj */
 +    Lisp_Object *objvar;
 +  };
 +
 +/* Like Lisp_Objfwd except that value lives in a slot in the
 +   current buffer.  Value is byte index of slot within buffer.  */
 +struct Lisp_Buffer_Objfwd
 +  {
 +    enum Lisp_Fwd_Type type;  /* = Lisp_Fwd_Buffer_Obj */
 +    int offset;
 +    /* One of Qnil, Qintegerp, Qsymbolp, Qstringp, Qfloatp or Qnumberp.  */
 +    Lisp_Object predicate;
 +  };
 +
 +/* struct Lisp_Buffer_Local_Value is used in a symbol value cell when
 +   the symbol has buffer-local or frame-local bindings.  (Exception:
 +   some buffer-local variables are built-in, with their values stored
 +   in the buffer structure itself.  They are handled differently,
 +   using struct Lisp_Buffer_Objfwd.)
 +
 +   The `realvalue' slot holds the variable's current value, or a
 +   forwarding pointer to where that value is kept.  This value is the
 +   one that corresponds to the loaded binding.  To read or set the
 +   variable, you must first make sure the right binding is loaded;
 +   then you can access the value in (or through) `realvalue'.
 +
 +   `buffer' and `frame' are the buffer and frame for which the loaded
 +   binding was found.  If those have changed, to make sure the right
 +   binding is loaded it is necessary to find which binding goes with
 +   the current buffer and selected frame, then load it.  To load it,
 +   first unload the previous binding, then copy the value of the new
 +   binding into `realvalue' (or through it).  Also update
 +   LOADED-BINDING to point to the newly loaded binding.
 +
 +   `local_if_set' indicates that merely setting the variable creates a
 +   local binding for the current buffer.  Otherwise the latter, setting
 +   the variable does not do that; only make-local-variable does that.  */
 +
 +struct Lisp_Buffer_Local_Value
 +  {
 +    /* True means that merely setting the variable creates a local
 +       binding for the current buffer.  */
 +    bool_bf local_if_set : 1;
 +    /* True means this variable can have frame-local bindings, otherwise, it is
 +       can have buffer-local bindings.  The two cannot be combined.  */
 +    bool_bf frame_local : 1;
 +    /* True means that the binding now loaded was found.
 +       Presumably equivalent to (defcell!=valcell).  */
 +    bool_bf found : 1;
 +    /* If non-NULL, a forwarding to the C var where it should also be set.  */
 +    union Lisp_Fwd *fwd;      /* Should never be (Buffer|Kboard)_Objfwd.  */
 +    /* The buffer or frame for which the loaded binding was found.  */
 +    Lisp_Object where;
 +    /* A cons cell that holds the default value.  It has the form
 +       (SYMBOL . DEFAULT-VALUE).  */
 +    Lisp_Object defcell;
 +    /* The cons cell from `where's parameter alist.
 +       It always has the form (SYMBOL . VALUE)
 +       Note that if `forward' is non-nil, VALUE may be out of date.
 +       Also if the currently loaded binding is the default binding, then
 +       this is `eq'ual to defcell.  */
 +    Lisp_Object valcell;
 +  };
 +
 +/* Like Lisp_Objfwd except that value lives in a slot in the
 +   current kboard.  */
 +struct Lisp_Kboard_Objfwd
 +  {
 +    enum Lisp_Fwd_Type type;  /* = Lisp_Fwd_Kboard_Obj */
 +    int offset;
 +  };
 +
 +union Lisp_Fwd
 +  {
 +    struct Lisp_Intfwd u_intfwd;
 +    struct Lisp_Boolfwd u_boolfwd;
 +    struct Lisp_Objfwd u_objfwd;
 +    struct Lisp_Buffer_Objfwd u_buffer_objfwd;
 +    struct Lisp_Kboard_Objfwd u_kboard_objfwd;
 +  };
 +
 +INLINE enum Lisp_Fwd_Type
 +XFWDTYPE (union Lisp_Fwd *a)
 +{
 +  return a->u_intfwd.type;
 +}
 +
 +INLINE struct Lisp_Buffer_Objfwd *
 +XBUFFER_OBJFWD (union Lisp_Fwd *a)
 +{
 +  eassert (BUFFER_OBJFWDP (a));
 +  return &a->u_buffer_objfwd;
 +}
 +\f
 +/* Lisp floating point type.  */
 +struct Lisp_Float
 +  {
 +    union
 +    {
 +      double data;
 +      struct Lisp_Float *chain;
 +    } u;
 +  };
 +
 +INLINE double
 +XFLOAT_DATA (Lisp_Object f)
 +{
 +  return XFLOAT (f)->u.data;
 +}
 +
 +/* Most hosts nowadays use IEEE floating point, so they use IEC 60559
 +   representations, have infinities and NaNs, and do not trap on
 +   exceptions.  Define IEEE_FLOATING_POINT if this host is one of the
 +   typical ones.  The C11 macro __STDC_IEC_559__ is close to what is
 +   wanted here, but is not quite right because Emacs does not require
 +   all the features of C11 Annex F (and does not require C11 at all,
 +   for that matter).  */
 +enum
 +  {
 +    IEEE_FLOATING_POINT
 +      = (FLT_RADIX == 2 && FLT_MANT_DIG == 24
 +       && FLT_MIN_EXP == -125 && FLT_MAX_EXP == 128)
 +  };
 +
 +/* A character, declared with the following typedef, is a member
 +   of some character set associated with the current buffer.  */
 +#ifndef _UCHAR_T  /* Protect against something in ctab.h on AIX.  */
 +#define _UCHAR_T
 +typedef unsigned char UCHAR;
 +#endif
 +
 +/* Meanings of slots in a Lisp_Compiled:  */
 +
 +enum Lisp_Compiled
 +  {
 +    COMPILED_ARGLIST = 0,
 +    COMPILED_BYTECODE = 1,
 +    COMPILED_CONSTANTS = 2,
 +    COMPILED_STACK_DEPTH = 3,
 +    COMPILED_DOC_STRING = 4,
 +    COMPILED_INTERACTIVE = 5
 +  };
 +
 +/* Flag bits in a character.  These also get used in termhooks.h.
 +   Richard Stallman <rms@gnu.ai.mit.edu> thinks that MULE
 +   (MUlti-Lingual Emacs) might need 22 bits for the character value
 +   itself, so we probably shouldn't use any bits lower than 0x0400000.  */
 +enum char_bits
 +  {
 +    CHAR_ALT = 0x0400000,
 +    CHAR_SUPER = 0x0800000,
 +    CHAR_HYPER = 0x1000000,
 +    CHAR_SHIFT = 0x2000000,
 +    CHAR_CTL = 0x4000000,
 +    CHAR_META = 0x8000000,
 +
 +    CHAR_MODIFIER_MASK =
 +      CHAR_ALT | CHAR_SUPER | CHAR_HYPER | CHAR_SHIFT | CHAR_CTL | CHAR_META,
 +
 +    /* Actually, the current Emacs uses 22 bits for the character value
 +       itself.  */
 +    CHARACTERBITS = 22
 +  };
 +\f
 +/* Data type checking.  */
 +
 +LISP_MACRO_DEFUN (NILP, bool, (Lisp_Object x), (x))
 +
 +INLINE bool
 +NUMBERP (Lisp_Object x)
 +{
 +  return INTEGERP (x) || FLOATP (x);
 +}
 +INLINE bool
 +NATNUMP (Lisp_Object x)
 +{
 +  return INTEGERP (x) && 0 <= XINT (x);
 +}
 +
 +INLINE bool
 +RANGED_INTEGERP (intmax_t lo, Lisp_Object x, intmax_t hi)
 +{
 +  return INTEGERP (x) && lo <= XINT (x) && XINT (x) <= hi;
 +}
 +
 +#define TYPE_RANGED_INTEGERP(type, x) \
 +  (INTEGERP (x)                             \
 +   && (TYPE_SIGNED (type) ? TYPE_MINIMUM (type) <= XINT (x) : 0 <= XINT (x)) \
 +   && XINT (x) <= TYPE_MAXIMUM (type))
 +
 +LISP_MACRO_DEFUN (CONSP, bool, (Lisp_Object x), (x))
 +LISP_MACRO_DEFUN (FLOATP, bool, (Lisp_Object x), (x))
 +LISP_MACRO_DEFUN (MISCP, bool, (Lisp_Object x), (x))
 +LISP_MACRO_DEFUN (SYMBOLP, bool, (Lisp_Object x), (x))
 +LISP_MACRO_DEFUN (INTEGERP, bool, (Lisp_Object x), (x))
 +LISP_MACRO_DEFUN (VECTORLIKEP, bool, (Lisp_Object x), (x))
 +LISP_MACRO_DEFUN (MARKERP, bool, (Lisp_Object x), (x))
 +
 +INLINE bool
 +STRINGP (Lisp_Object x)
 +{
 +  return XTYPE (x) == Lisp_String;
 +}
 +INLINE bool
 +VECTORP (Lisp_Object x)
 +{
 +  return VECTORLIKEP (x) && ! (ASIZE (x) & PSEUDOVECTOR_FLAG);
 +}
 +INLINE bool
 +OVERLAYP (Lisp_Object x)
 +{
 +  return MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Overlay;
 +}
 +INLINE bool
 +SAVE_VALUEP (Lisp_Object x)
 +{
 +  return MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Save_Value;
 +}
 +
 +INLINE bool
 +FINALIZERP (Lisp_Object x)
 +{
 +  return MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Finalizer;
 +}
 +
 +INLINE bool
 +AUTOLOADP (Lisp_Object x)
 +{
 +  return CONSP (x) && EQ (Qautoload, XCAR (x));
 +}
 +
 +INLINE bool
 +BUFFER_OBJFWDP (union Lisp_Fwd *a)
 +{
 +  return XFWDTYPE (a) == Lisp_Fwd_Buffer_Obj;
 +}
 +
 +INLINE bool
 +PSEUDOVECTOR_TYPEP (struct vectorlike_header *a, int code)
 +{
 +  return ((a->size & (PSEUDOVECTOR_FLAG | PVEC_TYPE_MASK))
 +        == (PSEUDOVECTOR_FLAG | (code << PSEUDOVECTOR_AREA_BITS)));
 +}
 +
 +/* True if A is a pseudovector whose code is CODE.  */
 +INLINE bool
 +PSEUDOVECTORP (Lisp_Object a, int code)
 +{
 +  if (! VECTORLIKEP (a))
 +    return false;
 +  else
 +    {
 +      /* Converting to struct vectorlike_header * avoids aliasing issues.  */
 +      struct vectorlike_header *h = XUNTAG (a, Lisp_Vectorlike);
 +      return PSEUDOVECTOR_TYPEP (h, code);
 +    }
 +}
 +
 +
 +/* Test for specific pseudovector types.  */
 +
 +INLINE bool
 +WINDOW_CONFIGURATIONP (Lisp_Object a)
 +{
 +  return PSEUDOVECTORP (a, PVEC_WINDOW_CONFIGURATION);
 +}
 +
 +INLINE bool
 +PROCESSP (Lisp_Object a)
 +{
 +  return PSEUDOVECTORP (a, PVEC_PROCESS);
 +}
 +
 +INLINE bool
 +WINDOWP (Lisp_Object a)
 +{
 +  return PSEUDOVECTORP (a, PVEC_WINDOW);
 +}
 +
 +INLINE bool
 +TERMINALP (Lisp_Object a)
 +{
 +  return PSEUDOVECTORP (a, PVEC_TERMINAL);
 +}
 +
 +INLINE bool
 +SUBRP (Lisp_Object a)
 +{
 +  return PSEUDOVECTORP (a, PVEC_SUBR);
 +}
 +
 +INLINE bool
 +COMPILEDP (Lisp_Object a)
 +{
 +  return PSEUDOVECTORP (a, PVEC_COMPILED);
 +}
 +
 +INLINE bool
 +BUFFERP (Lisp_Object a)
 +{
 +  return PSEUDOVECTORP (a, PVEC_BUFFER);
 +}
 +
 +INLINE bool
 +CHAR_TABLE_P (Lisp_Object a)
 +{
 +  return PSEUDOVECTORP (a, PVEC_CHAR_TABLE);
 +}
 +
 +INLINE bool
 +SUB_CHAR_TABLE_P (Lisp_Object a)
 +{
 +  return PSEUDOVECTORP (a, PVEC_SUB_CHAR_TABLE);
 +}
 +
 +INLINE bool
 +BOOL_VECTOR_P (Lisp_Object a)
 +{
 +  return PSEUDOVECTORP (a, PVEC_BOOL_VECTOR);
 +}
 +
 +INLINE bool
 +FRAMEP (Lisp_Object a)
 +{
 +  return PSEUDOVECTORP (a, PVEC_FRAME);
 +}
 +
 +/* Test for image (image . spec)  */
 +INLINE bool
 +IMAGEP (Lisp_Object x)
 +{
 +  return CONSP (x) && EQ (XCAR (x), Qimage);
 +}
 +
 +/* Array types.  */
 +INLINE bool
 +ARRAYP (Lisp_Object x)
 +{
 +  return VECTORP (x) || STRINGP (x) || CHAR_TABLE_P (x) || BOOL_VECTOR_P (x);
 +}
 +\f
 +INLINE void
 +CHECK_LIST (Lisp_Object x)
 +{
 +  CHECK_TYPE (CONSP (x) || NILP (x), Qlistp, x);
 +}
 +
 +LISP_MACRO_DEFUN_VOID (CHECK_LIST_CONS, (Lisp_Object x, Lisp_Object y), (x, y))
 +LISP_MACRO_DEFUN_VOID (CHECK_SYMBOL, (Lisp_Object x), (x))
 +LISP_MACRO_DEFUN_VOID (CHECK_NUMBER, (Lisp_Object x), (x))
 +
 +INLINE void
 +CHECK_STRING (Lisp_Object x)
 +{
 +  CHECK_TYPE (STRINGP (x), Qstringp, x);
 +}
 +INLINE void
 +CHECK_STRING_CAR (Lisp_Object x)
 +{
 +  CHECK_TYPE (STRINGP (XCAR (x)), Qstringp, XCAR (x));
 +}
 +INLINE void
 +CHECK_CONS (Lisp_Object x)
 +{
 +  CHECK_TYPE (CONSP (x), Qconsp, x);
 +}
 +INLINE void
 +CHECK_VECTOR (Lisp_Object x)
 +{
 +  CHECK_TYPE (VECTORP (x), Qvectorp, x);
 +}
 +INLINE void
 +CHECK_BOOL_VECTOR (Lisp_Object x)
 +{
 +  CHECK_TYPE (BOOL_VECTOR_P (x), Qbool_vector_p, x);
 +}
 +/* This is a bit special because we always need size afterwards.  */
 +INLINE ptrdiff_t
 +CHECK_VECTOR_OR_STRING (Lisp_Object x)
 +{
 +  if (VECTORP (x))
 +    return ASIZE (x);
 +  if (STRINGP (x))
 +    return SCHARS (x);
 +  wrong_type_argument (Qarrayp, x);
 +}
 +INLINE void
 +CHECK_ARRAY (Lisp_Object x, Lisp_Object predicate)
 +{
 +  CHECK_TYPE (ARRAYP (x), predicate, x);
 +}
 +INLINE void
 +CHECK_BUFFER (Lisp_Object x)
 +{
 +  CHECK_TYPE (BUFFERP (x), Qbufferp, x);
 +}
 +INLINE void
 +CHECK_WINDOW (Lisp_Object x)
 +{
 +  CHECK_TYPE (WINDOWP (x), Qwindowp, x);
 +}
 +#ifdef subprocesses
 +INLINE void
 +CHECK_PROCESS (Lisp_Object x)
 +{
 +  CHECK_TYPE (PROCESSP (x), Qprocessp, x);
 +}
 +#endif
 +INLINE void
 +CHECK_NATNUM (Lisp_Object x)
 +{
 +  CHECK_TYPE (NATNUMP (x), Qwholenump, x);
 +}
 +
 +#define CHECK_RANGED_INTEGER(x, lo, hi)                                       \
 +  do {                                                                        \
 +    CHECK_NUMBER (x);                                                 \
 +    if (! ((lo) <= XINT (x) && XINT (x) <= (hi)))                     \
 +      args_out_of_range_3                                             \
 +      (x,                                                             \
 +       make_number ((lo) < 0 && (lo) < MOST_NEGATIVE_FIXNUM           \
 +                    ? MOST_NEGATIVE_FIXNUM                            \
 +                    : (lo)),                                          \
 +       make_number (min (hi, MOST_POSITIVE_FIXNUM)));                 \
 +  } while (false)
 +#define CHECK_TYPE_RANGED_INTEGER(type, x) \
 +  do {                                                                        \
 +    if (TYPE_SIGNED (type))                                           \
 +      CHECK_RANGED_INTEGER (x, TYPE_MINIMUM (type), TYPE_MAXIMUM (type)); \
 +    else                                                              \
 +      CHECK_RANGED_INTEGER (x, 0, TYPE_MAXIMUM (type));                       \
 +  } while (false)
 +
 +#define CHECK_NUMBER_COERCE_MARKER(x)                                 \
 +  do {                                                                        \
 +    if (MARKERP ((x)))                                                        \
 +      XSETFASTINT (x, marker_position (x));                           \
 +    else                                                              \
 +      CHECK_TYPE (INTEGERP (x), Qinteger_or_marker_p, x);             \
 +  } while (false)
 +
 +INLINE double
 +XFLOATINT (Lisp_Object n)
 +{
 +  return extract_float (n);
 +}
 +
 +INLINE void
 +CHECK_NUMBER_OR_FLOAT (Lisp_Object x)
 +{
 +  CHECK_TYPE (FLOATP (x) || INTEGERP (x), Qnumberp, x);
 +}
 +
 +#define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(x)                                \
 +  do {                                                                        \
 +    if (MARKERP (x))                                                  \
 +      XSETFASTINT (x, marker_position (x));                           \
 +    else                                                              \
 +      CHECK_TYPE (INTEGERP (x) || FLOATP (x), Qnumber_or_marker_p, x);        \
 +  } while (false)
 +
 +/* Since we can't assign directly to the CAR or CDR fields of a cons
 +   cell, use these when checking that those fields contain numbers.  */
 +INLINE void
 +CHECK_NUMBER_CAR (Lisp_Object x)
 +{
 +  Lisp_Object tmp = XCAR (x);
 +  CHECK_NUMBER (tmp);
 +  XSETCAR (x, tmp);
 +}
 +
 +INLINE void
 +CHECK_NUMBER_CDR (Lisp_Object x)
 +{
 +  Lisp_Object tmp = XCDR (x);
 +  CHECK_NUMBER (tmp);
 +  XSETCDR (x, tmp);
 +}
 +\f
 +/* Define a built-in function for calling from Lisp.
 + `lname' should be the name to give the function in Lisp,
 +    as a null-terminated C string.
 + `fnname' should be the name of the function in C.
 +    By convention, it starts with F.
 + `sname' should be the name for the C constant structure
 +    that records information on this function for internal use.
 +    By convention, it should be the same as `fnname' but with S instead of F.
 +    It's too bad that C macros can't compute this from `fnname'.
 + `minargs' should be a number, the minimum number of arguments allowed.
 + `maxargs' should be a number, the maximum number of arguments allowed,
 +    or else MANY or UNEVALLED.
 +    MANY means pass a vector of evaluated arguments,
 +       in the form of an integer number-of-arguments
 +       followed by the address of a vector of Lisp_Objects
 +       which contains the argument values.
 +    UNEVALLED means pass the list of unevaluated arguments
 + `intspec' says how interactive arguments are to be fetched.
 +    If the string starts with a `(', `intspec' is evaluated and the resulting
 +    list is the list of arguments.
 +    If it's a string that doesn't start with `(', the value should follow
 +    the one of the doc string for `interactive'.
 +    A null string means call interactively with no arguments.
 + `doc' is documentation for the user.  */
 +
 +/* This version of DEFUN declares a function prototype with the right
 +   arguments, so we can catch errors with maxargs at compile-time.  */
 +#ifdef _MSC_VER
 +#define DEFUN(lname, fnname, sname, minargs, maxargs, intspec, doc)   \
 +   Lisp_Object fnname DEFUN_ARGS_ ## maxargs ;                                \
 +   static struct Lisp_Subr alignas (GCALIGNMENT) sname =              \
 +   { { (PVEC_SUBR << PSEUDOVECTOR_AREA_BITS)                          \
 +       | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)) },          \
 +      { (Lisp_Object (__cdecl *)(void))fnname },                        \
 +       minargs, maxargs, lname, intspec, 0};                          \
 +   Lisp_Object fnname
 +#else  /* not _MSC_VER */
 +#define DEFUN(lname, fnname, sname, minargs, maxargs, intspec, doc)   \
 +   static struct Lisp_Subr alignas (GCALIGNMENT) sname =              \
 +     { { PVEC_SUBR << PSEUDOVECTOR_AREA_BITS },                               \
 +       { .a ## maxargs = fnname },                                    \
 +       minargs, maxargs, lname, intspec, 0};                          \
 +   Lisp_Object fnname
 +#endif
 +
 +/* True if OBJ is a Lisp function.  */
 +INLINE bool
 +FUNCTIONP (Lisp_Object obj)
 +{
 +  return functionp (obj);
 +}
 +
 +/* defsubr (Sname);
 +   is how we define the symbol for function `name' at start-up time.  */
 +extern void defsubr (struct Lisp_Subr *);
 +
 +enum maxargs
 +  {
 +    MANY = -2,
 +    UNEVALLED = -1
 +  };
 +
 +/* Call a function F that accepts many args, passing it ARRAY's elements.  */
 +#define CALLMANY(f, array) (f) (ARRAYELTS (array), array)
 +
 +/* Call a function F that accepts many args, passing it the remaining args,
 +   E.g., 'return CALLN (Fformat, fmt, text);' is less error-prone than
 +   '{ Lisp_Object a[2]; a[0] = fmt; a[1] = text; return Fformat (2, a); }'.
 +   CALLN is overkill for simple usages like 'Finsert (1, &text);'.  */
 +#define CALLN(f, ...) CALLMANY (f, ((Lisp_Object []) {__VA_ARGS__}))
 +
 +extern void defvar_lisp (struct Lisp_Objfwd *, const char *, Lisp_Object *);
 +extern void defvar_lisp_nopro (struct Lisp_Objfwd *, const char *, Lisp_Object *);
 +extern void defvar_bool (struct Lisp_Boolfwd *, const char *, bool *);
 +extern void defvar_int (struct Lisp_Intfwd *, const char *, EMACS_INT *);
 +extern void defvar_kboard (struct Lisp_Kboard_Objfwd *, const char *, int);
 +
 +/* Macros we use to define forwarded Lisp variables.
 +   These are used in the syms_of_FILENAME functions.
 +
 +   An ordinary (not in buffer_defaults, per-buffer, or per-keyboard)
 +   lisp variable is actually a field in `struct emacs_globals'.  The
 +   field's name begins with "f_", which is a convention enforced by
 +   these macros.  Each such global has a corresponding #define in
 +   globals.h; the plain name should be used in the code.
 +
 +   E.g., the global "cons_cells_consed" is declared as "int
 +   f_cons_cells_consed" in globals.h, but there is a define:
 +
 +      #define cons_cells_consed globals.f_cons_cells_consed
 +
 +   All C code uses the `cons_cells_consed' name.  This is all done
 +   this way to support indirection for multi-threaded Emacs.  */
 +
 +#define DEFVAR_LISP(lname, vname, doc)                \
 +  do {                                                \
 +    static struct Lisp_Objfwd o_fwd;          \
 +    defvar_lisp (&o_fwd, lname, &globals.f_ ## vname);                \
 +  } while (false)
 +#define DEFVAR_LISP_NOPRO(lname, vname, doc)  \
 +  do {                                                \
 +    static struct Lisp_Objfwd o_fwd;          \
 +    defvar_lisp_nopro (&o_fwd, lname, &globals.f_ ## vname);  \
 +  } while (false)
 +#define DEFVAR_BOOL(lname, vname, doc)                \
 +  do {                                                \
 +    static struct Lisp_Boolfwd b_fwd;         \
 +    defvar_bool (&b_fwd, lname, &globals.f_ ## vname);                \
 +  } while (false)
 +#define DEFVAR_INT(lname, vname, doc)         \
 +  do {                                                \
 +    static struct Lisp_Intfwd i_fwd;          \
 +    defvar_int (&i_fwd, lname, &globals.f_ ## vname);         \
 +  } while (false)
 +
 +#define DEFVAR_BUFFER_DEFAULTS(lname, vname, doc)             \
 +  do {                                                                \
 +    static struct Lisp_Objfwd o_fwd;                          \
 +    defvar_lisp_nopro (&o_fwd, lname, &BVAR (&buffer_defaults, vname));       \
 +  } while (false)
 +
 +#define DEFVAR_KBOARD(lname, vname, doc)                      \
 +  do {                                                                \
 +    static struct Lisp_Kboard_Objfwd ko_fwd;                  \
 +    defvar_kboard (&ko_fwd, lname, offsetof (KBOARD, vname ## _)); \
 +  } while (false)
 +\f
 +/* Save and restore the instruction and environment pointers,
 +   without affecting the signal mask.  */
 +
 +#ifdef HAVE__SETJMP
 +typedef jmp_buf sys_jmp_buf;
 +# define sys_setjmp(j) _setjmp (j)
 +# define sys_longjmp(j, v) _longjmp (j, v)
 +#elif defined HAVE_SIGSETJMP
 +typedef sigjmp_buf sys_jmp_buf;
 +# define sys_setjmp(j) sigsetjmp (j, 0)
 +# define sys_longjmp(j, v) siglongjmp (j, v)
 +#else
 +/* A platform that uses neither _longjmp nor siglongjmp; assume
 +   longjmp does not affect the sigmask.  */
 +typedef jmp_buf sys_jmp_buf;
 +# define sys_setjmp(j) setjmp (j)
 +# define sys_longjmp(j, v) longjmp (j, v)
 +#endif
 +
 +\f
 +/* Elisp uses several stacks:
 +   - the C stack.
 +   - the bytecode stack: used internally by the bytecode interpreter.
 +     Allocated from the C stack.
 +   - The specpdl stack: keeps track of active unwind-protect and
 +     dynamic-let-bindings.  Allocated from the `specpdl' array, a manually
 +     managed stack.
 +   - The handler stack: keeps track of active catch tags and condition-case
 +     handlers.  Allocated in a manually managed stack implemented by a
 +     doubly-linked list allocated via xmalloc and never freed.  */
 +
 +/* Structure for recording Lisp call stack for backtrace purposes.  */
 +
 +/* The special binding stack holds the outer values of variables while
 +   they are bound by a function application or a let form, stores the
 +   code to be executed for unwind-protect forms.
 +
 +   NOTE: The specbinding union is defined here, because SPECPDL_INDEX is
 +   used all over the place, needs to be fast, and needs to know the size of
 +   union specbinding.  But only eval.c should access it.  */
 +
 +enum specbind_tag {
 +  SPECPDL_UNWIND,             /* An unwind_protect function on Lisp_Object.  */
 +  SPECPDL_UNWIND_PTR,         /* Likewise, on void *.  */
 +  SPECPDL_UNWIND_INT,         /* Likewise, on int.  */
 +  SPECPDL_UNWIND_VOID,                /* Likewise, with no arg.  */
 +  SPECPDL_BACKTRACE,          /* An element of the backtrace.  */
 +  SPECPDL_LET,                        /* A plain and simple dynamic let-binding.  */
 +  /* Tags greater than SPECPDL_LET must be "subkinds" of LET.  */
 +  SPECPDL_LET_LOCAL,          /* A buffer-local let-binding.  */
 +  SPECPDL_LET_DEFAULT         /* A global binding for a localized var.  */
 +};
 +
 +union specbinding
 +  {
 +    ENUM_BF (specbind_tag) kind : CHAR_BIT;
 +    struct {
 +      ENUM_BF (specbind_tag) kind : CHAR_BIT;
 +      void (*func) (Lisp_Object);
 +      Lisp_Object arg;
 +    } unwind;
 +    struct {
 +      ENUM_BF (specbind_tag) kind : CHAR_BIT;
 +      void (*func) (void *);
 +      void *arg;
 +    } unwind_ptr;
 +    struct {
 +      ENUM_BF (specbind_tag) kind : CHAR_BIT;
 +      void (*func) (int);
 +      int arg;
 +    } unwind_int;
 +    struct {
 +      ENUM_BF (specbind_tag) kind : CHAR_BIT;
 +      void (*func) (void);
 +    } unwind_void;
 +    struct {
 +      ENUM_BF (specbind_tag) kind : CHAR_BIT;
 +      /* `where' is not used in the case of SPECPDL_LET.  */
 +      Lisp_Object symbol, old_value, where;
 +    } let;
 +    struct {
 +      ENUM_BF (specbind_tag) kind : CHAR_BIT;
 +      bool_bf debug_on_exit : 1;
 +      Lisp_Object function;
 +      Lisp_Object *args;
 +      ptrdiff_t nargs;
 +    } bt;
 +  };
 +
 +extern union specbinding *specpdl;
 +extern union specbinding *specpdl_ptr;
 +extern ptrdiff_t specpdl_size;
 +
 +INLINE ptrdiff_t
 +SPECPDL_INDEX (void)
 +{
 +  return specpdl_ptr - specpdl;
 +}
 +
 +/* This structure helps implement the `catch/throw' and `condition-case/signal'
 +   control structures.  A struct handler contains all the information needed to
 +   restore the state of the interpreter after a non-local jump.
 +
 +   handler structures are chained together in a doubly linked list; the `next'
 +   member points to the next outer catchtag and the `nextfree' member points in
 +   the other direction to the next inner element (which is typically the next
 +   free element since we mostly use it on the deepest handler).
 +
 +   A call like (throw TAG VAL) searches for a catchtag whose `tag_or_ch'
 +   member is TAG, and then unbinds to it.  The `val' member is used to
 +   hold VAL while the stack is unwound; `val' is returned as the value
 +   of the catch form.
 +
 +   All the other members are concerned with restoring the interpreter
 +   state.
 +
 +   Members are volatile if their values need to survive _longjmp when
 +   a 'struct handler' is a local variable.  */
 +
 +enum handlertype { CATCHER, CONDITION_CASE };
 +
 +struct handler
 +{
 +  enum handlertype type;
 +  Lisp_Object tag_or_ch;
 +  Lisp_Object val;
 +  struct handler *next;
 +  struct handler *nextfree;
 +
 +  /* The bytecode interpreter can have several handlers active at the same
 +     time, so when we longjmp to one of them, it needs to know which handler
 +     this was and what was the corresponding internal state.  This is stored
 +     here, and when we longjmp we make sure that handlerlist points to the
 +     proper handler.  */
 +  Lisp_Object *bytecode_top;
 +  int bytecode_dest;
 +
 +  /* Most global vars are reset to their value via the specpdl mechanism,
 +     but a few others are handled by storing their value here.  */
 +#if true /* GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS, but defined later.  */
 +  struct gcpro *gcpro;
 +#endif
 +  sys_jmp_buf jmp;
 +  EMACS_INT lisp_eval_depth;
 +  ptrdiff_t pdlcount;
 +  int poll_suppress_count;
 +  int interrupt_input_blocked;
 +  struct byte_stack *byte_stack;
 +};
 +
 +/* Fill in the components of c, and put it on the list.  */
 +#define PUSH_HANDLER(c, tag_ch_val, handlertype)      \
 +  if (handlerlist->nextfree)                          \
 +    (c) = handlerlist->nextfree;                      \
 +  else                                                        \
 +    {                                                 \
 +      (c) = xmalloc (sizeof (struct handler));                \
 +      (c)->nextfree = NULL;                           \
 +      handlerlist->nextfree = (c);                    \
 +    }                                                 \
 +  (c)->type = (handlertype);                          \
 +  (c)->tag_or_ch = (tag_ch_val);                      \
 +  (c)->val = Qnil;                                    \
 +  (c)->next = handlerlist;                            \
 +  (c)->lisp_eval_depth = lisp_eval_depth;             \
 +  (c)->pdlcount = SPECPDL_INDEX ();                   \
 +  (c)->poll_suppress_count = poll_suppress_count;     \
 +  (c)->interrupt_input_blocked = interrupt_input_blocked;\
 +  (c)->gcpro = gcprolist;                             \
 +  (c)->byte_stack = byte_stack_list;                  \
 +  handlerlist = (c);
 +
 +
 +extern Lisp_Object memory_signal_data;
 +
 +/* An address near the bottom of the stack.
 +   Tells GC how to save a copy of the stack.  */
 +extern char *stack_bottom;
 +
 +/* Check quit-flag and quit if it is non-nil.
 +   Typing C-g does not directly cause a quit; it only sets Vquit_flag.
 +   So the program needs to do QUIT at times when it is safe to quit.
 +   Every loop that might run for a long time or might not exit
 +   ought to do QUIT at least once, at a safe place.
 +   Unless that is impossible, of course.
 +   But it is very desirable to avoid creating loops where QUIT is impossible.
 +
 +   Exception: if you set immediate_quit to true,
 +   then the handler that responds to the C-g does the quit itself.
 +   This is a good thing to do around a loop that has no side effects
 +   and (in particular) cannot call arbitrary Lisp code.
 +
 +   If quit-flag is set to `kill-emacs' the SIGINT handler has received
 +   a request to exit Emacs when it is safe to do.  */
 +
 +extern void process_pending_signals (void);
 +extern bool volatile pending_signals;
 +
 +extern void process_quit_flag (void);
 +#define QUIT                                          \
 +  do {                                                        \
 +    if (!NILP (Vquit_flag) && NILP (Vinhibit_quit))   \
 +      process_quit_flag ();                           \
 +    else if (pending_signals)                         \
 +      process_pending_signals ();                     \
 +  } while (false)
 +
 +
 +/* True if ought to quit now.  */
 +
 +#define QUITP (!NILP (Vquit_flag) && NILP (Vinhibit_quit))
 +\f
 +extern Lisp_Object Vascii_downcase_table;
 +extern Lisp_Object Vascii_canon_table;
 +\f
 +/* Structure for recording stack slots that need marking.  */
 +
 +/* This is a chain of structures, each of which points at a Lisp_Object
 +   variable whose value should be marked in garbage collection.
 +   Normally every link of the chain is an automatic variable of a function,
 +   and its `val' points to some argument or local variable of the function.
 +   On exit to the function, the chain is set back to the value it had on entry.
 +   This way, no link remains in the chain when the stack frame containing the
 +   link disappears.
 +
 +   Every function that can call Feval must protect in this fashion all
 +   Lisp_Object variables whose contents will be used again.  */
 +
 +extern struct gcpro *gcprolist;
 +
 +struct gcpro
 +{
 +  struct gcpro *next;
 +
 +  /* Address of first protected variable.  */
 +  volatile Lisp_Object *var;
 +
 +  /* Number of consecutive protected variables.  */
 +  ptrdiff_t nvars;
 +
 +#ifdef DEBUG_GCPRO
 +  /* File name where this record is used.  */
 +  const char *name;
 +
 +  /* Line number in this file.  */
 +  int lineno;
 +
 +  /* Index in the local chain of records.  */
 +  int idx;
 +
 +  /* Nesting level.  */
 +  int level;
 +#endif
 +};
 +
 +/* Values of GC_MARK_STACK during compilation:
 +
 +   0  Use GCPRO as before
 +   1  Do the real thing, make GCPROs and UNGCPRO no-ops.
 +   2    Mark the stack, and check that everything GCPRO'd is
 +      marked.
 +   3  Mark using GCPRO's, mark stack last, and count how many
 +      dead objects are kept alive.
 +
 +   Formerly, method 0 was used.  Currently, method 1 is used unless
 +   otherwise specified by hand when building, e.g.,
 +   "make CPPFLAGS='-DGC_MARK_STACK=GC_USE_GCPROS_AS_BEFORE'".
 +   Methods 2 and 3 are present mainly to debug the transition from 0 to 1.  */
 +
 +#define GC_USE_GCPROS_AS_BEFORE               0
 +#define GC_MAKE_GCPROS_NOOPS          1
 +#define GC_MARK_STACK_CHECK_GCPROS    2
 +#define GC_USE_GCPROS_CHECK_ZOMBIES   3
 +
 +#ifndef GC_MARK_STACK
 +#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
 +#endif
 +
 +/* Whether we do the stack marking manually.  */
 +#define BYTE_MARK_STACK !(GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS               \
 +                        || GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS)
 +
 +
 +#if GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS
 +
 +/* Do something silly with gcproN vars just so gcc shuts up.  */
 +/* You get warnings from MIPSPro...  */
 +
 +#define GCPRO1(varname) ((void) gcpro1)
 +#define GCPRO2(varname1, varname2) ((void) gcpro2, (void) gcpro1)
 +#define GCPRO3(varname1, varname2, varname3) \
 +  ((void) gcpro3, (void) gcpro2, (void) gcpro1)
 +#define GCPRO4(varname1, varname2, varname3, varname4) \
 +  ((void) gcpro4, (void) gcpro3, (void) gcpro2, (void) gcpro1)
 +#define GCPRO5(varname1, varname2, varname3, varname4, varname5) \
 +  ((void) gcpro5, (void) gcpro4, (void) gcpro3, (void) gcpro2, (void) gcpro1)
 +#define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \
 +  ((void) gcpro6, (void) gcpro5, (void) gcpro4, (void) gcpro3, (void) gcpro2, \
 +   (void) gcpro1)
 +#define GCPRO7(a, b, c, d, e, f, g) (GCPRO6 (a, b, c, d, e, f), (void) gcpro7)
 +#define UNGCPRO ((void) 0)
 +
 +#else /* GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS */
 +
 +#ifndef DEBUG_GCPRO
 +
 +#define GCPRO1(a)                                                     \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcprolist = &gcpro1; }
 +
 +#define GCPRO2(a, b)                                                  \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1;               \
 +    gcprolist = &gcpro2; }
 +
 +#define GCPRO3(a, b, c)                                                       \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1;               \
 +    gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1;               \
 +    gcprolist = &gcpro3; }
 +
 +#define GCPRO4(a, b, c, d)                                            \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1;               \
 +    gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1;               \
 +    gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1;               \
 +    gcprolist = &gcpro4; }
 +
 +#define GCPRO5(a, b, c, d, e)                                         \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1;               \
 +    gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1;               \
 +    gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1;               \
 +    gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1;               \
 +    gcprolist = &gcpro5; }
 +
 +#define GCPRO6(a, b, c, d, e, f)                                      \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1;               \
 +    gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1;               \
 +    gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1;               \
 +    gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1;               \
 +    gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1;               \
 +    gcprolist = &gcpro6; }
 +
 +#define GCPRO7(a, b, c, d, e, f, g)                                   \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1;               \
 +    gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1;               \
 +    gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1;               \
 +    gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1;               \
 +    gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1;               \
 +    gcpro7.next = &gcpro6; gcpro7.var = &(g); gcpro7.nvars = 1;               \
 +    gcprolist = &gcpro7; }
 +
 +#define UNGCPRO (gcprolist = gcpro1.next)
 +
 +#else /* !DEBUG_GCPRO */
 +
 +extern int gcpro_level;
 +
 +#define GCPRO1(a)                                                     \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \
 +    gcpro1.level = gcpro_level++;                                     \
 +    gcprolist = &gcpro1; }
 +
 +#define GCPRO2(a, b)                                                  \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \
 +    gcpro1.level = gcpro_level;                                               \
 +    gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1;               \
 +    gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \
 +    gcpro2.level = gcpro_level++;                                     \
 +    gcprolist = &gcpro2; }
 +
 +#define GCPRO3(a, b, c)                                                       \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \
 +    gcpro1.level = gcpro_level;                                               \
 +    gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1;               \
 +    gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \
 +    gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1;               \
 +    gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \
 +    gcpro3.level = gcpro_level++;                                     \
 +    gcprolist = &gcpro3; }
 +
 +#define GCPRO4(a, b, c, d)                                            \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \
 +    gcpro1.level = gcpro_level;                                               \
 +    gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1;               \
 +    gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \
 +    gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1;               \
 +    gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \
 +    gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1;               \
 +    gcpro4.name = __FILE__; gcpro4.lineno = __LINE__; gcpro4.idx = 4; \
 +    gcpro4.level = gcpro_level++;                                     \
 +    gcprolist = &gcpro4; }
 +
 +#define GCPRO5(a, b, c, d, e)                                         \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \
 +    gcpro1.level = gcpro_level;                                               \
 +    gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1;               \
 +    gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \
 +    gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1;               \
 +    gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \
 +    gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1;               \
 +    gcpro4.name = __FILE__; gcpro4.lineno = __LINE__; gcpro4.idx = 4; \
 +    gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1;               \
 +    gcpro5.name = __FILE__; gcpro5.lineno = __LINE__; gcpro5.idx = 5; \
 +    gcpro5.level = gcpro_level++;                                     \
 +    gcprolist = &gcpro5; }
 +
 +#define GCPRO6(a, b, c, d, e, f)                                      \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \
 +    gcpro1.level = gcpro_level;                                               \
 +    gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1;               \
 +    gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \
 +    gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1;               \
 +    gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \
 +    gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1;               \
 +    gcpro4.name = __FILE__; gcpro4.lineno = __LINE__; gcpro4.idx = 4; \
 +    gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1;               \
 +    gcpro5.name = __FILE__; gcpro5.lineno = __LINE__; gcpro5.idx = 5; \
 +    gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1;               \
 +    gcpro6.name = __FILE__; gcpro6.lineno = __LINE__; gcpro6.idx = 6; \
 +    gcpro6.level = gcpro_level++;                                     \
 +    gcprolist = &gcpro6; }
 +
 +#define GCPRO7(a, b, c, d, e, f, g)                                   \
 +  { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1;     \
 +    gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \
 +    gcpro1.level = gcpro_level;                                               \
 +    gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1;               \
 +    gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \
 +    gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1;               \
 +    gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \
 +    gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1;               \
 +    gcpro4.name = __FILE__; gcpro4.lineno = __LINE__; gcpro4.idx = 4; \
 +    gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1;               \
 +    gcpro5.name = __FILE__; gcpro5.lineno = __LINE__; gcpro5.idx = 5; \
 +    gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1;               \
 +    gcpro6.name = __FILE__; gcpro6.lineno = __LINE__; gcpro6.idx = 6; \
 +    gcpro7.next = &gcpro6; gcpro7.var = &(g); gcpro7.nvars = 1;               \
 +    gcpro7.name = __FILE__; gcpro7.lineno = __LINE__; gcpro7.idx = 7; \
 +    gcpro7.level = gcpro_level++;                                     \
 +    gcprolist = &gcpro7; }
 +
 +#define UNGCPRO                                       \
 +  (--gcpro_level != gcpro1.level              \
 +   ? emacs_abort ()                           \
 +   : (void) (gcprolist = gcpro1.next))
 +
 +#endif /* DEBUG_GCPRO */
 +#endif /* GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS */
 +
 +
 +/* Evaluate expr, UNGCPRO, and then return the value of expr.  */
 +#define RETURN_UNGCPRO(expr)                  \
 +  do                                          \
 +    {                                         \
 +      Lisp_Object ret_ungc_val;                       \
 +      ret_ungc_val = (expr);                  \
 +      UNGCPRO;                                        \
 +      return ret_ungc_val;                    \
 +    }                                         \
 +  while (false)
 +
 +/* Call staticpro (&var) to protect static variable `var'.  */
 +
 +void staticpro (Lisp_Object *);
 +\f
 +/* Forward declarations for prototypes.  */
 +struct window;
 +struct frame;
 +
 +/* Copy COUNT Lisp_Objects from ARGS to contents of V starting from OFFSET.  */
 +
 +INLINE void
 +vcopy (Lisp_Object v, ptrdiff_t offset, Lisp_Object *args, ptrdiff_t count)
 +{
 +  eassert (0 <= offset && 0 <= count && offset + count <= ASIZE (v));
 +  memcpy (XVECTOR (v)->contents + offset, args, count * sizeof *args);
 +}
 +
 +/* Functions to modify hash tables.  */
 +
 +INLINE void
 +set_hash_key_slot (struct Lisp_Hash_Table *h, ptrdiff_t idx, Lisp_Object val)
 +{
 +  gc_aset (h->key_and_value, 2 * idx, val);
 +}
 +
 +INLINE void
 +set_hash_value_slot (struct Lisp_Hash_Table *h, ptrdiff_t idx, Lisp_Object val)
 +{
 +  gc_aset (h->key_and_value, 2 * idx + 1, val);
 +}
 +
 +/* Use these functions to set Lisp_Object
 +   or pointer slots of struct Lisp_Symbol.  */
 +
 +INLINE void
 +set_symbol_function (Lisp_Object sym, Lisp_Object function)
 +{
 +  XSYMBOL (sym)->function = function;
 +}
 +
 +INLINE void
 +set_symbol_plist (Lisp_Object sym, Lisp_Object plist)
 +{
 +  XSYMBOL (sym)->plist = plist;
 +}
 +
 +INLINE void
 +set_symbol_next (Lisp_Object sym, struct Lisp_Symbol *next)
 +{
 +  XSYMBOL (sym)->next = next;
 +}
 +
 +/* Buffer-local (also frame-local) variable access functions.  */
 +
 +INLINE int
 +blv_found (struct Lisp_Buffer_Local_Value *blv)
 +{
 +  eassert (blv->found == !EQ (blv->defcell, blv->valcell));
 +  return blv->found;
 +}
 +
 +/* Set overlay's property list.  */
 +
 +INLINE void
 +set_overlay_plist (Lisp_Object overlay, Lisp_Object plist)
 +{
 +  XOVERLAY (overlay)->plist = plist;
 +}
 +
 +/* Get text properties of S.  */
 +
 +INLINE INTERVAL
 +string_intervals (Lisp_Object s)
 +{
 +  return XSTRING (s)->intervals;
 +}
 +
 +/* Set text properties of S to I.  */
 +
 +INLINE void
 +set_string_intervals (Lisp_Object s, INTERVAL i)
 +{
 +  XSTRING (s)->intervals = i;
 +}
 +
 +/* Set a Lisp slot in TABLE to VAL.  Most code should use this instead
 +   of setting slots directly.  */
 +
 +INLINE void
 +set_char_table_defalt (Lisp_Object table, Lisp_Object val)
 +{
 +  XCHAR_TABLE (table)->defalt = val;
 +}
 +INLINE void
 +set_char_table_purpose (Lisp_Object table, Lisp_Object val)
 +{
 +  XCHAR_TABLE (table)->purpose = val;
 +}
 +
 +/* Set different slots in (sub)character tables.  */
 +
 +INLINE void
 +set_char_table_extras (Lisp_Object table, ptrdiff_t idx, Lisp_Object val)
 +{
 +  eassert (0 <= idx && idx < CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (table)));
 +  XCHAR_TABLE (table)->extras[idx] = val;
 +}
 +
 +INLINE void
 +set_char_table_contents (Lisp_Object table, ptrdiff_t idx, Lisp_Object val)
 +{
 +  eassert (0 <= idx && idx < (1 << CHARTAB_SIZE_BITS_0));
 +  XCHAR_TABLE (table)->contents[idx] = val;
 +}
 +
 +INLINE void
 +set_sub_char_table_contents (Lisp_Object table, ptrdiff_t idx, Lisp_Object val)
 +{
 +  XSUB_CHAR_TABLE (table)->contents[idx] = val;
 +}
 +
 +/* Defined in data.c.  */
 +extern Lisp_Object indirect_function (Lisp_Object);
 +extern Lisp_Object find_symbol_value (Lisp_Object);
 +enum Arith_Comparison {
 +  ARITH_EQUAL,
 +  ARITH_NOTEQUAL,
 +  ARITH_LESS,
 +  ARITH_GRTR,
 +  ARITH_LESS_OR_EQUAL,
 +  ARITH_GRTR_OR_EQUAL
 +};
 +extern Lisp_Object arithcompare (Lisp_Object num1, Lisp_Object num2,
 +                                 enum Arith_Comparison comparison);
 +
 +/* Convert the integer I to an Emacs representation, either the integer
 +   itself, or a cons of two or three integers, or if all else fails a float.
 +   I should not have side effects.  */
 +#define INTEGER_TO_CONS(i)                                        \
 +  (! FIXNUM_OVERFLOW_P (i)                                        \
 +   ? make_number (i)                                              \
 +   : ! ((FIXNUM_OVERFLOW_P (INTMAX_MIN >> 16)                     \
 +       || FIXNUM_OVERFLOW_P (UINTMAX_MAX >> 16))                  \
 +      && FIXNUM_OVERFLOW_P ((i) >> 16))                           \
 +   ? Fcons (make_number ((i) >> 16), make_number ((i) & 0xffff))    \
 +   : ! ((FIXNUM_OVERFLOW_P (INTMAX_MIN >> 16 >> 24)               \
 +       || FIXNUM_OVERFLOW_P (UINTMAX_MAX >> 16 >> 24))            \
 +      && FIXNUM_OVERFLOW_P ((i) >> 16 >> 24))                     \
 +   ? Fcons (make_number ((i) >> 16 >> 24),                        \
 +          Fcons (make_number ((i) >> 16 & 0xffffff),              \
 +                 make_number ((i) & 0xffff)))                     \
 +   : make_float (i))
 +
 +/* Convert the Emacs representation CONS back to an integer of type
 +   TYPE, storing the result the variable VAR.  Signal an error if CONS
 +   is not a valid representation or is out of range for TYPE.  */
 +#define CONS_TO_INTEGER(cons, type, var)                              \
 + (TYPE_SIGNED (type)                                                  \
 +  ? ((var) = cons_to_signed (cons, TYPE_MINIMUM (type), TYPE_MAXIMUM (type))) \
 +  : ((var) = cons_to_unsigned (cons, TYPE_MAXIMUM (type))))
 +extern intmax_t cons_to_signed (Lisp_Object, intmax_t, intmax_t);
 +extern uintmax_t cons_to_unsigned (Lisp_Object, uintmax_t);
 +
 +extern struct Lisp_Symbol *indirect_variable (struct Lisp_Symbol *);
 +extern _Noreturn void args_out_of_range (Lisp_Object, Lisp_Object);
 +extern _Noreturn void args_out_of_range_3 (Lisp_Object, Lisp_Object,
 +                                         Lisp_Object);
 +extern Lisp_Object do_symval_forwarding (union Lisp_Fwd *);
 +extern void set_internal (Lisp_Object, Lisp_Object, Lisp_Object, bool);
 +extern void syms_of_data (void);
 +extern void swap_in_global_binding (struct Lisp_Symbol *);
 +
 +/* Defined in cmds.c */
 +extern void syms_of_cmds (void);
 +extern void keys_of_cmds (void);
 +
 +/* Defined in coding.c.  */
 +extern Lisp_Object detect_coding_system (const unsigned char *, ptrdiff_t,
 +                                         ptrdiff_t, bool, bool, Lisp_Object);
 +extern void init_coding (void);
 +extern void init_coding_once (void);
 +extern void syms_of_coding (void);
 +
 +/* Defined in character.c.  */
 +extern ptrdiff_t chars_in_text (const unsigned char *, ptrdiff_t);
 +extern ptrdiff_t multibyte_chars_in_text (const unsigned char *, ptrdiff_t);
 +extern void syms_of_character (void);
 +
 +/* Defined in charset.c.  */
 +extern void init_charset (void);
 +extern void init_charset_once (void);
 +extern void syms_of_charset (void);
 +/* Structure forward declarations.  */
 +struct charset;
 +
 +/* Defined in syntax.c.  */
 +extern void init_syntax_once (void);
 +extern void syms_of_syntax (void);
 +
 +/* Defined in fns.c.  */
 +enum { NEXT_ALMOST_PRIME_LIMIT = 11 };
 +extern EMACS_INT next_almost_prime (EMACS_INT) ATTRIBUTE_CONST;
 +extern Lisp_Object larger_vector (Lisp_Object, ptrdiff_t, ptrdiff_t);
 +extern void sweep_weak_hash_tables (void);
 +EMACS_UINT hash_string (char const *, ptrdiff_t);
 +EMACS_UINT sxhash (Lisp_Object, int);
 +Lisp_Object make_hash_table (struct hash_table_test, Lisp_Object, Lisp_Object,
 +                             Lisp_Object, Lisp_Object);
 +ptrdiff_t hash_lookup (struct Lisp_Hash_Table *, Lisp_Object, EMACS_UINT *);
 +ptrdiff_t hash_put (struct Lisp_Hash_Table *, Lisp_Object, Lisp_Object,
 +                  EMACS_UINT);
 +extern struct hash_table_test hashtest_eql, hashtest_equal;
 +extern void validate_subarray (Lisp_Object, Lisp_Object, Lisp_Object,
 +                             ptrdiff_t, ptrdiff_t *, ptrdiff_t *);
 +extern Lisp_Object substring_both (Lisp_Object, ptrdiff_t, ptrdiff_t,
 +                                 ptrdiff_t, ptrdiff_t);
 +extern Lisp_Object merge (Lisp_Object, Lisp_Object, Lisp_Object);
 +extern Lisp_Object do_yes_or_no_p (Lisp_Object);
 +extern Lisp_Object concat2 (Lisp_Object, Lisp_Object);
 +extern Lisp_Object concat3 (Lisp_Object, Lisp_Object, Lisp_Object);
 +extern Lisp_Object nconc2 (Lisp_Object, Lisp_Object);
 +extern Lisp_Object assq_no_quit (Lisp_Object, Lisp_Object);
 +extern Lisp_Object assoc_no_quit (Lisp_Object, Lisp_Object);
 +extern void clear_string_char_byte_cache (void);
 +extern ptrdiff_t string_char_to_byte (Lisp_Object, ptrdiff_t);
 +extern ptrdiff_t string_byte_to_char (Lisp_Object, ptrdiff_t);
 +extern Lisp_Object string_to_multibyte (Lisp_Object);
 +extern Lisp_Object string_make_unibyte (Lisp_Object);
 +extern void syms_of_fns (void);
 +
 +/* Defined in floatfns.c.  */
 +extern void syms_of_floatfns (void);
 +extern Lisp_Object fmod_float (Lisp_Object x, Lisp_Object y);
 +
 +/* Defined in fringe.c.  */
 +extern void syms_of_fringe (void);
 +extern void init_fringe (void);
 +#ifdef HAVE_WINDOW_SYSTEM
 +extern void mark_fringe_data (void);
 +extern void init_fringe_once (void);
 +#endif /* HAVE_WINDOW_SYSTEM */
 +
 +/* Defined in image.c.  */
 +extern int x_bitmap_mask (struct frame *, ptrdiff_t);
 +extern void reset_image_types (void);
 +extern void syms_of_image (void);
 +
 +/* Defined in insdel.c.  */
 +extern void move_gap_both (ptrdiff_t, ptrdiff_t);
 +extern _Noreturn void buffer_overflow (void);
 +extern void make_gap (ptrdiff_t);
 +extern void make_gap_1 (struct buffer *, ptrdiff_t);
 +extern ptrdiff_t copy_text (const unsigned char *, unsigned char *,
 +                          ptrdiff_t, bool, bool);
 +extern int count_combining_before (const unsigned char *,
 +                                 ptrdiff_t, ptrdiff_t, ptrdiff_t);
 +extern int count_combining_after (const unsigned char *,
 +                                ptrdiff_t, ptrdiff_t, ptrdiff_t);
 +extern void insert (const char *, ptrdiff_t);
 +extern void insert_and_inherit (const char *, ptrdiff_t);
 +extern void insert_1_both (const char *, ptrdiff_t, ptrdiff_t,
 +                         bool, bool, bool);
 +extern void insert_from_gap (ptrdiff_t, ptrdiff_t, bool text_at_gap_tail);
 +extern void insert_from_string (Lisp_Object, ptrdiff_t, ptrdiff_t,
 +                              ptrdiff_t, ptrdiff_t, bool);
 +extern void insert_from_buffer (struct buffer *, ptrdiff_t, ptrdiff_t, bool);
 +extern void insert_char (int);
 +extern void insert_string (const char *);
 +extern void insert_before_markers (const char *, ptrdiff_t);
 +extern void insert_before_markers_and_inherit (const char *, ptrdiff_t);
 +extern void insert_from_string_before_markers (Lisp_Object, ptrdiff_t,
 +                                             ptrdiff_t, ptrdiff_t,
 +                                             ptrdiff_t, bool);
 +extern void del_range (ptrdiff_t, ptrdiff_t);
 +extern Lisp_Object del_range_1 (ptrdiff_t, ptrdiff_t, bool, bool);
 +extern void del_range_byte (ptrdiff_t, ptrdiff_t, bool);
 +extern void del_range_both (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, bool);
 +extern Lisp_Object del_range_2 (ptrdiff_t, ptrdiff_t,
 +                              ptrdiff_t, ptrdiff_t, bool);
 +extern void modify_text (ptrdiff_t, ptrdiff_t);
 +extern void prepare_to_modify_buffer (ptrdiff_t, ptrdiff_t, ptrdiff_t *);
 +extern void prepare_to_modify_buffer_1 (ptrdiff_t, ptrdiff_t, ptrdiff_t *);
 +extern void invalidate_buffer_caches (struct buffer *, ptrdiff_t, ptrdiff_t);
 +extern void signal_after_change (ptrdiff_t, ptrdiff_t, ptrdiff_t);
 +extern void adjust_after_insert (ptrdiff_t, ptrdiff_t, ptrdiff_t,
 +                               ptrdiff_t, ptrdiff_t);
 +extern void adjust_markers_for_delete (ptrdiff_t, ptrdiff_t,
 +                                     ptrdiff_t, ptrdiff_t);
 +extern void replace_range (ptrdiff_t, ptrdiff_t, Lisp_Object, bool, bool, bool);
 +extern void replace_range_2 (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t,
 +                           const char *, ptrdiff_t, ptrdiff_t, bool);
 +extern void syms_of_insdel (void);
 +
 +/* Defined in dispnew.c.  */
 +#if (defined PROFILING \
 +     && (defined __FreeBSD__ || defined GNU_LINUX || defined __MINGW32__))
 +_Noreturn void __executable_start (void);
 +#endif
 +extern Lisp_Object Vwindow_system;
 +extern Lisp_Object sit_for (Lisp_Object, bool, int);
 +
 +/* Defined in xdisp.c.  */
 +extern bool noninteractive_need_newline;
 +extern Lisp_Object echo_area_buffer[2];
 +extern void add_to_log (const char *, Lisp_Object, Lisp_Object);
 +extern void check_message_stack (void);
 +extern void setup_echo_area_for_printing (bool);
 +extern bool push_message (void);
 +extern void pop_message_unwind (void);
 +extern Lisp_Object restore_message_unwind (Lisp_Object);
 +extern void restore_message (void);
 +extern Lisp_Object current_message (void);
 +extern void clear_message (bool, bool);
 +extern void message (const char *, ...) ATTRIBUTE_FORMAT_PRINTF (1, 2);
 +extern void message1 (const char *);
 +extern void message1_nolog (const char *);
 +extern void message3 (Lisp_Object);
 +extern void message3_nolog (Lisp_Object);
 +extern void message_dolog (const char *, ptrdiff_t, bool, bool);
 +extern void message_with_string (const char *, Lisp_Object, bool);
 +extern void message_log_maybe_newline (void);
 +extern void update_echo_area (void);
 +extern void truncate_echo_area (ptrdiff_t);
 +extern void redisplay (void);
 +
 +void set_frame_cursor_types (struct frame *, Lisp_Object);
 +extern void syms_of_xdisp (void);
 +extern void init_xdisp (void);
 +extern Lisp_Object safe_eval (Lisp_Object);
 +extern bool pos_visible_p (struct window *, ptrdiff_t, int *,
 +                         int *, int *, int *, int *, int *);
 +
 +/* Defined in xsettings.c.  */
 +extern void syms_of_xsettings (void);
 +
 +/* Defined in vm-limit.c.  */
 +extern void memory_warnings (void *, void (*warnfun) (const char *));
 +
 +/* Defined in character.c.  */
 +extern void parse_str_as_multibyte (const unsigned char *, ptrdiff_t,
 +                                  ptrdiff_t *, ptrdiff_t *);
 +
 +/* Defined in alloc.c.  */
 +extern void check_pure_size (void);
 +extern void free_misc (Lisp_Object);
 +extern void allocate_string_data (struct Lisp_String *, EMACS_INT, EMACS_INT);
 +extern void malloc_warning (const char *);
 +extern _Noreturn void memory_full (size_t);
 +extern _Noreturn void buffer_memory_full (ptrdiff_t);
 +extern bool survives_gc_p (Lisp_Object);
 +extern void mark_object (Lisp_Object);
 +#if defined REL_ALLOC && !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC
 +extern void refill_memory_reserve (void);
 +#endif
 +extern const char *pending_malloc_warning;
 +extern Lisp_Object zero_vector;
 +extern Lisp_Object *stack_base;
 +extern EMACS_INT consing_since_gc;
 +extern EMACS_INT gc_relative_threshold;
 +extern EMACS_INT memory_full_cons_threshold;
 +extern Lisp_Object list1 (Lisp_Object);
 +extern Lisp_Object list2 (Lisp_Object, Lisp_Object);
 +extern Lisp_Object list3 (Lisp_Object, Lisp_Object, Lisp_Object);
 +extern Lisp_Object list4 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
 +extern Lisp_Object list5 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object,
 +                        Lisp_Object);
 +enum constype {CONSTYPE_HEAP, CONSTYPE_PURE};
 +extern Lisp_Object listn (enum constype, ptrdiff_t, Lisp_Object, ...);
 +
 +/* Build a frequently used 2/3/4-integer lists.  */
 +
 +INLINE Lisp_Object
 +list2i (EMACS_INT x, EMACS_INT y)
 +{
 +  return list2 (make_number (x), make_number (y));
 +}
 +
 +INLINE Lisp_Object
 +list3i (EMACS_INT x, EMACS_INT y, EMACS_INT w)
 +{
 +  return list3 (make_number (x), make_number (y), make_number (w));
 +}
 +
 +INLINE Lisp_Object
 +list4i (EMACS_INT x, EMACS_INT y, EMACS_INT w, EMACS_INT h)
 +{
 +  return list4 (make_number (x), make_number (y),
 +              make_number (w), make_number (h));
 +}
 +
 +extern Lisp_Object make_uninit_bool_vector (EMACS_INT);
 +extern Lisp_Object bool_vector_fill (Lisp_Object, Lisp_Object);
 +extern _Noreturn void string_overflow (void);
 +extern Lisp_Object make_string (const char *, ptrdiff_t);
 +extern Lisp_Object make_formatted_string (char *, const char *, ...)
 +  ATTRIBUTE_FORMAT_PRINTF (2, 3);
 +extern Lisp_Object make_unibyte_string (const char *, ptrdiff_t);
 +
 +/* Make unibyte string from C string when the length isn't known.  */
 +
 +INLINE Lisp_Object
 +build_unibyte_string (const char *str)
 +{
 +  return make_unibyte_string (str, strlen (str));
 +}
 +
 +extern Lisp_Object make_multibyte_string (const char *, ptrdiff_t, ptrdiff_t);
 +extern Lisp_Object make_event_array (ptrdiff_t, Lisp_Object *);
 +extern Lisp_Object make_uninit_string (EMACS_INT);
 +extern Lisp_Object make_uninit_multibyte_string (EMACS_INT, EMACS_INT);
 +extern Lisp_Object make_string_from_bytes (const char *, ptrdiff_t, ptrdiff_t);
 +extern Lisp_Object make_specified_string (const char *,
 +                                        ptrdiff_t, ptrdiff_t, bool);
 +extern Lisp_Object make_pure_string (const char *, ptrdiff_t, ptrdiff_t, bool);
 +extern Lisp_Object make_pure_c_string (const char *, ptrdiff_t);
 +
 +/* Make a string allocated in pure space, use STR as string data.  */
 +
 +INLINE Lisp_Object
 +build_pure_c_string (const char *str)
 +{
 +  return make_pure_c_string (str, strlen (str));
 +}
 +
 +/* Make a string from the data at STR, treating it as multibyte if the
 +   data warrants.  */
 +
 +INLINE Lisp_Object
 +build_string (const char *str)
 +{
 +  return make_string (str, strlen (str));
 +}
 +
 +extern Lisp_Object pure_cons (Lisp_Object, Lisp_Object);
 +extern void make_byte_code (struct Lisp_Vector *);
 +extern struct Lisp_Vector *allocate_vector (EMACS_INT);
 +
 +/* Make an uninitialized vector for SIZE objects.  NOTE: you must
 +   be sure that GC cannot happen until the vector is completely
 +   initialized.  E.g. the following code is likely to crash:
 +
 +   v = make_uninit_vector (3);
 +   ASET (v, 0, obj0);
 +   ASET (v, 1, Ffunction_can_gc ());
 +   ASET (v, 2, obj1);  */
 +
 +INLINE Lisp_Object
 +make_uninit_vector (ptrdiff_t size)
 +{
 +  Lisp_Object v;
 +  struct Lisp_Vector *p;
 +
 +  p = allocate_vector (size);
 +  XSETVECTOR (v, p);
 +  return v;
 +}
 +
 +/* Like above, but special for sub char-tables.  */
 +
 +INLINE Lisp_Object
 +make_uninit_sub_char_table (int depth, int min_char)
 +{
 +  int slots = SUB_CHAR_TABLE_OFFSET + chartab_size[depth];
 +  Lisp_Object v = make_uninit_vector (slots);
 +
 +  XSETPVECTYPE (XVECTOR (v), PVEC_SUB_CHAR_TABLE);
 +  XSUB_CHAR_TABLE (v)->depth = depth;
 +  XSUB_CHAR_TABLE (v)->min_char = min_char;
 +  return v;
 +}
 +
 +extern struct Lisp_Vector *allocate_pseudovector (int, int, int,
 +                                                enum pvec_type);
 +
 +/* Allocate partially initialized pseudovector where all Lisp_Object
 +   slots are set to Qnil but the rest (if any) is left uninitialized.  */
 +
 +#define ALLOCATE_PSEUDOVECTOR(type, field, tag)                              \
 +  ((type *) allocate_pseudovector (VECSIZE (type),                   \
 +                                 PSEUDOVECSIZE (type, field),        \
 +                                 PSEUDOVECSIZE (type, field), tag))
 +
 +/* Allocate fully initialized pseudovector where all Lisp_Object
 +   slots are set to Qnil and the rest (if any) is zeroed.  */
 +
 +#define ALLOCATE_ZEROED_PSEUDOVECTOR(type, field, tag)                       \
 +  ((type *) allocate_pseudovector (VECSIZE (type),                   \
 +                                 PSEUDOVECSIZE (type, field),        \
 +                                 VECSIZE (type), tag))
 +
 +extern bool gc_in_progress;
 +extern bool abort_on_gc;
 +extern Lisp_Object make_float (double);
 +extern void display_malloc_warning (void);
 +extern ptrdiff_t inhibit_garbage_collection (void);
 +extern Lisp_Object make_save_int_int_int (ptrdiff_t, ptrdiff_t, ptrdiff_t);
 +extern Lisp_Object make_save_obj_obj_obj_obj (Lisp_Object, Lisp_Object,
 +                                            Lisp_Object, Lisp_Object);
 +extern Lisp_Object make_save_ptr (void *);
 +extern Lisp_Object make_save_ptr_int (void *, ptrdiff_t);
 +extern Lisp_Object make_save_ptr_ptr (void *, void *);
 +extern Lisp_Object make_save_funcptr_ptr_obj (void (*) (void), void *,
 +                                            Lisp_Object);
 +extern Lisp_Object make_save_memory (Lisp_Object *, ptrdiff_t);
 +extern void free_save_value (Lisp_Object);
 +extern Lisp_Object build_overlay (Lisp_Object, Lisp_Object, Lisp_Object);
 +extern void free_marker (Lisp_Object);
 +extern void free_cons (struct Lisp_Cons *);
 +extern void init_alloc_once (void);
 +extern void init_alloc (void);
 +extern void syms_of_alloc (void);
 +extern struct buffer * allocate_buffer (void);
 +extern int valid_lisp_object_p (Lisp_Object);
 +extern int relocatable_string_data_p (const char *);
 +#ifdef GC_CHECK_CONS_LIST
 +extern void check_cons_list (void);
 +#else
 +INLINE void (check_cons_list) (void) { lisp_h_check_cons_list (); }
 +#endif
 +
 +#ifdef REL_ALLOC
 +/* Defined in ralloc.c.  */
 +extern void *r_alloc (void **, size_t) ATTRIBUTE_ALLOC_SIZE ((2));
 +extern void r_alloc_free (void **);
 +extern void *r_re_alloc (void **, size_t) ATTRIBUTE_ALLOC_SIZE ((2));
 +extern void r_alloc_reset_variable (void **, void **);
 +extern void r_alloc_inhibit_buffer_relocation (int);
 +#endif
 +
 +/* Defined in chartab.c.  */
 +extern Lisp_Object copy_char_table (Lisp_Object);
 +extern Lisp_Object char_table_ref_and_range (Lisp_Object, int,
 +                                             int *, int *);
 +extern void char_table_set_range (Lisp_Object, int, int, Lisp_Object);
 +extern void map_char_table (void (*) (Lisp_Object, Lisp_Object,
 +                            Lisp_Object),
 +                            Lisp_Object, Lisp_Object, Lisp_Object);
 +extern void map_char_table_for_charset (void (*c_function) (Lisp_Object, Lisp_Object),
 +                                      Lisp_Object, Lisp_Object,
 +                                      Lisp_Object, struct charset *,
 +                                      unsigned, unsigned);
 +extern Lisp_Object uniprop_table (Lisp_Object);
 +extern void syms_of_chartab (void);
 +
 +/* Defined in print.c.  */
 +extern Lisp_Object Vprin1_to_string_buffer;
 +extern void debug_print (Lisp_Object) EXTERNALLY_VISIBLE;
 +extern void temp_output_buffer_setup (const char *);
 +extern int print_level;
 +extern void write_string (const char *);
 +extern void print_error_message (Lisp_Object, Lisp_Object, const char *,
 +                               Lisp_Object);
 +extern Lisp_Object internal_with_output_to_temp_buffer
 +        (const char *, Lisp_Object (*) (Lisp_Object), Lisp_Object);
 +#define FLOAT_TO_STRING_BUFSIZE 350
 +extern int float_to_string (char *, double);
 +extern void init_print_once (void);
 +extern void syms_of_print (void);
 +
 +/* Defined in doprnt.c.  */
 +extern ptrdiff_t doprnt (char *, ptrdiff_t, const char *, const char *,
 +                       va_list);
 +extern ptrdiff_t esprintf (char *, char const *, ...)
 +  ATTRIBUTE_FORMAT_PRINTF (2, 3);
 +extern ptrdiff_t exprintf (char **, ptrdiff_t *, char const *, ptrdiff_t,
 +                         char const *, ...)
 +  ATTRIBUTE_FORMAT_PRINTF (5, 6);
 +extern ptrdiff_t evxprintf (char **, ptrdiff_t *, char const *, ptrdiff_t,
 +                          char const *, va_list)
 +  ATTRIBUTE_FORMAT_PRINTF (5, 0);
 +
 +/* Defined in lread.c.  */
 +extern Lisp_Object check_obarray (Lisp_Object);
 +extern Lisp_Object intern_1 (const char *, ptrdiff_t);
 +extern Lisp_Object intern_c_string_1 (const char *, ptrdiff_t);
 +extern Lisp_Object intern_driver (Lisp_Object, Lisp_Object, Lisp_Object);
 +extern void init_symbol (Lisp_Object, Lisp_Object);
 +extern Lisp_Object oblookup (Lisp_Object, const char *, ptrdiff_t, ptrdiff_t);
 +INLINE void
 +LOADHIST_ATTACH (Lisp_Object x)
 +{
 +  if (initialized)
 +    Vcurrent_load_list = Fcons (x, Vcurrent_load_list);
 +}
 +extern int openp (Lisp_Object, Lisp_Object, Lisp_Object,
 +                  Lisp_Object *, Lisp_Object, bool);
 +extern Lisp_Object string_to_number (char const *, int, bool);
 +extern void map_obarray (Lisp_Object, void (*) (Lisp_Object, Lisp_Object),
 +                         Lisp_Object);
 +extern void dir_warning (const char *, Lisp_Object);
 +extern void init_obarray (void);
 +extern void init_lread (void);
 +extern void syms_of_lread (void);
 +
 +INLINE Lisp_Object
 +intern (const char *str)
 +{
 +  return intern_1 (str, strlen (str));
 +}
 +
 +INLINE Lisp_Object
 +intern_c_string (const char *str)
 +{
 +  return intern_c_string_1 (str, strlen (str));
 +}
 +
 +/* Defined in eval.c.  */
 +extern EMACS_INT lisp_eval_depth;
 +extern Lisp_Object Vautoload_queue;
 +extern Lisp_Object Vrun_hooks;
 +extern Lisp_Object Vsignaling_function;
 +extern Lisp_Object inhibit_lisp_code;
 +extern struct handler *handlerlist;
 +
 +/* To run a normal hook, use the appropriate function from the list below.
 +   The calling convention:
 +
 +   if (!NILP (Vrun_hooks))
 +     call1 (Vrun_hooks, Qmy_funny_hook);
 +
 +   should no longer be used.  */
 +extern void run_hook (Lisp_Object);
 +extern void run_hook_with_args_2 (Lisp_Object, Lisp_Object, Lisp_Object);
 +extern Lisp_Object run_hook_with_args (ptrdiff_t nargs, Lisp_Object *args,
 +                                     Lisp_Object (*funcall)
 +                                     (ptrdiff_t nargs, Lisp_Object *args));
 +extern _Noreturn void xsignal (Lisp_Object, Lisp_Object);
 +extern _Noreturn void xsignal0 (Lisp_Object);
 +extern _Noreturn void xsignal1 (Lisp_Object, Lisp_Object);
 +extern _Noreturn void xsignal2 (Lisp_Object, Lisp_Object, Lisp_Object);
 +extern _Noreturn void xsignal3 (Lisp_Object, Lisp_Object, Lisp_Object,
 +                              Lisp_Object);
 +extern _Noreturn void signal_error (const char *, Lisp_Object);
 +extern Lisp_Object eval_sub (Lisp_Object form);
 +extern Lisp_Object apply1 (Lisp_Object, Lisp_Object);
 +extern Lisp_Object call0 (Lisp_Object);
 +extern Lisp_Object call1 (Lisp_Object, Lisp_Object);
 +extern Lisp_Object call2 (Lisp_Object, Lisp_Object, Lisp_Object);
 +extern Lisp_Object call3 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
 +extern Lisp_Object call4 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
 +extern Lisp_Object call5 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
 +extern Lisp_Object call6 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
 +extern Lisp_Object call7 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
 +extern Lisp_Object internal_catch (Lisp_Object, Lisp_Object (*) (Lisp_Object), Lisp_Object);
 +extern Lisp_Object internal_lisp_condition_case (Lisp_Object, Lisp_Object, Lisp_Object);
 +extern Lisp_Object internal_condition_case (Lisp_Object (*) (void), Lisp_Object, Lisp_Object (*) (Lisp_Object));
 +extern Lisp_Object internal_condition_case_1 (Lisp_Object (*) (Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));
 +extern Lisp_Object internal_condition_case_2 (Lisp_Object (*) (Lisp_Object, Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object));
 +extern Lisp_Object internal_condition_case_n
 +    (Lisp_Object (*) (ptrdiff_t, Lisp_Object *), ptrdiff_t, Lisp_Object *,
 +     Lisp_Object, Lisp_Object (*) (Lisp_Object, ptrdiff_t, Lisp_Object *));
 +extern void specbind (Lisp_Object, Lisp_Object);
 +extern void record_unwind_protect (void (*) (Lisp_Object), Lisp_Object);
 +extern void record_unwind_protect_ptr (void (*) (void *), void *);
 +extern void record_unwind_protect_int (void (*) (int), int);
 +extern void record_unwind_protect_void (void (*) (void));
 +extern void record_unwind_protect_nothing (void);
 +extern void clear_unwind_protect (ptrdiff_t);
 +extern void set_unwind_protect (ptrdiff_t, void (*) (Lisp_Object), Lisp_Object);
 +extern void set_unwind_protect_ptr (ptrdiff_t, void (*) (void *), void *);
 +extern Lisp_Object unbind_to (ptrdiff_t, Lisp_Object);
 +extern _Noreturn void error (const char *, ...) ATTRIBUTE_FORMAT_PRINTF (1, 2);
 +extern _Noreturn void verror (const char *, va_list)
 +  ATTRIBUTE_FORMAT_PRINTF (1, 0);
 +extern void un_autoload (Lisp_Object);
 +extern Lisp_Object call_debugger (Lisp_Object arg);
 +extern void init_eval_once (void);
 +extern Lisp_Object safe_call (ptrdiff_t, Lisp_Object, ...);
 +extern Lisp_Object safe_call1 (Lisp_Object, Lisp_Object);
 +extern Lisp_Object safe_call2 (Lisp_Object, Lisp_Object, Lisp_Object);
 +extern void init_eval (void);
 +extern void syms_of_eval (void);
 +extern void unwind_body (Lisp_Object);
 +extern ptrdiff_t record_in_backtrace (Lisp_Object, Lisp_Object *, ptrdiff_t);
 +extern void mark_specpdl (void);
 +extern void get_backtrace (Lisp_Object array);
 +Lisp_Object backtrace_top_function (void);
 +extern bool let_shadows_buffer_binding_p (struct Lisp_Symbol *symbol);
 +extern bool let_shadows_global_binding_p (Lisp_Object symbol);
 +
 +
 +/* Defined in editfns.c.  */
 +extern void insert1 (Lisp_Object);
 +extern Lisp_Object format2 (const char *, Lisp_Object, Lisp_Object);
 +extern Lisp_Object save_excursion_save (void);
 +extern Lisp_Object save_restriction_save (void);
 +extern void save_excursion_restore (Lisp_Object);
 +extern void save_restriction_restore (Lisp_Object);
 +extern _Noreturn void time_overflow (void);
 +extern Lisp_Object make_buffer_string (ptrdiff_t, ptrdiff_t, bool);
 +extern Lisp_Object make_buffer_string_both (ptrdiff_t, ptrdiff_t, ptrdiff_t,
 +                                          ptrdiff_t, bool);
 +extern void init_editfns (void);
 +extern void syms_of_editfns (void);
 +
 +/* Defined in buffer.c.  */
 +extern bool mouse_face_overlay_overlaps (Lisp_Object);
 +extern _Noreturn void nsberror (Lisp_Object);
 +extern void adjust_overlays_for_insert (ptrdiff_t, ptrdiff_t);
 +extern void adjust_overlays_for_delete (ptrdiff_t, ptrdiff_t);
 +extern void fix_start_end_in_overlays (ptrdiff_t, ptrdiff_t);
 +extern void report_overlay_modification (Lisp_Object, Lisp_Object, bool,
 +                                         Lisp_Object, Lisp_Object, Lisp_Object);
 +extern bool overlay_touches_p (ptrdiff_t);
 +extern Lisp_Object other_buffer_safely (Lisp_Object);
 +extern Lisp_Object get_truename_buffer (Lisp_Object);
 +extern void init_buffer_once (void);
 +extern void init_buffer (int);
 +extern void syms_of_buffer (void);
 +extern void keys_of_buffer (void);
 +
 +/* Defined in marker.c.  */
 +
 +extern ptrdiff_t marker_position (Lisp_Object);
 +extern ptrdiff_t marker_byte_position (Lisp_Object);
 +extern void clear_charpos_cache (struct buffer *);
 +extern ptrdiff_t buf_charpos_to_bytepos (struct buffer *, ptrdiff_t);
 +extern ptrdiff_t buf_bytepos_to_charpos (struct buffer *, ptrdiff_t);
 +extern void unchain_marker (struct Lisp_Marker *marker);
 +extern Lisp_Object set_marker_restricted (Lisp_Object, Lisp_Object, Lisp_Object);
 +extern Lisp_Object set_marker_both (Lisp_Object, Lisp_Object, ptrdiff_t, ptrdiff_t);
 +extern Lisp_Object set_marker_restricted_both (Lisp_Object, Lisp_Object,
 +                                               ptrdiff_t, ptrdiff_t);
 +extern Lisp_Object build_marker (struct buffer *, ptrdiff_t, ptrdiff_t);
 +extern void syms_of_marker (void);
 +
 +/* Defined in fileio.c.  */
 +
 +extern Lisp_Object expand_and_dir_to_file (Lisp_Object, Lisp_Object);
 +extern Lisp_Object write_region (Lisp_Object, Lisp_Object, Lisp_Object,
 +                               Lisp_Object, Lisp_Object, Lisp_Object,
 +                               Lisp_Object, int);
 +extern void close_file_unwind (int);
 +extern void fclose_unwind (void *);
 +extern void restore_point_unwind (Lisp_Object);
 +extern _Noreturn void report_file_errno (const char *, Lisp_Object, int);
 +extern _Noreturn void report_file_error (const char *, Lisp_Object);
 +extern bool internal_delete_file (Lisp_Object);
 +extern Lisp_Object emacs_readlinkat (int, const char *);
 +extern bool file_directory_p (const char *);
 +extern bool file_accessible_directory_p (Lisp_Object);
 +extern void init_fileio (void);
 +extern void syms_of_fileio (void);
 +extern Lisp_Object make_temp_name (Lisp_Object, bool);
 +
 +/* Defined in search.c.  */
 +extern void shrink_regexp_cache (void);
 +extern void restore_search_regs (void);
 +extern void record_unwind_save_match_data (void);
 +struct re_registers;
 +extern struct re_pattern_buffer *compile_pattern (Lisp_Object,
 +                                                struct re_registers *,
 +                                                Lisp_Object, bool, bool);
 +extern ptrdiff_t fast_string_match_internal (Lisp_Object, Lisp_Object,
 +                                           Lisp_Object);
 +
 +INLINE ptrdiff_t
 +fast_string_match (Lisp_Object regexp, Lisp_Object string)
 +{
 +  return fast_string_match_internal (regexp, string, Qnil);
 +}
 +
 +INLINE ptrdiff_t
 +fast_string_match_ignore_case (Lisp_Object regexp, Lisp_Object string)
 +{
 +  return fast_string_match_internal (regexp, string, Vascii_canon_table);
 +}
 +
 +extern ptrdiff_t fast_c_string_match_ignore_case (Lisp_Object, const char *,
 +                                                ptrdiff_t);
 +extern ptrdiff_t fast_looking_at (Lisp_Object, ptrdiff_t, ptrdiff_t,
 +                                  ptrdiff_t, ptrdiff_t, Lisp_Object);
 +extern ptrdiff_t find_newline (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t,
 +                             ptrdiff_t, ptrdiff_t *, ptrdiff_t *, bool);
 +extern ptrdiff_t scan_newline (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t,
 +                             ptrdiff_t, bool);
 +extern ptrdiff_t scan_newline_from_point (ptrdiff_t, ptrdiff_t *, ptrdiff_t *);
 +extern ptrdiff_t find_newline_no_quit (ptrdiff_t, ptrdiff_t,
 +                                     ptrdiff_t, ptrdiff_t *);
 +extern ptrdiff_t find_before_next_newline (ptrdiff_t, ptrdiff_t,
 +                                         ptrdiff_t, ptrdiff_t *);
 +extern void syms_of_search (void);
 +extern void clear_regexp_cache (void);
 +
 +/* Defined in minibuf.c.  */
 +
 +extern Lisp_Object Vminibuffer_list;
 +extern Lisp_Object last_minibuf_string;
 +extern Lisp_Object get_minibuffer (EMACS_INT);
 +extern void init_minibuf_once (void);
 +extern void syms_of_minibuf (void);
 +
 +/* Defined in callint.c.  */
 +
 +extern void syms_of_callint (void);
 +
 +/* Defined in casefiddle.c.  */
 +
 +extern void syms_of_casefiddle (void);
 +extern void keys_of_casefiddle (void);
 +
 +/* Defined in casetab.c.  */
 +
 +extern void init_casetab_once (void);
 +extern void syms_of_casetab (void);
 +
 +/* Defined in keyboard.c.  */
 +
 +extern Lisp_Object echo_message_buffer;
 +extern struct kboard *echo_kboard;
 +extern void cancel_echoing (void);
 +extern Lisp_Object last_undo_boundary;
 +extern bool input_pending;
 +#ifdef HAVE_STACK_OVERFLOW_HANDLING
 +extern sigjmp_buf return_to_command_loop;
 +#endif
 +extern Lisp_Object menu_bar_items (Lisp_Object);
 +extern Lisp_Object tool_bar_items (Lisp_Object, int *);
 +extern void discard_mouse_events (void);
 +#ifdef USABLE_SIGIO
 +void handle_input_available_signal (int);
 +#endif
 +extern Lisp_Object pending_funcalls;
 +extern bool detect_input_pending (void);
 +extern bool detect_input_pending_ignore_squeezables (void);
 +extern bool detect_input_pending_run_timers (bool);
 +extern void safe_run_hooks (Lisp_Object);
 +extern void cmd_error_internal (Lisp_Object, const char *);
 +extern Lisp_Object command_loop_1 (void);
 +extern Lisp_Object read_menu_command (void);
 +extern Lisp_Object recursive_edit_1 (void);
 +extern void record_auto_save (void);
 +extern void force_auto_save_soon (void);
 +extern void init_keyboard (void);
 +extern void syms_of_keyboard (void);
 +extern void keys_of_keyboard (void);
 +
 +/* Defined in indent.c.  */
 +extern ptrdiff_t current_column (void);
 +extern void invalidate_current_column (void);
 +extern bool indented_beyond_p (ptrdiff_t, ptrdiff_t, EMACS_INT);
 +extern void syms_of_indent (void);
 +
 +/* Defined in frame.c.  */
 +extern void store_frame_param (struct frame *, Lisp_Object, Lisp_Object);
 +extern void store_in_alist (Lisp_Object *, Lisp_Object, Lisp_Object);
 +extern Lisp_Object do_switch_frame (Lisp_Object, int, int, Lisp_Object);
 +extern Lisp_Object get_frame_param (struct frame *, Lisp_Object);
 +extern void frames_discard_buffer (Lisp_Object);
 +extern void syms_of_frame (void);
 +
 +/* Defined in emacs.c.  */
 +extern char **initial_argv;
 +extern int initial_argc;
 +#if defined (HAVE_X_WINDOWS) || defined (HAVE_NS)
 +extern bool display_arg;
 +#endif
 +extern Lisp_Object decode_env_path (const char *, const char *, bool);
 +extern Lisp_Object empty_unibyte_string, empty_multibyte_string;
 +extern _Noreturn void terminate_due_to_signal (int, int);
 +#ifdef WINDOWSNT
 +extern Lisp_Object Vlibrary_cache;
 +#endif
 +#if HAVE_SETLOCALE
 +void fixup_locale (void);
 +void synchronize_system_messages_locale (void);
 +void synchronize_system_time_locale (void);
 +#else
 +INLINE void fixup_locale (void) {}
 +INLINE void synchronize_system_messages_locale (void) {}
 +INLINE void synchronize_system_time_locale (void) {}
 +#endif
 +extern void shut_down_emacs (int, Lisp_Object);
 +
 +/* True means don't do interactive redisplay and don't change tty modes.  */
 +extern bool noninteractive;
 +
 +/* True means remove site-lisp directories from load-path.  */
 +extern bool no_site_lisp;
 +
 +/* Pipe used to send exit notification to the daemon parent at
 +   startup.  On Windows, we use a kernel event instead.  */
 +#ifndef WINDOWSNT
 +extern int daemon_pipe[2];
 +#define IS_DAEMON (daemon_pipe[1] != 0)
 +#define DAEMON_RUNNING (daemon_pipe[1] >= 0)
 +#else  /* WINDOWSNT */
 +extern void *w32_daemon_event;
 +#define IS_DAEMON (w32_daemon_event != NULL)
 +#define DAEMON_RUNNING (w32_daemon_event != INVALID_HANDLE_VALUE)
 +#endif
 +
 +/* True if handling a fatal error already.  */
 +extern bool fatal_error_in_progress;
 +
 +/* True means don't do use window-system-specific display code.  */
 +extern bool inhibit_window_system;
 +/* True means that a filter or a sentinel is running.  */
 +extern bool running_asynch_code;
 +
 +/* Defined in process.c.  */
 +extern void kill_buffer_processes (Lisp_Object);
 +extern int wait_reading_process_output (intmax_t, int, int, bool, Lisp_Object,
 +                                      struct Lisp_Process *, int);
 +/* Max value for the first argument of wait_reading_process_output.  */
 +#if __GNUC__ == 3 || (__GNUC__ == 4 && __GNUC_MINOR__ <= 5)
 +/* Work around a bug in GCC 3.4.2, known to be fixed in GCC 4.6.3.
 +   The bug merely causes a bogus warning, but the warning is annoying.  */
 +# define WAIT_READING_MAX min (TYPE_MAXIMUM (time_t), INTMAX_MAX)
 +#else
 +# define WAIT_READING_MAX INTMAX_MAX
 +#endif
 +#ifdef HAVE_TIMERFD
 +extern void add_timer_wait_descriptor (int);
 +#endif
 +extern void add_keyboard_wait_descriptor (int);
 +extern void delete_keyboard_wait_descriptor (int);
 +#ifdef HAVE_GPM
 +extern void add_gpm_wait_descriptor (int);
 +extern void delete_gpm_wait_descriptor (int);
 +#endif
 +extern void init_process_emacs (void);
 +extern void syms_of_process (void);
 +extern void setup_process_coding_systems (Lisp_Object);
 +
 +/* Defined in callproc.c.  */
 +#ifndef DOS_NT
 + _Noreturn
 +#endif
 +extern int child_setup (int, int, int, char **, bool, Lisp_Object);
 +extern void init_callproc_1 (void);
 +extern void init_callproc (void);
 +extern void set_initial_environment (void);
 +extern void syms_of_callproc (void);
 +
 +/* Defined in doc.c.  */
 +extern Lisp_Object read_doc_string (Lisp_Object);
 +extern Lisp_Object get_doc_string (Lisp_Object, bool, bool);
 +extern void syms_of_doc (void);
 +extern int read_bytecode_char (bool);
 +
 +/* Defined in bytecode.c.  */
 +extern void syms_of_bytecode (void);
 +extern struct byte_stack *byte_stack_list;
 +#if BYTE_MARK_STACK
 +extern void mark_byte_stack (void);
 +#endif
 +extern void unmark_byte_stack (void);
 +extern Lisp_Object exec_byte_code (Lisp_Object, Lisp_Object, Lisp_Object,
 +                                 Lisp_Object, ptrdiff_t, Lisp_Object *);
 +
 +/* Defined in macros.c.  */
 +extern void init_macros (void);
 +extern void syms_of_macros (void);
 +
 +/* Defined in undo.c.  */
 +extern void truncate_undo_list (struct buffer *);
 +extern void record_insert (ptrdiff_t, ptrdiff_t);
 +extern void record_delete (ptrdiff_t, Lisp_Object, bool);
 +extern void record_first_change (void);
 +extern void record_change (ptrdiff_t, ptrdiff_t);
 +extern void record_property_change (ptrdiff_t, ptrdiff_t,
 +                                  Lisp_Object, Lisp_Object,
 +                                    Lisp_Object);
 +extern void syms_of_undo (void);
 +
 +/* Defined in textprop.c.  */
 +extern void report_interval_modification (Lisp_Object, Lisp_Object);
 +
 +/* Defined in menu.c.  */
 +extern void syms_of_menu (void);
 +
 +/* Defined in xmenu.c.  */
 +extern void syms_of_xmenu (void);
 +
 +/* Defined in termchar.h.  */
 +struct tty_display_info;
 +
 +/* Defined in termhooks.h.  */
 +struct terminal;
 +
 +/* Defined in sysdep.c.  */
 +#ifndef HAVE_GET_CURRENT_DIR_NAME
 +extern char *get_current_dir_name (void);
 +#endif
 +extern void stuff_char (char c);
 +extern void init_foreground_group (void);
 +extern void sys_subshell (void);
 +extern void sys_suspend (void);
 +extern void discard_tty_input (void);
 +extern void init_sys_modes (struct tty_display_info *);
 +extern void reset_sys_modes (struct tty_display_info *);
 +extern void init_all_sys_modes (void);
 +extern void reset_all_sys_modes (void);
 +extern void child_setup_tty (int);
 +extern void setup_pty (int);
 +extern int set_window_size (int, int, int);
 +extern EMACS_INT get_random (void);
 +extern void seed_random (void *, ptrdiff_t);
 +extern void init_random (void);
 +extern void emacs_backtrace (int);
 +extern _Noreturn void emacs_abort (void) NO_INLINE;
 +extern int emacs_open (const char *, int, int);
 +extern int emacs_pipe (int[2]);
 +extern int emacs_close (int);
 +extern ptrdiff_t emacs_read (int, void *, ptrdiff_t);
 +extern ptrdiff_t emacs_write (int, void const *, ptrdiff_t);
 +extern ptrdiff_t emacs_write_sig (int, void const *, ptrdiff_t);
 +extern void emacs_perror (char const *);
 +
 +extern void unlock_all_files (void);
 +extern void lock_file (Lisp_Object);
 +extern void unlock_file (Lisp_Object);
 +extern void unlock_buffer (struct buffer *);
 +extern void syms_of_filelock (void);
 +extern int str_collate (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
 +
 +/* Defined in sound.c.  */
 +extern void syms_of_sound (void);
 +
 +/* Defined in category.c.  */
 +extern void init_category_once (void);
 +extern Lisp_Object char_category_set (int);
 +extern void syms_of_category (void);
 +
 +/* Defined in ccl.c.  */
 +extern void syms_of_ccl (void);
 +
 +/* Defined in dired.c.  */
 +extern void syms_of_dired (void);
 +extern Lisp_Object directory_files_internal (Lisp_Object, Lisp_Object,
 +                                             Lisp_Object, Lisp_Object,
 +                                             bool, Lisp_Object);
 +
 +/* Defined in term.c.  */
 +extern int *char_ins_del_vector;
 +extern void syms_of_term (void);
 +extern _Noreturn void fatal (const char *msgid, ...)
 +  ATTRIBUTE_FORMAT_PRINTF (1, 2);
 +
 +/* Defined in terminal.c.  */
 +extern void syms_of_terminal (void);
 +
 +/* Defined in font.c.  */
 +extern void syms_of_font (void);
 +extern void init_font (void);
 +
 +#ifdef HAVE_WINDOW_SYSTEM
 +/* Defined in fontset.c.  */
 +extern void syms_of_fontset (void);
 +#endif
 +
 +/* Defined in gfilenotify.c */
 +#ifdef HAVE_GFILENOTIFY
 +extern void globals_of_gfilenotify (void);
 +extern void syms_of_gfilenotify (void);
 +#endif
 +
 +/* Defined in inotify.c */
 +#ifdef HAVE_INOTIFY
 +extern void syms_of_inotify (void);
 +#endif
 +
 +#ifdef HAVE_W32NOTIFY
 +/* Defined on w32notify.c.  */
 +extern void syms_of_w32notify (void);
 +#endif
 +
 +/* Defined in xfaces.c.  */
 +extern Lisp_Object Vface_alternative_font_family_alist;
 +extern Lisp_Object Vface_alternative_font_registry_alist;
 +extern void syms_of_xfaces (void);
 +
 +#ifdef HAVE_X_WINDOWS
 +/* Defined in xfns.c.  */
 +extern void syms_of_xfns (void);
 +
 +/* Defined in xsmfns.c.  */
 +extern void syms_of_xsmfns (void);
 +
 +/* Defined in xselect.c.  */
 +extern void syms_of_xselect (void);
 +
 +/* Defined in xterm.c.  */
 +extern void init_xterm (void);
 +extern void syms_of_xterm (void);
 +#endif /* HAVE_X_WINDOWS */
 +
 +#ifdef HAVE_WINDOW_SYSTEM
 +/* Defined in xterm.c, nsterm.m, w32term.c.  */
 +extern char *x_get_keysym_name (int);
 +#endif /* HAVE_WINDOW_SYSTEM */
 +
 +#ifdef HAVE_LIBXML2
 +/* Defined in xml.c.  */
 +extern void syms_of_xml (void);
 +extern void xml_cleanup_parser (void);
 +#endif
 +
 +#ifdef HAVE_ZLIB
 +/* Defined in decompress.c.  */
 +extern void syms_of_decompress (void);
 +#endif
 +
 +#ifdef HAVE_DBUS
 +/* Defined in dbusbind.c.  */
 +void init_dbusbind (void);
 +void syms_of_dbusbind (void);
 +#endif
 +
 +
 +/* Defined in profiler.c.  */
 +extern bool profiler_memory_running;
 +extern void malloc_probe (size_t);
 +extern void syms_of_profiler (void);
 +
 +
 +#ifdef DOS_NT
 +/* Defined in msdos.c, w32.c.  */
 +extern char *emacs_root_dir (void);
 +#endif /* DOS_NT */
 +
 +/* Defined in lastfile.c.  */
 +extern char my_edata[];
 +extern char my_endbss[];
 +extern char *my_endbss_static;
 +
 +/* True means ^G can quit instantly.  */
 +extern bool immediate_quit;
 +
 +extern void *xmalloc (size_t) ATTRIBUTE_MALLOC_SIZE ((1));
 +extern void *xzalloc (size_t) ATTRIBUTE_MALLOC_SIZE ((1));
 +extern void *xrealloc (void *, size_t) ATTRIBUTE_ALLOC_SIZE ((2));
 +extern void xfree (void *);
 +extern void *xnmalloc (ptrdiff_t, ptrdiff_t) ATTRIBUTE_MALLOC_SIZE ((1,2));
 +extern void *xnrealloc (void *, ptrdiff_t, ptrdiff_t)
 +  ATTRIBUTE_ALLOC_SIZE ((2,3));
 +extern void *xpalloc (void *, ptrdiff_t *, ptrdiff_t, ptrdiff_t, ptrdiff_t);
 +
 +extern char *xstrdup (const char *) ATTRIBUTE_MALLOC;
 +extern char *xlispstrdup (Lisp_Object) ATTRIBUTE_MALLOC;
 +extern void dupstring (char **, char const *);
 +
 +/* Make DEST a copy of STRING's data.  Return a pointer to DEST's terminating
 +   null byte.  This is like stpcpy, except the source is a Lisp string.  */
 +
 +INLINE char *
 +lispstpcpy (char *dest, Lisp_Object string)
 +{
 +  ptrdiff_t len = SBYTES (string);
 +  memcpy (dest, SDATA (string), len + 1);
 +  return dest + len;
 +}
 +
 +extern void xputenv (const char *);
 +
 +extern char *egetenv_internal (const char *, ptrdiff_t);
 +
 +INLINE char *
 +egetenv (const char *var)
 +{
 +  /* When VAR is a string literal, strlen can be optimized away.  */
 +  return egetenv_internal (var, strlen (var));
 +}
 +
 +/* Set up the name of the machine we're running on.  */
 +extern void init_system_name (void);
 +
 +/* Return the absolute value of X.  X should be a signed integer
 +   expression without side effects, and X's absolute value should not
 +   exceed the maximum for its promoted type.  This is called 'eabs'
 +   because 'abs' is reserved by the C standard.  */
 +#define eabs(x)         ((x) < 0 ? -(x) : (x))
 +
 +/* Return a fixnum or float, depending on whether VAL fits in a Lisp
 +   fixnum.  */
 +
 +#define make_fixnum_or_float(val) \
 +   (FIXNUM_OVERFLOW_P (val) ? make_float (val) : make_number (val))
 +
 +/* SAFE_ALLOCA normally allocates memory on the stack, but if size is
 +   larger than MAX_ALLOCA, use xmalloc to avoid overflowing the stack.  */
 +
 +enum MAX_ALLOCA { MAX_ALLOCA = 16 * 1024 };
 +
 +extern void *record_xmalloc (size_t) ATTRIBUTE_ALLOC_SIZE ((1));
 +
 +#define USE_SAFE_ALLOCA                       \
 +  ptrdiff_t sa_avail = MAX_ALLOCA;    \
 +  ptrdiff_t sa_count = SPECPDL_INDEX (); bool sa_must_free = false
 +
 +#define AVAIL_ALLOCA(size) (sa_avail -= (size), alloca (size))
 +
 +/* SAFE_ALLOCA allocates a simple buffer.  */
 +
 +#define SAFE_ALLOCA(size) ((size) <= sa_avail                         \
 +                         ? AVAIL_ALLOCA (size)                        \
 +                         : (sa_must_free = true, record_xmalloc (size)))
 +
 +/* SAFE_NALLOCA sets BUF to a newly allocated array of MULTIPLIER *
 +   NITEMS items, each of the same type as *BUF.  MULTIPLIER must
 +   positive.  The code is tuned for MULTIPLIER being a constant.  */
 +
 +#define SAFE_NALLOCA(buf, multiplier, nitems)                  \
 +  do {                                                                 \
 +    if ((nitems) <= sa_avail / sizeof *(buf) / (multiplier))   \
 +      (buf) = AVAIL_ALLOCA (sizeof *(buf) * (multiplier) * (nitems)); \
 +    else                                                       \
 +      {                                                                \
 +      (buf) = xnmalloc (nitems, sizeof *(buf) * (multiplier)); \
 +      sa_must_free = true;                                     \
 +      record_unwind_protect_ptr (xfree, buf);                  \
 +      }                                                                \
 +  } while (false)
 +
 +/* SAFE_ALLOCA_STRING allocates a C copy of a Lisp string.  */
 +
 +#define SAFE_ALLOCA_STRING(ptr, string)                       \
 +  do {                                                        \
 +    (ptr) = SAFE_ALLOCA (SBYTES (string) + 1);                \
 +    memcpy (ptr, SDATA (string), SBYTES (string) + 1);        \
 +  } while (false)
 +
 +/* SAFE_FREE frees xmalloced memory and enables GC as needed.  */
 +
 +#define SAFE_FREE()                   \
 +  do {                                        \
 +    if (sa_must_free) {                       \
 +      sa_must_free = false;           \
 +      unbind_to (sa_count, Qnil);     \
 +    }                                 \
 +  } while (false)
 +
 +
 +/* Return floor (NBYTES / WORD_SIZE).  */
 +
 +INLINE ptrdiff_t
 +lisp_word_count (ptrdiff_t nbytes)
 +{
 +  if (-1 >> 1 == -1)
 +    switch (word_size)
 +      {
 +      case 2: return nbytes >> 1;
 +      case 4: return nbytes >> 2;
 +      case 8: return nbytes >> 3;
 +      case 16: return nbytes >> 4;
 +      }
 +  return nbytes / word_size - (nbytes % word_size < 0);
 +}
 +
 +/* SAFE_ALLOCA_LISP allocates an array of Lisp_Objects.  */
 +
 +#define SAFE_ALLOCA_LISP(buf, nelt)                          \
 +  do {                                                               \
 +    if ((nelt) <= lisp_word_count (sa_avail))                \
 +      (buf) = AVAIL_ALLOCA ((nelt) * word_size);             \
 +    else if ((nelt) <= min (PTRDIFF_MAX, SIZE_MAX) / word_size) \
 +      {                                                              \
 +      Lisp_Object arg_;                                      \
 +      (buf) = xmalloc ((nelt) * word_size);                  \
 +      arg_ = make_save_memory (buf, nelt);                   \
 +      sa_must_free = true;                                   \
 +      record_unwind_protect (free_save_value, arg_);         \
 +      }                                                              \
 +    else                                                     \
 +      memory_full (SIZE_MAX);                                \
 +  } while (false)
 +
 +
 +/* If USE_STACK_LISP_OBJECTS, define macros that and functions that allocate
 +   block-scoped conses and strings.  These objects are not
 +   managed by the garbage collector, so they are dangerous: passing them
 +   out of their scope (e.g., to user code) results in undefined behavior.
 +   Conversely, they have better performance because GC is not involved.
 +
 +   This feature is experimental and requires careful debugging.
 +   Build with CPPFLAGS='-DUSE_STACK_LISP_OBJECTS=0' to disable it.  */
 +
 +#ifndef USE_STACK_LISP_OBJECTS
 +# define USE_STACK_LISP_OBJECTS true
 +#endif
 +
 +/* USE_STACK_LISP_OBJECTS requires GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS.  */
 +
 +#if GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS
 +# undef USE_STACK_LISP_OBJECTS
 +# define USE_STACK_LISP_OBJECTS false
 +#endif
 +
 +#ifdef GC_CHECK_STRING_BYTES
 +enum { defined_GC_CHECK_STRING_BYTES = true };
 +#else
 +enum { defined_GC_CHECK_STRING_BYTES = false };
 +#endif
 +
 +/* Struct inside unions that are typically no larger and aligned enough.  */
 +
 +union Aligned_Cons
 +{
 +  struct Lisp_Cons s;
 +  double d; intmax_t i; void *p;
 +};
 +
 +union Aligned_String
 +{
 +  struct Lisp_String s;
 +  double d; intmax_t i; void *p;
 +};
 +
 +/* True for stack-based cons and string implementations, respectively.
 +   Use stack-based strings only if stack-based cons also works.
 +   Otherwise, STACK_CONS would create heap-based cons cells that
 +   could point to stack-based strings, which is a no-no.  */
 +
 +enum
 +  {
 +    USE_STACK_CONS = (USE_STACK_LISP_OBJECTS
 +                    && alignof (union Aligned_Cons) % GCALIGNMENT == 0),
 +    USE_STACK_STRING = (USE_STACK_CONS
 +                      && !defined_GC_CHECK_STRING_BYTES
 +                      && alignof (union Aligned_String) % GCALIGNMENT == 0)
 +  };
 +
 +/* Auxiliary macros used for auto allocation of Lisp objects.  Please
 +   use these only in macros like AUTO_CONS that declare a local
 +   variable whose lifetime will be clear to the programmer.  */
 +#define STACK_CONS(a, b) \
 +  make_lisp_ptr (&(union Aligned_Cons) { { a, { b } } }.s, Lisp_Cons)
 +#define AUTO_CONS_EXPR(a, b) \
 +  (USE_STACK_CONS ? STACK_CONS (a, b) : Fcons (a, b))
 +
 +/* Declare NAME as an auto Lisp cons or short list if possible, a
 +   GC-based one otherwise.  This is in the sense of the C keyword
 +   'auto'; i.e., the object has the lifetime of the containing block.
 +   The resulting object should not be made visible to user Lisp code.  */
 +
 +#define AUTO_CONS(name, a, b) Lisp_Object name = AUTO_CONS_EXPR (a, b)
 +#define AUTO_LIST1(name, a)                                           \
 +  Lisp_Object name = (USE_STACK_CONS ? STACK_CONS (a, Qnil) : list1 (a))
 +#define AUTO_LIST2(name, a, b)                                                \
 +  Lisp_Object name = (USE_STACK_CONS                                  \
 +                    ? STACK_CONS (a, STACK_CONS (b, Qnil))            \
 +                    : list2 (a, b))
 +#define AUTO_LIST3(name, a, b, c)                                     \
 +  Lisp_Object name = (USE_STACK_CONS                                  \
 +                    ? STACK_CONS (a, STACK_CONS (b, STACK_CONS (c, Qnil))) \
 +                    : list3 (a, b, c))
 +#define AUTO_LIST4(name, a, b, c, d)                                  \
 +    Lisp_Object name                                                  \
 +      = (USE_STACK_CONS                                                       \
 +       ? STACK_CONS (a, STACK_CONS (b, STACK_CONS (c,                 \
 +                                                   STACK_CONS (d, Qnil)))) \
 +       : list4 (a, b, c, d))
 +
 +/* Check whether stack-allocated strings are ASCII-only.  */
 +
 +#if defined (ENABLE_CHECKING) && USE_STACK_LISP_OBJECTS
 +extern const char *verify_ascii (const char *);
 +#else
 +# define verify_ascii(str) (str)
 +#endif
 +
 +/* Declare NAME as an auto Lisp string if possible, a GC-based one if not.
 +   Take its value from STR.  STR is not necessarily copied and should
 +   contain only ASCII characters.  The resulting Lisp string should
 +   not be modified or made visible to user code.  */
 +
 +#define AUTO_STRING(name, str)                                                \
 +  Lisp_Object name =                                                  \
 +    (USE_STACK_STRING                                                 \
 +     ? (make_lisp_ptr                                                 \
 +      ((&(union Aligned_String)                                       \
 +        {{strlen (str), -1, 0, (unsigned char *) verify_ascii (str)}}.s), \
 +        Lisp_String))                                                 \
 +     : build_string (verify_ascii (str)))
 +
 +/* Loop over all tails of a list, checking for cycles.
 +   FIXME: Make tortoise and n internal declarations.
 +   FIXME: Unroll the loop body so we don't need `n'.  */
 +#define FOR_EACH_TAIL(hare, list, tortoise, n)        \
 +  for ((tortoise) = (hare) = (list), (n) = true;              \
 +       CONSP (hare);                                          \
 +       (hare = XCDR (hare), (n) = !(n),                               \
 +      ((n)                                                    \
 +       ? (EQ (hare, tortoise)                                 \
 +          ? xsignal1 (Qcircular_list, list)                   \
 +          : (void) 0)                                         \
 +       /* Move tortoise before the next iteration, in case */ \
 +       /* the next iteration does an Fsetcdr.  */             \
 +       : (void) ((tortoise) = XCDR (tortoise)))))
 +
 +/* Do a `for' loop over alist values.  */
 +
 +#define FOR_EACH_ALIST_VALUE(head_var, list_var, value_var)           \
 +  for ((list_var) = (head_var);                                               \
 +       (CONSP (list_var) && ((value_var) = XCDR (XCAR (list_var)), true)); \
 +       (list_var) = XCDR (list_var))
 +
 +/* Check whether it's time for GC, and run it if so.  */
 +
 +INLINE void
 +maybe_gc (void)
 +{
 +  if ((consing_since_gc > gc_cons_threshold
 +       && consing_since_gc > gc_relative_threshold)
 +      || (!NILP (Vmemory_full)
 +        && consing_since_gc > memory_full_cons_threshold))
 +    Fgarbage_collect ();
 +}
 +
 +INLINE bool
 +functionp (Lisp_Object object)
 +{
 +  if (SYMBOLP (object) && !NILP (Ffboundp (object)))
 +    {
 +      object = Findirect_function (object, Qt);
 +
 +      if (CONSP (object) && EQ (XCAR (object), Qautoload))
 +      {
 +        /* Autoloaded symbols are functions, except if they load
 +           macros or keymaps.  */
 +        int i;
 +        for (i = 0; i < 4 && CONSP (object); i++)
 +          object = XCDR (object);
 +
 +        return ! (CONSP (object) && !NILP (XCAR (object)));
 +      }
 +    }
 +
 +  if (SUBRP (object))
 +    return XSUBR (object)->max_args != UNEVALLED;
 +  else if (COMPILEDP (object))
 +    return true;
 +  else if (CONSP (object))
 +    {
 +      Lisp_Object car = XCAR (object);
 +      return EQ (car, Qlambda) || EQ (car, Qclosure);
 +    }
 +  else
 +    return false;
 +}
 +
 +INLINE_HEADER_END
 +
 +#endif /* EMACS_LISP_H */
index 4465b8306026d6b93197fdde42740ac8ff78bc1e,0000000000000000000000000000000000000000..453419897bc05b29542435c39ef86c8cb8afddb7
mode 100644,000000..100644
--- /dev/null
@@@ -1,6563 -1,0 +1,6563 @@@
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
 +/* Tags file maker to go with GNU Emacs           -*- coding: utf-8 -*-
 +
 +Copyright (C) 1984 The Regents of the University of California
 +
 +Redistribution and use in source and binary forms, with or without
 +modification, are permitted provided that the following conditions are
 +met:
 +1. Redistributions of source code must retain the above copyright
 +   notice, this list of conditions and the following disclaimer.
 +2. Redistributions in binary form must reproduce the above copyright
 +   notice, this list of conditions and the following disclaimer in the
 +   documentation and/or other materials provided with the
 +   distribution.
 +3. Neither the name of the University nor the names of its
 +   contributors may be used to endorse or promote products derived
 +   from this software without specific prior written permission.
 +
 +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS''
 +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 +PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS
 +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 +
 +
 +Copyright (C) 1984, 1987-1989, 1993-1995, 1998-2016 Free Software
 +Foundation, Inc.
 +
 +This file is not considered part of GNU Emacs.
 +
 +This program is free software: you can redistribute it and/or modify
 +it under the terms of the GNU General Public License as published by
- functions in classes are named `CLASS::VARIABLE' and `CLASS::FUNCTION'.\n\
- (Use --help --lang=c --lang=objc --lang=java for full help.)";
++the Free Software Foundation, either version 3 of the License, or (at
++your option) any later version.
 +
 +This program is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 +
 +
 +/* NB To comply with the above BSD license, copyright information is
 +reproduced in etc/ETAGS.README.  That file should be updated when the
 +above notices are.
 +
 +To the best of our knowledge, this code was originally based on the
 +ctags.c distributed with BSD4.2, which was copyrighted by the
 +University of California, as described above. */
 +
 +
 +/*
 + * Authors:
 + * 1983 Ctags originally by Ken Arnold.
 + * 1984 Fortran added by Jim Kleckner.
 + * 1984 Ed Pelegri-Llopart added C typedefs.
 + * 1985 Emacs TAGS format by Richard Stallman.
 + * 1989 Sam Kendall added C++.
 + * 1992 Joseph B. Wells improved C and C++ parsing.
 + * 1993 Francesco Potortì reorganized C and C++.
 + * 1994 Line-by-line regexp tags by Tom Tromey.
 + * 2001 Nested classes by Francesco Potortì (concept by Mykola Dzyuba).
 + * 2002 #line directives by Francesco Potortì.
 + *
 + * Francesco Potortì <pot@gnu.org> has maintained and improved it since 1993.
 + */
 +
 +/*
 + * If you want to add support for a new language, start by looking at the LUA
 + * language, which is the simplest.  Alternatively, consider distributing etags
 + * together with a configuration file containing regexp definitions for etags.
 + */
 +
 +char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4";
 +
 +#ifdef DEBUG
 +#  undef DEBUG
 +#  define DEBUG true
 +#else
 +#  define DEBUG  false
 +#  define NDEBUG              /* disable assert */
 +#endif
 +
 +#include <config.h>
 +
 +#ifndef _GNU_SOURCE
 +# define _GNU_SOURCE 1                /* enables some compiler checks on GNU */
 +#endif
 +
 +/* WIN32_NATIVE is for XEmacs.
 +   MSDOS, WINDOWSNT, DOS_NT are for Emacs. */
 +#ifdef WIN32_NATIVE
 +# undef MSDOS
 +# undef  WINDOWSNT
 +# define WINDOWSNT
 +#endif /* WIN32_NATIVE */
 +
 +#ifdef MSDOS
 +# undef MSDOS
 +# define MSDOS true
 +# include <sys/param.h>
 +#else
 +# define MSDOS false
 +#endif /* MSDOS */
 +
 +#ifdef WINDOWSNT
 +# include <direct.h>
 +# define MAXPATHLEN _MAX_PATH
 +# undef HAVE_NTGUI
 +# undef  DOS_NT
 +# define DOS_NT
 +#endif /* WINDOWSNT */
 +
 +#include <unistd.h>
 +#include <stdarg.h>
 +#include <stdlib.h>
 +#include <string.h>
 +#include <sysstdio.h>
 +#include <ctype.h>
 +#include <errno.h>
 +#include <sys/types.h>
 +#include <sys/stat.h>
 +#include <binary-io.h>
 +#include <c-strcase.h>
 +
 +#include <assert.h>
 +#ifdef NDEBUG
 +# undef  assert                       /* some systems have a buggy assert.h */
 +# define assert(x) ((void) 0)
 +#endif
 +
 +#include <getopt.h>
 +#include <regex.h>
 +
 +/* Define CTAGS to make the program "ctags" compatible with the usual one.
 + Leave it undefined to make the program "etags", which makes emacs-style
 + tag tables and tags typedefs, #defines and struct/union/enum by default. */
 +#ifdef CTAGS
 +# undef  CTAGS
 +# define CTAGS true
 +#else
 +# define CTAGS false
 +#endif
 +
 +#define streq(s,t)    (assert ((s)!=NULL || (t)!=NULL), !strcmp (s, t))
 +#define strcaseeq(s,t)        (assert ((s)!=NULL && (t)!=NULL), !c_strcasecmp (s, t))
 +#define strneq(s,t,n) (assert ((s)!=NULL || (t)!=NULL), !strncmp (s, t, n))
 +#define strncaseeq(s,t,n) (assert ((s)!=NULL && (t)!=NULL), !c_strncasecmp (s, t, n))
 +
 +#define CHARS 256             /* 2^sizeof(char) */
 +#define CHAR(x)               ((unsigned int)(x) & (CHARS - 1))
 +#define       iswhite(c)      (_wht[CHAR (c)]) /* c is white (see white) */
 +#define notinname(c)  (_nin[CHAR (c)]) /* c is not in a name (see nonam) */
 +#define       begtoken(c)     (_btk[CHAR (c)]) /* c can start token (see begtk) */
 +#define       intoken(c)      (_itk[CHAR (c)]) /* c can be in token (see midtk) */
 +#define       endtoken(c)     (_etk[CHAR (c)]) /* c ends tokens (see endtk) */
 +
 +#define ISALNUM(c)    isalnum (CHAR (c))
 +#define ISALPHA(c)    isalpha (CHAR (c))
 +#define ISDIGIT(c)    isdigit (CHAR (c))
 +#define ISLOWER(c)    islower (CHAR (c))
 +
 +#define lowcase(c)    tolower (CHAR (c))
 +
 +
 +/*
 + *    xnew, xrnew -- allocate, reallocate storage
 + *
 + * SYNOPSIS:  Type *xnew (int n, Type);
 + *            void xrnew (OldPointer, int n, Type);
 + */
 +#define xnew(n, Type)      ((Type *) xmalloc ((n) * sizeof (Type)))
 +#define xrnew(op, n, Type) ((op) = (Type *) xrealloc (op, (n) * sizeof (Type)))
 +
 +typedef void Lang_function (FILE *);
 +
 +typedef struct
 +{
 +  const char *suffix;           /* file name suffix for this compressor */
 +  const char *command;                /* takes one arg and decompresses to stdout */
 +} compressor;
 +
 +typedef struct
 +{
 +  const char *name;             /* language name */
 +  const char *help;           /* detailed help for the language */
 +  Lang_function *function;    /* parse function */
 +  const char **suffixes;        /* name suffixes of this language's files */
 +  const char **filenames;       /* names of this language's files */
 +  const char **interpreters;    /* interpreters for this language */
 +  bool metasource;            /* source used to generate other sources */
 +} language;
 +
 +typedef struct fdesc
 +{
 +  struct fdesc *next;         /* for the linked list */
 +  char *infname;              /* uncompressed input file name */
 +  char *infabsname;           /* absolute uncompressed input file name */
 +  char *infabsdir;            /* absolute dir of input file */
 +  char *taggedfname;          /* file name to write in tagfile */
 +  language *lang;             /* language of file */
 +  char *prop;                 /* file properties to write in tagfile */
 +  bool usecharno;             /* etags tags shall contain char number */
 +  bool written;                       /* entry written in the tags file */
 +} fdesc;
 +
 +typedef struct node_st
 +{                             /* sorting structure */
 +  struct node_st *left, *right;       /* left and right sons */
 +  fdesc *fdp;                 /* description of file to whom tag belongs */
 +  char *name;                         /* tag name */
 +  char *regex;                        /* search regexp */
 +  bool valid;                 /* write this tag on the tag file */
 +  bool is_func;                       /* function tag: use regexp in CTAGS mode */
 +  bool been_warned;           /* warning already given for duplicated tag */
 +  int lno;                    /* line number tag is on */
 +  long cno;                   /* character number line starts on */
 +} node;
 +
 +/*
 + * A `linebuffer' is a structure which holds a line of text.
 + * `readline_internal' reads a line from a stream into a linebuffer
 + * and works regardless of the length of the line.
 + * SIZE is the size of BUFFER, LEN is the length of the string in
 + * BUFFER after readline reads it.
 + */
 +typedef struct
 +{
 +  long size;
 +  int len;
 +  char *buffer;
 +} linebuffer;
 +
 +/* Used to support mixing of --lang and file names. */
 +typedef struct
 +{
 +  enum {
 +    at_language,              /* a language specification */
 +    at_regexp,                        /* a regular expression */
 +    at_filename,              /* a file name */
 +    at_stdin,                 /* read from stdin here */
 +    at_end                    /* stop parsing the list */
 +  } arg_type;                 /* argument type */
 +  language *lang;             /* language associated with the argument */
 +  char *what;                 /* the argument itself */
 +} argument;
 +
 +/* Structure defining a regular expression. */
 +typedef struct regexp
 +{
 +  struct regexp *p_next;      /* pointer to next in list */
 +  language *lang;             /* if set, use only for this language */
 +  char *pattern;              /* the regexp pattern */
 +  char *name;                 /* tag name */
 +  struct re_pattern_buffer *pat; /* the compiled pattern */
 +  struct re_registers regs;   /* re registers */
 +  bool error_signaled;                /* already signaled for this regexp */
 +  bool force_explicit_name;   /* do not allow implicit tag name */
 +  bool ignore_case;           /* ignore case when matching */
 +  bool multi_line;            /* do a multi-line match on the whole file */
 +} regexp;
 +
 +
 +/* Many compilers barf on this:
 +      Lang_function Ada_funcs;
 +   so let's write it this way */
 +static void Ada_funcs (FILE *);
 +static void Asm_labels (FILE *);
 +static void C_entries (int c_ext, FILE *);
 +static void default_C_entries (FILE *);
 +static void plain_C_entries (FILE *);
 +static void Cjava_entries (FILE *);
 +static void Cobol_paragraphs (FILE *);
 +static void Cplusplus_entries (FILE *);
 +static void Cstar_entries (FILE *);
 +static void Erlang_functions (FILE *);
 +static void Forth_words (FILE *);
 +static void Fortran_functions (FILE *);
 +static void HTML_labels (FILE *);
 +static void Lisp_functions (FILE *);
 +static void Lua_functions (FILE *);
 +static void Makefile_targets (FILE *);
 +static void Pascal_functions (FILE *);
 +static void Perl_functions (FILE *);
 +static void PHP_functions (FILE *);
 +static void PS_functions (FILE *);
 +static void Prolog_functions (FILE *);
 +static void Python_functions (FILE *);
 +static void Scheme_functions (FILE *);
 +static void TeX_commands (FILE *);
 +static void Texinfo_nodes (FILE *);
 +static void Yacc_entries (FILE *);
 +static void just_read_file (FILE *);
 +
 +static language *get_language_from_langname (const char *);
 +static void readline (linebuffer *, FILE *);
 +static long readline_internal (linebuffer *, FILE *);
 +static bool nocase_tail (const char *);
 +static void get_tag (char *, char **);
 +
 +static void analyze_regex (char *);
 +static void free_regexps (void);
 +static void regex_tag_multiline (void);
 +static void error (const char *, ...) ATTRIBUTE_FORMAT_PRINTF (1, 2);
 +static _Noreturn void suggest_asking_for_help (void);
 +_Noreturn void fatal (const char *, const char *);
 +static _Noreturn void pfatal (const char *);
 +static void add_node (node *, node **);
 +
 +static void init (void);
 +static void process_file_name (char *, language *);
 +static void process_file (FILE *, char *, language *);
 +static void find_entries (FILE *);
 +static void free_tree (node *);
 +static void free_fdesc (fdesc *);
 +static void pfnote (char *, bool, char *, int, int, long);
 +static void invalidate_nodes (fdesc *, node **);
 +static void put_entries (node *);
 +
 +static char *concat (const char *, const char *, const char *);
 +static char *skip_spaces (char *);
 +static char *skip_non_spaces (char *);
 +static char *skip_name (char *);
 +static char *savenstr (const char *, int);
 +static char *savestr (const char *);
 +static char *etags_getcwd (void);
 +static char *relative_filename (char *, char *);
 +static char *absolute_filename (char *, char *);
 +static char *absolute_dirname (char *, char *);
 +static bool filename_is_absolute (char *f);
 +static void canonicalize_filename (char *);
 +static void linebuffer_init (linebuffer *);
 +static void linebuffer_setlen (linebuffer *, int);
 +static void *xmalloc (size_t);
 +static void *xrealloc (void *, size_t);
 +
 +\f
 +static char searchar = '/';   /* use /.../ searches */
 +
 +static char *tagfile;         /* output file */
 +static char *progname;                /* name this program was invoked with */
 +static char *cwd;             /* current working directory */
 +static char *tagfiledir;      /* directory of tagfile */
 +static FILE *tagf;            /* ioptr for tags file */
 +static ptrdiff_t whatlen_max; /* maximum length of any 'what' member */
 +
 +static fdesc *fdhead;         /* head of file description list */
 +static fdesc *curfdp;         /* current file description */
 +static int lineno;            /* line number of current line */
 +static long charno;           /* current character number */
 +static long linecharno;               /* charno of start of current line */
 +static char *dbp;             /* pointer to start of current tag */
 +
 +static const int invalidcharno = -1;
 +
 +static node *nodehead;                /* the head of the binary tree of tags */
 +static node *last_node;               /* the last node created */
 +
 +static linebuffer lb;         /* the current line */
 +static linebuffer filebuf;    /* a buffer containing the whole file */
 +static linebuffer token_name; /* a buffer containing a tag name */
 +
 +/* boolean "functions" (see init)     */
 +static bool _wht[CHARS], _nin[CHARS], _itk[CHARS], _btk[CHARS], _etk[CHARS];
 +static const char
 +  /* white chars */
 +  *white = " \f\t\n\r\v",
 +  /* not in a name */
 +  *nonam = " \f\t\n\r()=,;",  /* look at make_tag before modifying! */
 +  /* token ending chars */
 +  *endtk = " \t\n\r\"'#()[]{}=-+%*/&|^~!<>;,.:?",
 +  /* token starting chars */
 +  *begtk = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz$~@",
 +  /* valid in-token chars */
 +  *midtk = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz$0123456789";
 +
 +static bool append_to_tagfile;        /* -a: append to tags */
 +/* The next five default to true in C and derived languages.  */
 +static bool typedefs;         /* -t: create tags for C and Ada typedefs */
 +static bool typedefs_or_cplusplus; /* -T: create tags for C typedefs, level */
 +                              /* 0 struct/enum/union decls, and C++ */
 +                              /* member functions. */
 +static bool constantypedefs;  /* -d: create tags for C #define, enum */
 +                              /* constants and variables. */
 +                              /* -D: opposite of -d.  Default under ctags. */
 +static int globals;           /* create tags for global variables */
 +static int members;           /* create tags for C member variables */
 +static int declarations;      /* --declarations: tag them and extern in C&Co*/
 +static int no_line_directive; /* ignore #line directives (undocumented) */
 +static int no_duplicates;     /* no duplicate tags for ctags (undocumented) */
 +static bool update;           /* -u: update tags */
 +static bool vgrind_style;     /* -v: create vgrind style index output */
 +static bool no_warnings;      /* -w: suppress warnings (undocumented) */
 +static bool cxref_style;      /* -x: create cxref style output */
 +static bool cplusplus;                /* .[hc] means C++, not C (undocumented) */
 +static bool ignoreindent;     /* -I: ignore indentation in C */
 +static int packages_only;     /* --packages-only: in Ada, only tag packages*/
 +
 +/* STDIN is defined in LynxOS system headers */
 +#ifdef STDIN
 +# undef STDIN
 +#endif
 +
 +#define STDIN 0x1001          /* returned by getopt_long on --parse-stdin */
 +static bool parsing_stdin;    /* --parse-stdin used */
 +
 +static regexp *p_head;                /* list of all regexps */
 +static bool need_filebuf;     /* some regexes are multi-line */
 +
 +static struct option longopts[] =
 +{
 +  { "append",             no_argument,       NULL,               'a'   },
 +  { "packages-only",      no_argument,       &packages_only,     1     },
 +  { "c++",                no_argument,       NULL,               'C'   },
 +  { "declarations",       no_argument,       &declarations,      1     },
 +  { "no-line-directive",  no_argument,       &no_line_directive, 1     },
 +  { "no-duplicates",      no_argument,       &no_duplicates,     1     },
 +  { "help",               no_argument,       NULL,               'h'   },
 +  { "help",               no_argument,       NULL,               'H'   },
 +  { "ignore-indentation", no_argument,       NULL,               'I'   },
 +  { "language",           required_argument, NULL,               'l'   },
 +  { "members",            no_argument,       &members,           1     },
 +  { "no-members",         no_argument,       &members,           0     },
 +  { "output",             required_argument, NULL,               'o'   },
 +  { "regex",              required_argument, NULL,               'r'   },
 +  { "no-regex",           no_argument,       NULL,               'R'   },
 +  { "ignore-case-regex",  required_argument, NULL,               'c'   },
 +  { "parse-stdin",        required_argument, NULL,               STDIN },
 +  { "version",            no_argument,       NULL,               'V'   },
 +
 +#if CTAGS /* Ctags options */
 +  { "backward-search",    no_argument,       NULL,               'B'   },
 +  { "cxref",              no_argument,       NULL,               'x'   },
 +  { "defines",            no_argument,       NULL,               'd'   },
 +  { "globals",            no_argument,       &globals,           1     },
 +  { "typedefs",           no_argument,       NULL,               't'   },
 +  { "typedefs-and-c++",   no_argument,       NULL,               'T'   },
 +  { "update",             no_argument,       NULL,               'u'   },
 +  { "vgrind",             no_argument,       NULL,               'v'   },
 +  { "no-warn",            no_argument,       NULL,               'w'   },
 +
 +#else /* Etags options */
 +  { "no-defines",         no_argument,       NULL,               'D'   },
 +  { "no-globals",         no_argument,       &globals,           0     },
 +  { "include",            required_argument, NULL,               'i'   },
 +#endif
 +  { NULL }
 +};
 +
 +static compressor compressors[] =
 +{
 +  { "z", "gzip -d -c"},
 +  { "Z", "gzip -d -c"},
 +  { "gz", "gzip -d -c"},
 +  { "GZ", "gzip -d -c"},
 +  { "bz2", "bzip2 -d -c" },
 +  { "xz", "xz -d -c" },
 +  { NULL }
 +};
 +
 +/*
 + * Language stuff.
 + */
 +
 +/* Ada code */
 +static const char *Ada_suffixes [] =
 +  { "ads", "adb", "ada", NULL };
 +static const char Ada_help [] =
 +"In Ada code, functions, procedures, packages, tasks and types are\n\
 +tags.  Use the `--packages-only' option to create tags for\n\
 +packages only.\n\
 +Ada tag names have suffixes indicating the type of entity:\n\
 +      Entity type:    Qualifier:\n\
 +      ------------    ----------\n\
 +      function        /f\n\
 +      procedure       /p\n\
 +      package spec    /s\n\
 +      package body    /b\n\
 +      type            /t\n\
 +      task            /k\n\
 +Thus, `M-x find-tag <RET> bidule/b <RET>' will go directly to the\n\
 +body of the package `bidule', while `M-x find-tag <RET> bidule <RET>'\n\
 +will just search for any tag `bidule'.";
 +
 +/* Assembly code */
 +static const char *Asm_suffixes [] =
 +  { "a",      /* Unix assembler */
 +    "asm", /* Microcontroller assembly */
 +    "def", /* BSO/Tasking definition includes  */
 +    "inc", /* Microcontroller include files */
 +    "ins", /* Microcontroller include files */
 +    "s", "sa", /* Unix assembler */
 +    "S",   /* cpp-processed Unix assembler */
 +    "src", /* BSO/Tasking C compiler output */
 +    NULL
 +  };
 +static const char Asm_help [] =
 +"In assembler code, labels appearing at the beginning of a line,\n\
 +followed by a colon, are tags.";
 +
 +
 +/* Note that .c and .h can be considered C++, if the --c++ flag was
 +   given, or if the `class' or `template' keywords are met inside the file.
 +   That is why default_C_entries is called for these. */
 +static const char *default_C_suffixes [] =
 +  { "c", "h", NULL };
 +#if CTAGS                             /* C help for Ctags */
 +static const char default_C_help [] =
 +"In C code, any C function is a tag.  Use -t to tag typedefs.\n\
 +Use -T to tag definitions of `struct', `union' and `enum'.\n\
 +Use -d to tag `#define' macro definitions and `enum' constants.\n\
 +Use --globals to tag global variables.\n\
 +You can tag function declarations and external variables by\n\
 +using `--declarations', and struct members by using `--members'.";
 +#else                                 /* C help for Etags */
 +static const char default_C_help [] =
 +"In C code, any C function or typedef is a tag, and so are\n\
 +definitions of `struct', `union' and `enum'.  `#define' macro\n\
 +definitions and `enum' constants are tags unless you specify\n\
 +`--no-defines'.  Global variables are tags unless you specify\n\
 +`--no-globals' and so are struct members unless you specify\n\
 +`--no-members'.  Use of `--no-globals', `--no-defines' and\n\
 +`--no-members' can make the tags table file much smaller.\n\
 +You can tag function declarations and external variables by\n\
 +using `--declarations'.";
 +#endif        /* C help for Ctags and Etags */
 +
 +static const char *Cplusplus_suffixes [] =
 +  { "C", "c++", "cc", "cpp", "cxx", "H", "h++", "hh", "hpp", "hxx",
 +    "M",                      /* Objective C++ */
 +    "pdb",                    /* PostScript with C syntax */
 +    NULL };
 +static const char Cplusplus_help [] =
 +"In C++ code, all the tag constructs of C code are tagged.  (Use\n\
 +--help --lang=c --lang=c++ for full help.)\n\
 +In addition to C tags, member functions are also recognized.  Member\n\
 +variables are recognized unless you use the `--no-members' option.\n\
 +Tags for variables and functions in classes are named `CLASS::VARIABLE'\n\
 +and `CLASS::FUNCTION'.  `operator' definitions have tag names like\n\
 +`operator+'.";
 +
 +static const char *Cjava_suffixes [] =
 +  { "java", NULL };
 +static char Cjava_help [] =
 +"In Java code, all the tags constructs of C and C++ code are\n\
 +tagged.  (Use --help --lang=c --lang=c++ --lang=java for full help.)";
 +
 +
 +static const char *Cobol_suffixes [] =
 +  { "COB", "cob", NULL };
 +static char Cobol_help [] =
 +"In Cobol code, tags are paragraph names; that is, any word\n\
 +starting in column 8 and followed by a period.";
 +
 +static const char *Cstar_suffixes [] =
 +  { "cs", "hs", NULL };
 +
 +static const char *Erlang_suffixes [] =
 +  { "erl", "hrl", NULL };
 +static const char Erlang_help [] =
 +"In Erlang code, the tags are the functions, records and macros\n\
 +defined in the file.";
 +
 +const char *Forth_suffixes [] =
 +  { "fth", "tok", NULL };
 +static const char Forth_help [] =
 +"In Forth code, tags are words defined by `:',\n\
 +constant, code, create, defer, value, variable, buffer:, field.";
 +
 +static const char *Fortran_suffixes [] =
 +  { "F", "f", "f90", "for", NULL };
 +static const char Fortran_help [] =
 +"In Fortran code, functions, subroutines and block data are tags.";
 +
 +static const char *HTML_suffixes [] =
 +  { "htm", "html", "shtml", NULL };
 +static const char HTML_help [] =
 +"In HTML input files, the tags are the `title' and the `h1', `h2',\n\
 +`h3' headers.  Also, tags are `name=' in anchors and all\n\
 +occurrences of `id='.";
 +
 +static const char *Lisp_suffixes [] =
 +  { "cl", "clisp", "el", "l", "lisp", "LSP", "lsp", "ml", NULL };
 +static const char Lisp_help [] =
 +"In Lisp code, any function defined with `defun', any variable\n\
 +defined with `defvar' or `defconst', and in general the first\n\
 +argument of any expression that starts with `(def' in column zero\n\
 +is a tag.\n\
 +The `--declarations' option tags \"(defvar foo)\" constructs too.";
 +
 +static const char *Lua_suffixes [] =
 +  { "lua", "LUA", NULL };
 +static const char Lua_help [] =
 +"In Lua scripts, all functions are tags.";
 +
 +static const char *Makefile_filenames [] =
 +  { "Makefile", "makefile", "GNUMakefile", "Makefile.in", "Makefile.am", NULL};
 +static const char Makefile_help [] =
 +"In makefiles, targets are tags; additionally, variables are tags\n\
 +unless you specify `--no-globals'.";
 +
 +static const char *Objc_suffixes [] =
 +  { "lm",                     /* Objective lex file */
 +    "m",                      /* Objective C file */
 +     NULL };
 +static const char Objc_help [] =
 +"In Objective C code, tags include Objective C definitions for classes,\n\
 +class categories, methods and protocols.  Tags for variables and\n\
++functions in classes are named `CLASS::VARIABLE' and `CLASS::FUNCTION'.\
++\n(Use --help --lang=c --lang=objc --lang=java for full help.)";
 +
 +static const char *Pascal_suffixes [] =
 +  { "p", "pas", NULL };
 +static const char Pascal_help [] =
 +"In Pascal code, the tags are the functions and procedures defined\n\
 +in the file.";
 +/* " // this is for working around an Emacs highlighting bug... */
 +
 +static const char *Perl_suffixes [] =
 +  { "pl", "pm", NULL };
 +static const char *Perl_interpreters [] =
 +  { "perl", "@PERL@", NULL };
 +static const char Perl_help [] =
 +"In Perl code, the tags are the packages, subroutines and variables\n\
 +defined by the `package', `sub', `my' and `local' keywords.  Use\n\
 +`--globals' if you want to tag global variables.  Tags for\n\
 +subroutines are named `PACKAGE::SUB'.  The name for subroutines\n\
 +defined in the default package is `main::SUB'.";
 +
 +static const char *PHP_suffixes [] =
 +  { "php", "php3", "php4", NULL };
 +static const char PHP_help [] =
 +"In PHP code, tags are functions, classes and defines.  Unless you use\n\
 +the `--no-members' option, vars are tags too.";
 +
 +static const char *plain_C_suffixes [] =
 +  { "pc",                     /* Pro*C file */
 +     NULL };
 +
 +static const char *PS_suffixes [] =
 +  { "ps", "psw", NULL };      /* .psw is for PSWrap */
 +static const char PS_help [] =
 +"In PostScript code, the tags are the functions.";
 +
 +static const char *Prolog_suffixes [] =
 +  { "prolog", NULL };
 +static const char Prolog_help [] =
 +"In Prolog code, tags are predicates and rules at the beginning of\n\
 +line.";
 +
 +static const char *Python_suffixes [] =
 +  { "py", NULL };
 +static const char Python_help [] =
 +"In Python code, `def' or `class' at the beginning of a line\n\
 +generate a tag.";
 +
 +/* Can't do the `SCM' or `scm' prefix with a version number. */
 +static const char *Scheme_suffixes [] =
 +  { "oak", "sch", "scheme", "SCM", "scm", "SM", "sm", "ss", "t", NULL };
 +static const char Scheme_help [] =
 +"In Scheme code, tags include anything defined with `def' or with a\n\
 +construct whose name starts with `def'.  They also include\n\
 +variables set with `set!' at top level in the file.";
 +
 +static const char *TeX_suffixes [] =
 +  { "bib", "clo", "cls", "ltx", "sty", "TeX", "tex", NULL };
 +static const char TeX_help [] =
 +"In LaTeX text, the argument of any of the commands `\\chapter',\n\
 +`\\section', `\\subsection', `\\subsubsection', `\\eqno', `\\label',\n\
 +`\\ref', `\\cite', `\\bibitem', `\\part', `\\appendix', `\\entry',\n\
 +`\\index', `\\def', `\\newcommand', `\\renewcommand',\n\
 +`\\newenvironment' or `\\renewenvironment' is a tag.\n\
 +\n\
 +Other commands can be specified by setting the environment variable\n\
 +`TEXTAGS' to a colon-separated list like, for example,\n\
 +     TEXTAGS=\"mycommand:myothercommand\".";
 +
 +
 +static const char *Texinfo_suffixes [] =
 +  { "texi", "texinfo", "txi", NULL };
 +static const char Texinfo_help [] =
 +"for texinfo files, lines starting with @node are tagged.";
 +
 +static const char *Yacc_suffixes [] =
 +  { "y", "y++", "ym", "yxx", "yy", NULL }; /* .ym is Objective yacc file */
 +static const char Yacc_help [] =
 +"In Bison or Yacc input files, each rule defines as a tag the\n\
 +nonterminal it constructs.  The portions of the file that contain\n\
 +C code are parsed as C code (use --help --lang=c --lang=yacc\n\
 +for full help).";
 +
 +static const char auto_help [] =
 +"`auto' is not a real language, it indicates to use\n\
 +a default language for files base on file name suffix and file contents.";
 +
 +static const char none_help [] =
 +"`none' is not a real language, it indicates to only do\n\
 +regexp processing on files.";
 +
 +static const char no_lang_help [] =
 +"No detailed help available for this language.";
 +
 +
 +/*
 + * Table of languages.
 + *
 + * It is ok for a given function to be listed under more than one
 + * name.  I just didn't.
 + */
 +
 +static language lang_names [] =
 +{
 +  { "ada",       Ada_help,       Ada_funcs,         Ada_suffixes       },
 +  { "asm",       Asm_help,       Asm_labels,        Asm_suffixes       },
 +  { "c",         default_C_help, default_C_entries, default_C_suffixes },
 +  { "c++",       Cplusplus_help, Cplusplus_entries, Cplusplus_suffixes },
 +  { "c*",        no_lang_help,   Cstar_entries,     Cstar_suffixes     },
 +  { "cobol",     Cobol_help,     Cobol_paragraphs,  Cobol_suffixes     },
 +  { "erlang",    Erlang_help,    Erlang_functions,  Erlang_suffixes    },
 +  { "forth",     Forth_help,     Forth_words,       Forth_suffixes     },
 +  { "fortran",   Fortran_help,   Fortran_functions, Fortran_suffixes   },
 +  { "html",      HTML_help,      HTML_labels,       HTML_suffixes      },
 +  { "java",      Cjava_help,     Cjava_entries,     Cjava_suffixes     },
 +  { "lisp",      Lisp_help,      Lisp_functions,    Lisp_suffixes      },
 +  { "lua",       Lua_help,       Lua_functions,     Lua_suffixes       },
 +  { "makefile",  Makefile_help,Makefile_targets,NULL,Makefile_filenames},
 +  { "objc",      Objc_help,      plain_C_entries,   Objc_suffixes      },
 +  { "pascal",    Pascal_help,    Pascal_functions,  Pascal_suffixes    },
 +  { "perl",Perl_help,Perl_functions,Perl_suffixes,NULL,Perl_interpreters},
 +  { "php",       PHP_help,       PHP_functions,     PHP_suffixes       },
 +  { "postscript",PS_help,        PS_functions,      PS_suffixes        },
 +  { "proc",      no_lang_help,   plain_C_entries,   plain_C_suffixes   },
 +  { "prolog",    Prolog_help,    Prolog_functions,  Prolog_suffixes    },
 +  { "python",    Python_help,    Python_functions,  Python_suffixes    },
 +  { "scheme",    Scheme_help,    Scheme_functions,  Scheme_suffixes    },
 +  { "tex",       TeX_help,       TeX_commands,      TeX_suffixes       },
 +  { "texinfo",   Texinfo_help,   Texinfo_nodes,     Texinfo_suffixes   },
 +  { "yacc",      Yacc_help,Yacc_entries,Yacc_suffixes,NULL,NULL,true},
 +  { "auto",      auto_help },                      /* default guessing scheme */
 +  { "none",      none_help,      just_read_file }, /* regexp matching only */
 +  { NULL }                /* end of list */
 +};
 +
 +\f
 +static void
 +print_language_names (void)
 +{
 +  language *lang;
 +  const char **name, **ext;
 +
 +  puts ("\nThese are the currently supported languages, along with the\n\
 +default file names and dot suffixes:");
 +  for (lang = lang_names; lang->name != NULL; lang++)
 +    {
 +      printf ("  %-*s", 10, lang->name);
 +      if (lang->filenames != NULL)
 +      for (name = lang->filenames; *name != NULL; name++)
 +        printf (" %s", *name);
 +      if (lang->suffixes != NULL)
 +      for (ext = lang->suffixes; *ext != NULL; ext++)
 +        printf (" .%s", *ext);
 +      puts ("");
 +    }
 +  puts ("where `auto' means use default language for files based on file\n\
 +name suffix, and `none' means only do regexp processing on files.\n\
 +If no language is specified and no matching suffix is found,\n\
 +the first line of the file is read for a sharp-bang (#!) sequence\n\
 +followed by the name of an interpreter.  If no such sequence is found,\n\
 +Fortran is tried first; if no tags are found, C is tried next.\n\
 +When parsing any C file, a \"class\" or \"template\" keyword\n\
 +switches to C++.");
 +  puts ("Compressed files are supported using gzip, bzip2, and xz.\n\
 +\n\
 +For detailed help on a given language use, for example,\n\
 +etags --help --lang=ada.");
 +}
 +
 +#ifndef EMACS_NAME
 +# define EMACS_NAME "standalone"
 +#endif
 +#ifndef VERSION
 +# define VERSION "17.38.1.4"
 +#endif
 +static _Noreturn void
 +print_version (void)
 +{
 +  char emacs_copyright[] = COPYRIGHT;
 +
 +  printf ("%s (%s %s)\n", (CTAGS) ? "ctags" : "etags", EMACS_NAME, VERSION);
 +  puts (emacs_copyright);
 +  puts ("This program is distributed under the terms in ETAGS.README");
 +
 +  exit (EXIT_SUCCESS);
 +}
 +
 +#ifndef PRINT_UNDOCUMENTED_OPTIONS_HELP
 +# define PRINT_UNDOCUMENTED_OPTIONS_HELP false
 +#endif
 +
 +static _Noreturn void
 +print_help (argument *argbuffer)
 +{
 +  bool help_for_lang = false;
 +
 +  for (; argbuffer->arg_type != at_end; argbuffer++)
 +    if (argbuffer->arg_type == at_language)
 +      {
 +      if (help_for_lang)
 +        puts ("");
 +      puts (argbuffer->lang->help);
 +      help_for_lang = true;
 +      }
 +
 +  if (help_for_lang)
 +    exit (EXIT_SUCCESS);
 +
 +  printf ("Usage: %s [options] [[regex-option ...] file-name] ...\n\
 +\n\
 +These are the options accepted by %s.\n", progname, progname);
 +  puts ("You may use unambiguous abbreviations for the long option names.");
 +  puts ("  A - as file name means read names from stdin (one per line).\n\
 +Absolute names are stored in the output file as they are.\n\
 +Relative ones are stored relative to the output file's directory.\n");
 +
 +  puts ("-a, --append\n\
 +        Append tag entries to existing tags file.");
 +
 +  puts ("--packages-only\n\
 +        For Ada files, only generate tags for packages.");
 +
 +  if (CTAGS)
 +    puts ("-B, --backward-search\n\
 +        Write the search commands for the tag entries using '?', the\n\
 +        backward-search command instead of '/', the forward-search command.");
 +
 +  /* This option is mostly obsolete, because etags can now automatically
 +     detect C++.  Retained for backward compatibility and for debugging and
 +     experimentation.  In principle, we could want to tag as C++ even
 +     before any "class" or "template" keyword.
 +  puts ("-C, --c++\n\
 +        Treat files whose name suffix defaults to C language as C++ files.");
 +  */
 +
 +  puts ("--declarations\n\
 +      In C and derived languages, create tags for function declarations,");
 +  if (CTAGS)
 +    puts ("\tand create tags for extern variables if --globals is used.");
 +  else
 +    puts
 +      ("\tand create tags for extern variables unless --no-globals is used.");
 +
 +  if (CTAGS)
 +    puts ("-d, --defines\n\
 +        Create tag entries for C #define constants and enum constants, too.");
 +  else
 +    puts ("-D, --no-defines\n\
 +        Don't create tag entries for C #define constants and enum constants.\n\
 +      This makes the tags file smaller.");
 +
 +  if (!CTAGS)
 +    puts ("-i FILE, --include=FILE\n\
 +        Include a note in tag file indicating that, when searching for\n\
 +        a tag, one should also consult the tags file FILE after\n\
 +        checking the current file.");
 +
 +  puts ("-l LANG, --language=LANG\n\
 +        Force the following files to be considered as written in the\n\
 +      named language up to the next --language=LANG option.");
 +
 +  if (CTAGS)
 +    puts ("--globals\n\
 +      Create tag entries for global variables in some languages.");
 +  else
 +    puts ("--no-globals\n\
 +      Do not create tag entries for global variables in some\n\
 +      languages.  This makes the tags file smaller.");
 +
 +  if (PRINT_UNDOCUMENTED_OPTIONS_HELP)
 +    puts ("--no-line-directive\n\
 +        Ignore #line preprocessor directives in C and derived languages.");
 +
 +  if (CTAGS)
 +    puts ("--members\n\
 +      Create tag entries for members of structures in some languages.");
 +  else
 +    puts ("--no-members\n\
 +      Do not create tag entries for members of structures\n\
 +      in some languages.");
 +
 +  puts ("-r REGEXP, --regex=REGEXP or --regex=@regexfile\n\
 +        Make a tag for each line matching a regular expression pattern\n\
 +      in the following files.  {LANGUAGE}REGEXP uses REGEXP for LANGUAGE\n\
 +      files only.  REGEXFILE is a file containing one REGEXP per line.\n\
 +      REGEXP takes the form /TAGREGEXP/TAGNAME/MODS, where TAGNAME/ is\n\
 +      optional.  The TAGREGEXP pattern is anchored (as if preceded by ^).");
 +  puts ("     If TAGNAME/ is present, the tags created are named.\n\
 +      For example Tcl named tags can be created with:\n\
 +        --regex=\"/proc[ \\t]+\\([^ \\t]+\\)/\\1/.\".\n\
 +      MODS are optional one-letter modifiers: `i' means to ignore case,\n\
 +      `m' means to allow multi-line matches, `s' implies `m' and\n\
 +      causes dot to match any character, including newline.");
 +
 +  puts ("-R, --no-regex\n\
 +        Don't create tags from regexps for the following files.");
 +
 +  puts ("-I, --ignore-indentation\n\
 +        In C and C++ do not assume that a closing brace in the first\n\
 +        column is the final brace of a function or structure definition.");
 +
 +  puts ("-o FILE, --output=FILE\n\
 +        Write the tags to FILE.");
 +
 +  puts ("--parse-stdin=NAME\n\
 +        Read from standard input and record tags as belonging to file NAME.");
 +
 +  if (CTAGS)
 +    {
 +      puts ("-t, --typedefs\n\
 +        Generate tag entries for C and Ada typedefs.");
 +      puts ("-T, --typedefs-and-c++\n\
 +        Generate tag entries for C typedefs, C struct/enum/union tags,\n\
 +        and C++ member functions.");
 +    }
 +
 +  if (CTAGS)
 +    puts ("-u, --update\n\
 +        Update the tag entries for the given files, leaving tag\n\
 +        entries for other files in place.  Currently, this is\n\
 +        implemented by deleting the existing entries for the given\n\
 +        files and then rewriting the new entries at the end of the\n\
 +        tags file.  It is often faster to simply rebuild the entire\n\
 +        tag file than to use this.");
 +
 +  if (CTAGS)
 +    {
 +      puts ("-v, --vgrind\n\
 +        Print on the standard output an index of items intended for\n\
 +        human consumption, similar to the output of vgrind.  The index\n\
 +        is sorted, and gives the page number of each item.");
 +
 +      if (PRINT_UNDOCUMENTED_OPTIONS_HELP)
 +      puts ("-w, --no-duplicates\n\
 +        Do not create duplicate tag entries, for compatibility with\n\
 +      traditional ctags.");
 +
 +      if (PRINT_UNDOCUMENTED_OPTIONS_HELP)
 +      puts ("-w, --no-warn\n\
 +        Suppress warning messages about duplicate tag entries.");
 +
 +      puts ("-x, --cxref\n\
 +        Like --vgrind, but in the style of cxref, rather than vgrind.\n\
 +        The output uses line numbers instead of page numbers, but\n\
 +        beyond that the differences are cosmetic; try both to see\n\
 +        which you like.");
 +    }
 +
 +  puts ("-V, --version\n\
 +        Print the version of the program.\n\
 +-h, --help\n\
 +        Print this help message.\n\
 +        Followed by one or more `--language' options prints detailed\n\
 +        help about tag generation for the specified languages.");
 +
 +  print_language_names ();
 +
 +  puts ("");
 +  puts ("Report bugs to bug-gnu-emacs@gnu.org");
 +
 +  exit (EXIT_SUCCESS);
 +}
 +
 +\f
 +int
 +main (int argc, char **argv)
 +{
 +  int i;
 +  unsigned int nincluded_files;
 +  char **included_files;
 +  argument *argbuffer;
 +  int current_arg, file_count;
 +  linebuffer filename_lb;
 +  bool help_asked = false;
 +  ptrdiff_t len;
 +  char *optstring;
 +  int opt;
 +
 +  progname = argv[0];
 +  nincluded_files = 0;
 +  included_files = xnew (argc, char *);
 +  current_arg = 0;
 +  file_count = 0;
 +
 +  /* Allocate enough no matter what happens.  Overkill, but each one
 +     is small. */
 +  argbuffer = xnew (argc, argument);
 +
 +  /*
 +   * Always find typedefs and structure tags.
 +   * Also default to find macro constants, enum constants, struct
 +   * members and global variables.  Do it for both etags and ctags.
 +   */
 +  typedefs = typedefs_or_cplusplus = constantypedefs = true;
 +  globals = members = true;
 +
 +  /* When the optstring begins with a '-' getopt_long does not rearrange the
 +     non-options arguments to be at the end, but leaves them alone. */
 +  optstring = concat ("-ac:Cf:Il:o:r:RSVhH",
 +                    (CTAGS) ? "BxdtTuvw" : "Di:",
 +                    "");
 +
 +  while ((opt = getopt_long (argc, argv, optstring, longopts, NULL)) != EOF)
 +    switch (opt)
 +      {
 +      case 0:
 +      /* If getopt returns 0, then it has already processed a
 +         long-named option.  We should do nothing.  */
 +      break;
 +
 +      case 1:
 +      /* This means that a file name has been seen.  Record it. */
 +      argbuffer[current_arg].arg_type = at_filename;
 +      argbuffer[current_arg].what     = optarg;
 +      len = strlen (optarg);
 +      if (whatlen_max < len)
 +        whatlen_max = len;
 +      ++current_arg;
 +      ++file_count;
 +      break;
 +
 +      case STDIN:
 +      /* Parse standard input.  Idea by Vivek <vivek@etla.org>. */
 +      argbuffer[current_arg].arg_type = at_stdin;
 +      argbuffer[current_arg].what     = optarg;
 +      len = strlen (optarg);
 +      if (whatlen_max < len)
 +        whatlen_max = len;
 +      ++current_arg;
 +      ++file_count;
 +      if (parsing_stdin)
 +        fatal ("cannot parse standard input more than once", (char *)NULL);
 +      parsing_stdin = true;
 +      break;
 +
 +      /* Common options. */
 +      case 'a': append_to_tagfile = true;     break;
 +      case 'C': cplusplus = true;             break;
 +      case 'f':               /* for compatibility with old makefiles */
 +      case 'o':
 +      if (tagfile)
 +        {
 +          error ("-o option may only be given once.");
 +          suggest_asking_for_help ();
 +          /* NOTREACHED */
 +        }
 +      tagfile = optarg;
 +      break;
 +      case 'I':
 +      case 'S':               /* for backward compatibility */
 +      ignoreindent = true;
 +      break;
 +      case 'l':
 +      {
 +        language *lang = get_language_from_langname (optarg);
 +        if (lang != NULL)
 +          {
 +            argbuffer[current_arg].lang = lang;
 +            argbuffer[current_arg].arg_type = at_language;
 +            ++current_arg;
 +          }
 +      }
 +      break;
 +      case 'c':
 +      /* Backward compatibility: support obsolete --ignore-case-regexp. */
 +      optarg = concat (optarg, "i", ""); /* memory leak here */
 +      /* FALLTHRU */
 +      case 'r':
 +      argbuffer[current_arg].arg_type = at_regexp;
 +      argbuffer[current_arg].what = optarg;
 +      len = strlen (optarg);
 +      if (whatlen_max < len)
 +        whatlen_max = len;
 +      ++current_arg;
 +      break;
 +      case 'R':
 +      argbuffer[current_arg].arg_type = at_regexp;
 +      argbuffer[current_arg].what = NULL;
 +      ++current_arg;
 +      break;
 +      case 'V':
 +      print_version ();
 +      break;
 +      case 'h':
 +      case 'H':
 +      help_asked = true;
 +      break;
 +
 +      /* Etags options */
 +      case 'D': constantypedefs = false;                      break;
 +      case 'i': included_files[nincluded_files++] = optarg;   break;
 +
 +      /* Ctags options. */
 +      case 'B': searchar = '?';                                       break;
 +      case 'd': constantypedefs = true;                               break;
 +      case 't': typedefs = true;                              break;
 +      case 'T': typedefs = typedefs_or_cplusplus = true;      break;
 +      case 'u': update = true;                                        break;
 +      case 'v': vgrind_style = true;                    /*FALLTHRU*/
 +      case 'x': cxref_style = true;                           break;
 +      case 'w': no_warnings = true;                           break;
 +      default:
 +      suggest_asking_for_help ();
 +      /* NOTREACHED */
 +      }
 +
 +  /* No more options.  Store the rest of arguments. */
 +  for (; optind < argc; optind++)
 +    {
 +      argbuffer[current_arg].arg_type = at_filename;
 +      argbuffer[current_arg].what = argv[optind];
 +      len = strlen (argv[optind]);
 +      if (whatlen_max < len)
 +      whatlen_max = len;
 +      ++current_arg;
 +      ++file_count;
 +    }
 +
 +  argbuffer[current_arg].arg_type = at_end;
 +
 +  if (help_asked)
 +    print_help (argbuffer);
 +    /* NOTREACHED */
 +
 +  if (nincluded_files == 0 && file_count == 0)
 +    {
 +      error ("no input files specified.");
 +      suggest_asking_for_help ();
 +      /* NOTREACHED */
 +    }
 +
 +  if (tagfile == NULL)
 +    tagfile = savestr (CTAGS ? "tags" : "TAGS");
 +  cwd = etags_getcwd ();      /* the current working directory */
 +  if (cwd[strlen (cwd) - 1] != '/')
 +    {
 +      char *oldcwd = cwd;
 +      cwd = concat (oldcwd, "/", "");
 +      free (oldcwd);
 +    }
 +
 +  /* Compute base directory for relative file names. */
 +  if (streq (tagfile, "-")
 +      || strneq (tagfile, "/dev/", 5))
 +    tagfiledir = cwd;          /* relative file names are relative to cwd */
 +  else
 +    {
 +      canonicalize_filename (tagfile);
 +      tagfiledir = absolute_dirname (tagfile, cwd);
 +    }
 +
 +  init ();                    /* set up boolean "functions" */
 +
 +  linebuffer_init (&lb);
 +  linebuffer_init (&filename_lb);
 +  linebuffer_init (&filebuf);
 +  linebuffer_init (&token_name);
 +
 +  if (!CTAGS)
 +    {
 +      if (streq (tagfile, "-"))
 +      {
 +        tagf = stdout;
 +        SET_BINARY (fileno (stdout));
 +      }
 +      else
 +      tagf = fopen (tagfile, append_to_tagfile ? "ab" : "wb");
 +      if (tagf == NULL)
 +      pfatal (tagfile);
 +    }
 +
 +  /*
 +   * Loop through files finding functions.
 +   */
 +  for (i = 0; i < current_arg; i++)
 +    {
 +      static language *lang;  /* non-NULL if language is forced */
 +      char *this_file;
 +
 +      switch (argbuffer[i].arg_type)
 +      {
 +      case at_language:
 +        lang = argbuffer[i].lang;
 +        break;
 +      case at_regexp:
 +        analyze_regex (argbuffer[i].what);
 +        break;
 +      case at_filename:
 +            this_file = argbuffer[i].what;
 +            /* Input file named "-" means read file names from stdin
 +               (one per line) and use them. */
 +            if (streq (this_file, "-"))
 +              {
 +                if (parsing_stdin)
 +                  fatal ("cannot parse standard input AND read file names from it",
 +                         (char *)NULL);
 +                while (readline_internal (&filename_lb, stdin) > 0)
 +                  process_file_name (filename_lb.buffer, lang);
 +              }
 +            else
 +              process_file_name (this_file, lang);
 +        break;
 +        case at_stdin:
 +          this_file = argbuffer[i].what;
 +          process_file (stdin, this_file, lang);
 +          break;
 +      }
 +    }
 +
 +  free_regexps ();
 +  free (lb.buffer);
 +  free (filebuf.buffer);
 +  free (token_name.buffer);
 +
 +  if (!CTAGS || cxref_style)
 +    {
 +      /* Write the remaining tags to tagf (ETAGS) or stdout (CXREF). */
 +      put_entries (nodehead);
 +      free_tree (nodehead);
 +      nodehead = NULL;
 +      if (!CTAGS)
 +      {
 +        fdesc *fdp;
 +
 +        /* Output file entries that have no tags. */
 +        for (fdp = fdhead; fdp != NULL; fdp = fdp->next)
 +          if (!fdp->written)
 +            fprintf (tagf, "\f\n%s,0\n", fdp->taggedfname);
 +
 +        while (nincluded_files-- > 0)
 +          fprintf (tagf, "\f\n%s,include\n", *included_files++);
 +
 +        if (fclose (tagf) == EOF)
 +          pfatal (tagfile);
 +      }
 +
 +      exit (EXIT_SUCCESS);
 +    }
 +
 +  /* From here on, we are in (CTAGS && !cxref_style) */
 +  if (update)
 +    {
 +      char *cmd =
 +      xmalloc (strlen (tagfile) + whatlen_max +
 +               sizeof "mv..OTAGS;fgrep -v '\t\t' OTAGS >;rm OTAGS");
 +      for (i = 0; i < current_arg; ++i)
 +      {
 +        switch (argbuffer[i].arg_type)
 +          {
 +          case at_filename:
 +          case at_stdin:
 +            break;
 +          default:
 +            continue;         /* the for loop */
 +          }
 +        char *z = stpcpy (cmd, "mv ");
 +        z = stpcpy (z, tagfile);
 +        z = stpcpy (z, " OTAGS;fgrep -v '\t");
 +        z = stpcpy (z, argbuffer[i].what);
 +        z = stpcpy (z, "\t' OTAGS >");
 +        z = stpcpy (z, tagfile);
 +        strcpy (z, ";rm OTAGS");
 +        if (system (cmd) != EXIT_SUCCESS)
 +          fatal ("failed to execute shell command", (char *)NULL);
 +      }
 +      free (cmd);
 +      append_to_tagfile = true;
 +    }
 +
 +  tagf = fopen (tagfile, append_to_tagfile ? "ab" : "wb");
 +  if (tagf == NULL)
 +    pfatal (tagfile);
 +  put_entries (nodehead);     /* write all the tags (CTAGS) */
 +  free_tree (nodehead);
 +  nodehead = NULL;
 +  if (fclose (tagf) == EOF)
 +    pfatal (tagfile);
 +
 +  if (CTAGS)
 +    if (append_to_tagfile || update)
 +      {
 +      char *cmd = xmalloc (2 * strlen (tagfile) + sizeof "sort -u -o..");
 +      /* Maybe these should be used:
 +         setenv ("LC_COLLATE", "C", 1);
 +         setenv ("LC_ALL", "C", 1); */
 +      char *z = stpcpy (cmd, "sort -u -o ");
 +      z = stpcpy (z, tagfile);
 +      *z++ = ' ';
 +      strcpy (z, tagfile);
 +      exit (system (cmd));
 +      }
 +  return EXIT_SUCCESS;
 +}
 +
 +
 +/*
 + * Return a compressor given the file name.  If EXTPTR is non-zero,
 + * return a pointer into FILE where the compressor-specific
 + * extension begins.  If no compressor is found, NULL is returned
 + * and EXTPTR is not significant.
 + * Idea by Vladimir Alexiev <vladimir@cs.ualberta.ca> (1998)
 + */
 +static compressor *
 +get_compressor_from_suffix (char *file, char **extptr)
 +{
 +  compressor *compr;
 +  char *slash, *suffix;
 +
 +  /* File has been processed by canonicalize_filename,
 +     so we don't need to consider backslashes on DOS_NT.  */
 +  slash = strrchr (file, '/');
 +  suffix = strrchr (file, '.');
 +  if (suffix == NULL || suffix < slash)
 +    return NULL;
 +  if (extptr != NULL)
 +    *extptr = suffix;
 +  suffix += 1;
 +  /* Let those poor souls who live with DOS 8+3 file name limits get
 +     some solace by treating foo.cgz as if it were foo.c.gz, etc.
 +     Only the first do loop is run if not MSDOS */
 +  do
 +    {
 +      for (compr = compressors; compr->suffix != NULL; compr++)
 +      if (streq (compr->suffix, suffix))
 +        return compr;
 +      if (!MSDOS)
 +      break;                  /* do it only once: not really a loop */
 +      if (extptr != NULL)
 +      *extptr = ++suffix;
 +    } while (*suffix != '\0');
 +  return NULL;
 +}
 +
 +
 +
 +/*
 + * Return a language given the name.
 + */
 +static language *
 +get_language_from_langname (const char *name)
 +{
 +  language *lang;
 +
 +  if (name == NULL)
 +    error ("empty language name");
 +  else
 +    {
 +      for (lang = lang_names; lang->name != NULL; lang++)
 +      if (streq (name, lang->name))
 +        return lang;
 +      error ("unknown language \"%s\"", name);
 +    }
 +
 +  return NULL;
 +}
 +
 +
 +/*
 + * Return a language given the interpreter name.
 + */
 +static language *
 +get_language_from_interpreter (char *interpreter)
 +{
 +  language *lang;
 +  const char **iname;
 +
 +  if (interpreter == NULL)
 +    return NULL;
 +  for (lang = lang_names; lang->name != NULL; lang++)
 +    if (lang->interpreters != NULL)
 +      for (iname = lang->interpreters; *iname != NULL; iname++)
 +      if (streq (*iname, interpreter))
 +          return lang;
 +
 +  return NULL;
 +}
 +
 +
 +
 +/*
 + * Return a language given the file name.
 + */
 +static language *
 +get_language_from_filename (char *file, int case_sensitive)
 +{
 +  language *lang;
 +  const char **name, **ext, *suffix;
 +
 +  /* Try whole file name first. */
 +  for (lang = lang_names; lang->name != NULL; lang++)
 +    if (lang->filenames != NULL)
 +      for (name = lang->filenames; *name != NULL; name++)
 +      if ((case_sensitive)
 +          ? streq (*name, file)
 +          : strcaseeq (*name, file))
 +        return lang;
 +
 +  /* If not found, try suffix after last dot. */
 +  suffix = strrchr (file, '.');
 +  if (suffix == NULL)
 +    return NULL;
 +  suffix += 1;
 +  for (lang = lang_names; lang->name != NULL; lang++)
 +    if (lang->suffixes != NULL)
 +      for (ext = lang->suffixes; *ext != NULL; ext++)
 +      if ((case_sensitive)
 +          ? streq (*ext, suffix)
 +          : strcaseeq (*ext, suffix))
 +        return lang;
 +  return NULL;
 +}
 +
 +\f
 +/*
 + * This routine is called on each file argument.
 + */
 +static void
 +process_file_name (char *file, language *lang)
 +{
 +  struct stat stat_buf;
 +  FILE *inf;
 +  fdesc *fdp;
 +  compressor *compr;
 +  char *compressed_name, *uncompressed_name;
 +  char *ext, *real_name;
 +  int retval;
 +
 +  canonicalize_filename (file);
 +  if (streq (file, tagfile) && !streq (tagfile, "-"))
 +    {
 +      error ("skipping inclusion of %s in self.", file);
 +      return;
 +    }
 +  if ((compr = get_compressor_from_suffix (file, &ext)) == NULL)
 +    {
 +      compressed_name = NULL;
 +      real_name = uncompressed_name = savestr (file);
 +    }
 +  else
 +    {
 +      real_name = compressed_name = savestr (file);
 +      uncompressed_name = savenstr (file, ext - file);
 +    }
 +
 +  /* If the canonicalized uncompressed name
 +     has already been dealt with, skip it silently. */
 +  for (fdp = fdhead; fdp != NULL; fdp = fdp->next)
 +    {
 +      assert (fdp->infname != NULL);
 +      if (streq (uncompressed_name, fdp->infname))
 +      goto cleanup;
 +    }
 +
 +  if (stat (real_name, &stat_buf) != 0)
 +    {
 +      /* Reset real_name and try with a different name. */
 +      real_name = NULL;
 +      if (compressed_name != NULL) /* try with the given suffix */
 +      {
 +        if (stat (uncompressed_name, &stat_buf) == 0)
 +          real_name = uncompressed_name;
 +      }
 +      else                    /* try all possible suffixes */
 +      {
 +        for (compr = compressors; compr->suffix != NULL; compr++)
 +          {
 +            compressed_name = concat (file, ".", compr->suffix);
 +            if (stat (compressed_name, &stat_buf) != 0)
 +              {
 +                if (MSDOS)
 +                  {
 +                    char *suf = compressed_name + strlen (file);
 +                    size_t suflen = strlen (compr->suffix) + 1;
 +                    for ( ; suf[1]; suf++, suflen--)
 +                      {
 +                        memmove (suf, suf + 1, suflen);
 +                        if (stat (compressed_name, &stat_buf) == 0)
 +                          {
 +                            real_name = compressed_name;
 +                            break;
 +                          }
 +                      }
 +                    if (real_name != NULL)
 +                      break;
 +                  } /* MSDOS */
 +                free (compressed_name);
 +                compressed_name = NULL;
 +              }
 +            else
 +              {
 +                real_name = compressed_name;
 +                break;
 +              }
 +          }
 +      }
 +      if (real_name == NULL)
 +      {
 +        perror (file);
 +        goto cleanup;
 +      }
 +    } /* try with a different name */
 +
 +  if (!S_ISREG (stat_buf.st_mode))
 +    {
 +      error ("skipping %s: it is not a regular file.", real_name);
 +      goto cleanup;
 +    }
 +  if (real_name == compressed_name)
 +    {
 +      char *cmd = concat (compr->command, " ", real_name);
 +      inf = popen (cmd, "r" FOPEN_BINARY);
 +      free (cmd);
 +    }
 +  else
 +    inf = fopen (real_name, "r" FOPEN_BINARY);
 +  if (inf == NULL)
 +    {
 +      perror (real_name);
 +      goto cleanup;
 +    }
 +
 +  process_file (inf, uncompressed_name, lang);
 +
 +  if (real_name == compressed_name)
 +    retval = pclose (inf);
 +  else
 +    retval = fclose (inf);
 +  if (retval < 0)
 +    pfatal (file);
 +
 + cleanup:
 +  free (compressed_name);
 +  free (uncompressed_name);
 +  last_node = NULL;
 +  curfdp = NULL;
 +  return;
 +}
 +
 +static void
 +process_file (FILE *fh, char *fn, language *lang)
 +{
 +  static const fdesc emptyfdesc;
 +  fdesc *fdp;
 +
 +  /* Create a new input file description entry. */
 +  fdp = xnew (1, fdesc);
 +  *fdp = emptyfdesc;
 +  fdp->next = fdhead;
 +  fdp->infname = savestr (fn);
 +  fdp->lang = lang;
 +  fdp->infabsname = absolute_filename (fn, cwd);
 +  fdp->infabsdir = absolute_dirname (fn, cwd);
 +  if (filename_is_absolute (fn))
 +    {
 +      /* An absolute file name.  Canonicalize it. */
 +      fdp->taggedfname = absolute_filename (fn, NULL);
 +    }
 +  else
 +    {
 +      /* A file name relative to cwd.  Make it relative
 +       to the directory of the tags file. */
 +      fdp->taggedfname = relative_filename (fn, tagfiledir);
 +    }
 +  fdp->usecharno = true;      /* use char position when making tags */
 +  fdp->prop = NULL;
 +  fdp->written = false;               /* not written on tags file yet */
 +
 +  fdhead = fdp;
 +  curfdp = fdhead;            /* the current file description */
 +
 +  find_entries (fh);
 +
 +  /* If not Ctags, and if this is not metasource and if it contained no #line
 +     directives, we can write the tags and free all nodes pointing to
 +     curfdp. */
 +  if (!CTAGS
 +      && curfdp->usecharno    /* no #line directives in this file */
 +      && !curfdp->lang->metasource)
 +    {
 +      node *np, *prev;
 +
 +      /* Look for the head of the sublist relative to this file.  See add_node
 +       for the structure of the node tree. */
 +      prev = NULL;
 +      for (np = nodehead; np != NULL; prev = np, np = np->left)
 +      if (np->fdp == curfdp)
 +        break;
 +
 +      /* If we generated tags for this file, write and delete them. */
 +      if (np != NULL)
 +      {
 +        /* This is the head of the last sublist, if any.  The following
 +           instructions depend on this being true. */
 +        assert (np->left == NULL);
 +
 +        assert (fdhead == curfdp);
 +        assert (last_node->fdp == curfdp);
 +        put_entries (np);     /* write tags for file curfdp->taggedfname */
 +        free_tree (np);       /* remove the written nodes */
 +        if (prev == NULL)
 +          nodehead = NULL;    /* no nodes left */
 +        else
 +          prev->left = NULL;  /* delete the pointer to the sublist */
 +      }
 +    }
 +}
 +
 +/*
 + * This routine sets up the boolean pseudo-functions which work
 + * by setting boolean flags dependent upon the corresponding character.
 + * Every char which is NOT in that string is not a white char.  Therefore,
 + * all of the array "_wht" is set to false, and then the elements
 + * subscripted by the chars in "white" are set to true.  Thus "_wht"
 + * of a char is true if it is the string "white", else false.
 + */
 +static void
 +init (void)
 +{
 +  const char *sp;
 +  int i;
 +
 +  for (i = 0; i < CHARS; i++)
 +    iswhite (i) = notinname (i) = begtoken (i) = intoken (i) = endtoken (i)
 +      = false;
 +  for (sp = white; *sp != '\0'; sp++) iswhite (*sp) = true;
 +  for (sp = nonam; *sp != '\0'; sp++) notinname (*sp) = true;
 +  notinname ('\0') = notinname ('\n');
 +  for (sp = begtk; *sp != '\0'; sp++) begtoken (*sp) = true;
 +  begtoken ('\0') = begtoken ('\n');
 +  for (sp = midtk; *sp != '\0'; sp++) intoken (*sp) = true;
 +  intoken ('\0') = intoken ('\n');
 +  for (sp = endtk; *sp != '\0'; sp++) endtoken (*sp) = true;
 +  endtoken ('\0') = endtoken ('\n');
 +}
 +
 +/*
 + * This routine opens the specified file and calls the function
 + * which finds the function and type definitions.
 + */
 +static void
 +find_entries (FILE *inf)
 +{
 +  char *cp;
 +  language *lang = curfdp->lang;
 +  Lang_function *parser = NULL;
 +
 +  /* If user specified a language, use it. */
 +  if (lang != NULL && lang->function != NULL)
 +    {
 +      parser = lang->function;
 +    }
 +
 +  /* Else try to guess the language given the file name. */
 +  if (parser == NULL)
 +    {
 +      lang = get_language_from_filename (curfdp->infname, true);
 +      if (lang != NULL && lang->function != NULL)
 +      {
 +        curfdp->lang = lang;
 +        parser = lang->function;
 +      }
 +    }
 +
 +  /* Else look for sharp-bang as the first two characters. */
 +  if (parser == NULL
 +      && readline_internal (&lb, inf) > 0
 +      && lb.len >= 2
 +      && lb.buffer[0] == '#'
 +      && lb.buffer[1] == '!')
 +    {
 +      char *lp;
 +
 +      /* Set lp to point at the first char after the last slash in the
 +         line or, if no slashes, at the first nonblank.  Then set cp to
 +       the first successive blank and terminate the string. */
 +      lp = strrchr (lb.buffer+2, '/');
 +      if (lp != NULL)
 +      lp += 1;
 +      else
 +      lp = skip_spaces (lb.buffer + 2);
 +      cp = skip_non_spaces (lp);
 +      *cp = '\0';
 +
 +      if (strlen (lp) > 0)
 +      {
 +        lang = get_language_from_interpreter (lp);
 +        if (lang != NULL && lang->function != NULL)
 +          {
 +            curfdp->lang = lang;
 +            parser = lang->function;
 +          }
 +      }
 +    }
 +
 +  /* We rewind here, even if inf may be a pipe.  We fail if the
 +     length of the first line is longer than the pipe block size,
 +     which is unlikely. */
 +  rewind (inf);
 +
 +  /* Else try to guess the language given the case insensitive file name. */
 +  if (parser == NULL)
 +    {
 +      lang = get_language_from_filename (curfdp->infname, false);
 +      if (lang != NULL && lang->function != NULL)
 +      {
 +        curfdp->lang = lang;
 +        parser = lang->function;
 +      }
 +    }
 +
 +  /* Else try Fortran or C. */
 +  if (parser == NULL)
 +    {
 +      node *old_last_node = last_node;
 +
 +      curfdp->lang = get_language_from_langname ("fortran");
 +      find_entries (inf);
 +
 +      if (old_last_node == last_node)
 +      /* No Fortran entries found.  Try C. */
 +      {
 +        /* We do not tag if rewind fails.
 +           Only the file name will be recorded in the tags file. */
 +        rewind (inf);
 +        curfdp->lang = get_language_from_langname (cplusplus ? "c++" : "c");
 +        find_entries (inf);
 +      }
 +      return;
 +    }
 +
 +  if (!no_line_directive
 +      && curfdp->lang != NULL && curfdp->lang->metasource)
 +    /* It may be that this is a bingo.y file, and we already parsed a bingo.c
 +       file, or anyway we parsed a file that is automatically generated from
 +       this one.  If this is the case, the bingo.c file contained #line
 +       directives that generated tags pointing to this file.  Let's delete
 +       them all before parsing this file, which is the real source. */
 +    {
 +      fdesc **fdpp = &fdhead;
 +      while (*fdpp != NULL)
 +      if (*fdpp != curfdp
 +          && streq ((*fdpp)->taggedfname, curfdp->taggedfname))
 +        /* We found one of those!  We must delete both the file description
 +           and all tags referring to it. */
 +        {
 +          fdesc *badfdp = *fdpp;
 +
 +          /* Delete the tags referring to badfdp->taggedfname
 +             that were obtained from badfdp->infname. */
 +          invalidate_nodes (badfdp, &nodehead);
 +
 +          *fdpp = badfdp->next; /* remove the bad description from the list */
 +          free_fdesc (badfdp);
 +        }
 +      else
 +        fdpp = &(*fdpp)->next; /* advance the list pointer */
 +    }
 +
 +  assert (parser != NULL);
 +
 +  /* Generic initializations before reading from file. */
 +  linebuffer_setlen (&filebuf, 0); /* reset the file buffer */
 +
 +  /* Generic initializations before parsing file with readline. */
 +  lineno = 0;                /* reset global line number */
 +  charno = 0;                /* reset global char number */
 +  linecharno = 0;            /* reset global char number of line start */
 +
 +  parser (inf);
 +
 +  regex_tag_multiline ();
 +}
 +
 +\f
 +/*
 + * Check whether an implicitly named tag should be created,
 + * then call `pfnote'.
 + * NAME is a string that is internally copied by this function.
 + *
 + * TAGS format specification
 + * Idea by Sam Kendall <kendall@mv.mv.com> (1997)
 + * The following is explained in some more detail in etc/ETAGS.EBNF.
 + *
 + * make_tag creates tags with "implicit tag names" (unnamed tags)
 + * if the following are all true, assuming NONAM=" \f\t\n\r()=,;":
 + *  1. NAME does not contain any of the characters in NONAM;
 + *  2. LINESTART contains name as either a rightmost, or rightmost but
 + *     one character, substring;
 + *  3. the character, if any, immediately before NAME in LINESTART must
 + *     be a character in NONAM;
 + *  4. the character, if any, immediately after NAME in LINESTART must
 + *     also be a character in NONAM.
 + *
 + * The implementation uses the notinname() macro, which recognizes the
 + * characters stored in the string `nonam'.
 + * etags.el needs to use the same characters that are in NONAM.
 + */
 +static void
 +make_tag (const char *name,   /* tag name, or NULL if unnamed */
 +        int namelen,          /* tag length */
 +        bool is_func,         /* tag is a function */
 +        char *linestart,      /* start of the line where tag is */
 +        int linelen,          /* length of the line where tag is */
 +        int lno,              /* line number */
 +        long int cno)         /* character number */
 +{
 +  bool named = (name != NULL && namelen > 0);
 +  char *nname = NULL;
 +
 +  if (!CTAGS && named)                /* maybe set named to false */
 +    /* Let's try to make an implicit tag name, that is, create an unnamed tag
 +       such that etags.el can guess a name from it. */
 +    {
 +      int i;
 +      register const char *cp = name;
 +
 +      for (i = 0; i < namelen; i++)
 +      if (notinname (*cp++))
 +        break;
 +      if (i == namelen)                               /* rule #1 */
 +      {
 +        cp = linestart + linelen - namelen;
 +        if (notinname (linestart[linelen-1]))
 +          cp -= 1;                            /* rule #4 */
 +        if (cp >= linestart                   /* rule #2 */
 +            && (cp == linestart
 +                || notinname (cp[-1]))        /* rule #3 */
 +            && strneq (name, cp, namelen))    /* rule #2 */
 +          named = false;      /* use implicit tag name */
 +      }
 +    }
 +
 +  if (named)
 +    nname = savenstr (name, namelen);
 +
 +  pfnote (nname, is_func, linestart, linelen, lno, cno);
 +}
 +
 +/* Record a tag. */
 +static void
 +pfnote (char *name, bool is_func, char *linestart, int linelen, int lno,
 +      long int cno)
 +                              /* tag name, or NULL if unnamed */
 +                              /* tag is a function */
 +                              /* start of the line where tag is */
 +                              /* length of the line where tag is */
 +                              /* line number */
 +                                      /* character number */
 +{
 +  register node *np;
 +
 +  assert (name == NULL || name[0] != '\0');
 +  if (CTAGS && name == NULL)
 +    return;
 +
 +  np = xnew (1, node);
 +
 +  /* If ctags mode, change name "main" to M<thisfilename>. */
 +  if (CTAGS && !cxref_style && streq (name, "main"))
 +    {
 +      char *fp = strrchr (curfdp->taggedfname, '/');
 +      np->name = concat ("M", fp == NULL ? curfdp->taggedfname : fp + 1, "");
 +      fp = strrchr (np->name, '.');
 +      if (fp != NULL && fp[1] != '\0' && fp[2] == '\0')
 +      fp[0] = '\0';
 +    }
 +  else
 +    np->name = name;
 +  np->valid = true;
 +  np->been_warned = false;
 +  np->fdp = curfdp;
 +  np->is_func = is_func;
 +  np->lno = lno;
 +  if (np->fdp->usecharno)
 +    /* Our char numbers are 0-base, because of C language tradition?
 +       ctags compatibility?  old versions compatibility?   I don't know.
 +       Anyway, since emacs's are 1-base we expect etags.el to take care
 +       of the difference.  If we wanted to have 1-based numbers, we would
 +       uncomment the +1 below. */
 +    np->cno = cno /* + 1 */ ;
 +  else
 +    np->cno = invalidcharno;
 +  np->left = np->right = NULL;
 +  if (CTAGS && !cxref_style)
 +    {
 +      if (strlen (linestart) < 50)
 +      np->regex = concat (linestart, "$", "");
 +      else
 +      np->regex = savenstr (linestart, 50);
 +    }
 +  else
 +    np->regex = savenstr (linestart, linelen);
 +
 +  add_node (np, &nodehead);
 +}
 +
 +/*
 + * free_tree ()
 + *    recurse on left children, iterate on right children.
 + */
 +static void
 +free_tree (register node *np)
 +{
 +  while (np)
 +    {
 +      register node *node_right = np->right;
 +      free_tree (np->left);
 +      free (np->name);
 +      free (np->regex);
 +      free (np);
 +      np = node_right;
 +    }
 +}
 +
 +/*
 + * free_fdesc ()
 + *    delete a file description
 + */
 +static void
 +free_fdesc (register fdesc *fdp)
 +{
 +  free (fdp->infname);
 +  free (fdp->infabsname);
 +  free (fdp->infabsdir);
 +  free (fdp->taggedfname);
 +  free (fdp->prop);
 +  free (fdp);
 +}
 +
 +/*
 + * add_node ()
 + *    Adds a node to the tree of nodes.  In etags mode, sort by file
 + *    name.  In ctags mode, sort by tag name.  Make no attempt at
 + *            balancing.
 + *
 + *    add_node is the only function allowed to add nodes, so it can
 + *    maintain state.
 + */
 +static void
 +add_node (node *np, node **cur_node_p)
 +{
 +  register int dif;
 +  register node *cur_node = *cur_node_p;
 +
 +  if (cur_node == NULL)
 +    {
 +      *cur_node_p = np;
 +      last_node = np;
 +      return;
 +    }
 +
 +  if (!CTAGS)
 +    /* Etags Mode */
 +    {
 +      /* For each file name, tags are in a linked sublist on the right
 +       pointer.  The first tags of different files are a linked list
 +       on the left pointer.  last_node points to the end of the last
 +       used sublist. */
 +      if (last_node != NULL && last_node->fdp == np->fdp)
 +      {
 +        /* Let's use the same sublist as the last added node. */
 +        assert (last_node->right == NULL);
 +        last_node->right = np;
 +        last_node = np;
 +      }
 +      else if (cur_node->fdp == np->fdp)
 +      {
 +        /* Scanning the list we found the head of a sublist which is
 +           good for us.  Let's scan this sublist. */
 +        add_node (np, &cur_node->right);
 +      }
 +      else
 +      /* The head of this sublist is not good for us.  Let's try the
 +         next one. */
 +      add_node (np, &cur_node->left);
 +    } /* if ETAGS mode */
 +
 +  else
 +    {
 +      /* Ctags Mode */
 +      dif = strcmp (np->name, cur_node->name);
 +
 +      /*
 +       * If this tag name matches an existing one, then
 +       * do not add the node, but maybe print a warning.
 +       */
 +      if (no_duplicates && !dif)
 +      {
 +        if (np->fdp == cur_node->fdp)
 +          {
 +            if (!no_warnings)
 +              {
 +                fprintf (stderr, "Duplicate entry in file %s, line %d: %s\n",
 +                         np->fdp->infname, lineno, np->name);
 +                fprintf (stderr, "Second entry ignored\n");
 +              }
 +          }
 +        else if (!cur_node->been_warned && !no_warnings)
 +          {
 +            fprintf
 +              (stderr,
 +               "Duplicate entry in files %s and %s: %s (Warning only)\n",
 +               np->fdp->infname, cur_node->fdp->infname, np->name);
 +            cur_node->been_warned = true;
 +          }
 +        return;
 +      }
 +
 +      /* Actually add the node */
 +      add_node (np, dif < 0 ? &cur_node->left : &cur_node->right);
 +    } /* if CTAGS mode */
 +}
 +
 +/*
 + * invalidate_nodes ()
 + *    Scan the node tree and invalidate all nodes pointing to the
 + *    given file description (CTAGS case) or free them (ETAGS case).
 + */
 +static void
 +invalidate_nodes (fdesc *badfdp, node **npp)
 +{
 +  node *np = *npp;
 +
 +  if (np == NULL)
 +    return;
 +
 +  if (CTAGS)
 +    {
 +      if (np->left != NULL)
 +      invalidate_nodes (badfdp, &np->left);
 +      if (np->fdp == badfdp)
 +      np->valid = false;
 +      if (np->right != NULL)
 +      invalidate_nodes (badfdp, &np->right);
 +    }
 +  else
 +    {
 +      assert (np->fdp != NULL);
 +      if (np->fdp == badfdp)
 +      {
 +        *npp = np->left;      /* detach the sublist from the list */
 +        np->left = NULL;      /* isolate it */
 +        free_tree (np);       /* free it */
 +        invalidate_nodes (badfdp, npp);
 +      }
 +      else
 +      invalidate_nodes (badfdp, &np->left);
 +    }
 +}
 +
 +\f
 +static int total_size_of_entries (node *);
 +static int number_len (long) ATTRIBUTE_CONST;
 +
 +/* Length of a non-negative number's decimal representation. */
 +static int
 +number_len (long int num)
 +{
 +  int len = 1;
 +  while ((num /= 10) > 0)
 +    len += 1;
 +  return len;
 +}
 +
 +/*
 + * Return total number of characters that put_entries will output for
 + * the nodes in the linked list at the right of the specified node.
 + * This count is irrelevant with etags.el since emacs 19.34 at least,
 + * but is still supplied for backward compatibility.
 + */
 +static int
 +total_size_of_entries (register node *np)
 +{
 +  register int total = 0;
 +
 +  for (; np != NULL; np = np->right)
 +    if (np->valid)
 +      {
 +      total += strlen (np->regex) + 1;                /* pat\177 */
 +      if (np->name != NULL)
 +        total += strlen (np->name) + 1;               /* name\001 */
 +      total += number_len ((long) np->lno) + 1;       /* lno, */
 +      if (np->cno != invalidcharno)                   /* cno */
 +        total += number_len (np->cno);
 +      total += 1;                                     /* newline */
 +      }
 +
 +  return total;
 +}
 +
 +static void
 +put_entries (register node *np)
 +{
 +  register char *sp;
 +  static fdesc *fdp = NULL;
 +
 +  if (np == NULL)
 +    return;
 +
 +  /* Output subentries that precede this one */
 +  if (CTAGS)
 +    put_entries (np->left);
 +
 +  /* Output this entry */
 +  if (np->valid)
 +    {
 +      if (!CTAGS)
 +      {
 +        /* Etags mode */
 +        if (fdp != np->fdp)
 +          {
 +            fdp = np->fdp;
 +            fprintf (tagf, "\f\n%s,%d\n",
 +                     fdp->taggedfname, total_size_of_entries (np));
 +            fdp->written = true;
 +          }
 +        fputs (np->regex, tagf);
 +        fputc ('\177', tagf);
 +        if (np->name != NULL)
 +          {
 +            fputs (np->name, tagf);
 +            fputc ('\001', tagf);
 +          }
 +        fprintf (tagf, "%d,", np->lno);
 +        if (np->cno != invalidcharno)
 +          fprintf (tagf, "%ld", np->cno);
 +        fputs ("\n", tagf);
 +      }
 +      else
 +      {
 +        /* Ctags mode */
 +        if (np->name == NULL)
 +          error ("internal error: NULL name in ctags mode.");
 +
 +        if (cxref_style)
 +          {
 +            if (vgrind_style)
 +              fprintf (stdout, "%s %s %d\n",
 +                       np->name, np->fdp->taggedfname, (np->lno + 63) / 64);
 +            else
 +              fprintf (stdout, "%-16s %3d %-16s %s\n",
 +                       np->name, np->lno, np->fdp->taggedfname, np->regex);
 +          }
 +        else
 +          {
 +            fprintf (tagf, "%s\t%s\t", np->name, np->fdp->taggedfname);
 +
 +            if (np->is_func)
 +              {               /* function or #define macro with args */
 +                putc (searchar, tagf);
 +                putc ('^', tagf);
 +
 +                for (sp = np->regex; *sp; sp++)
 +                  {
 +                    if (*sp == '\\' || *sp == searchar)
 +                      putc ('\\', tagf);
 +                    putc (*sp, tagf);
 +                  }
 +                putc (searchar, tagf);
 +              }
 +            else
 +              {               /* anything else; text pattern inadequate */
 +                fprintf (tagf, "%d", np->lno);
 +              }
 +            putc ('\n', tagf);
 +          }
 +      }
 +    } /* if this node contains a valid tag */
 +
 +  /* Output subentries that follow this one */
 +  put_entries (np->right);
 +  if (!CTAGS)
 +    put_entries (np->left);
 +}
 +
 +\f
 +/* C extensions. */
 +#define C_EXT 0x00fff         /* C extensions */
 +#define C_PLAIN 0x00000               /* C */
 +#define C_PLPL        0x00001         /* C++ */
 +#define C_STAR        0x00003         /* C* */
 +#define C_JAVA        0x00005         /* JAVA */
 +#define C_AUTO  0x01000               /* C, but switch to C++ if `class' is met */
 +#define YACC  0x10000         /* yacc file */
 +
 +/*
 + * The C symbol tables.
 + */
 +enum sym_type
 +{
 +  st_none,
 +  st_C_objprot, st_C_objimpl, st_C_objend,
 +  st_C_gnumacro,
 +  st_C_ignore, st_C_attribute,
 +  st_C_javastruct,
 +  st_C_operator,
 +  st_C_class, st_C_template,
 +  st_C_struct, st_C_extern, st_C_enum, st_C_define, st_C_typedef
 +};
 +
 +/* Feed stuff between (but not including) %[ and %] lines to:
 +     gperf -m 5
 +%[
 +%compare-strncmp
 +%enum
 +%struct-type
 +struct C_stab_entry { char *name; int c_ext; enum sym_type type; }
 +%%
 +if,           0,                      st_C_ignore
 +for,          0,                      st_C_ignore
 +while,                0,                      st_C_ignore
 +switch,               0,                      st_C_ignore
 +return,               0,                      st_C_ignore
 +__attribute__,        0,                      st_C_attribute
 +GTY,            0,                      st_C_attribute
 +@interface,   0,                      st_C_objprot
 +@protocol,    0,                      st_C_objprot
 +@implementation,0,                    st_C_objimpl
 +@end,         0,                      st_C_objend
 +import,               (C_JAVA & ~C_PLPL),     st_C_ignore
 +package,      (C_JAVA & ~C_PLPL),     st_C_ignore
 +friend,               C_PLPL,                 st_C_ignore
 +extends,      (C_JAVA & ~C_PLPL),     st_C_javastruct
 +implements,   (C_JAVA & ~C_PLPL),     st_C_javastruct
 +interface,    (C_JAVA & ~C_PLPL),     st_C_struct
 +class,                0,                      st_C_class
 +namespace,    C_PLPL,                 st_C_struct
 +domain,               C_STAR,                 st_C_struct
 +union,                0,                      st_C_struct
 +struct,               0,                      st_C_struct
 +extern,               0,                      st_C_extern
 +enum,         0,                      st_C_enum
 +typedef,      0,                      st_C_typedef
 +define,               0,                      st_C_define
 +undef,                0,                      st_C_define
 +operator,     C_PLPL,                 st_C_operator
 +template,     0,                      st_C_template
 +# DEFUN used in emacs, the next three used in glibc (SYSCALL only for mach).
 +DEFUN,                0,                      st_C_gnumacro
 +SYSCALL,      0,                      st_C_gnumacro
 +ENTRY,                0,                      st_C_gnumacro
 +PSEUDO,               0,                      st_C_gnumacro
 +# These are defined inside C functions, so currently they are not met.
 +# EXFUN used in glibc, DEFVAR_* in emacs.
 +#EXFUN,               0,                      st_C_gnumacro
 +#DEFVAR_,     0,                      st_C_gnumacro
 +%]
 +and replace lines between %< and %> with its output, then:
 + - remove the #if characterset check
 + - make in_word_set static and not inline. */
 +/*%<*/
 +/* C code produced by gperf version 3.0.1 */
 +/* Command-line: gperf -m 5  */
 +/* Computed positions: -k'2-3' */
 +
 +struct C_stab_entry { const char *name; int c_ext; enum sym_type type; };
 +/* maximum key range = 33, duplicates = 0 */
 +
 +static int
 +hash (const char *str, int len)
 +{
 +  static char const asso_values[] =
 +    {
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35,  3,
 +      26, 35, 35, 35, 35, 35, 35, 35, 27, 35,
 +      35, 35, 35, 24,  0, 35, 35, 35, 35,  0,
 +      35, 35, 35, 35, 35,  1, 35, 16, 35,  6,
 +      23,  0,  0, 35, 22,  0, 35, 35,  5,  0,
 +       0, 15,  1, 35,  6, 35,  8, 19, 35, 16,
 +       4,  5, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
 +      35, 35, 35, 35, 35, 35
 +    };
 +  int hval = len;
 +
 +  switch (hval)
 +    {
 +      default:
 +        hval += asso_values[(unsigned char) str[2]];
 +      /*FALLTHROUGH*/
 +      case 2:
 +        hval += asso_values[(unsigned char) str[1]];
 +        break;
 +    }
 +  return hval;
 +}
 +
 +static struct C_stab_entry *
 +in_word_set (register const char *str, register unsigned int len)
 +{
 +  enum
 +    {
 +      TOTAL_KEYWORDS = 33,
 +      MIN_WORD_LENGTH = 2,
 +      MAX_WORD_LENGTH = 15,
 +      MIN_HASH_VALUE = 2,
 +      MAX_HASH_VALUE = 34
 +    };
 +
 +  static struct C_stab_entry wordlist[] =
 +    {
 +      {""}, {""},
 +      {"if",          0,                      st_C_ignore},
 +      {"GTY",           0,                      st_C_attribute},
 +      {"@end",                0,                      st_C_objend},
 +      {"union",               0,                      st_C_struct},
 +      {"define",              0,                      st_C_define},
 +      {"import",              (C_JAVA & ~C_PLPL),     st_C_ignore},
 +      {"template",    0,                      st_C_template},
 +      {"operator",    C_PLPL,                 st_C_operator},
 +      {"@interface",  0,                      st_C_objprot},
 +      {"implements",  (C_JAVA & ~C_PLPL),     st_C_javastruct},
 +      {"friend",              C_PLPL,                 st_C_ignore},
 +      {"typedef",     0,                      st_C_typedef},
 +      {"return",              0,                      st_C_ignore},
 +      {"@implementation",0,                   st_C_objimpl},
 +      {"@protocol",   0,                      st_C_objprot},
 +      {"interface",   (C_JAVA & ~C_PLPL),     st_C_struct},
 +      {"extern",              0,                      st_C_extern},
 +      {"extends",     (C_JAVA & ~C_PLPL),     st_C_javastruct},
 +      {"struct",              0,                      st_C_struct},
 +      {"domain",              C_STAR,                 st_C_struct},
 +      {"switch",              0,                      st_C_ignore},
 +      {"enum",                0,                      st_C_enum},
 +      {"for",         0,                      st_C_ignore},
 +      {"namespace",   C_PLPL,                 st_C_struct},
 +      {"class",               0,                      st_C_class},
 +      {"while",               0,                      st_C_ignore},
 +      {"undef",               0,                      st_C_define},
 +      {"package",     (C_JAVA & ~C_PLPL),     st_C_ignore},
 +      {"__attribute__",       0,                      st_C_attribute},
 +      {"SYSCALL",     0,                      st_C_gnumacro},
 +      {"ENTRY",               0,                      st_C_gnumacro},
 +      {"PSEUDO",              0,                      st_C_gnumacro},
 +      {"DEFUN",               0,                      st_C_gnumacro}
 +    };
 +
 +  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
 +    {
 +      int key = hash (str, len);
 +
 +      if (key <= MAX_HASH_VALUE && key >= 0)
 +        {
 +          const char *s = wordlist[key].name;
 +
 +          if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
 +            return &wordlist[key];
 +        }
 +    }
 +  return 0;
 +}
 +/*%>*/
 +
 +static enum sym_type
 +C_symtype (char *str, int len, int c_ext)
 +{
 +  register struct C_stab_entry *se = in_word_set (str, len);
 +
 +  if (se == NULL || (se->c_ext && !(c_ext & se->c_ext)))
 +    return st_none;
 +  return se->type;
 +}
 +
 +\f
 +/*
 + * Ignoring __attribute__ ((list))
 + */
 +static bool inattribute;      /* looking at an __attribute__ construct */
 +
 +/*
 + * C functions and variables are recognized using a simple
 + * finite automaton.  fvdef is its state variable.
 + */
 +static enum
 +{
 +  fvnone,                     /* nothing seen */
 +  fdefunkey,                  /* Emacs DEFUN keyword seen */
 +  fdefunname,                 /* Emacs DEFUN name seen */
 +  foperator,                  /* func: operator keyword seen (cplpl) */
 +  fvnameseen,                 /* function or variable name seen */
 +  fstartlist,                 /* func: just after open parenthesis */
 +  finlist,                    /* func: in parameter list */
 +  flistseen,                  /* func: after parameter list */
 +  fignore,                    /* func: before open brace */
 +  vignore                     /* var-like: ignore until ';' */
 +} fvdef;
 +
 +static bool fvextern;         /* func or var: extern keyword seen; */
 +
 +/*
 + * typedefs are recognized using a simple finite automaton.
 + * typdef is its state variable.
 + */
 +static enum
 +{
 +  tnone,                      /* nothing seen */
 +  tkeyseen,                   /* typedef keyword seen */
 +  ttypeseen,                  /* defined type seen */
 +  tinbody,                    /* inside typedef body */
 +  tend,                               /* just before typedef tag */
 +  tignore                     /* junk after typedef tag */
 +} typdef;
 +
 +/*
 + * struct-like structures (enum, struct and union) are recognized
 + * using another simple finite automaton.  `structdef' is its state
 + * variable.
 + */
 +static enum
 +{
 +  snone,                      /* nothing seen yet,
 +                                 or in struct body if bracelev > 0 */
 +  skeyseen,                   /* struct-like keyword seen */
 +  stagseen,                   /* struct-like tag seen */
 +  scolonseen                  /* colon seen after struct-like tag */
 +} structdef;
 +
 +/*
 + * When objdef is different from onone, objtag is the name of the class.
 + */
 +static const char *objtag = "<uninited>";
 +
 +/*
 + * Yet another little state machine to deal with preprocessor lines.
 + */
 +static enum
 +{
 +  dnone,                      /* nothing seen */
 +  dsharpseen,                 /* '#' seen as first char on line */
 +  ddefineseen,                        /* '#' and 'define' seen */
 +  dignorerest                 /* ignore rest of line */
 +} definedef;
 +
 +/*
 + * State machine for Objective C protocols and implementations.
 + * Idea by Tom R.Hageman <tom@basil.icce.rug.nl> (1995)
 + */
 +static enum
 +{
 +  onone,                      /* nothing seen */
 +  oprotocol,                  /* @interface or @protocol seen */
 +  oimplementation,            /* @implementations seen */
 +  otagseen,                   /* class name seen */
 +  oparenseen,                 /* parenthesis before category seen */
 +  ocatseen,                   /* category name seen */
 +  oinbody,                    /* in @implementation body */
 +  omethodsign,                        /* in @implementation body, after +/- */
 +  omethodtag,                 /* after method name */
 +  omethodcolon,                       /* after method colon */
 +  omethodparm,                        /* after method parameter */
 +  oignore                     /* wait for @end */
 +} objdef;
 +
 +
 +/*
 + * Use this structure to keep info about the token read, and how it
 + * should be tagged.  Used by the make_C_tag function to build a tag.
 + */
 +static struct tok
 +{
 +  char *line;                 /* string containing the token */
 +  int offset;                 /* where the token starts in LINE */
 +  int length;                 /* token length */
 +  /*
 +    The previous members can be used to pass strings around for generic
 +    purposes.  The following ones specifically refer to creating tags.  In this
 +    case the token contained here is the pattern that will be used to create a
 +    tag.
 +  */
 +  bool valid;                 /* do not create a tag; the token should be
 +                                 invalidated whenever a state machine is
 +                                 reset prematurely */
 +  bool named;                 /* create a named tag */
 +  int lineno;                 /* source line number of tag */
 +  long linepos;                       /* source char number of tag */
 +} token;                      /* latest token read */
 +
 +/*
 + * Variables and functions for dealing with nested structures.
 + * Idea by Mykola Dzyuba <mdzyuba@yahoo.com> (2001)
 + */
 +static void pushclass_above (int, char *, int);
 +static void popclass_above (int);
 +static void write_classname (linebuffer *, const char *qualifier);
 +
 +static struct {
 +  char **cname;                       /* nested class names */
 +  int *bracelev;              /* nested class brace level */
 +  int nl;                     /* class nesting level (elements used) */
 +  int size;                   /* length of the array */
 +} cstack;                     /* stack for nested declaration tags */
 +/* Current struct nesting depth (namespace, class, struct, union, enum). */
 +#define nestlev               (cstack.nl)
 +/* After struct keyword or in struct body, not inside a nested function. */
 +#define instruct      (structdef == snone && nestlev > 0                      \
 +                       && bracelev == cstack.bracelev[nestlev-1] + 1)
 +
 +static void
 +pushclass_above (int bracelev, char *str, int len)
 +{
 +  int nl;
 +
 +  popclass_above (bracelev);
 +  nl = cstack.nl;
 +  if (nl >= cstack.size)
 +    {
 +      int size = cstack.size *= 2;
 +      xrnew (cstack.cname, size, char *);
 +      xrnew (cstack.bracelev, size, int);
 +    }
 +  assert (nl == 0 || cstack.bracelev[nl-1] < bracelev);
 +  cstack.cname[nl] = (str == NULL) ? NULL : savenstr (str, len);
 +  cstack.bracelev[nl] = bracelev;
 +  cstack.nl = nl + 1;
 +}
 +
 +static void
 +popclass_above (int bracelev)
 +{
 +  int nl;
 +
 +  for (nl = cstack.nl - 1;
 +       nl >= 0 && cstack.bracelev[nl] >= bracelev;
 +       nl--)
 +    {
 +      free (cstack.cname[nl]);
 +      cstack.nl = nl;
 +    }
 +}
 +
 +static void
 +write_classname (linebuffer *cn, const char *qualifier)
 +{
 +  int i, len;
 +  int qlen = strlen (qualifier);
 +
 +  if (cstack.nl == 0 || cstack.cname[0] == NULL)
 +    {
 +      len = 0;
 +      cn->len = 0;
 +      cn->buffer[0] = '\0';
 +    }
 +  else
 +    {
 +      len = strlen (cstack.cname[0]);
 +      linebuffer_setlen (cn, len);
 +      strcpy (cn->buffer, cstack.cname[0]);
 +    }
 +  for (i = 1; i < cstack.nl; i++)
 +    {
 +      char *s = cstack.cname[i];
 +      if (s == NULL)
 +      continue;
 +      linebuffer_setlen (cn, len + qlen + strlen (s));
 +      len += sprintf (cn->buffer + len, "%s%s", qualifier, s);
 +    }
 +}
 +
 +\f
 +static bool consider_token (char *, int, int, int *, int, int, bool *);
 +static void make_C_tag (bool);
 +
 +/*
 + * consider_token ()
 + *    checks to see if the current token is at the start of a
 + *    function or variable, or corresponds to a typedef, or
 + *    is a struct/union/enum tag, or #define, or an enum constant.
 + *
 + *    *IS_FUNC_OR_VAR gets true if the token is a function or #define macro
 + *    with args.  C_EXTP points to which language we are looking at.
 + *
 + * Globals
 + *    fvdef                   IN OUT
 + *    structdef               IN OUT
 + *    definedef               IN OUT
 + *    typdef                  IN OUT
 + *    objdef                  IN OUT
 + */
 +
 +static bool
 +consider_token (char *str, int len, int c, int *c_extp,
 +              int bracelev, int parlev, bool *is_func_or_var)
 +                              /* IN: token pointer */
 +                                      /* IN: token length */
 +                              /* IN: first char after the token */
 +                              /* IN, OUT: C extensions mask */
 +                              /* IN: brace level */
 +                              /* IN: parenthesis level */
 +                              /* OUT: function or variable found */
 +{
 +  /* When structdef is stagseen, scolonseen, or snone with bracelev > 0,
 +     structtype is the type of the preceding struct-like keyword, and
 +     structbracelev is the brace level where it has been seen. */
 +  static enum sym_type structtype;
 +  static int structbracelev;
 +  static enum sym_type toktype;
 +
 +
 +  toktype = C_symtype (str, len, *c_extp);
 +
 +  /*
 +   * Skip __attribute__
 +   */
 +  if (toktype == st_C_attribute)
 +    {
 +      inattribute = true;
 +      return false;
 +     }
 +
 +   /*
 +    * Advance the definedef state machine.
 +    */
 +   switch (definedef)
 +     {
 +     case dnone:
 +       /* We're not on a preprocessor line. */
 +       if (toktype == st_C_gnumacro)
 +       {
 +         fvdef = fdefunkey;
 +         return false;
 +       }
 +       break;
 +     case dsharpseen:
 +       if (toktype == st_C_define)
 +       {
 +         definedef = ddefineseen;
 +       }
 +       else
 +       {
 +         definedef = dignorerest;
 +       }
 +       return false;
 +     case ddefineseen:
 +       /*
 +      * Make a tag for any macro, unless it is a constant
 +      * and constantypedefs is false.
 +      */
 +       definedef = dignorerest;
 +       *is_func_or_var = (c == '(');
 +       if (!*is_func_or_var && !constantypedefs)
 +       return false;
 +       else
 +       return true;
 +     case dignorerest:
 +       return false;
 +     default:
 +       error ("internal error: definedef value.");
 +     }
 +
 +   /*
 +    * Now typedefs
 +    */
 +   switch (typdef)
 +     {
 +     case tnone:
 +       if (toktype == st_C_typedef)
 +       {
 +         if (typedefs)
 +           typdef = tkeyseen;
 +         fvextern = false;
 +         fvdef = fvnone;
 +         return false;
 +       }
 +       break;
 +     case tkeyseen:
 +       switch (toktype)
 +       {
 +       case st_none:
 +       case st_C_class:
 +       case st_C_struct:
 +       case st_C_enum:
 +         typdef = ttypeseen;
 +       }
 +       break;
 +     case ttypeseen:
 +       if (structdef == snone && fvdef == fvnone)
 +       {
 +         fvdef = fvnameseen;
 +         return true;
 +       }
 +       break;
 +     case tend:
 +       switch (toktype)
 +       {
 +       case st_C_class:
 +       case st_C_struct:
 +       case st_C_enum:
 +         return false;
 +       }
 +       return true;
 +     }
 +
 +   switch (toktype)
 +     {
 +     case st_C_javastruct:
 +       if (structdef == stagseen)
 +       structdef = scolonseen;
 +       return false;
 +     case st_C_template:
 +     case st_C_class:
 +       if ((*c_extp & C_AUTO) /* automatic detection of C++ language */
 +         && bracelev == 0
 +         && definedef == dnone && structdef == snone
 +         && typdef == tnone && fvdef == fvnone)
 +       *c_extp = (*c_extp | C_PLPL) & ~C_AUTO;
 +       if (toktype == st_C_template)
 +       break;
 +       /* FALLTHRU */
 +     case st_C_struct:
 +     case st_C_enum:
 +       if (parlev == 0
 +         && fvdef != vignore
 +         && (typdef == tkeyseen
 +             || (typedefs_or_cplusplus && structdef == snone)))
 +       {
 +         structdef = skeyseen;
 +         structtype = toktype;
 +         structbracelev = bracelev;
 +         if (fvdef == fvnameseen)
 +           fvdef = fvnone;
 +       }
 +       return false;
 +     }
 +
 +   if (structdef == skeyseen)
 +     {
 +       structdef = stagseen;
 +       return true;
 +     }
 +
 +   if (typdef != tnone)
 +     definedef = dnone;
 +
 +   /* Detect Objective C constructs. */
 +   switch (objdef)
 +     {
 +     case onone:
 +       switch (toktype)
 +       {
 +       case st_C_objprot:
 +         objdef = oprotocol;
 +         return false;
 +       case st_C_objimpl:
 +         objdef = oimplementation;
 +         return false;
 +       }
 +       break;
 +     case oimplementation:
 +       /* Save the class tag for functions or variables defined inside. */
 +       objtag = savenstr (str, len);
 +       objdef = oinbody;
 +       return false;
 +     case oprotocol:
 +       /* Save the class tag for categories. */
 +       objtag = savenstr (str, len);
 +       objdef = otagseen;
 +       *is_func_or_var = true;
 +       return true;
 +     case oparenseen:
 +       objdef = ocatseen;
 +       *is_func_or_var = true;
 +       return true;
 +     case oinbody:
 +       break;
 +     case omethodsign:
 +       if (parlev == 0)
 +       {
 +         fvdef = fvnone;
 +         objdef = omethodtag;
 +         linebuffer_setlen (&token_name, len);
 +         memcpy (token_name.buffer, str, len);
 +         token_name.buffer[len] = '\0';
 +         return true;
 +       }
 +       return false;
 +     case omethodcolon:
 +       if (parlev == 0)
 +       objdef = omethodparm;
 +       return false;
 +     case omethodparm:
 +       if (parlev == 0)
 +       {
 +         int oldlen = token_name.len;
 +         fvdef = fvnone;
 +         objdef = omethodtag;
 +         linebuffer_setlen (&token_name, oldlen + len);
 +         memcpy (token_name.buffer + oldlen, str, len);
 +         token_name.buffer[oldlen + len] = '\0';
 +         return true;
 +       }
 +       return false;
 +     case oignore:
 +       if (toktype == st_C_objend)
 +       {
 +         /* Memory leakage here: the string pointed by objtag is
 +            never released, because many tests would be needed to
 +            avoid breaking on incorrect input code.  The amount of
 +            memory leaked here is the sum of the lengths of the
 +            class tags.
 +         free (objtag); */
 +         objdef = onone;
 +       }
 +       return false;
 +     }
 +
 +   /* A function, variable or enum constant? */
 +   switch (toktype)
 +     {
 +     case st_C_extern:
 +       fvextern = true;
 +       switch  (fvdef)
 +       {
 +       case finlist:
 +       case flistseen:
 +       case fignore:
 +       case vignore:
 +         break;
 +       default:
 +         fvdef = fvnone;
 +       }
 +       return false;
 +     case st_C_ignore:
 +       fvextern = false;
 +       fvdef = vignore;
 +       return false;
 +     case st_C_operator:
 +       fvdef = foperator;
 +       *is_func_or_var = true;
 +       return true;
 +     case st_none:
 +       if (constantypedefs
 +         && structdef == snone
 +         && structtype == st_C_enum && bracelev > structbracelev
 +         /* Don't tag tokens in expressions that assign values to enum
 +            constants.  */
 +         && fvdef != vignore)
 +       return true;           /* enum constant */
 +       switch (fvdef)
 +       {
 +       case fdefunkey:
 +         if (bracelev > 0)
 +           break;
 +         fvdef = fdefunname;  /* GNU macro */
 +         *is_func_or_var = true;
 +         return true;
 +       case fvnone:
 +         switch (typdef)
 +           {
 +           case ttypeseen:
 +             return false;
 +           case tnone:
 +             if ((strneq (str, "asm", 3) && endtoken (str[3]))
 +                 || (strneq (str, "__asm__", 7) && endtoken (str[7])))
 +               {
 +                 fvdef = vignore;
 +                 return false;
 +               }
 +             break;
 +           }
 +        /* FALLTHRU */
 +        case fvnameseen:
 +        if (len >= 10 && strneq (str+len-10, "::operator", 10))
 +          {
 +            if (*c_extp & C_AUTO) /* automatic detection of C++ */
 +              *c_extp = (*c_extp | C_PLPL) & ~C_AUTO;
 +            fvdef = foperator;
 +            *is_func_or_var = true;
 +            return true;
 +          }
 +        if (bracelev > 0 && !instruct)
 +          break;
 +        fvdef = fvnameseen;   /* function or variable */
 +        *is_func_or_var = true;
 +        return true;
 +      }
 +      break;
 +    }
 +
 +  return false;
 +}
 +
 +\f
 +/*
 + * C_entries often keeps pointers to tokens or lines which are older than
 + * the line currently read.  By keeping two line buffers, and switching
 + * them at end of line, it is possible to use those pointers.
 + */
 +static struct
 +{
 +  long linepos;
 +  linebuffer lb;
 +} lbs[2];
 +
 +#define current_lb_is_new (newndx == curndx)
 +#define switch_line_buffers() (curndx = 1 - curndx)
 +
 +#define curlb (lbs[curndx].lb)
 +#define newlb (lbs[newndx].lb)
 +#define curlinepos (lbs[curndx].linepos)
 +#define newlinepos (lbs[newndx].linepos)
 +
 +#define plainc ((c_ext & C_EXT) == C_PLAIN)
 +#define cplpl (c_ext & C_PLPL)
 +#define cjava ((c_ext & C_JAVA) == C_JAVA)
 +
 +#define CNL_SAVE_DEFINEDEF()                                          \
 +do {                                                                  \
 +  curlinepos = charno;                                                        \
 +  readline (&curlb, inf);                                             \
 +  lp = curlb.buffer;                                                  \
 +  quotednl = false;                                                   \
 +  newndx = curndx;                                                    \
 +} while (0)
 +
 +#define CNL()                                                         \
 +do {                                                                  \
 +  CNL_SAVE_DEFINEDEF();                                                       \
 +  if (savetoken.valid)                                                        \
 +    {                                                                 \
 +      token = savetoken;                                              \
 +      savetoken.valid = false;                                                \
 +    }                                                                 \
 +  definedef = dnone;                                                  \
 +} while (0)
 +
 +
 +static void
 +make_C_tag (bool isfun)
 +{
 +  /* This function is never called when token.valid is false, but
 +     we must protect against invalid input or internal errors. */
 +  if (token.valid)
 +    make_tag (token_name.buffer, token_name.len, isfun, token.line,
 +            token.offset+token.length+1, token.lineno, token.linepos);
 +  else if (DEBUG)
 +    {                           /* this branch is optimized away if !DEBUG */
 +      make_tag (concat ("INVALID TOKEN:-->", token_name.buffer, ""),
 +              token_name.len + 17, isfun, token.line,
 +              token.offset+token.length+1, token.lineno, token.linepos);
 +      error ("INVALID TOKEN");
 +    }
 +
 +  token.valid = false;
 +}
 +
 +
 +/*
 + * C_entries ()
 + *    This routine finds functions, variables, typedefs,
 + *    #define's, enum constants and struct/union/enum definitions in
 + *    C syntax and adds them to the list.
 + */
 +static void
 +C_entries (int c_ext, FILE *inf)
 +                                      /* extension of C */
 +                                      /* input file */
 +{
 +  register char c;            /* latest char read; '\0' for end of line */
 +  register char *lp;          /* pointer one beyond the character `c' */
 +  int curndx, newndx;         /* indices for current and new lb */
 +  register int tokoff;                /* offset in line of start of current token */
 +  register int toklen;                /* length of current token */
 +  const char *qualifier;        /* string used to qualify names */
 +  int qlen;                   /* length of qualifier */
 +  int bracelev;                       /* current brace level */
 +  int bracketlev;             /* current bracket level */
 +  int parlev;                 /* current parenthesis level */
 +  int attrparlev;             /* __attribute__ parenthesis level */
 +  int templatelev;            /* current template level */
 +  int typdefbracelev;         /* bracelev where a typedef struct body begun */
 +  bool incomm, inquote, inchar, quotednl, midtoken;
 +  bool yacc_rules;            /* in the rules part of a yacc file */
 +  struct tok savetoken = {0}; /* token saved during preprocessor handling */
 +
 +
 +  linebuffer_init (&lbs[0].lb);
 +  linebuffer_init (&lbs[1].lb);
 +  if (cstack.size == 0)
 +    {
 +      cstack.size = (DEBUG) ? 1 : 4;
 +      cstack.nl = 0;
 +      cstack.cname = xnew (cstack.size, char *);
 +      cstack.bracelev = xnew (cstack.size, int);
 +    }
 +
 +  tokoff = toklen = typdefbracelev = 0; /* keep compiler quiet */
 +  curndx = newndx = 0;
 +  lp = curlb.buffer;
 +  *lp = 0;
 +
 +  fvdef = fvnone; fvextern = false; typdef = tnone;
 +  structdef = snone; definedef = dnone; objdef = onone;
 +  yacc_rules = false;
 +  midtoken = inquote = inchar = incomm = quotednl = false;
 +  token.valid = savetoken.valid = false;
 +  bracelev = bracketlev = parlev = attrparlev = templatelev = 0;
 +  if (cjava)
 +    { qualifier = "."; qlen = 1; }
 +  else
 +    { qualifier = "::"; qlen = 2; }
 +
 +
 +  while (!feof (inf))
 +    {
 +      c = *lp++;
 +      if (c == '\\')
 +      {
 +        /* If we are at the end of the line, the next character is a
 +           '\0'; do not skip it, because it is what tells us
 +           to read the next line.  */
 +        if (*lp == '\0')
 +          {
 +            quotednl = true;
 +            continue;
 +          }
 +        lp++;
 +        c = ' ';
 +      }
 +      else if (incomm)
 +      {
 +        switch (c)
 +          {
 +          case '*':
 +            if (*lp == '/')
 +              {
 +                c = *lp++;
 +                incomm = false;
 +              }
 +            break;
 +          case '\0':
 +            /* Newlines inside comments do not end macro definitions in
 +               traditional cpp. */
 +            CNL_SAVE_DEFINEDEF ();
 +            break;
 +          }
 +        continue;
 +      }
 +      else if (inquote)
 +      {
 +        switch (c)
 +          {
 +          case '"':
 +            inquote = false;
 +            break;
 +          case '\0':
 +            /* Newlines inside strings do not end macro definitions
 +               in traditional cpp, even though compilers don't
 +               usually accept them. */
 +            CNL_SAVE_DEFINEDEF ();
 +            break;
 +          }
 +        continue;
 +      }
 +      else if (inchar)
 +      {
 +        switch (c)
 +          {
 +          case '\0':
 +            /* Hmmm, something went wrong. */
 +            CNL ();
 +            /* FALLTHRU */
 +          case '\'':
 +            inchar = false;
 +            break;
 +          }
 +        continue;
 +      }
 +      else switch (c)
 +      {
 +      case '"':
 +        inquote = true;
 +        if (bracketlev > 0)
 +          continue;
 +        if (inattribute)
 +          break;
 +        switch (fvdef)
 +          {
 +          case fdefunkey:
 +          case fstartlist:
 +          case finlist:
 +          case fignore:
 +          case vignore:
 +            break;
 +          default:
 +            fvextern = false;
 +            fvdef = fvnone;
 +          }
 +        continue;
 +      case '\'':
 +        inchar = true;
 +        if (bracketlev > 0)
 +          continue;
 +        if (inattribute)
 +          break;
 +        if (fvdef != finlist && fvdef != fignore && fvdef != vignore)
 +          {
 +            fvextern = false;
 +            fvdef = fvnone;
 +          }
 +        continue;
 +      case '/':
 +        if (*lp == '*')
 +          {
 +            incomm = true;
 +            lp++;
 +            c = ' ';
 +            if (bracketlev > 0)
 +              continue;
 +          }
 +        else if (/* cplpl && */ *lp == '/')
 +          {
 +            c = '\0';
 +          }
 +        break;
 +      case '%':
 +        if ((c_ext & YACC) && *lp == '%')
 +          {
 +            /* Entering or exiting rules section in yacc file. */
 +            lp++;
 +            definedef = dnone; fvdef = fvnone; fvextern = false;
 +            typdef = tnone; structdef = snone;
 +            midtoken = inquote = inchar = incomm = quotednl = false;
 +            bracelev = 0;
 +            yacc_rules = !yacc_rules;
 +            continue;
 +          }
 +        else
 +          break;
 +      case '#':
 +        if (definedef == dnone)
 +          {
 +            char *cp;
 +            bool cpptoken = true;
 +
 +            /* Look back on this line.  If all blanks, or nonblanks
 +               followed by an end of comment, this is a preprocessor
 +               token. */
 +            for (cp = newlb.buffer; cp < lp-1; cp++)
 +              if (!iswhite (*cp))
 +                {
 +                  if (*cp == '*' && cp[1] == '/')
 +                    {
 +                      cp++;
 +                      cpptoken = true;
 +                    }
 +                  else
 +                    cpptoken = false;
 +                }
 +            if (cpptoken)
 +              {
 +                definedef = dsharpseen;
 +                /* This is needed for tagging enum values: when there are
 +                   preprocessor conditionals inside the enum, we need to
 +                   reset the value of fvdef so that the next enum value is
 +                   tagged even though the one before it did not end in a
 +                   comma.  */
 +                if (fvdef == vignore && instruct && parlev == 0)
 +                  {
 +                    if (strneq (cp, "#if", 3) || strneq (cp, "#el", 3))
 +                      fvdef = fvnone;
 +                  }
 +              }
 +          } /* if (definedef == dnone) */
 +        continue;
 +      case '[':
 +        bracketlev++;
 +        continue;
 +      default:
 +        if (bracketlev > 0)
 +          {
 +            if (c == ']')
 +              --bracketlev;
 +            else if (c == '\0')
 +              CNL_SAVE_DEFINEDEF ();
 +            continue;
 +          }
 +        break;
 +      } /* switch (c) */
 +
 +
 +      /* Consider token only if some involved conditions are satisfied. */
 +      if (typdef != tignore
 +        && definedef != dignorerest
 +        && fvdef != finlist
 +        && templatelev == 0
 +        && (definedef != dnone
 +            || structdef != scolonseen)
 +        && !inattribute)
 +      {
 +        if (midtoken)
 +          {
 +            if (endtoken (c))
 +              {
 +                if (c == ':' && *lp == ':' && begtoken (lp[1]))
 +                  /* This handles :: in the middle,
 +                     but not at the beginning of an identifier.
 +                     Also, space-separated :: is not recognized. */
 +                  {
 +                    if (c_ext & C_AUTO) /* automatic detection of C++ */
 +                      c_ext = (c_ext | C_PLPL) & ~C_AUTO;
 +                    lp += 2;
 +                    toklen += 2;
 +                    c = lp[-1];
 +                    goto still_in_token;
 +                  }
 +                else
 +                  {
 +                    bool funorvar = false;
 +
 +                    if (yacc_rules
 +                        || consider_token (newlb.buffer + tokoff, toklen, c,
 +                                           &c_ext, bracelev, parlev,
 +                                           &funorvar))
 +                      {
 +                        if (fvdef == foperator)
 +                          {
 +                            char *oldlp = lp;
 +                            lp = skip_spaces (lp-1);
 +                            if (*lp != '\0')
 +                              lp += 1;
 +                            while (*lp != '\0'
 +                                   && !iswhite (*lp) && *lp != '(')
 +                              lp += 1;
 +                            c = *lp++;
 +                            toklen += lp - oldlp;
 +                          }
 +                        token.named = false;
 +                        if (!plainc
 +                            && nestlev > 0 && definedef == dnone)
 +                          /* in struct body */
 +                          {
 +                            int len;
 +                              write_classname (&token_name, qualifier);
 +                            len = token_name.len;
 +                            linebuffer_setlen (&token_name, len+qlen+toklen);
 +                            sprintf (token_name.buffer + len, "%s%.*s",
 +                                     qualifier, toklen, newlb.buffer + tokoff);
 +                            token.named = true;
 +                          }
 +                        else if (objdef == ocatseen)
 +                          /* Objective C category */
 +                          {
 +                            int len = strlen (objtag) + 2 + toklen;
 +                            linebuffer_setlen (&token_name, len);
 +                            sprintf (token_name.buffer, "%s(%.*s)",
 +                                     objtag, toklen, newlb.buffer + tokoff);
 +                            token.named = true;
 +                          }
 +                        else if (objdef == omethodtag
 +                                 || objdef == omethodparm)
 +                          /* Objective C method */
 +                          {
 +                            token.named = true;
 +                          }
 +                        else if (fvdef == fdefunname)
 +                          /* GNU DEFUN and similar macros */
 +                          {
 +                            bool defun = (newlb.buffer[tokoff] == 'F');
 +                            int off = tokoff;
 +                            int len = toklen;
 +
 +                            /* Rewrite the tag so that emacs lisp DEFUNs
 +                               can be found by their elisp name */
 +                            if (defun)
 +                              {
 +                                off += 1;
 +                                len -= 1;
 +                              }
 +                            linebuffer_setlen (&token_name, len);
 +                            memcpy (token_name.buffer,
 +                                    newlb.buffer + off, len);
 +                            token_name.buffer[len] = '\0';
 +                            if (defun)
 +                              while (--len >= 0)
 +                                if (token_name.buffer[len] == '_')
 +                                  token_name.buffer[len] = '-';
 +                            token.named = defun;
 +                          }
 +                        else
 +                          {
 +                            linebuffer_setlen (&token_name, toklen);
 +                            memcpy (token_name.buffer,
 +                                    newlb.buffer + tokoff, toklen);
 +                            token_name.buffer[toklen] = '\0';
 +                            /* Name macros and members. */
 +                            token.named = (structdef == stagseen
 +                                           || typdef == ttypeseen
 +                                           || typdef == tend
 +                                           || (funorvar
 +                                               && definedef == dignorerest)
 +                                           || (funorvar
 +                                               && definedef == dnone
 +                                               && structdef == snone
 +                                               && bracelev > 0));
 +                          }
 +                        token.lineno = lineno;
 +                        token.offset = tokoff;
 +                        token.length = toklen;
 +                        token.line = newlb.buffer;
 +                        token.linepos = newlinepos;
 +                        token.valid = true;
 +
 +                        if (definedef == dnone
 +                            && (fvdef == fvnameseen
 +                                || fvdef == foperator
 +                                || structdef == stagseen
 +                                || typdef == tend
 +                                || typdef == ttypeseen
 +                                || objdef != onone))
 +                          {
 +                            if (current_lb_is_new)
 +                              switch_line_buffers ();
 +                          }
 +                        else if (definedef != dnone
 +                                 || fvdef == fdefunname
 +                                 || instruct)
 +                          make_C_tag (funorvar);
 +                      }
 +                    else /* not yacc and consider_token failed */
 +                      {
 +                        if (inattribute && fvdef == fignore)
 +                          {
 +                            /* We have just met __attribute__ after a
 +                               function parameter list: do not tag the
 +                               function again. */
 +                            fvdef = fvnone;
 +                          }
 +                      }
 +                    midtoken = false;
 +                  }
 +              } /* if (endtoken (c)) */
 +            else if (intoken (c))
 +              still_in_token:
 +              {
 +                toklen++;
 +                continue;
 +              }
 +          } /* if (midtoken) */
 +        else if (begtoken (c))
 +          {
 +            switch (definedef)
 +              {
 +              case dnone:
 +                switch (fvdef)
 +                  {
 +                  case fstartlist:
 +                    /* This prevents tagging fb in
 +                       void (__attribute__((noreturn)) *fb) (void);
 +                       Fixing this is not easy and not very important. */
 +                    fvdef = finlist;
 +                    continue;
 +                  case flistseen:
 +                    if (plainc || declarations)
 +                      {
 +                        make_C_tag (true); /* a function */
 +                        fvdef = fignore;
 +                      }
 +                    break;
 +                  }
 +                if (structdef == stagseen && !cjava)
 +                  {
 +                    popclass_above (bracelev);
 +                    structdef = snone;
 +                  }
 +                break;
 +              case dsharpseen:
 +                savetoken = token;
 +                break;
 +              }
 +            if (!yacc_rules || lp == newlb.buffer + 1)
 +              {
 +                tokoff = lp - 1 - newlb.buffer;
 +                toklen = 1;
 +                midtoken = true;
 +              }
 +            continue;
 +          } /* if (begtoken) */
 +      } /* if must look at token */
 +
 +
 +      /* Detect end of line, colon, comma, semicolon and various braces
 +       after having handled a token.*/
 +      switch (c)
 +      {
 +      case ':':
 +        if (inattribute)
 +          break;
 +        if (yacc_rules && token.offset == 0 && token.valid)
 +          {
 +            make_C_tag (false); /* a yacc function */
 +            break;
 +          }
 +        if (definedef != dnone)
 +          break;
 +        switch (objdef)
 +          {
 +          case  otagseen:
 +            objdef = oignore;
 +            make_C_tag (true); /* an Objective C class */
 +            break;
 +          case omethodtag:
 +          case omethodparm:
 +            objdef = omethodcolon;
 +            int toklen = token_name.len;
 +            linebuffer_setlen (&token_name, toklen + 1);
 +            strcpy (token_name.buffer + toklen, ":");
 +            break;
 +          }
 +        if (structdef == stagseen)
 +          {
 +            structdef = scolonseen;
 +            break;
 +          }
 +        /* Should be useless, but may be work as a safety net. */
 +        if (cplpl && fvdef == flistseen)
 +          {
 +            make_C_tag (true); /* a function */
 +            fvdef = fignore;
 +            break;
 +          }
 +        break;
 +      case ';':
 +        if (definedef != dnone || inattribute)
 +          break;
 +        switch (typdef)
 +          {
 +          case tend:
 +          case ttypeseen:
 +            make_C_tag (false); /* a typedef */
 +            typdef = tnone;
 +            fvdef = fvnone;
 +            break;
 +          case tnone:
 +          case tinbody:
 +          case tignore:
 +            switch (fvdef)
 +              {
 +              case fignore:
 +                if (typdef == tignore || cplpl)
 +                  fvdef = fvnone;
 +                break;
 +              case fvnameseen:
 +                if ((globals && bracelev == 0 && (!fvextern || declarations))
 +                    || (members && instruct))
 +                  make_C_tag (false); /* a variable */
 +                fvextern = false;
 +                fvdef = fvnone;
 +                token.valid = false;
 +                break;
 +              case flistseen:
 +                if ((declarations
 +                     && (cplpl || !instruct)
 +                     && (typdef == tnone || (typdef != tignore && instruct)))
 +                    || (members
 +                        && plainc && instruct))
 +                  make_C_tag (true);  /* a function */
 +                /* FALLTHRU */
 +              default:
 +                fvextern = false;
 +                fvdef = fvnone;
 +                if (declarations
 +                     && cplpl && structdef == stagseen)
 +                  make_C_tag (false); /* forward declaration */
 +                else
 +                  token.valid = false;
 +              } /* switch (fvdef) */
 +            /* FALLTHRU */
 +          default:
 +            if (!instruct)
 +              typdef = tnone;
 +          }
 +        if (structdef == stagseen)
 +          structdef = snone;
 +        break;
 +      case ',':
 +        if (definedef != dnone || inattribute)
 +          break;
 +        switch (objdef)
 +          {
 +          case omethodtag:
 +          case omethodparm:
 +            make_C_tag (true); /* an Objective C method */
 +            objdef = oinbody;
 +            break;
 +          }
 +        switch (fvdef)
 +          {
 +          case fdefunkey:
 +          case foperator:
 +          case fstartlist:
 +          case finlist:
 +          case fignore:
 +            break;
 +          case vignore:
 +            if (instruct && parlev == 0)
 +              fvdef = fvnone;
 +            break;
 +          case fdefunname:
 +            fvdef = fignore;
 +            break;
 +          case fvnameseen:
 +            if (parlev == 0
 +                && ((globals
 +                     && bracelev == 0
 +                     && templatelev == 0
 +                     && (!fvextern || declarations))
 +                    || (members && instruct)))
 +                make_C_tag (false); /* a variable */
 +            break;
 +          case flistseen:
 +            if ((declarations && typdef == tnone && !instruct)
 +                || (members && typdef != tignore && instruct))
 +              {
 +                make_C_tag (true); /* a function */
 +                fvdef = fvnameseen;
 +              }
 +            else if (!declarations)
 +              fvdef = fvnone;
 +            token.valid = false;
 +            break;
 +          default:
 +            fvdef = fvnone;
 +          }
 +        if (structdef == stagseen)
 +          structdef = snone;
 +        break;
 +      case ']':
 +        if (definedef != dnone || inattribute)
 +          break;
 +        if (structdef == stagseen)
 +          structdef = snone;
 +        switch (typdef)
 +          {
 +          case ttypeseen:
 +          case tend:
 +            typdef = tignore;
 +            make_C_tag (false);       /* a typedef */
 +            break;
 +          case tnone:
 +          case tinbody:
 +            switch (fvdef)
 +              {
 +              case foperator:
 +              case finlist:
 +              case fignore:
 +              case vignore:
 +                break;
 +              case fvnameseen:
 +                if ((members && bracelev == 1)
 +                    || (globals && bracelev == 0
 +                        && (!fvextern || declarations)))
 +                  make_C_tag (false); /* a variable */
 +                /* FALLTHRU */
 +              default:
 +                fvdef = fvnone;
 +              }
 +            break;
 +          }
 +        break;
 +      case '(':
 +        if (inattribute)
 +          {
 +            attrparlev++;
 +            break;
 +          }
 +        if (definedef != dnone)
 +          break;
 +        if (objdef == otagseen && parlev == 0)
 +          objdef = oparenseen;
 +        switch (fvdef)
 +          {
 +          case fvnameseen:
 +            if (typdef == ttypeseen
 +                && *lp != '*'
 +                && !instruct)
 +              {
 +                /* This handles constructs like:
 +                   typedef void OperatorFun (int fun); */
 +                make_C_tag (false);
 +                typdef = tignore;
 +                fvdef = fignore;
 +                break;
 +              }
 +            /* FALLTHRU */
 +          case foperator:
 +            fvdef = fstartlist;
 +            break;
 +          case flistseen:
 +            fvdef = finlist;
 +            break;
 +          }
 +        parlev++;
 +        break;
 +      case ')':
 +        if (inattribute)
 +          {
 +            if (--attrparlev == 0)
 +              inattribute = false;
 +            break;
 +          }
 +        if (definedef != dnone)
 +          break;
 +        if (objdef == ocatseen && parlev == 1)
 +          {
 +            make_C_tag (true); /* an Objective C category */
 +            objdef = oignore;
 +          }
 +        if (--parlev == 0)
 +          {
 +            switch (fvdef)
 +              {
 +              case fstartlist:
 +              case finlist:
 +                fvdef = flistseen;
 +                break;
 +              }
 +            if (!instruct
 +                && (typdef == tend
 +                    || typdef == ttypeseen))
 +              {
 +                typdef = tignore;
 +                make_C_tag (false); /* a typedef */
 +              }
 +          }
 +        else if (parlev < 0)  /* can happen due to ill-conceived #if's. */
 +          parlev = 0;
 +        break;
 +      case '{':
 +        if (definedef != dnone)
 +          break;
 +        if (typdef == ttypeseen)
 +          {
 +            /* Whenever typdef is set to tinbody (currently only
 +               here), typdefbracelev should be set to bracelev. */
 +            typdef = tinbody;
 +            typdefbracelev = bracelev;
 +          }
 +        switch (fvdef)
 +          {
 +          case flistseen:
 +            make_C_tag (true);    /* a function */
 +            /* FALLTHRU */
 +          case fignore:
 +            fvdef = fvnone;
 +            break;
 +          case fvnone:
 +            switch (objdef)
 +              {
 +              case otagseen:
 +                make_C_tag (true); /* an Objective C class */
 +                objdef = oignore;
 +                break;
 +              case omethodtag:
 +              case omethodparm:
 +                make_C_tag (true); /* an Objective C method */
 +                objdef = oinbody;
 +                break;
 +              default:
 +                /* Neutralize `extern "C" {' grot. */
 +                if (bracelev == 0 && structdef == snone && nestlev == 0
 +                    && typdef == tnone)
 +                  bracelev = -1;
 +              }
 +            break;
 +          }
 +        switch (structdef)
 +          {
 +          case skeyseen:         /* unnamed struct */
 +            pushclass_above (bracelev, NULL, 0);
 +            structdef = snone;
 +            break;
 +          case stagseen:         /* named struct or enum */
 +          case scolonseen:       /* a class */
 +            pushclass_above (bracelev,token.line+token.offset, token.length);
 +            structdef = snone;
 +            make_C_tag (false);  /* a struct or enum */
 +            break;
 +          }
 +        bracelev += 1;
 +        break;
 +      case '*':
 +        if (definedef != dnone)
 +          break;
 +        if (fvdef == fstartlist)
 +          {
 +            fvdef = fvnone;   /* avoid tagging `foo' in `foo (*bar()) ()' */
 +            token.valid = false;
 +          }
 +        break;
 +      case '}':
 +        if (definedef != dnone)
 +          break;
 +        bracelev -= 1;
 +        if (!ignoreindent && lp == newlb.buffer + 1)
 +          {
 +            if (bracelev != 0)
 +              token.valid = false; /* unexpected value, token unreliable */
 +            bracelev = 0;     /* reset brace level if first column */
 +            parlev = 0;       /* also reset paren level, just in case... */
 +          }
 +        else if (bracelev < 0)
 +          {
 +            token.valid = false; /* something gone amiss, token unreliable */
 +            bracelev = 0;
 +          }
 +        if (bracelev == 0 && fvdef == vignore)
 +          fvdef = fvnone;             /* end of function */
 +        popclass_above (bracelev);
 +        structdef = snone;
 +        /* Only if typdef == tinbody is typdefbracelev significant. */
 +        if (typdef == tinbody && bracelev <= typdefbracelev)
 +          {
 +            assert (bracelev == typdefbracelev);
 +            typdef = tend;
 +          }
 +        break;
 +      case '=':
 +        if (definedef != dnone)
 +          break;
 +        switch (fvdef)
 +          {
 +          case foperator:
 +          case finlist:
 +          case fignore:
 +          case vignore:
 +            break;
 +          case fvnameseen:
 +            if ((members && bracelev == 1)
 +                || (globals && bracelev == 0 && (!fvextern || declarations)))
 +              make_C_tag (false); /* a variable */
 +            /* FALLTHRU */
 +          default:
 +            fvdef = vignore;
 +          }
 +        break;
 +      case '<':
 +        if (cplpl
 +            && (structdef == stagseen || fvdef == fvnameseen))
 +          {
 +            templatelev++;
 +            break;
 +          }
 +        goto resetfvdef;
 +      case '>':
 +        if (templatelev > 0)
 +          {
 +            templatelev--;
 +            break;
 +          }
 +        goto resetfvdef;
 +      case '+':
 +      case '-':
 +        if (objdef == oinbody && bracelev == 0)
 +          {
 +            objdef = omethodsign;
 +            break;
 +          }
 +        /* FALLTHRU */
 +      resetfvdef:
 +      case '#': case '~': case '&': case '%': case '/':
 +      case '|': case '^': case '!': case '.': case '?':
 +        if (definedef != dnone)
 +          break;
 +        /* These surely cannot follow a function tag in C. */
 +        switch (fvdef)
 +          {
 +          case foperator:
 +          case finlist:
 +          case fignore:
 +          case vignore:
 +            break;
 +          default:
 +            fvdef = fvnone;
 +          }
 +        break;
 +      case '\0':
 +        if (objdef == otagseen)
 +          {
 +            make_C_tag (true); /* an Objective C class */
 +            objdef = oignore;
 +          }
 +        /* If a macro spans multiple lines don't reset its state. */
 +        if (quotednl)
 +          CNL_SAVE_DEFINEDEF ();
 +        else
 +          CNL ();
 +        break;
 +      } /* switch (c) */
 +
 +    } /* while not eof */
 +
 +  free (lbs[0].lb.buffer);
 +  free (lbs[1].lb.buffer);
 +}
 +
 +/*
 + * Process either a C++ file or a C file depending on the setting
 + * of a global flag.
 + */
 +static void
 +default_C_entries (FILE *inf)
 +{
 +  C_entries (cplusplus ? C_PLPL : C_AUTO, inf);
 +}
 +
 +/* Always do plain C. */
 +static void
 +plain_C_entries (FILE *inf)
 +{
 +  C_entries (0, inf);
 +}
 +
 +/* Always do C++. */
 +static void
 +Cplusplus_entries (FILE *inf)
 +{
 +  C_entries (C_PLPL, inf);
 +}
 +
 +/* Always do Java. */
 +static void
 +Cjava_entries (FILE *inf)
 +{
 +  C_entries (C_JAVA, inf);
 +}
 +
 +/* Always do C*. */
 +static void
 +Cstar_entries (FILE *inf)
 +{
 +  C_entries (C_STAR, inf);
 +}
 +
 +/* Always do Yacc. */
 +static void
 +Yacc_entries (FILE *inf)
 +{
 +  C_entries (YACC, inf);
 +}
 +
 +\f
 +/* Useful macros. */
 +#define LOOP_ON_INPUT_LINES(file_pointer, line_buffer, char_pointer)  \
 +  for (;                      /* loop initialization */               \
 +       !feof (file_pointer)   /* loop test */                         \
 +       &&                     /* instructions at start of loop */     \
 +        (readline (&line_buffer, file_pointer),                       \
 +           char_pointer = line_buffer.buffer,                         \
 +         true);                                                       \
 +      )
 +
 +#define LOOKING_AT(cp, kw)  /* kw is the keyword, a literal string */ \
 +  ((assert ("" kw), true)   /* syntax error if not a literal string */        \
 +   && strneq ((cp), kw, sizeof (kw)-1)                /* cp points at kw */   \
 +   && notinname ((cp)[sizeof (kw)-1])         /* end of kw */         \
 +   && ((cp) = skip_spaces ((cp)+sizeof (kw)-1))) /* skip spaces */
 +
 +/* Similar to LOOKING_AT but does not use notinname, does not skip */
 +#define LOOKING_AT_NOCASE(cp, kw) /* the keyword is a literal string */       \
 +  ((assert ("" kw), true) /* syntax error if not a literal string */  \
 +   && strncaseeq ((cp), kw, sizeof (kw)-1)    /* cp points at kw */   \
 +   && ((cp) += sizeof (kw)-1))                        /* skip spaces */
 +
 +/*
 + * Read a file, but do no processing.  This is used to do regexp
 + * matching on files that have no language defined.
 + */
 +static void
 +just_read_file (FILE *inf)
 +{
 +  while (!feof (inf))
 +    readline (&lb, inf);
 +}
 +
 +\f
 +/* Fortran parsing */
 +
 +static void F_takeprec (void);
 +static void F_getit (FILE *);
 +
 +static void
 +F_takeprec (void)
 +{
 +  dbp = skip_spaces (dbp);
 +  if (*dbp != '*')
 +    return;
 +  dbp++;
 +  dbp = skip_spaces (dbp);
 +  if (strneq (dbp, "(*)", 3))
 +    {
 +      dbp += 3;
 +      return;
 +    }
 +  if (!ISDIGIT (*dbp))
 +    {
 +      --dbp;                  /* force failure */
 +      return;
 +    }
 +  do
 +    dbp++;
 +  while (ISDIGIT (*dbp));
 +}
 +
 +static void
 +F_getit (FILE *inf)
 +{
 +  register char *cp;
 +
 +  dbp = skip_spaces (dbp);
 +  if (*dbp == '\0')
 +    {
 +      readline (&lb, inf);
 +      dbp = lb.buffer;
 +      if (dbp[5] != '&')
 +      return;
 +      dbp += 6;
 +      dbp = skip_spaces (dbp);
 +    }
 +  if (!ISALPHA (*dbp) && *dbp != '_' && *dbp != '$')
 +    return;
 +  for (cp = dbp + 1; *cp != '\0' && intoken (*cp); cp++)
 +    continue;
 +  make_tag (dbp, cp-dbp, true,
 +          lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +}
 +
 +
 +static void
 +Fortran_functions (FILE *inf)
 +{
 +  LOOP_ON_INPUT_LINES (inf, lb, dbp)
 +    {
 +      if (*dbp == '%')
 +      dbp++;                  /* Ratfor escape to fortran */
 +      dbp = skip_spaces (dbp);
 +      if (*dbp == '\0')
 +      continue;
 +
 +      if (LOOKING_AT_NOCASE (dbp, "recursive"))
 +      dbp = skip_spaces (dbp);
 +
 +      if (LOOKING_AT_NOCASE (dbp, "pure"))
 +      dbp = skip_spaces (dbp);
 +
 +      if (LOOKING_AT_NOCASE (dbp, "elemental"))
 +      dbp = skip_spaces (dbp);
 +
 +      switch (lowcase (*dbp))
 +      {
 +      case 'i':
 +        if (nocase_tail ("integer"))
 +          F_takeprec ();
 +        break;
 +      case 'r':
 +        if (nocase_tail ("real"))
 +          F_takeprec ();
 +        break;
 +      case 'l':
 +        if (nocase_tail ("logical"))
 +          F_takeprec ();
 +        break;
 +      case 'c':
 +        if (nocase_tail ("complex") || nocase_tail ("character"))
 +          F_takeprec ();
 +        break;
 +      case 'd':
 +        if (nocase_tail ("double"))
 +          {
 +            dbp = skip_spaces (dbp);
 +            if (*dbp == '\0')
 +              continue;
 +            if (nocase_tail ("precision"))
 +              break;
 +            continue;
 +          }
 +        break;
 +      }
 +      dbp = skip_spaces (dbp);
 +      if (*dbp == '\0')
 +      continue;
 +      switch (lowcase (*dbp))
 +      {
 +      case 'f':
 +        if (nocase_tail ("function"))
 +          F_getit (inf);
 +        continue;
 +      case 's':
 +        if (nocase_tail ("subroutine"))
 +          F_getit (inf);
 +        continue;
 +      case 'e':
 +        if (nocase_tail ("entry"))
 +          F_getit (inf);
 +        continue;
 +      case 'b':
 +        if (nocase_tail ("blockdata") || nocase_tail ("block data"))
 +          {
 +            dbp = skip_spaces (dbp);
 +            if (*dbp == '\0') /* assume un-named */
 +              make_tag ("blockdata", 9, true,
 +                        lb.buffer, dbp - lb.buffer, lineno, linecharno);
 +            else
 +              F_getit (inf);  /* look for name */
 +          }
 +        continue;
 +      }
 +    }
 +}
 +
 +\f
 +/*
 + * Ada parsing
 + * Original code by
 + * Philippe Waroquiers (1998)
 + */
 +
 +/* Once we are positioned after an "interesting" keyword, let's get
 +   the real tag value necessary. */
 +static void
 +Ada_getit (FILE *inf, const char *name_qualifier)
 +{
 +  register char *cp;
 +  char *name;
 +  char c;
 +
 +  while (!feof (inf))
 +    {
 +      dbp = skip_spaces (dbp);
 +      if (*dbp == '\0'
 +        || (dbp[0] == '-' && dbp[1] == '-'))
 +      {
 +        readline (&lb, inf);
 +        dbp = lb.buffer;
 +      }
 +      switch (lowcase (*dbp))
 +        {
 +        case 'b':
 +          if (nocase_tail ("body"))
 +            {
 +              /* Skipping body of   procedure body   or   package body or ....
 +               resetting qualifier to body instead of spec. */
 +              name_qualifier = "/b";
 +              continue;
 +            }
 +          break;
 +        case 't':
 +          /* Skipping type of   task type   or   protected type ... */
 +          if (nocase_tail ("type"))
 +            continue;
 +          break;
 +        }
 +      if (*dbp == '"')
 +      {
 +        dbp += 1;
 +        for (cp = dbp; *cp != '\0' && *cp != '"'; cp++)
 +          continue;
 +      }
 +      else
 +      {
 +        dbp = skip_spaces (dbp);
 +        for (cp = dbp;
 +             (*cp != '\0'
 +              && (ISALPHA (*cp) || ISDIGIT (*cp) || *cp == '_' || *cp == '.'));
 +             cp++)
 +          continue;
 +        if (cp == dbp)
 +          return;
 +      }
 +      c = *cp;
 +      *cp = '\0';
 +      name = concat (dbp, name_qualifier, "");
 +      *cp = c;
 +      make_tag (name, strlen (name), true,
 +              lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +      free (name);
 +      if (c == '"')
 +      dbp = cp + 1;
 +      return;
 +    }
 +}
 +
 +static void
 +Ada_funcs (FILE *inf)
 +{
 +  bool inquote = false;
 +  bool skip_till_semicolumn = false;
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, dbp)
 +    {
 +      while (*dbp != '\0')
 +      {
 +        /* Skip a string i.e. "abcd". */
 +        if (inquote || (*dbp == '"'))
 +          {
 +            dbp = strchr (dbp + !inquote, '"');
 +            if (dbp != NULL)
 +              {
 +                inquote = false;
 +                dbp += 1;
 +                continue;     /* advance char */
 +              }
 +            else
 +              {
 +                inquote = true;
 +                break;        /* advance line */
 +              }
 +          }
 +
 +        /* Skip comments. */
 +        if (dbp[0] == '-' && dbp[1] == '-')
 +          break;              /* advance line */
 +
 +        /* Skip character enclosed in single quote i.e. 'a'
 +           and skip single quote starting an attribute i.e. 'Image. */
 +        if (*dbp == '\'')
 +          {
 +            dbp++ ;
 +            if (*dbp != '\0')
 +              dbp++;
 +            continue;
 +          }
 +
 +        if (skip_till_semicolumn)
 +          {
 +            if (*dbp == ';')
 +              skip_till_semicolumn = false;
 +            dbp++;
 +            continue;         /* advance char */
 +          }
 +
 +        /* Search for beginning of a token.  */
 +        if (!begtoken (*dbp))
 +          {
 +            dbp++;
 +            continue;         /* advance char */
 +          }
 +
 +        /* We are at the beginning of a token. */
 +        switch (lowcase (*dbp))
 +          {
 +          case 'f':
 +            if (!packages_only && nocase_tail ("function"))
 +              Ada_getit (inf, "/f");
 +            else
 +              break;          /* from switch */
 +            continue;         /* advance char */
 +          case 'p':
 +            if (!packages_only && nocase_tail ("procedure"))
 +              Ada_getit (inf, "/p");
 +            else if (nocase_tail ("package"))
 +              Ada_getit (inf, "/s");
 +            else if (nocase_tail ("protected")) /* protected type */
 +              Ada_getit (inf, "/t");
 +            else
 +              break;          /* from switch */
 +            continue;         /* advance char */
 +
 +          case 'u':
 +            if (typedefs && !packages_only && nocase_tail ("use"))
 +              {
 +                /* when tagging types, avoid tagging  use type Pack.Typename;
 +                   for this, we will skip everything till a ; */
 +                skip_till_semicolumn = true;
 +                continue;     /* advance char */
 +              }
 +
 +          case 't':
 +            if (!packages_only && nocase_tail ("task"))
 +              Ada_getit (inf, "/k");
 +            else if (typedefs && !packages_only && nocase_tail ("type"))
 +              {
 +                Ada_getit (inf, "/t");
 +                while (*dbp != '\0')
 +                  dbp += 1;
 +              }
 +            else
 +              break;          /* from switch */
 +            continue;         /* advance char */
 +          }
 +
 +        /* Look for the end of the token. */
 +        while (!endtoken (*dbp))
 +          dbp++;
 +
 +      } /* advance char */
 +    } /* advance line */
 +}
 +
 +\f
 +/*
 + * Unix and microcontroller assembly tag handling
 + * Labels:  /^[a-zA-Z_.$][a-zA_Z0-9_.$]*[: ^I^J]/
 + * Idea by Bob Weiner, Motorola Inc. (1994)
 + */
 +static void
 +Asm_labels (FILE *inf)
 +{
 +  register char *cp;
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, cp)
 +    {
 +      /* If first char is alphabetic or one of [_.$], test for colon
 +       following identifier. */
 +      if (ISALPHA (*cp) || *cp == '_' || *cp == '.' || *cp == '$')
 +      {
 +        /* Read past label. */
 +        cp++;
 +        while (ISALNUM (*cp) || *cp == '_' || *cp == '.' || *cp == '$')
 +          cp++;
 +        if (*cp == ':' || iswhite (*cp))
 +          /* Found end of label, so copy it and add it to the table. */
 +          make_tag (lb.buffer, cp - lb.buffer, true,
 +                    lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +      }
 +    }
 +}
 +
 +\f
 +/*
 + * Perl support
 + * Perl sub names: /^sub[ \t\n]+[^ \t\n{]+/
 + *                 /^use constant[ \t\n]+[^ \t\n{=,;]+/
 + * Perl variable names: /^(my|local).../
 + * Original code by Bart Robinson <lomew@cs.utah.edu> (1995)
 + * Additions by Michael Ernst <mernst@alum.mit.edu> (1997)
 + * Ideas by Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> (2001)
 + */
 +static void
 +Perl_functions (FILE *inf)
 +{
 +  char *package = savestr ("main"); /* current package name */
 +  register char *cp;
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, cp)
 +    {
 +      cp = skip_spaces (cp);
 +
 +      if (LOOKING_AT (cp, "package"))
 +      {
 +        free (package);
 +        get_tag (cp, &package);
 +      }
 +      else if (LOOKING_AT (cp, "sub"))
 +      {
 +        char *pos, *sp;
 +
 +      subr:
 +        sp = cp;
 +        while (!notinname (*cp))
 +          cp++;
 +        if (cp == sp)
 +          continue;           /* nothing found */
 +        if ((pos = strchr (sp, ':')) != NULL
 +            && pos < cp && pos[1] == ':')
 +          /* The name is already qualified. */
 +          make_tag (sp, cp - sp, true,
 +                    lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +        else
 +          /* Qualify it. */
 +          {
 +            char savechar, *name;
 +
 +            savechar = *cp;
 +            *cp = '\0';
 +            name = concat (package, "::", sp);
 +            *cp = savechar;
 +            make_tag (name, strlen (name), true,
 +                      lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +            free (name);
 +          }
 +      }
 +      else if (LOOKING_AT (cp, "use constant")
 +             || LOOKING_AT (cp, "use constant::defer"))
 +      {
 +        /* For hash style multi-constant like
 +              use constant { FOO => 123,
 +                             BAR => 456 };
 +           only the first FOO is picked up.  Parsing across the value
 +           expressions would be difficult in general, due to possible nested
 +           hashes, here-documents, etc.  */
 +        if (*cp == '{')
 +          cp = skip_spaces (cp+1);
 +        goto subr;
 +      }
 +      else if (globals)       /* only if we are tagging global vars */
 +      {
 +        /* Skip a qualifier, if any. */
 +        bool qual = LOOKING_AT (cp, "my") || LOOKING_AT (cp, "local");
 +        /* After "my" or "local", but before any following paren or space. */
 +        char *varstart = cp;
 +
 +        if (qual              /* should this be removed?  If yes, how? */
 +            && (*cp == '$' || *cp == '@' || *cp == '%'))
 +          {
 +            varstart += 1;
 +            do
 +              cp++;
 +            while (ISALNUM (*cp) || *cp == '_');
 +          }
 +        else if (qual)
 +          {
 +            /* Should be examining a variable list at this point;
 +               could insist on seeing an open parenthesis. */
 +            while (*cp != '\0' && *cp != ';' && *cp != '=' &&  *cp != ')')
 +              cp++;
 +          }
 +        else
 +          continue;
 +
 +        make_tag (varstart, cp - varstart, false,
 +                  lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +      }
 +    }
 +  free (package);
 +}
 +
 +
 +/*
 + * Python support
 + * Look for /^[\t]*def[ \t\n]+[^ \t\n(:]+/ or /^class[ \t\n]+[^ \t\n(:]+/
 + * Idea by Eric S. Raymond <esr@thyrsus.com> (1997)
 + * More ideas by seb bacon <seb@jamkit.com> (2002)
 + */
 +static void
 +Python_functions (FILE *inf)
 +{
 +  register char *cp;
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, cp)
 +    {
 +      cp = skip_spaces (cp);
 +      if (LOOKING_AT (cp, "def") || LOOKING_AT (cp, "class"))
 +      {
 +        char *name = cp;
 +        while (!notinname (*cp) && *cp != ':')
 +          cp++;
 +        make_tag (name, cp - name, true,
 +                  lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +      }
 +    }
 +}
 +
 +\f
 +/*
 + * PHP support
 + * Look for:
 + *  - /^[ \t]*function[ \t\n]+[^ \t\n(]+/
 + *  - /^[ \t]*class[ \t\n]+[^ \t\n]+/
 + *  - /^[ \t]*define\(\"[^\"]+/
 + * Only with --members:
 + *  - /^[ \t]*var[ \t\n]+\$[^ \t\n=;]/
 + * Idea by Diez B. Roggisch (2001)
 + */
 +static void
 +PHP_functions (FILE *inf)
 +{
 +  char *cp, *name;
 +  bool search_identifier = false;
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, cp)
 +    {
 +      cp = skip_spaces (cp);
 +      name = cp;
 +      if (search_identifier
 +        && *cp != '\0')
 +      {
 +        while (!notinname (*cp))
 +          cp++;
 +        make_tag (name, cp - name, true,
 +                  lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +        search_identifier = false;
 +      }
 +      else if (LOOKING_AT (cp, "function"))
 +      {
 +        if (*cp == '&')
 +          cp = skip_spaces (cp+1);
 +        if (*cp != '\0')
 +          {
 +            name = cp;
 +            while (!notinname (*cp))
 +              cp++;
 +            make_tag (name, cp - name, true,
 +                      lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +          }
 +        else
 +          search_identifier = true;
 +      }
 +      else if (LOOKING_AT (cp, "class"))
 +      {
 +        if (*cp != '\0')
 +          {
 +            name = cp;
 +            while (*cp != '\0' && !iswhite (*cp))
 +              cp++;
 +            make_tag (name, cp - name, false,
 +                      lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +          }
 +        else
 +          search_identifier = true;
 +      }
 +      else if (strneq (cp, "define", 6)
 +             && (cp = skip_spaces (cp+6))
 +             && *cp++ == '('
 +             && (*cp == '"' || *cp == '\''))
 +      {
 +        char quote = *cp++;
 +        name = cp;
 +        while (*cp != quote && *cp != '\0')
 +          cp++;
 +        make_tag (name, cp - name, false,
 +                  lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +      }
 +      else if (members
 +             && LOOKING_AT (cp, "var")
 +             && *cp == '$')
 +      {
 +        name = cp;
 +        while (!notinname (*cp))
 +          cp++;
 +        make_tag (name, cp - name, false,
 +                  lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +      }
 +    }
 +}
 +
 +\f
 +/*
 + * Cobol tag functions
 + * We could look for anything that could be a paragraph name.
 + * i.e. anything that starts in column 8 is one word and ends in a full stop.
 + * Idea by Corny de Souza (1993)
 + */
 +static void
 +Cobol_paragraphs (FILE *inf)
 +{
 +  register char *bp, *ep;
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, bp)
 +    {
 +      if (lb.len < 9)
 +      continue;
 +      bp += 8;
 +
 +      /* If eoln, compiler option or comment ignore whole line. */
 +      if (bp[-1] != ' ' || !ISALNUM (bp[0]))
 +        continue;
 +
 +      for (ep = bp; ISALNUM (*ep) || *ep == '-'; ep++)
 +      continue;
 +      if (*ep++ == '.')
 +      make_tag (bp, ep - bp, true,
 +                lb.buffer, ep - lb.buffer + 1, lineno, linecharno);
 +    }
 +}
 +
 +\f
 +/*
 + * Makefile support
 + * Ideas by Assar Westerlund <assar@sics.se> (2001)
 + */
 +static void
 +Makefile_targets (FILE *inf)
 +{
 +  register char *bp;
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, bp)
 +    {
 +      if (*bp == '\t' || *bp == '#')
 +      continue;
 +      while (*bp != '\0' && *bp != '=' && *bp != ':')
 +      bp++;
 +      if (*bp == ':' || (globals && *bp == '='))
 +      {
 +        /* We should detect if there is more than one tag, but we do not.
 +           We just skip initial and final spaces. */
 +        char * namestart = skip_spaces (lb.buffer);
 +        while (--bp > namestart)
 +          if (!notinname (*bp))
 +            break;
 +        make_tag (namestart, bp - namestart + 1, true,
 +                  lb.buffer, bp - lb.buffer + 2, lineno, linecharno);
 +      }
 +    }
 +}
 +
 +\f
 +/*
 + * Pascal parsing
 + * Original code by Mosur K. Mohan (1989)
 + *
 + *  Locates tags for procedures & functions.  Doesn't do any type- or
 + *  var-definitions.  It does look for the keyword "extern" or
 + *  "forward" immediately following the procedure statement; if found,
 + *  the tag is skipped.
 + */
 +static void
 +Pascal_functions (FILE *inf)
 +{
 +  linebuffer tline;           /* mostly copied from C_entries */
 +  long save_lcno;
 +  int save_lineno, namelen, taglen;
 +  char c, *name;
 +
 +  bool                                /* each of these flags is true if: */
 +    incomment,                        /* point is inside a comment */
 +    inquote,                  /* point is inside '..' string */
 +    get_tagname,              /* point is after PROCEDURE/FUNCTION
 +                                 keyword, so next item = potential tag */
 +    found_tag,                        /* point is after a potential tag */
 +    inparms,                  /* point is within parameter-list */
 +    verify_tag;                       /* point has passed the parm-list, so the
 +                                 next token will determine whether this
 +                                 is a FORWARD/EXTERN to be ignored, or
 +                                 whether it is a real tag */
 +
 +  save_lcno = save_lineno = namelen = taglen = 0; /* keep compiler quiet */
 +  name = NULL;                        /* keep compiler quiet */
 +  dbp = lb.buffer;
 +  *dbp = '\0';
 +  linebuffer_init (&tline);
 +
 +  incomment = inquote = false;
 +  found_tag = false;          /* have a proc name; check if extern */
 +  get_tagname = false;                /* found "procedure" keyword         */
 +  inparms = false;            /* found '(' after "proc"            */
 +  verify_tag = false;         /* check if "extern" is ahead        */
 +
 +
 +  while (!feof (inf))         /* long main loop to get next char */
 +    {
 +      c = *dbp++;
 +      if (c == '\0')          /* if end of line */
 +      {
 +        readline (&lb, inf);
 +        dbp = lb.buffer;
 +        if (*dbp == '\0')
 +          continue;
 +        if (!((found_tag && verify_tag)
 +              || get_tagname))
 +          c = *dbp++;         /* only if don't need *dbp pointing
 +                                 to the beginning of the name of
 +                                 the procedure or function */
 +      }
 +      if (incomment)
 +      {
 +        if (c == '}')         /* within { } comments */
 +          incomment = false;
 +        else if (c == '*' && *dbp == ')') /* within (* *) comments */
 +          {
 +            dbp++;
 +            incomment = false;
 +          }
 +        continue;
 +      }
 +      else if (inquote)
 +      {
 +        if (c == '\'')
 +          inquote = false;
 +        continue;
 +      }
 +      else
 +      switch (c)
 +        {
 +        case '\'':
 +          inquote = true;     /* found first quote */
 +          continue;
 +        case '{':             /* found open { comment */
 +          incomment = true;
 +          continue;
 +        case '(':
 +          if (*dbp == '*')    /* found open (* comment */
 +            {
 +              incomment = true;
 +              dbp++;
 +            }
 +          else if (found_tag) /* found '(' after tag, i.e., parm-list */
 +            inparms = true;
 +          continue;
 +        case ')':             /* end of parms list */
 +          if (inparms)
 +            inparms = false;
 +          continue;
 +        case ';':
 +          if (found_tag && !inparms) /* end of proc or fn stmt */
 +            {
 +              verify_tag = true;
 +              break;
 +            }
 +          continue;
 +        }
 +      if (found_tag && verify_tag && (*dbp != ' '))
 +      {
 +        /* Check if this is an "extern" declaration. */
 +        if (*dbp == '\0')
 +          continue;
 +        if (lowcase (*dbp) == 'e')
 +          {
 +            if (nocase_tail ("extern")) /* superfluous, really! */
 +              {
 +                found_tag = false;
 +                verify_tag = false;
 +              }
 +          }
 +        else if (lowcase (*dbp) == 'f')
 +          {
 +            if (nocase_tail ("forward")) /* check for forward reference */
 +              {
 +                found_tag = false;
 +                verify_tag = false;
 +              }
 +          }
 +        if (found_tag && verify_tag) /* not external proc, so make tag */
 +          {
 +            found_tag = false;
 +            verify_tag = false;
 +            make_tag (name, namelen, true,
 +                      tline.buffer, taglen, save_lineno, save_lcno);
 +            continue;
 +          }
 +      }
 +      if (get_tagname)                /* grab name of proc or fn */
 +      {
 +        char *cp;
 +
 +        if (*dbp == '\0')
 +          continue;
 +
 +        /* Find block name. */
 +        for (cp = dbp + 1; *cp != '\0' && !endtoken (*cp); cp++)
 +          continue;
 +
 +        /* Save all values for later tagging. */
 +        linebuffer_setlen (&tline, lb.len);
 +        strcpy (tline.buffer, lb.buffer);
 +        save_lineno = lineno;
 +        save_lcno = linecharno;
 +        name = tline.buffer + (dbp - lb.buffer);
 +        namelen = cp - dbp;
 +        taglen = cp - lb.buffer + 1;
 +
 +        dbp = cp;             /* set dbp to e-o-token */
 +        get_tagname = false;
 +        found_tag = true;
 +        continue;
 +
 +        /* And proceed to check for "extern". */
 +      }
 +      else if (!incomment && !inquote && !found_tag)
 +      {
 +        /* Check for proc/fn keywords. */
 +        switch (lowcase (c))
 +          {
 +          case 'p':
 +            if (nocase_tail ("rocedure")) /* c = 'p', dbp has advanced */
 +              get_tagname = true;
 +            continue;
 +          case 'f':
 +            if (nocase_tail ("unction"))
 +              get_tagname = true;
 +            continue;
 +          }
 +      }
 +    } /* while not eof */
 +
 +  free (tline.buffer);
 +}
 +
 +\f
 +/*
 + * Lisp tag functions
 + *  look for (def or (DEF, quote or QUOTE
 + */
 +
 +static void L_getit (void);
 +
 +static void
 +L_getit (void)
 +{
 +  if (*dbp == '\'')           /* Skip prefix quote */
 +    dbp++;
 +  else if (*dbp == '(')
 +  {
 +    dbp++;
 +    /* Try to skip "(quote " */
 +    if (!LOOKING_AT (dbp, "quote") && !LOOKING_AT (dbp, "QUOTE"))
 +      /* Ok, then skip "(" before name in (defstruct (foo)) */
 +      dbp = skip_spaces (dbp);
 +  }
 +  get_tag (dbp, NULL);
 +}
 +
 +static void
 +Lisp_functions (FILE *inf)
 +{
 +  LOOP_ON_INPUT_LINES (inf, lb, dbp)
 +    {
 +      if (dbp[0] != '(')
 +      continue;
 +
 +      /* "(defvar foo)" is a declaration rather than a definition.  */
 +      if (! declarations)
 +      {
 +        char *p = dbp + 1;
 +        if (LOOKING_AT (p, "defvar"))
 +          {
 +            p = skip_name (p); /* past var name */
 +            p = skip_spaces (p);
 +            if (*p == ')')
 +              continue;
 +          }
 +      }
 +
 +      if (strneq (dbp + 1, "cl-", 3) || strneq (dbp + 1, "CL-", 3))
 +      dbp += 3;
 +
 +      if (strneq (dbp+1, "def", 3) || strneq (dbp+1, "DEF", 3))
 +      {
 +        dbp = skip_non_spaces (dbp);
 +        dbp = skip_spaces (dbp);
 +        L_getit ();
 +      }
 +      else
 +      {
 +        /* Check for (foo::defmumble name-defined ... */
 +        do
 +          dbp++;
 +        while (!notinname (*dbp) && *dbp != ':');
 +        if (*dbp == ':')
 +          {
 +            do
 +              dbp++;
 +            while (*dbp == ':');
 +
 +            if (strneq (dbp, "def", 3) || strneq (dbp, "DEF", 3))
 +              {
 +                dbp = skip_non_spaces (dbp);
 +                dbp = skip_spaces (dbp);
 +                L_getit ();
 +              }
 +          }
 +      }
 +    }
 +}
 +
 +\f
 +/*
 + * Lua script language parsing
 + * Original code by David A. Capello <dacap@users.sourceforge.net> (2004)
 + *
 + *  "function" and "local function" are tags if they start at column 1.
 + */
 +static void
 +Lua_functions (FILE *inf)
 +{
 +  register char *bp;
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, bp)
 +    {
 +      if (bp[0] != 'f' && bp[0] != 'l')
 +      continue;
 +
 +      (void)LOOKING_AT (bp, "local"); /* skip possible "local" */
 +
 +      if (LOOKING_AT (bp, "function"))
 +      get_tag (bp, NULL);
 +    }
 +}
 +
 +\f
 +/*
 + * PostScript tags
 + * Just look for lines where the first character is '/'
 + * Also look at "defineps" for PSWrap
 + * Ideas by:
 + *   Richard Mlynarik <mly@adoc.xerox.com> (1997)
 + *   Masatake Yamato <masata-y@is.aist-nara.ac.jp> (1999)
 + */
 +static void
 +PS_functions (FILE *inf)
 +{
 +  register char *bp, *ep;
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, bp)
 +    {
 +      if (bp[0] == '/')
 +      {
 +        for (ep = bp+1;
 +             *ep != '\0' && *ep != ' ' && *ep != '{';
 +             ep++)
 +          continue;
 +        make_tag (bp, ep - bp, true,
 +                  lb.buffer, ep - lb.buffer + 1, lineno, linecharno);
 +      }
 +      else if (LOOKING_AT (bp, "defineps"))
 +      get_tag (bp, NULL);
 +    }
 +}
 +
 +\f
 +/*
 + * Forth tags
 + * Ignore anything after \ followed by space or in ( )
 + * Look for words defined by :
 + * Look for constant, code, create, defer, value, and variable
 + * OBP extensions:  Look for buffer:, field,
 + * Ideas by Eduardo Horvath <eeh@netbsd.org> (2004)
 + */
 +static void
 +Forth_words (FILE *inf)
 +{
 +  register char *bp;
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, bp)
 +    while ((bp = skip_spaces (bp))[0] != '\0')
 +      if (bp[0] == '\\' && iswhite (bp[1]))
 +      break;                  /* read next line */
 +      else if (bp[0] == '(' && iswhite (bp[1]))
 +      do                      /* skip to ) or eol */
 +        bp++;
 +      while (*bp != ')' && *bp != '\0');
 +      else if ((bp[0] == ':' && iswhite (bp[1]) && bp++)
 +             || LOOKING_AT_NOCASE (bp, "constant")
 +             || LOOKING_AT_NOCASE (bp, "code")
 +             || LOOKING_AT_NOCASE (bp, "create")
 +             || LOOKING_AT_NOCASE (bp, "defer")
 +             || LOOKING_AT_NOCASE (bp, "value")
 +             || LOOKING_AT_NOCASE (bp, "variable")
 +             || LOOKING_AT_NOCASE (bp, "buffer:")
 +             || LOOKING_AT_NOCASE (bp, "field"))
 +      get_tag (skip_spaces (bp), NULL); /* Yay!  A definition! */
 +      else
 +      bp = skip_non_spaces (bp);
 +}
 +
 +\f
 +/*
 + * Scheme tag functions
 + * look for (def... xyzzy
 + *          (def... (xyzzy
 + *          (def ... ((...(xyzzy ....
 + *          (set! xyzzy
 + * Original code by Ken Haase (1985?)
 + */
 +static void
 +Scheme_functions (FILE *inf)
 +{
 +  register char *bp;
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, bp)
 +    {
 +      if (strneq (bp, "(def", 4) || strneq (bp, "(DEF", 4))
 +      {
 +        bp = skip_non_spaces (bp+4);
 +        /* Skip over open parens and white space.  Don't continue past
 +           '\0'. */
 +        while (*bp && notinname (*bp))
 +          bp++;
 +        get_tag (bp, NULL);
 +      }
 +      if (LOOKING_AT (bp, "(SET!") || LOOKING_AT (bp, "(set!"))
 +      get_tag (bp, NULL);
 +    }
 +}
 +
 +\f
 +/* Find tags in TeX and LaTeX input files.  */
 +
 +/* TEX_toktab is a table of TeX control sequences that define tags.
 + * Each entry records one such control sequence.
 + *
 + * Original code from who knows whom.
 + * Ideas by:
 + *   Stefan Monnier (2002)
 + */
 +
 +static linebuffer *TEX_toktab = NULL; /* Table with tag tokens */
 +
 +/* Default set of control sequences to put into TEX_toktab.
 +   The value of environment var TEXTAGS is prepended to this.  */
 +static const char *TEX_defenv = "\
 +:chapter:section:subsection:subsubsection:eqno:label:ref:cite:bibitem\
 +:part:appendix:entry:index:def\
 +:newcommand:renewcommand:newenvironment:renewenvironment";
 +
 +static void TEX_mode (FILE *);
 +static void TEX_decode_env (const char *, const char *);
 +
 +static char TEX_esc = '\\';
 +static char TEX_opgrp = '{';
 +static char TEX_clgrp = '}';
 +
 +/*
 + * TeX/LaTeX scanning loop.
 + */
 +static void
 +TeX_commands (FILE *inf)
 +{
 +  char *cp;
 +  linebuffer *key;
 +
 +  /* Select either \ or ! as escape character.  */
 +  TEX_mode (inf);
 +
 +  /* Initialize token table once from environment. */
 +  if (TEX_toktab == NULL)
 +    TEX_decode_env ("TEXTAGS", TEX_defenv);
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, cp)
 +    {
 +      /* Look at each TEX keyword in line. */
 +      for (;;)
 +      {
 +        /* Look for a TEX escape. */
 +        while (*cp++ != TEX_esc)
 +          if (cp[-1] == '\0' || cp[-1] == '%')
 +            goto tex_next_line;
 +
 +        for (key = TEX_toktab; key->buffer != NULL; key++)
 +          if (strneq (cp, key->buffer, key->len))
 +            {
 +              char *p;
 +              int namelen, linelen;
 +              bool opgrp = false;
 +
 +              cp = skip_spaces (cp + key->len);
 +              if (*cp == TEX_opgrp)
 +                {
 +                  opgrp = true;
 +                  cp++;
 +                }
 +              for (p = cp;
 +                   (!iswhite (*p) && *p != '#' &&
 +                    *p != TEX_opgrp && *p != TEX_clgrp);
 +                   p++)
 +                continue;
 +              namelen = p - cp;
 +              linelen = lb.len;
 +              if (!opgrp || *p == TEX_clgrp)
 +                {
 +                  while (*p != '\0' && *p != TEX_opgrp && *p != TEX_clgrp)
 +                    p++;
 +                  linelen = p - lb.buffer + 1;
 +                }
 +              make_tag (cp, namelen, true,
 +                        lb.buffer, linelen, lineno, linecharno);
 +              goto tex_next_line; /* We only tag a line once */
 +            }
 +      }
 +    tex_next_line:
 +      ;
 +    }
 +}
 +
 +#define TEX_LESC '\\'
 +#define TEX_SESC '!'
 +
 +/* Figure out whether TeX's escapechar is '\\' or '!' and set grouping
 +   chars accordingly. */
 +static void
 +TEX_mode (FILE *inf)
 +{
 +  int c;
 +
 +  while ((c = getc (inf)) != EOF)
 +    {
 +      /* Skip to next line if we hit the TeX comment char. */
 +      if (c == '%')
 +      while (c != '\n' && c != EOF)
 +        c = getc (inf);
 +      else if (c == TEX_LESC || c == TEX_SESC )
 +      break;
 +    }
 +
 +  if (c == TEX_LESC)
 +    {
 +      TEX_esc = TEX_LESC;
 +      TEX_opgrp = '{';
 +      TEX_clgrp = '}';
 +    }
 +  else
 +    {
 +      TEX_esc = TEX_SESC;
 +      TEX_opgrp = '<';
 +      TEX_clgrp = '>';
 +    }
 +  /* If the input file is compressed, inf is a pipe, and rewind may fail.
 +     No attempt is made to correct the situation. */
 +  rewind (inf);
 +}
 +
 +/* Read environment and prepend it to the default string.
 +   Build token table. */
 +static void
 +TEX_decode_env (const char *evarname, const char *defenv)
 +{
 +  register const char *env, *p;
 +  int i, len;
 +
 +  /* Append default string to environment. */
 +  env = getenv (evarname);
 +  if (!env)
 +    env = defenv;
 +  else
 +    env = concat (env, defenv, "");
 +
 +  /* Allocate a token table */
 +  for (len = 1, p = env; p;)
 +    if ((p = strchr (p, ':')) && *++p != '\0')
 +      len++;
 +  TEX_toktab = xnew (len, linebuffer);
 +
 +  /* Unpack environment string into token table. Be careful about */
 +  /* zero-length strings (leading ':', "::" and trailing ':') */
 +  for (i = 0; *env != '\0';)
 +    {
 +      p = strchr (env, ':');
 +      if (!p)                 /* End of environment string. */
 +      p = env + strlen (env);
 +      if (p - env > 0)
 +      {                       /* Only non-zero strings. */
 +        TEX_toktab[i].buffer = savenstr (env, p - env);
 +        TEX_toktab[i].len = p - env;
 +        i++;
 +      }
 +      if (*p)
 +      env = p + 1;
 +      else
 +      {
 +        TEX_toktab[i].buffer = NULL; /* Mark end of table. */
 +        TEX_toktab[i].len = 0;
 +        break;
 +      }
 +    }
 +}
 +
 +\f
 +/* Texinfo support.  Dave Love, Mar. 2000.  */
 +static void
 +Texinfo_nodes (FILE *inf)
 +{
 +  char *cp, *start;
 +  LOOP_ON_INPUT_LINES (inf, lb, cp)
 +    if (LOOKING_AT (cp, "@node"))
 +      {
 +      start = cp;
 +      while (*cp != '\0' && *cp != ',')
 +        cp++;
 +      make_tag (start, cp - start, true,
 +                lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +      }
 +}
 +
 +\f
 +/*
 + * HTML support.
 + * Contents of <title>, <h1>, <h2>, <h3> are tags.
 + * Contents of <a name=xxx> are tags with name xxx.
 + *
 + * Francesco Potortì, 2002.
 + */
 +static void
 +HTML_labels (FILE *inf)
 +{
 +  bool getnext = false;               /* next text outside of HTML tags is a tag */
 +  bool skiptag = false;               /* skip to the end of the current HTML tag */
 +  bool intag = false;         /* inside an html tag, looking for ID= */
 +  bool inanchor = false;      /* when INTAG, is an anchor, look for NAME= */
 +  char *end;
 +
 +
 +  linebuffer_setlen (&token_name, 0); /* no name in buffer */
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, dbp)
 +    for (;;)                  /* loop on the same line */
 +      {
 +      if (skiptag)            /* skip HTML tag */
 +        {
 +          while (*dbp != '\0' && *dbp != '>')
 +            dbp++;
 +          if (*dbp == '>')
 +            {
 +              dbp += 1;
 +              skiptag = false;
 +              continue;       /* look on the same line */
 +            }
 +          break;              /* go to next line */
 +        }
 +
 +      else if (intag) /* look for "name=" or "id=" */
 +        {
 +          while (*dbp != '\0' && *dbp != '>'
 +                 && lowcase (*dbp) != 'n' && lowcase (*dbp) != 'i')
 +            dbp++;
 +          if (*dbp == '\0')
 +            break;            /* go to next line */
 +          if (*dbp == '>')
 +            {
 +              dbp += 1;
 +              intag = false;
 +              continue;       /* look on the same line */
 +            }
 +          if ((inanchor && LOOKING_AT_NOCASE (dbp, "name="))
 +              || LOOKING_AT_NOCASE (dbp, "id="))
 +            {
 +              bool quoted = (dbp[0] == '"');
 +
 +              if (quoted)
 +                for (end = ++dbp; *end != '\0' && *end != '"'; end++)
 +                  continue;
 +              else
 +                for (end = dbp; *end != '\0' && intoken (*end); end++)
 +                  continue;
 +              linebuffer_setlen (&token_name, end - dbp);
 +              memcpy (token_name.buffer, dbp, end - dbp);
 +              token_name.buffer[end - dbp] = '\0';
 +
 +              dbp = end;
 +              intag = false;  /* we found what we looked for */
 +              skiptag = true; /* skip to the end of the tag */
 +              getnext = true; /* then grab the text */
 +              continue;       /* look on the same line */
 +            }
 +          dbp += 1;
 +        }
 +
 +      else if (getnext)       /* grab next tokens and tag them */
 +        {
 +          dbp = skip_spaces (dbp);
 +          if (*dbp == '\0')
 +            break;            /* go to next line */
 +          if (*dbp == '<')
 +            {
 +              intag = true;
 +              inanchor = (lowcase (dbp[1]) == 'a' && !intoken (dbp[2]));
 +              continue;       /* look on the same line */
 +            }
 +
 +          for (end = dbp + 1; *end != '\0' && *end != '<'; end++)
 +            continue;
 +          make_tag (token_name.buffer, token_name.len, true,
 +                    dbp, end - dbp, lineno, linecharno);
 +          linebuffer_setlen (&token_name, 0); /* no name in buffer */
 +          getnext = false;
 +          break;              /* go to next line */
 +        }
 +
 +      else                    /* look for an interesting HTML tag */
 +        {
 +          while (*dbp != '\0' && *dbp != '<')
 +            dbp++;
 +          if (*dbp == '\0')
 +            break;            /* go to next line */
 +          intag = true;
 +          if (lowcase (dbp[1]) == 'a' && !intoken (dbp[2]))
 +            {
 +              inanchor = true;
 +              continue;       /* look on the same line */
 +            }
 +          else if (LOOKING_AT_NOCASE (dbp, "<title>")
 +                   || LOOKING_AT_NOCASE (dbp, "<h1>")
 +                   || LOOKING_AT_NOCASE (dbp, "<h2>")
 +                   || LOOKING_AT_NOCASE (dbp, "<h3>"))
 +            {
 +              intag = false;
 +              getnext = true;
 +              continue;       /* look on the same line */
 +            }
 +          dbp += 1;
 +        }
 +      }
 +}
 +
 +\f
 +/*
 + * Prolog support
 + *
 + * Assumes that the predicate or rule starts at column 0.
 + * Only the first clause of a predicate or rule is added.
 + * Original code by Sunichirou Sugou (1989)
 + * Rewritten by Anders Lindgren (1996)
 + */
 +static size_t prolog_pr (char *, char *);
 +static void prolog_skip_comment (linebuffer *, FILE *);
 +static size_t prolog_atom (char *, size_t);
 +
 +static void
 +Prolog_functions (FILE *inf)
 +{
 +  char *cp, *last;
 +  size_t len;
 +  size_t allocated;
 +
 +  allocated = 0;
 +  len = 0;
 +  last = NULL;
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, cp)
 +    {
 +      if (cp[0] == '\0')      /* Empty line */
 +      continue;
 +      else if (iswhite (cp[0])) /* Not a predicate */
 +      continue;
 +      else if (cp[0] == '/' && cp[1] == '*')  /* comment. */
 +      prolog_skip_comment (&lb, inf);
 +      else if ((len = prolog_pr (cp, last)) > 0)
 +      {
 +        /* Predicate or rule.  Store the function name so that we
 +           only generate a tag for the first clause.  */
 +        if (last == NULL)
 +          last = xnew (len + 1, char);
 +        else if (len + 1 > allocated)
 +          xrnew (last, len + 1, char);
 +        allocated = len + 1;
 +        memcpy (last, cp, len);
 +        last[len] = '\0';
 +      }
 +    }
 +  free (last);
 +}
 +
 +
 +static void
 +prolog_skip_comment (linebuffer *plb, FILE *inf)
 +{
 +  char *cp;
 +
 +  do
 +    {
 +      for (cp = plb->buffer; *cp != '\0'; cp++)
 +      if (cp[0] == '*' && cp[1] == '/')
 +        return;
 +      readline (plb, inf);
 +    }
 +  while (!feof (inf));
 +}
 +
 +/*
 + * A predicate or rule definition is added if it matches:
 + *     <beginning of line><Prolog Atom><whitespace>(
 + * or  <beginning of line><Prolog Atom><whitespace>:-
 + *
 + * It is added to the tags database if it doesn't match the
 + * name of the previous clause header.
 + *
 + * Return the size of the name of the predicate or rule, or 0 if no
 + * header was found.
 + */
 +static size_t
 +prolog_pr (char *s, char *last)
 +
 +                              /* Name of last clause. */
 +{
 +  size_t pos;
 +  size_t len;
 +
 +  pos = prolog_atom (s, 0);
 +  if (! pos)
 +    return 0;
 +
 +  len = pos;
 +  pos = skip_spaces (s + pos) - s;
 +
 +  if ((s[pos] == '.'
 +       || (s[pos] == '(' && (pos += 1))
 +       || (s[pos] == ':' && s[pos + 1] == '-' && (pos += 2)))
 +      && (last == NULL                /* save only the first clause */
 +        || len != strlen (last)
 +        || !strneq (s, last, len)))
 +      {
 +        make_tag (s, len, true, s, pos, lineno, linecharno);
 +        return len;
 +      }
 +  else
 +    return 0;
 +}
 +
 +/*
 + * Consume a Prolog atom.
 + * Return the number of bytes consumed, or 0 if there was an error.
 + *
 + * A prolog atom, in this context, could be one of:
 + * - An alphanumeric sequence, starting with a lower case letter.
 + * - A quoted arbitrary string. Single quotes can escape themselves.
 + *   Backslash quotes everything.
 + */
 +static size_t
 +prolog_atom (char *s, size_t pos)
 +{
 +  size_t origpos;
 +
 +  origpos = pos;
 +
 +  if (ISLOWER (s[pos]) || (s[pos] == '_'))
 +    {
 +      /* The atom is unquoted. */
 +      pos++;
 +      while (ISALNUM (s[pos]) || (s[pos] == '_'))
 +      {
 +        pos++;
 +      }
 +      return pos - origpos;
 +    }
 +  else if (s[pos] == '\'')
 +    {
 +      pos++;
 +
 +      for (;;)
 +      {
 +        if (s[pos] == '\'')
 +          {
 +            pos++;
 +            if (s[pos] != '\'')
 +              break;
 +            pos++;            /* A double quote */
 +          }
 +        else if (s[pos] == '\0')
 +          /* Multiline quoted atoms are ignored. */
 +          return 0;
 +        else if (s[pos] == '\\')
 +          {
 +            if (s[pos+1] == '\0')
 +              return 0;
 +            pos += 2;
 +          }
 +        else
 +          pos++;
 +      }
 +      return pos - origpos;
 +    }
 +  else
 +    return 0;
 +}
 +
 +\f
 +/*
 + * Support for Erlang
 + *
 + * Generates tags for functions, defines, and records.
 + * Assumes that Erlang functions start at column 0.
 + * Original code by Anders Lindgren (1996)
 + */
 +static int erlang_func (char *, char *);
 +static void erlang_attribute (char *);
 +static int erlang_atom (char *);
 +
 +static void
 +Erlang_functions (FILE *inf)
 +{
 +  char *cp, *last;
 +  int len;
 +  int allocated;
 +
 +  allocated = 0;
 +  len = 0;
 +  last = NULL;
 +
 +  LOOP_ON_INPUT_LINES (inf, lb, cp)
 +    {
 +      if (cp[0] == '\0')      /* Empty line */
 +      continue;
 +      else if (iswhite (cp[0])) /* Not function nor attribute */
 +      continue;
 +      else if (cp[0] == '%')  /* comment */
 +      continue;
 +      else if (cp[0] == '"')  /* Sometimes, strings start in column one */
 +      continue;
 +      else if (cp[0] == '-')  /* attribute, e.g. "-define" */
 +      {
 +        erlang_attribute (cp);
 +        if (last != NULL)
 +          {
 +            free (last);
 +            last = NULL;
 +          }
 +      }
 +      else if ((len = erlang_func (cp, last)) > 0)
 +      {
 +        /*
 +         * Function.  Store the function name so that we only
 +         * generates a tag for the first clause.
 +         */
 +        if (last == NULL)
 +          last = xnew (len + 1, char);
 +        else if (len + 1 > allocated)
 +          xrnew (last, len + 1, char);
 +        allocated = len + 1;
 +        memcpy (last, cp, len);
 +        last[len] = '\0';
 +      }
 +    }
 +  free (last);
 +}
 +
 +
 +/*
 + * A function definition is added if it matches:
 + *     <beginning of line><Erlang Atom><whitespace>(
 + *
 + * It is added to the tags database if it doesn't match the
 + * name of the previous clause header.
 + *
 + * Return the size of the name of the function, or 0 if no function
 + * was found.
 + */
 +static int
 +erlang_func (char *s, char *last)
 +
 +                              /* Name of last clause. */
 +{
 +  int pos;
 +  int len;
 +
 +  pos = erlang_atom (s);
 +  if (pos < 1)
 +    return 0;
 +
 +  len = pos;
 +  pos = skip_spaces (s + pos) - s;
 +
 +  /* Save only the first clause. */
 +  if (s[pos++] == '('
 +      && (last == NULL
 +        || len != (int)strlen (last)
 +        || !strneq (s, last, len)))
 +      {
 +        make_tag (s, len, true, s, pos, lineno, linecharno);
 +        return len;
 +      }
 +
 +  return 0;
 +}
 +
 +
 +/*
 + * Handle attributes.  Currently, tags are generated for defines
 + * and records.
 + *
 + * They are on the form:
 + * -define(foo, bar).
 + * -define(Foo(M, N), M+N).
 + * -record(graph, {vtab = notable, cyclic = true}).
 + */
 +static void
 +erlang_attribute (char *s)
 +{
 +  char *cp = s;
 +
 +  if ((LOOKING_AT (cp, "-define") || LOOKING_AT (cp, "-record"))
 +      && *cp++ == '(')
 +    {
 +      int len = erlang_atom (skip_spaces (cp));
 +      if (len > 0)
 +      make_tag (cp, len, true, s, cp + len - s, lineno, linecharno);
 +    }
 +  return;
 +}
 +
 +
 +/*
 + * Consume an Erlang atom (or variable).
 + * Return the number of bytes consumed, or -1 if there was an error.
 + */
 +static int
 +erlang_atom (char *s)
 +{
 +  int pos = 0;
 +
 +  if (ISALPHA (s[pos]) || s[pos] == '_')
 +    {
 +      /* The atom is unquoted. */
 +      do
 +      pos++;
 +      while (ISALNUM (s[pos]) || s[pos] == '_');
 +    }
 +  else if (s[pos] == '\'')
 +    {
 +      for (pos++; s[pos] != '\''; pos++)
 +      if (s[pos] == '\0'      /* multiline quoted atoms are ignored */
 +          || (s[pos] == '\\' && s[++pos] == '\0'))
 +        return 0;
 +      pos++;
 +    }
 +
 +  return pos;
 +}
 +
 +\f
 +static char *scan_separators (char *);
 +static void add_regex (char *, language *);
 +static char *substitute (char *, char *, struct re_registers *);
 +
 +/*
 + * Take a string like "/blah/" and turn it into "blah", verifying
 + * that the first and last characters are the same, and handling
 + * quoted separator characters.  Actually, stops on the occurrence of
 + * an unquoted separator.  Also process \t, \n, etc. and turn into
 + * appropriate characters. Works in place.  Null terminates name string.
 + * Returns pointer to terminating separator, or NULL for
 + * unterminated regexps.
 + */
 +static char *
 +scan_separators (char *name)
 +{
 +  char sep = name[0];
 +  char *copyto = name;
 +  bool quoted = false;
 +
 +  for (++name; *name != '\0'; ++name)
 +    {
 +      if (quoted)
 +      {
 +        switch (*name)
 +          {
 +          case 'a': *copyto++ = '\007'; break; /* BEL (bell)           */
 +          case 'b': *copyto++ = '\b'; break;   /* BS (back space)      */
 +          case 'd': *copyto++ = 0177; break;   /* DEL (delete)         */
 +          case 'e': *copyto++ = 033; break;    /* ESC (delete)         */
 +          case 'f': *copyto++ = '\f'; break;   /* FF (form feed)       */
 +          case 'n': *copyto++ = '\n'; break;   /* NL (new line)        */
 +          case 'r': *copyto++ = '\r'; break;   /* CR (carriage return) */
 +          case 't': *copyto++ = '\t'; break;   /* TAB (horizontal tab) */
 +          case 'v': *copyto++ = '\v'; break;   /* VT (vertical tab)    */
 +          default:
 +            if (*name == sep)
 +              *copyto++ = sep;
 +            else
 +              {
 +                /* Something else is quoted, so preserve the quote. */
 +                *copyto++ = '\\';
 +                *copyto++ = *name;
 +              }
 +            break;
 +          }
 +        quoted = false;
 +      }
 +      else if (*name == '\\')
 +      quoted = true;
 +      else if (*name == sep)
 +      break;
 +      else
 +      *copyto++ = *name;
 +    }
 +  if (*name != sep)
 +    name = NULL;              /* signal unterminated regexp */
 +
 +  /* Terminate copied string. */
 +  *copyto = '\0';
 +  return name;
 +}
 +
 +/* Look at the argument of --regex or --no-regex and do the right
 +   thing.  Same for each line of a regexp file. */
 +static void
 +analyze_regex (char *regex_arg)
 +{
 +  if (regex_arg == NULL)
 +    {
 +      free_regexps ();                /* --no-regex: remove existing regexps */
 +      return;
 +    }
 +
 +  /* A real --regexp option or a line in a regexp file. */
 +  switch (regex_arg[0])
 +    {
 +      /* Comments in regexp file or null arg to --regex. */
 +    case '\0':
 +    case ' ':
 +    case '\t':
 +      break;
 +
 +      /* Read a regex file.  This is recursive and may result in a
 +       loop, which will stop when the file descriptors are exhausted. */
 +    case '@':
 +      {
 +      FILE *regexfp;
 +      linebuffer regexbuf;
 +      char *regexfile = regex_arg + 1;
 +
 +      /* regexfile is a file containing regexps, one per line. */
 +      regexfp = fopen (regexfile, "r" FOPEN_BINARY);
 +      if (regexfp == NULL)
 +        pfatal (regexfile);
 +      linebuffer_init (&regexbuf);
 +      while (readline_internal (&regexbuf, regexfp) > 0)
 +        analyze_regex (regexbuf.buffer);
 +      free (regexbuf.buffer);
 +      fclose (regexfp);
 +      }
 +      break;
 +
 +      /* Regexp to be used for a specific language only. */
 +    case '{':
 +      {
 +      language *lang;
 +      char *lang_name = regex_arg + 1;
 +      char *cp;
 +
 +      for (cp = lang_name; *cp != '}'; cp++)
 +        if (*cp == '\0')
 +          {
 +            error ("unterminated language name in regex: %s", regex_arg);
 +            return;
 +          }
 +      *cp++ = '\0';
 +      lang = get_language_from_langname (lang_name);
 +      if (lang == NULL)
 +        return;
 +      add_regex (cp, lang);
 +      }
 +      break;
 +
 +      /* Regexp to be used for any language. */
 +    default:
 +      add_regex (regex_arg, NULL);
 +      break;
 +    }
 +}
 +
 +/* Separate the regexp pattern, compile it,
 +   and care for optional name and modifiers. */
 +static void
 +add_regex (char *regexp_pattern, language *lang)
 +{
 +  static struct re_pattern_buffer zeropattern;
 +  char sep, *pat, *name, *modifiers;
 +  char empty = '\0';
 +  const char *err;
 +  struct re_pattern_buffer *patbuf;
 +  regexp *rp;
 +  bool
 +    force_explicit_name = true, /* do not use implicit tag names */
 +    ignore_case = false,      /* case is significant */
 +    multi_line = false,               /* matches are done one line at a time */
 +    single_line = false;      /* dot does not match newline */
 +
 +
 +  if (strlen (regexp_pattern) < 3)
 +    {
 +      error ("null regexp");
 +      return;
 +    }
 +  sep = regexp_pattern[0];
 +  name = scan_separators (regexp_pattern);
 +  if (name == NULL)
 +    {
 +      error ("%s: unterminated regexp", regexp_pattern);
 +      return;
 +    }
 +  if (name[1] == sep)
 +    {
 +      error ("null name for regexp \"%s\"", regexp_pattern);
 +      return;
 +    }
 +  modifiers = scan_separators (name);
 +  if (modifiers == NULL)      /* no terminating separator --> no name */
 +    {
 +      modifiers = name;
 +      name = &empty;
 +    }
 +  else
 +    modifiers += 1;           /* skip separator */
 +
 +  /* Parse regex modifiers. */
 +  for (; modifiers[0] != '\0'; modifiers++)
 +    switch (modifiers[0])
 +      {
 +      case 'N':
 +      if (modifiers == name)
 +        error ("forcing explicit tag name but no name, ignoring");
 +      force_explicit_name = true;
 +      break;
 +      case 'i':
 +      ignore_case = true;
 +      break;
 +      case 's':
 +      single_line = true;
 +      /* FALLTHRU */
 +      case 'm':
 +      multi_line = true;
 +      need_filebuf = true;
 +      break;
 +      default:
 +      error ("invalid regexp modifier `%c', ignoring", modifiers[0]);
 +      break;
 +      }
 +
 +  patbuf = xnew (1, struct re_pattern_buffer);
 +  *patbuf = zeropattern;
 +  if (ignore_case)
 +    {
 +      static char lc_trans[CHARS];
 +      int i;
 +      for (i = 0; i < CHARS; i++)
 +      lc_trans[i] = lowcase (i);
 +      patbuf->translate = lc_trans;   /* translation table to fold case  */
 +    }
 +
 +  if (multi_line)
 +    pat = concat ("^", regexp_pattern, ""); /* anchor to beginning of line */
 +  else
 +    pat = regexp_pattern;
 +
 +  if (single_line)
 +    re_set_syntax (RE_SYNTAX_EMACS | RE_DOT_NEWLINE);
 +  else
 +    re_set_syntax (RE_SYNTAX_EMACS);
 +
 +  err = re_compile_pattern (pat, strlen (pat), patbuf);
 +  if (multi_line)
 +    free (pat);
 +  if (err != NULL)
 +    {
 +      error ("%s while compiling pattern", err);
 +      return;
 +    }
 +
 +  rp = p_head;
 +  p_head = xnew (1, regexp);
 +  p_head->pattern = savestr (regexp_pattern);
 +  p_head->p_next = rp;
 +  p_head->lang = lang;
 +  p_head->pat = patbuf;
 +  p_head->name = savestr (name);
 +  p_head->error_signaled = false;
 +  p_head->force_explicit_name = force_explicit_name;
 +  p_head->ignore_case = ignore_case;
 +  p_head->multi_line = multi_line;
 +}
 +
 +/*
 + * Do the substitutions indicated by the regular expression and
 + * arguments.
 + */
 +static char *
 +substitute (char *in, char *out, struct re_registers *regs)
 +{
 +  char *result, *t;
 +  int size, dig, diglen;
 +
 +  result = NULL;
 +  size = strlen (out);
 +
 +  /* Pass 1: figure out how much to allocate by finding all \N strings. */
 +  if (out[size - 1] == '\\')
 +    fatal ("pattern error in \"%s\"", out);
 +  for (t = strchr (out, '\\');
 +       t != NULL;
 +       t = strchr (t + 2, '\\'))
 +    if (ISDIGIT (t[1]))
 +      {
 +      dig = t[1] - '0';
 +      diglen = regs->end[dig] - regs->start[dig];
 +      size += diglen - 2;
 +      }
 +    else
 +      size -= 1;
 +
 +  /* Allocate space and do the substitutions. */
 +  assert (size >= 0);
 +  result = xnew (size + 1, char);
 +
 +  for (t = result; *out != '\0'; out++)
 +    if (*out == '\\' && ISDIGIT (*++out))
 +      {
 +      dig = *out - '0';
 +      diglen = regs->end[dig] - regs->start[dig];
 +      memcpy (t, in + regs->start[dig], diglen);
 +      t += diglen;
 +      }
 +    else
 +      *t++ = *out;
 +  *t = '\0';
 +
 +  assert (t <= result + size);
 +  assert (t - result == (int)strlen (result));
 +
 +  return result;
 +}
 +
 +/* Deallocate all regexps. */
 +static void
 +free_regexps (void)
 +{
 +  regexp *rp;
 +  while (p_head != NULL)
 +    {
 +      rp = p_head->p_next;
 +      free (p_head->pattern);
 +      free (p_head->name);
 +      free (p_head);
 +      p_head = rp;
 +    }
 +  return;
 +}
 +
 +/*
 + * Reads the whole file as a single string from `filebuf' and looks for
 + * multi-line regular expressions, creating tags on matches.
 + * readline already dealt with normal regexps.
 + *
 + * Idea by Ben Wing <ben@666.com> (2002).
 + */
 +static void
 +regex_tag_multiline (void)
 +{
 +  char *buffer = filebuf.buffer;
 +  regexp *rp;
 +  char *name;
 +
 +  for (rp = p_head; rp != NULL; rp = rp->p_next)
 +    {
 +      int match = 0;
 +
 +      if (!rp->multi_line)
 +      continue;               /* skip normal regexps */
 +
 +      /* Generic initializations before parsing file from memory. */
 +      lineno = 1;             /* reset global line number */
 +      charno = 0;             /* reset global char number */
 +      linecharno = 0;         /* reset global char number of line start */
 +
 +      /* Only use generic regexps or those for the current language. */
 +      if (rp->lang != NULL && rp->lang != curfdp->lang)
 +      continue;
 +
 +      while (match >= 0 && match < filebuf.len)
 +      {
 +        match = re_search (rp->pat, buffer, filebuf.len, charno,
 +                           filebuf.len - match, &rp->regs);
 +        switch (match)
 +          {
 +          case -2:
 +            /* Some error. */
 +            if (!rp->error_signaled)
 +              {
 +                error ("regexp stack overflow while matching \"%s\"",
 +                       rp->pattern);
 +                rp->error_signaled = true;
 +              }
 +            break;
 +          case -1:
 +            /* No match. */
 +            break;
 +          default:
 +            if (match == rp->regs.end[0])
 +              {
 +                if (!rp->error_signaled)
 +                  {
 +                    error ("regexp matches the empty string: \"%s\"",
 +                           rp->pattern);
 +                    rp->error_signaled = true;
 +                  }
 +                match = -3;   /* exit from while loop */
 +                break;
 +              }
 +
 +            /* Match occurred.  Construct a tag. */
 +            while (charno < rp->regs.end[0])
 +              if (buffer[charno++] == '\n')
 +                lineno++, linecharno = charno;
 +            name = rp->name;
 +            if (name[0] == '\0')
 +              name = NULL;
 +            else /* make a named tag */
 +              name = substitute (buffer, rp->name, &rp->regs);
 +            if (rp->force_explicit_name)
 +              /* Force explicit tag name, if a name is there. */
 +              pfnote (name, true, buffer + linecharno,
 +                      charno - linecharno + 1, lineno, linecharno);
 +            else
 +              make_tag (name, strlen (name), true, buffer + linecharno,
 +                        charno - linecharno + 1, lineno, linecharno);
 +            break;
 +          }
 +      }
 +    }
 +}
 +
 +\f
 +static bool
 +nocase_tail (const char *cp)
 +{
 +  register int len = 0;
 +
 +  while (*cp != '\0' && lowcase (*cp) == lowcase (dbp[len]))
 +    cp++, len++;
 +  if (*cp == '\0' && !intoken (dbp[len]))
 +    {
 +      dbp += len;
 +      return true;
 +    }
 +  return false;
 +}
 +
 +static void
 +get_tag (register char *bp, char **namepp)
 +{
 +  register char *cp = bp;
 +
 +  if (*bp != '\0')
 +    {
 +      /* Go till you get to white space or a syntactic break */
 +      for (cp = bp + 1; !notinname (*cp); cp++)
 +      continue;
 +      make_tag (bp, cp - bp, true,
 +              lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 +    }
 +
 +  if (namepp != NULL)
 +    *namepp = savenstr (bp, cp - bp);
 +}
 +
 +/*
 + * Read a line of text from `stream' into `lbp', excluding the
 + * newline or CR-NL, if any.  Return the number of characters read from
 + * `stream', which is the length of the line including the newline.
 + *
 + * On DOS or Windows we do not count the CR character, if any before the
 + * NL, in the returned length; this mirrors the behavior of Emacs on those
 + * platforms (for text files, it translates CR-NL to NL as it reads in the
 + * file).
 + *
 + * If multi-line regular expressions are requested, each line read is
 + * appended to `filebuf'.
 + */
 +static long
 +readline_internal (linebuffer *lbp, register FILE *stream)
 +{
 +  char *buffer = lbp->buffer;
 +  register char *p = lbp->buffer;
 +  register char *pend;
 +  int chars_deleted;
 +
 +  pend = p + lbp->size;               /* Separate to avoid 386/IX compiler bug.  */
 +
 +  for (;;)
 +    {
 +      register int c = getc (stream);
 +      if (p == pend)
 +      {
 +        /* We're at the end of linebuffer: expand it. */
 +        lbp->size *= 2;
 +        xrnew (buffer, lbp->size, char);
 +        p += buffer - lbp->buffer;
 +        pend = buffer + lbp->size;
 +        lbp->buffer = buffer;
 +      }
 +      if (c == EOF)
 +      {
 +        *p = '\0';
 +        chars_deleted = 0;
 +        break;
 +      }
 +      if (c == '\n')
 +      {
 +        if (p > buffer && p[-1] == '\r')
 +          {
 +            p -= 1;
 +#ifdef DOS_NT
 +           /* Assume CRLF->LF translation will be performed by Emacs
 +              when loading this file, so CRs won't appear in the buffer.
 +              It would be cleaner to compensate within Emacs;
 +              however, Emacs does not know how many CRs were deleted
 +              before any given point in the file.  */
 +            chars_deleted = 1;
 +#else
 +            chars_deleted = 2;
 +#endif
 +          }
 +        else
 +          {
 +            chars_deleted = 1;
 +          }
 +        *p = '\0';
 +        break;
 +      }
 +      *p++ = c;
 +    }
 +  lbp->len = p - buffer;
 +
 +  if (need_filebuf            /* we need filebuf for multi-line regexps */
 +      && chars_deleted > 0)   /* not at EOF */
 +    {
 +      while (filebuf.size <= filebuf.len + lbp->len + 1) /* +1 for \n */
 +      {
 +        /* Expand filebuf. */
 +        filebuf.size *= 2;
 +        xrnew (filebuf.buffer, filebuf.size, char);
 +      }
 +      memcpy (filebuf.buffer + filebuf.len, lbp->buffer, lbp->len);
 +      filebuf.len += lbp->len;
 +      filebuf.buffer[filebuf.len++] = '\n';
 +      filebuf.buffer[filebuf.len] = '\0';
 +    }
 +
 +  return lbp->len + chars_deleted;
 +}
 +
 +/*
 + * Like readline_internal, above, but in addition try to match the
 + * input line against relevant regular expressions and manage #line
 + * directives.
 + */
 +static void
 +readline (linebuffer *lbp, FILE *stream)
 +{
 +  long result;
 +
 +  linecharno = charno;                /* update global char number of line start */
 +  result = readline_internal (lbp, stream); /* read line */
 +  lineno += 1;                        /* increment global line number */
 +  charno += result;           /* increment global char number */
 +
 +  /* Honor #line directives. */
 +  if (!no_line_directive)
 +    {
 +      static bool discard_until_line_directive;
 +
 +      /* Check whether this is a #line directive. */
 +      if (result > 12 && strneq (lbp->buffer, "#line ", 6))
 +      {
 +        unsigned int lno;
 +        int start = 0;
 +
 +        if (sscanf (lbp->buffer, "#line %u \"%n", &lno, &start) >= 1
 +            && start > 0)     /* double quote character found */
 +          {
 +            char *endp = lbp->buffer + start;
 +
 +            while ((endp = strchr (endp, '"')) != NULL
 +                   && endp[-1] == '\\')
 +              endp++;
 +            if (endp != NULL)
 +              /* Ok, this is a real #line directive.  Let's deal with it. */
 +              {
 +                char *taggedabsname;  /* absolute name of original file */
 +                char *taggedfname;    /* name of original file as given */
 +                char *name;           /* temp var */
 +
 +                discard_until_line_directive = false; /* found it */
 +                name = lbp->buffer + start;
 +                *endp = '\0';
 +                canonicalize_filename (name);
 +                taggedabsname = absolute_filename (name, tagfiledir);
 +                if (filename_is_absolute (name)
 +                    || filename_is_absolute (curfdp->infname))
 +                  taggedfname = savestr (taggedabsname);
 +                else
 +                  taggedfname = relative_filename (taggedabsname,tagfiledir);
 +
 +                if (streq (curfdp->taggedfname, taggedfname))
 +                  /* The #line directive is only a line number change.  We
 +                     deal with this afterwards. */
 +                  free (taggedfname);
 +                else
 +                  /* The tags following this #line directive should be
 +                     attributed to taggedfname.  In order to do this, set
 +                     curfdp accordingly. */
 +                  {
 +                    fdesc *fdp; /* file description pointer */
 +
 +                    /* Go look for a file description already set up for the
 +                       file indicated in the #line directive.  If there is
 +                       one, use it from now until the next #line
 +                       directive. */
 +                    for (fdp = fdhead; fdp != NULL; fdp = fdp->next)
 +                      if (streq (fdp->infname, curfdp->infname)
 +                          && streq (fdp->taggedfname, taggedfname))
 +                        /* If we remove the second test above (after the &&)
 +                           then all entries pertaining to the same file are
 +                           coalesced in the tags file.  If we use it, then
 +                           entries pertaining to the same file but generated
 +                           from different files (via #line directives) will
 +                           go into separate sections in the tags file.  These
 +                           alternatives look equivalent.  The first one
 +                           destroys some apparently useless information. */
 +                        {
 +                          curfdp = fdp;
 +                          free (taggedfname);
 +                          break;
 +                        }
 +                    /* Else, if we already tagged the real file, skip all
 +                       input lines until the next #line directive. */
 +                    if (fdp == NULL) /* not found */
 +                      for (fdp = fdhead; fdp != NULL; fdp = fdp->next)
 +                        if (streq (fdp->infabsname, taggedabsname))
 +                          {
 +                            discard_until_line_directive = true;
 +                            free (taggedfname);
 +                            break;
 +                          }
 +                    /* Else create a new file description and use that from
 +                       now on, until the next #line directive. */
 +                    if (fdp == NULL) /* not found */
 +                      {
 +                        fdp = fdhead;
 +                        fdhead = xnew (1, fdesc);
 +                        *fdhead = *curfdp; /* copy curr. file description */
 +                        fdhead->next = fdp;
 +                        fdhead->infname = savestr (curfdp->infname);
 +                        fdhead->infabsname = savestr (curfdp->infabsname);
 +                        fdhead->infabsdir = savestr (curfdp->infabsdir);
 +                        fdhead->taggedfname = taggedfname;
 +                        fdhead->usecharno = false;
 +                        fdhead->prop = NULL;
 +                        fdhead->written = false;
 +                        curfdp = fdhead;
 +                      }
 +                  }
 +                free (taggedabsname);
 +                lineno = lno - 1;
 +                readline (lbp, stream);
 +                return;
 +              } /* if a real #line directive */
 +          } /* if #line is followed by a number */
 +      } /* if line begins with "#line " */
 +
 +      /* If we are here, no #line directive was found. */
 +      if (discard_until_line_directive)
 +      {
 +        if (result > 0)
 +          {
 +            /* Do a tail recursion on ourselves, thus discarding the contents
 +               of the line buffer. */
 +            readline (lbp, stream);
 +            return;
 +          }
 +        /* End of file. */
 +        discard_until_line_directive = false;
 +        return;
 +      }
 +    } /* if #line directives should be considered */
 +
 +  {
 +    int match;
 +    regexp *rp;
 +    char *name;
 +
 +    /* Match against relevant regexps. */
 +    if (lbp->len > 0)
 +      for (rp = p_head; rp != NULL; rp = rp->p_next)
 +      {
 +        /* Only use generic regexps or those for the current language.
 +           Also do not use multiline regexps, which is the job of
 +           regex_tag_multiline. */
 +        if ((rp->lang != NULL && rp->lang != fdhead->lang)
 +            || rp->multi_line)
 +          continue;
 +
 +        match = re_match (rp->pat, lbp->buffer, lbp->len, 0, &rp->regs);
 +        switch (match)
 +          {
 +          case -2:
 +            /* Some error. */
 +            if (!rp->error_signaled)
 +              {
 +                error ("regexp stack overflow while matching \"%s\"",
 +                       rp->pattern);
 +                rp->error_signaled = true;
 +              }
 +            break;
 +          case -1:
 +            /* No match. */
 +            break;
 +          case 0:
 +            /* Empty string matched. */
 +            if (!rp->error_signaled)
 +              {
 +                error ("regexp matches the empty string: \"%s\"", rp->pattern);
 +                rp->error_signaled = true;
 +              }
 +            break;
 +          default:
 +            /* Match occurred.  Construct a tag. */
 +            name = rp->name;
 +            if (name[0] == '\0')
 +              name = NULL;
 +            else /* make a named tag */
 +              name = substitute (lbp->buffer, rp->name, &rp->regs);
 +            if (rp->force_explicit_name)
 +              /* Force explicit tag name, if a name is there. */
 +              pfnote (name, true, lbp->buffer, match, lineno, linecharno);
 +            else
 +              make_tag (name, strlen (name), true,
 +                        lbp->buffer, match, lineno, linecharno);
 +            break;
 +          }
 +      }
 +  }
 +}
 +
 +\f
 +/*
 + * Return a pointer to a space of size strlen(cp)+1 allocated
 + * with xnew where the string CP has been copied.
 + */
 +static char *
 +savestr (const char *cp)
 +{
 +  return savenstr (cp, strlen (cp));
 +}
 +
 +/*
 + * Return a pointer to a space of size LEN+1 allocated with xnew where
 + * the string CP has been copied for at most the first LEN characters.
 + */
 +static char *
 +savenstr (const char *cp, int len)
 +{
 +  char *dp = xnew (len + 1, char);
 +  dp[len] = '\0';
 +  return memcpy (dp, cp, len);
 +}
 +
 +/* Skip spaces (end of string is not space), return new pointer. */
 +static char *
 +skip_spaces (char *cp)
 +{
 +  while (iswhite (*cp))
 +    cp++;
 +  return cp;
 +}
 +
 +/* Skip non spaces, except end of string, return new pointer. */
 +static char *
 +skip_non_spaces (char *cp)
 +{
 +  while (*cp != '\0' && !iswhite (*cp))
 +    cp++;
 +  return cp;
 +}
 +
 +/* Skip any chars in the "name" class.*/
 +static char *
 +skip_name (char *cp)
 +{
 +  /* '\0' is a notinname() so loop stops there too */
 +  while (! notinname (*cp))
 +    cp++;
 +  return cp;
 +}
 +
 +/* Print error message and exit.  */
 +void
 +fatal (const char *s1, const char *s2)
 +{
 +  error (s1, s2);
 +  exit (EXIT_FAILURE);
 +}
 +
 +static void
 +pfatal (const char *s1)
 +{
 +  perror (s1);
 +  exit (EXIT_FAILURE);
 +}
 +
 +static void
 +suggest_asking_for_help (void)
 +{
 +  fprintf (stderr, "\tTry `%s --help' for a complete list of options.\n",
 +         progname);
 +  exit (EXIT_FAILURE);
 +}
 +
 +/* Output a diagnostic with printf-style FORMAT and args.  */
 +static void
 +error (const char *format, ...)
 +{
 +  va_list ap;
 +  va_start (ap, format);
 +  fprintf (stderr, "%s: ", progname);
 +  vfprintf (stderr, format, ap);
 +  fprintf (stderr, "\n");
 +  va_end (ap);
 +}
 +
 +/* Return a newly-allocated string whose contents
 +   concatenate those of s1, s2, s3.  */
 +static char *
 +concat (const char *s1, const char *s2, const char *s3)
 +{
 +  int len1 = strlen (s1), len2 = strlen (s2), len3 = strlen (s3);
 +  char *result = xnew (len1 + len2 + len3 + 1, char);
 +
 +  strcpy (result, s1);
 +  strcpy (result + len1, s2);
 +  strcpy (result + len1 + len2, s3);
 +
 +  return result;
 +}
 +
 +\f
 +/* Does the same work as the system V getcwd, but does not need to
 +   guess the buffer size in advance. */
 +static char *
 +etags_getcwd (void)
 +{
 +  int bufsize = 200;
 +  char *path = xnew (bufsize, char);
 +
 +  while (getcwd (path, bufsize) == NULL)
 +    {
 +      if (errno != ERANGE)
 +      pfatal ("getcwd");
 +      bufsize *= 2;
 +      free (path);
 +      path = xnew (bufsize, char);
 +    }
 +
 +  canonicalize_filename (path);
 +  return path;
 +}
 +
 +/* Return a newly allocated string containing the file name of FILE
 +   relative to the absolute directory DIR (which should end with a slash). */
 +static char *
 +relative_filename (char *file, char *dir)
 +{
 +  char *fp, *dp, *afn, *res;
 +  int i;
 +
 +  /* Find the common root of file and dir (with a trailing slash). */
 +  afn = absolute_filename (file, cwd);
 +  fp = afn;
 +  dp = dir;
 +  while (*fp++ == *dp++)
 +    continue;
 +  fp--, dp--;                 /* back to the first differing char */
 +#ifdef DOS_NT
 +  if (fp == afn && afn[0] != '/') /* cannot build a relative name */
 +    return afn;
 +#endif
 +  do                          /* look at the equal chars until '/' */
 +    fp--, dp--;
 +  while (*fp != '/');
 +
 +  /* Build a sequence of "../" strings for the resulting relative file name. */
 +  i = 0;
 +  while ((dp = strchr (dp + 1, '/')) != NULL)
 +    i += 1;
 +  res = xnew (3*i + strlen (fp + 1) + 1, char);
 +  char *z = res;
 +  while (i-- > 0)
 +    z = stpcpy (z, "../");
 +
 +  /* Add the file name relative to the common root of file and dir. */
 +  strcpy (z, fp + 1);
 +  free (afn);
 +
 +  return res;
 +}
 +
 +/* Return a newly allocated string containing the absolute file name
 +   of FILE given DIR (which should end with a slash). */
 +static char *
 +absolute_filename (char *file, char *dir)
 +{
 +  char *slashp, *cp, *res;
 +
 +  if (filename_is_absolute (file))
 +    res = savestr (file);
 +#ifdef DOS_NT
 +  /* We don't support non-absolute file names with a drive
 +     letter, like `d:NAME' (it's too much hassle).  */
 +  else if (file[1] == ':')
 +    fatal ("%s: relative file names with drive letters not supported", file);
 +#endif
 +  else
 +    res = concat (dir, file, "");
 +
 +  /* Delete the "/dirname/.." and "/." substrings. */
 +  slashp = strchr (res, '/');
 +  while (slashp != NULL && slashp[0] != '\0')
 +    {
 +      if (slashp[1] == '.')
 +      {
 +        if (slashp[2] == '.'
 +            && (slashp[3] == '/' || slashp[3] == '\0'))
 +          {
 +            cp = slashp;
 +            do
 +              cp--;
 +            while (cp >= res && !filename_is_absolute (cp));
 +            if (cp < res)
 +              cp = slashp;    /* the absolute name begins with "/.." */
 +#ifdef DOS_NT
 +            /* Under MSDOS and NT we get `d:/NAME' as absolute
 +               file name, so the luser could say `d:/../NAME'.
 +               We silently treat this as `d:/NAME'.  */
 +            else if (cp[0] != '/')
 +              cp = slashp;
 +#endif
 +              memmove (cp, slashp + 3, strlen (slashp + 2));
 +            slashp = cp;
 +            continue;
 +          }
 +        else if (slashp[2] == '/' || slashp[2] == '\0')
 +          {
 +            memmove (slashp, slashp + 2, strlen (slashp + 1));
 +            continue;
 +          }
 +      }
 +
 +      slashp = strchr (slashp + 1, '/');
 +    }
 +
 +  if (res[0] == '\0')         /* just a safety net: should never happen */
 +    {
 +      free (res);
 +      return savestr ("/");
 +    }
 +  else
 +    return res;
 +}
 +
 +/* Return a newly allocated string containing the absolute
 +   file name of dir where FILE resides given DIR (which should
 +   end with a slash). */
 +static char *
 +absolute_dirname (char *file, char *dir)
 +{
 +  char *slashp, *res;
 +  char save;
 +
 +  slashp = strrchr (file, '/');
 +  if (slashp == NULL)
 +    return savestr (dir);
 +  save = slashp[1];
 +  slashp[1] = '\0';
 +  res = absolute_filename (file, dir);
 +  slashp[1] = save;
 +
 +  return res;
 +}
 +
 +/* Whether the argument string is an absolute file name.  The argument
 +   string must have been canonicalized with canonicalize_filename. */
 +static bool
 +filename_is_absolute (char *fn)
 +{
 +  return (fn[0] == '/'
 +#ifdef DOS_NT
 +        || (ISALPHA (fn[0]) && fn[1] == ':' && fn[2] == '/')
 +#endif
 +        );
 +}
 +
 +/* Downcase DOS drive letter and collapse separators into single slashes.
 +   Works in place. */
 +static void
 +canonicalize_filename (register char *fn)
 +{
 +  register char* cp;
 +  char sep = '/';
 +
 +#ifdef DOS_NT
 +  /* Canonicalize drive letter case.  */
 +# define ISUPPER(c)   isupper (CHAR (c))
 +  if (fn[0] != '\0' && fn[1] == ':' && ISUPPER (fn[0]))
 +    fn[0] = lowcase (fn[0]);
 +
 +  sep = '\\';
 +#endif
 +
 +  /* Collapse multiple separators into a single slash. */
 +  for (cp = fn; *cp != '\0'; cp++, fn++)
 +    if (*cp == sep)
 +      {
 +      *fn = '/';
 +      while (cp[1] == sep)
 +        cp++;
 +      }
 +    else
 +      *fn = *cp;
 +  *fn = '\0';
 +}
 +
 +\f
 +/* Initialize a linebuffer for use. */
 +static void
 +linebuffer_init (linebuffer *lbp)
 +{
 +  lbp->size = (DEBUG) ? 3 : 200;
 +  lbp->buffer = xnew (lbp->size, char);
 +  lbp->buffer[0] = '\0';
 +  lbp->len = 0;
 +}
 +
 +/* Set the minimum size of a string contained in a linebuffer. */
 +static void
 +linebuffer_setlen (linebuffer *lbp, int toksize)
 +{
 +  while (lbp->size <= toksize)
 +    {
 +      lbp->size *= 2;
 +      xrnew (lbp->buffer, lbp->size, char);
 +    }
 +  lbp->len = toksize;
 +}
 +
 +/* Like malloc but get fatal error if memory is exhausted. */
 +static void *
 +xmalloc (size_t size)
 +{
 +  void *result = malloc (size);
 +  if (result == NULL)
 +    fatal ("virtual memory exhausted", (char *)NULL);
 +  return result;
 +}
 +
 +static void *
 +xrealloc (void *ptr, size_t size)
 +{
 +  void *result = realloc (ptr, size);
 +  if (result == NULL)
 +    fatal ("virtual memory exhausted", (char *)NULL);
 +  return result;
 +}
 +
 +/*
 + * Local Variables:
 + * indent-tabs-mode: t
 + * tab-width: 8
 + * fill-column: 79
 + * c-font-lock-extra-types: ("FILE" "bool" "language" "linebuffer" "fdesc" "node" "regexp")
 + * c-file-style: "gnu"
 + * End:
 + */
 +
 +/* etags.c ends here */
index 9a1e0dc7ad5b3e141a75a787866d2232aa70f5e8,0000000000000000000000000000000000000000..d843f615fd8ec313d8ea70922c83e70c849c71f0
mode 100644,000000..100644
--- /dev/null
@@@ -1,96 -1,0 +1,101 @@@
-       * 2;
 +var a = 1;
 +b = 2;
 +
 +let c = 1,
 +    d = 2;
 +
 +var e = 100500,
 +    + 1;
 +
 +function test ()
 +{
 +  return /[/]/.test ('/')     // (bug#19397)
 +}
 +
 +var f = bar('/protocols/')
 +baz();
 +
 +var h = 100500
 +1;
 +
 +const i = 1,
 +      j = 2;
 +
 +var k = 1,
 +    l = [
 +      1, 2,
 +      3, 4
 +    ],
 +    m = 5;
 +
 +var n = function() {
 +  return 7;
 +},
 +    o = 8;
 +
 +foo(bar, function() {
 +  return 2;
 +});
 +
 +switch (b) {
 +case "a":
 +  2;
 +default:
 +  3;
 +}
 +
 +var p = {
 +  case: 'zzzz',
 +  default: 'donkey',
 +  tee: 'ornery'
 +};
 +
 +var evens = [e for each (e in range(0, 21))
 +               if (ed % 2 == 0)];
 +
 +!b
 +  !=b
 +  !==b
 +
 +a++
 +b +=
 +  c
 +
 +baz(`http://foo.bar/${tee}`)
 +  .qux();
 +
 +`multiline string
 +       contents
 +  are kept
 +        unchanged!`
 +
 +class A {
 +  * x() {
 +    return 1
++      * a(2);
++  }
++
++  *[Symbol.iterator]() {
++    yield "Foo";
++    yield "Bar";
 +  }
 +}
 +
 +if (true)
 +  1
 +else
 +  2
 +
 +Foobar
 +  .find()
 +  .catch((err) => {
 +    return 2;
 +  })
 +  .then((num) => {
 +    console.log(num);
 +  });
 +
 +// Local Variables:
 +// indent-tabs-mode: nil
 +// js-indent-level: 2
 +// End:
index dfd1c75a679679520ee0efc6fec7ace562c44c45,0000000000000000000000000000000000000000..585263d02a6c713ff076079947d21b3f20ae43b4
mode 100644,000000..100644
--- /dev/null
@@@ -1,418 -1,0 +1,433 @@@
 +if something_wrong?             # ruby-move-to-block-skips-heredoc
 +  ActiveSupport::Deprecation.warn(<<-eowarn)
 +  boo hoo
 +  end
 +  eowarn
 +  foo
 +
 +  foo(<<~squiggly)
 +  end
 +  squiggly
 +end
 +
 +def foo
 +  %^bar^
 +end
 +
 +# Percent literals.
 +b = %Q{This is a "string"}
 +c = %w!foo
 + bar
 + baz!
 +d = %(hello (nested) world)
 +
 +# Don't propertize percent literals inside strings.
 +"(%s, %s)" % [123, 456]
 +
 +"abc/#{def}ghi"
 +"abc\#{def}ghi"
 +
 +# Or inside comments.
 +x = # "tot %q/to"; =
 +  y = 2 / 3
 +
 +# Regexp after whitelisted method.
 +"abc".sub /b/, 'd'
 +
 +# Don't mis-match "sub" at the end of words.
 +a = asub / aslb + bsub / bslb;
 +
 +# Highlight the regexp after "if".
 +x = toto / foo if /do bar/ =~ "dobar"
 +
 +# Regexp options are highlighted.
 +
 +/foo/xi != %r{bar}mo.tee
 +
 +foo { /"tee/
 +  bar { |qux| /'fee"/ }         # bug#20026
 +}
 +
 +bar(class: XXX) do              # ruby-indent-keyword-label
 +  foo
 +end
 +bar
 +
 +foo = [1,                       # ruby-deep-indent
 +       2]
 +
 +foo = {                         # ruby-deep-indent-disabled
 +  a: b
 +}
 +
 +foo = { a: b,
 +        a1: b1
 +      }
 +
 +foo({                           # bug#16118
 +      a: b,
 +      c: d
 +    })
 +
 +bar = foo(
 +  a, [
 +    1,
 +  ],
 +  :qux => [
 +    3
 +  ])
 +
 +foo(
 +  [
 +    {
 +      a: b
 +    },
 +  ],
 +  {
 +    c: d
 +  }
 +)
 +
 +foo([{
 +       a: 2
 +     },
 +     {
 +       b: 3
 +     },
 +     4
 +    ])
 +
 +foo = [                         # ruby-deep-indent-disabled
 +  1
 +]
 +
 +foo(                            # ruby-deep-indent-disabled
 +  a
 +)
 +
 +# Multiline regexp.
 +/bars
 + tees # toots
 + nfoos/
 +
 +def test1(arg)
 +  puts "hello"
 +end
 +
 +def test2 (arg)
 +  a = "apple"
 +
 +  if a == 2
 +    puts "hello"
 +  else
 +    puts "there"
 +  end
 +
 +  if a == 2 then
 +    puts "hello"
 +  elsif a == 3
 +    puts "hello3"
 +  elsif a == 3 then
 +    puts "hello3"
 +  else
 +    puts "there"
 +  end
 +
 +  b = case a
 +      when "a"
 +        6
 +      # Support for this syntax was removed in Ruby 1.9, so we
 +      # probably don't need to handle it either.
 +      # when "b" :
 +      #   7
 +      # when "c" : 2
 +      when "d"  then 4
 +      else 5
 +      end
 +end
 +
 +# Some Cucumber code:
 +Given /toto/ do
 +  print "hello"
 +end
 +
 +# Bug#15208
 +if something == :==
 +  do_something
 +
 +  return false unless method == :+
 +  x = y + z # Bug#16609
 +
 +  a = 1 ? 2 :(
 +    2 + 3
 +  )
 +end
 +
 +# Bug#17097
 +if x == :!=
 +  something
 +end
 +
++qux :+,
++    bar,
++    :[]=,
++    bar,
++    :a
++
++b = $:
++c = ??
++
 +# Example from http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html
 +d = 4 + 5 +      # no '\' needed
 +    6 + 7
 +
 +# Example from http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html
 +e = 8 + 9   \
 +    + 10         # '\' needed
 +
 +foo = obj.bar { |m| tee(m) } +
 +      obj.qux { |m| hum(m) }
 +
 +begin
 +  foo
 +ensure
 +  bar
 +end
 +
 +# Bug#15369
 +MSG = 'Separate every 3 digits in the integer portion of a number' \
 +      'with underscores(_).'
 +
 +class C
 +  def foo
 +    self.end
 +    D.new.class
 +  end
++
++  def begin
++  end
 +end
 +
 +a = foo(j, k) -
 +    bar_tee
 +
 +while a < b do # "do" is optional
 +  foo
 +end
 +
 +desc "foo foo" \
 +     "bar bar"
 +
 +foo.
 +  bar
 +
 +# https://github.com/rails/rails/blob/17f5d8e062909f1fcae25351834d8e89967b645e/activesupport/lib/active_support/time_with_zone.rb#L206
 +foo
 +  .bar
 +
 +z = {
 +  foo: {
 +    a: "aaa",
 +    b: "bbb"
 +  }
 +}
 +
 +foo if
 +  bar
 +
++fail "stuff" \
++  unless all_fine?
++
 +if foo?
 +  bar
 +end
 +
 +method arg1,                   # bug#15594
 +       method2 arg2,
 +               arg3
 +
 +method? arg1,
 +        arg2
 +
 +method! arg1,
 +        arg2
 +
 +method !arg1,
 +       arg2
 +
 +method [],
 +       arg2
 +
 +method :foo,
 +       :bar
 +
 +method (a + b),
 +       c, :d => :e,
 +       f: g
 +
 +desc "abc",
 +     defg
 +
 +it "is a method call with block" do |asd|
 +  foo
 +end
 +
 +it("is too!") {
 +  bar
 +    .qux
 +}
 +
 +and_this_one(has) { |block, parameters|
 +  tee
 +}
 +
 +if foo &&
 +   bar
 +end
 +
 +foo +
 +  bar
 +
 +foo and
 +  bar
 +
 +foo > bar &&
 +  tee < qux
 +
 +zux do
 +  foo == bar and
 +    tee == qux
 +end
 +
 +foo ^
 +  bar
 +
 +foo_bar_tee(1, 2, 3)
 +  .qux.bar
 +  .tee
 +
 +foo do
 +  bar
 +    .tee
 +end
 +
 +def bar
 +  foo
 +    .baz
 +end
 +
 +# http://stackoverflow.com/questions/17786563/emacs-ruby-mode-if-expressions-indentation
 +tee = if foo
 +        bar
 +      else
 +        tee
 +      end
 +
 +a = b {
 +  c
 +}
 +
 +aa = bb do
 +  cc
 +end
 +
 +foo :bar do
 +  qux
 +end
 +
 +foo do |*args|
 +  tee
 +end
 +
 +bar do |&block|
 +  tee
 +end
 +
 +foo = [1, 2, 3].map do |i|
 +  i + 1
 +end
 +
 +bar.foo do
 +  bar
 +end
 +
 +bar.foo(tee) do
 +  bar
 +end
 +
 +bar.foo(tee) {
 +  bar
 +}
 +
 +bar 1 do
 +  foo 2 do
 +    tee
 +  end
 +end
 +
 +foo |
 +  bar
 +
 +def qux
 +  foo ||= begin
 +            bar
 +            tee
 +          rescue
 +            oomph
 +          end
 +end
 +
 +private def foo
 +  bar
 +end
 +
 +%^abc^
 +ddd
 +
 +qux = foo.fee ?
 +        bar :
 +        tee
 +
 +zoo.keep.bar!(
 +  {x: y,
 +   z: t})
 +
 +zoo
 +  .lose(
 +    q, p)
 +
 +a.records().map(&:b).zip(
 +  foo)
 +
 +# FIXME: This is not consistent with the example below it, but this
 +# offset only happens if the colon is at eol, which wouldn't be often.
 +# Tokenizing `bar:' as `:bar =>' would be better, but it's hard to
 +# distinguish from a variable reference inside a ternary operator.
 +foo(bar:
 +      tee)
 +
 +foo(:bar =>
 +    tee)
 +
 +{'a' => {
 +   'b' => 'c',
 +   'd' => %w(e f)
 + }
 +}
 +
 +# Bug#17050
 +
 +return render json: {
 +                errors: { base: [message] },
 +                copying: copying
 +              },
 +              status: 400
 +
 +top test(
 +      some,
 +      top,
 +      test)
 +
 +foo bar, {
 +      tee: qux
 +    }