annotate lisp/progmodes/autoconf.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents b10051866f51
children b47e85affa59
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 28028
diff changeset
1 ;;; autoconf.el --- mode for editing Autoconf configure.in files
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
2
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 104495
diff changeset
3 ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
64699
629afbe74e61 Update copyright for release of 22.1 for progmodes directory.
Nick Roberts <nickrob@snap.net.nz>
parents: 64085
diff changeset
4 ;; Free Software Foundation, Inc.
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
5
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
6 ;; Author: Dave Love <fx@gnu.org>
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
7 ;; Keywords: languages
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
8
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
10
94673
52b7a8c22af5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
11 ;; GNU Emacs is free software: you can redistribute it and/or modify
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
94673
52b7a8c22af5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
13 ;; the Free Software Foundation, either version 3 of the License, or
52b7a8c22af5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
14 ;; (at your option) any later version.
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
15
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
19 ;; GNU General Public License for more details.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
20
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
94673
52b7a8c22af5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
23
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
24 ;;; Commentary:
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
25
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
26 ;; Provides fairly minimal font-lock, imenu and indentation support
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
27 ;; for editing configure.in files. Only Autoconf syntax is processed.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
28 ;; There is no attempt to deal with shell text -- probably that will
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
29 ;; always lose.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
30
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
31 ;; This is specialized for configure.in files. It doesn't inherit the
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
32 ;; general M4 stuff from M4 mode.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
33
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
34 ;; There is also an autoconf-mode.el in existence. That appears to be
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
35 ;; for editing the Autoconf M4 source, rather than configure.in files.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
36
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
37 ;;; Code:
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
38
65224
87efa9b46716 (font-lock-syntactic-keywords): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64699
diff changeset
39 (defvar font-lock-syntactic-keywords)
87efa9b46716 (font-lock-syntactic-keywords): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents: 64699
diff changeset
40
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
41 (defvar autoconf-mode-map (make-sparse-keymap))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
42
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
43 (defvar autoconf-mode-hook nil
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
44 "Hook run by `autoconf-mode'.")
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
45
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
46 (defconst autoconf-definition-regexp
84368
e7118f2331c7 (autoconf-definition-regexp):
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 78234
diff changeset
47 "AC_\\(SUBST\\|DEFINE\\(_UNQUOTED\\)?\\)(\\[*\\(\\sw+\\)\\]*")
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
48
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
49 (defvar autoconf-font-lock-keywords
68747
d8d4d5dad20e (autoconf-font-lock-keywords): Check start boundary of symbols.
Masatake YAMATO <jet@gyve.org>
parents: 65224
diff changeset
50 `(("\\_<A[CHMS]_\\sw+" . font-lock-keyword-face)
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
51 (,autoconf-definition-regexp
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
52 3 font-lock-function-name-face)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
53 ;; Are any other M4 keywords really appropriate for configure.in,
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
54 ;; given that we do `dnl'?
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
55 ("changequote" . font-lock-keyword-face)))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
56
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
57 (defvar autoconf-mode-syntax-table
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
58 (let ((table (make-syntax-table)))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
59 (modify-syntax-entry ?\" "." table)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
60 (modify-syntax-entry ?\n ">" table)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
61 (modify-syntax-entry ?# "<" table)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
62 table))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
63
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
64 (defvar autoconf-imenu-generic-expression
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
65 (list (list nil autoconf-definition-regexp 3)))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
66
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
67 ;; It's not clear how best to implement this.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
68 (defun autoconf-current-defun-function ()
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
69 "Function to use for `add-log-current-defun-function' in Autoconf mode.
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
70 This version looks back for an AC_DEFINE or AC_SUBST. It will stop
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
71 searching backwards at another AC_... command."
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
72 (save-excursion
50982
5ba37a8fa075 (autoconf-current-defun-function): Copy the syntax table before modifying it.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 40538
diff changeset
73 (with-syntax-table (copy-syntax-table autoconf-mode-syntax-table)
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
74 (modify-syntax-entry ?_ "w")
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
75 (if (re-search-backward autoconf-definition-regexp
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
76 (save-excursion (beginning-of-defun) (point))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
77 t)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
78 (match-string-no-properties 3)))))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
79
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
80 ;;;###autoload
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
81 (defun autoconf-mode ()
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
82 "Major mode for editing Autoconf configure.in files."
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
83 (interactive)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
84 (kill-all-local-variables)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
85 (use-local-map autoconf-mode-map)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
86 (setq major-mode 'autoconf-mode)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
87 (setq mode-name "Autoconf")
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
88 (set-syntax-table autoconf-mode-syntax-table)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
89 (set (make-local-variable 'parens-require-spaces) nil) ; for M4 arg lists
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
90 (set (make-local-variable 'defun-prompt-regexp)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
91 "^[ \t]*A[CM]_\\(\\sw\\|\\s_\\)+")
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
92 (set (make-local-variable 'comment-start) "dnl ")
40538
4b57ae8d5508 (autoconf-mode): Fix comment-start-skip.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
93 (set (make-local-variable 'comment-start-skip) "\\(?:\\<dnl\\|#\\) +")
110305
b10051866f51 New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
94 (set (make-local-variable 'syntax-propertize-function)
b10051866f51 New syntax-propertize functionality.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
95 (syntax-propertize-rules ("\\<dnl\\>" (0 "<"))))
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
96 (set (make-local-variable 'font-lock-defaults)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
97 `(autoconf-font-lock-keywords nil nil (("_" . "w"))))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
98 (set (make-local-variable 'imenu-generic-expression)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
99 autoconf-imenu-generic-expression)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
100 (set (make-local-variable 'imenu-syntax-alist) '(("_" . "w")))
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
101 (set (make-local-variable 'indent-line-function) #'indent-relative)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
102 (set (make-local-variable 'add-log-current-defun-function)
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
103 #'autoconf-current-defun-function)
62772
f2892faa87d4 * progmodes/ada-mode.el (ada-mode):
Lute Kamstra <lute@gnu.org>
parents: 57792
diff changeset
104 (run-mode-hooks 'autoconf-mode-hook))
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
105
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
106 (provide 'autoconf-mode)
104495
4659ddbe20bf * progmodes/autoconf.el: Provide autoconf as well.
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
107 (provide 'autoconf)
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
108
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
109 ;; arch-tag: 4f44778f-2ab3-49a1-a103-f0acb9df2de4
28028
2999fcc88458 *** empty log message ***
Dave Love <fx@gnu.org>
parents:
diff changeset
110 ;;; autoconf.el ends here