annotate lisp/cedet/ede/autoconf-edit.el @ 109379:863ed9bd7c0e

term/ns-win.el: Bind M-~ to 'ns-prev-frame (due to Matthew Dempsky; bug#5084). Remove incorrect binding for S-tab. (ns-alternatives-map): Change S-tab binding to backtab (bug#6616). * simple.el (normal-erase-is-backspace-setup-frame): Set mode on under ns.
author Adrian Robert <Adrian.B.Robert@gmail.com>
date Tue, 13 Jul 2010 13:41:49 +0300
parents 1d1d5d9bd884
children b150a06c6999
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
104496
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
1 ;;; ede/autoconf-edit.el --- Keymap for autoconf
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
2
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 105377
diff changeset
3 ;; Copyright (C) 1998, 1999, 2000, 2009, 2010 Free Software Foundation, Inc.
104496
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
4
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
5 ;; Author: Eric M. Ludlam <zappo@gnu.org>
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
6 ;; Keywords: project
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
7
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
9
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
10 ;; GNU Emacs is free software: you can redistribute it and/or modify
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
12 ;; the Free Software Foundation, either version 3 of the License, or
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
13 ;; (at your option) any later version.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
14
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
18 ;; GNU General Public License for more details.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
19
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
21 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
22
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
23 ;;; Commentary:
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
24 ;;
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
25 ;; Autoconf editing and modification support, and compatibility layer
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
26 ;; for Emacses w/out autoconf mode built in.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
27
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
28 ;;; Code:
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
29 (require 'autoconf)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
30
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
31 (defvar autoconf-new-automake-string
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
32 "dnl Process this file with autoconf to produce a configure script
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
33
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
34 AC_INIT(%s)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
35 AM_INIT_AUTOMAKE([%s], 0)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
36 AM_CONFIG_HEADER(config.h)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
37
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
38 dnl End the configure script.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
39 AC_OUTPUT(Makefile, [date > stamp-h] )\n"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
40 "This string is used to initialize a new configure.in.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
41 The default is designed to be used with automake.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
42 The first %s will be filled with the test file.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
43 The second %s will be filled with the program name.")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
44
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
45 (defun autoconf-new-program (rootdir program testfile)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
46 "Initialize a new configure.in in ROOTDIR for PROGRAM using TESTFILE.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
47 ROOTDIR is the root directory of a given autoconf controlled project.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
48 PROGRAM is the program to be configured.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
49 TESTFILE is the file used with AC_INIT.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
50 configure the initial configure script using `autoconf-new-automake-string'"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
51 (interactive "DRoot Dir: \nsProgram: \nsTest File: ")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
52 (if (bufferp rootdir)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
53 (set-buffer rootdir)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
54 (let ((cf1 (expand-file-name "configure.in" rootdir))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
55 (cf2 (expand-file-name "configure.ac" rootdir)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
56 (if (and (or (file-exists-p cf1) (file-exists-p cf2))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
57 (not (y-or-n-p (format "File %s exists. Start Over? "
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
58 (if (file-exists-p cf1)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
59 cf1 cf2)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
60 ))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
61 (error "Quit"))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
62 (find-file cf2)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
63 ;; Note, we only ask about overwrite if a string/path is specified.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
64 (erase-buffer)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
65 (insert (format autoconf-new-automake-string testfile program)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
66
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
67 (defvar autoconf-preferred-macro-order
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
68 '("AC_INIT"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
69 "AM_INIT_AUTOMAKE"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
70 "AM_CONFIG_HEADER"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
71 ;; Arg parsing
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
72 "AC_ARG_ENABLE"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
73 "AC_ARG_WITH"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
74 ;; Programs
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
75 "AC_PROG_MAKE_SET"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
76 "AC_PROG_AWK"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
77 "AC_PROG_CC"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
78 "AC_PROG_CC_C_O"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
79 "AC_PROG_CPP"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
80 "AC_PROG_CXX"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
81 "AC_PROG_CXXCPP"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
82 "AC_ISC_POSIX"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
83 "AC_PROG_F77"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
84 "AC_PROG_GCC_TRADITIONAL"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
85 "AC_PROG_INSTALL"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
86 "AC_PROG_LEX"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
87 "AC_PROG_LN_S"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
88 "AC_PROG_RANLIB"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
89 "AC_PROG_YACC"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
90 "AC_CHECK_PROG"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
91 "AC_CHECK_PROGS"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
92 "AC_PROG_LIBTOOL"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
93 ;; Libraries
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
94 "AC_CHECK_LIB"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
95 "AC_PATH_XTRA"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
96 ;; Headers
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
97 "AC_HEADER_STDC"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
98 "AC_HEADER_SYS_WAIT"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
99 "AC_HEADER_TIME"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
100 "AC_HEADERS"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
101 ;; Typedefs, structures
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
102 "AC_TYPE_PID_T"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
103 "AC_TYPE_SIGNAL"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
104 "AC_TYPE_UID_T"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
105 "AC_STRUCT_TM"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
106 ;; Compiler characteristics
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
107 "AC_CHECK_SIZEOF"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
108 "AC_C_CONST"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
109 ;; Library functions
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
110 "AC_CHECK_FUNCS"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
111 "AC_TRY_LINK"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
112 ;; System Services
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
113 ;; Other
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
114 "AM_PATH_LISPDIR"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
115 "AM_INIT_GUILE_MODULE"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
116 ;; AC_OUTPUT is always last
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
117 "AC_OUTPUT"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
118 )
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
119 "List of macros in the order that they prefer to occur in.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
120 This helps when inserting a macro which doesn't yet exist
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
121 by positioning it near other macros which may exist.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
122 From the autoconf manual:
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
123 `AC_INIT(FILE)'
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
124 checks for programs
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
125 checks for libraries
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
126 checks for header files
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
127 checks for typedefs
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
128 checks for structures
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
129 checks for compiler characteristics
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
130 checks for library functions
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
131 checks for system services
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
132 `AC_OUTPUT([FILE...])'")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
133
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
134 (defvar autoconf-multiple-macros
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
135 '("AC_ARG_ENABLE"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
136 "AC_ARG_WITH"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
137 "AC_CHECK_PROGS"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
138 "AC_CHECK_LIB"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
139 "AC_CHECK_SIZEOF"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
140 "AC_TRY_LINK"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
141 )
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
142 "Macros which appear multiple times.")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
143
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
144 (defvar autoconf-multiple-multiple-macros
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
145 '("AC_HEADERS" "AC_CHECK_FUNCS")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
146 "Macros which appear multiple times, and perform multiple queries.")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
147
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
148 (defun autoconf-in-macro (macro)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
149 "Non-nil if point is in a macro of type MACRO."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
150 (save-excursion
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
151 (beginning-of-line)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
152 (looking-at (concat "\\(A[CM]_" macro "\\|" macro "\\)"))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
153
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
154 (defun autoconf-find-last-macro (macro)
105333
51ba3b848c03 Doc/message fixes.
Glenn Morris <rgm@gnu.org>
parents: 104496
diff changeset
155 "Move to the last occurrence of MACRO in FILE, and return that point.
104496
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
156 The last macro is usually the one in which we would like to insert more
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
157 items such as CHECK_HEADERS."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
158 (let ((op (point)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
159 (goto-char (point-max))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
160 (if (re-search-backward (concat "^" (regexp-quote macro) "\\s-*\\((\\|$\\)") nil t)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
161 (progn
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
162 (beginning-of-line)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
163 (point))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
164 (goto-char op)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
165 nil)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
166
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
167 (defun autoconf-parameter-strip (param)
105333
51ba3b848c03 Doc/message fixes.
Glenn Morris <rgm@gnu.org>
parents: 104496
diff changeset
168 "Strip the parameter PARAM of whitespace and miscellaneous characters."
104496
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
169 (when (string-match "^\\s-*\\[?\\s-*" param)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
170 (setq param (substring param (match-end 0))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
171 (when (string-match "\\s-*\\]?\\s-*$" param)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
172 (setq param (substring param 0 (match-beginning 0))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
173 param)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
174
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
175 (defun autoconf-parameters-for-macro (macro)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
176 "Retrieve the parameters to MACRO.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
177 Returns a list of the arguments passed into MACRO as strings."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
178 (save-excursion
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
179 (when (autoconf-find-last-macro macro)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
180 (forward-sexp 1)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
181 (mapcar
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
182 #'autoconf-parameter-strip
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
183 (when (looking-at "(")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
184 (let* ((start (+ (point) 1))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
185 (end (save-excursion
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
186 (forward-sexp 1)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
187 (- (point) 1)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
188 (ans (buffer-substring-no-properties start end)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
189 (split-string ans "," t)))))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
190
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
191 (defun autoconf-position-for-macro (macro)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
192 "Position the cursor where a new MACRO could be inserted.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
193 This will appear at the BEGINNING of the macro MACRO should appear AFTER.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
194 This is to make it compatible with `autoconf-find-last-macro'.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
195 Assume that MACRO doesn't appear in the buffer yet, so search
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
196 the ordering list `autoconf-preferred-macro-order'."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
197 ;; Search this list backwards.. heh heh heh
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
198 ;; This lets us do a reverse search easilly.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
199 (let ((ml (member macro (reverse autoconf-preferred-macro-order))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
200 (if (not ml) (error "Don't know how to position for %s yet" macro))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
201 (setq ml (cdr ml))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
202 (goto-char (point-max))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
203 (while (and ml (not (autoconf-find-last-macro (car ml))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
204 (setq ml (cdr ml)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
205 (if (not ml) (error "Could not find context for positioning %s" macro))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
206
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
207 (defun autoconf-insert-macro-at-point (macro &optional param)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
208 "Add MACRO at the current point with PARAM."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
209 (insert macro)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
210 (if param
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
211 (progn
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
212 (insert "(" param ")")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
213 (if (< (current-column) 3) (insert " dnl")))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
214
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
215 (defun autoconf-insert-new-macro (macro &optional param)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
216 "Add a call to MACRO in the current autoconf file.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
217 Deals with macro order. See `autoconf-preferred-macro-order' and
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
218 `autoconf-multi-macros'.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
219 Optional argument PARAM is the parameter to pass to the macro as one string."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
220 (cond ((member macro autoconf-multiple-macros)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
221 ;; This occurs multiple times
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
222 (or (autoconf-find-last-macro macro)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
223 (autoconf-position-for-macro macro))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
224 (forward-sexp 2)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
225 (end-of-line)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
226 (insert "\n")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
227 (autoconf-insert-macro-at-point macro param))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
228 ((member macro autoconf-multiple-multiple-macros)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
229 (if (not param)
105333
51ba3b848c03 Doc/message fixes.
Glenn Morris <rgm@gnu.org>
parents: 104496
diff changeset
230 (error "You must have a parameter for %s" macro))
104496
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
231 (if (not (autoconf-find-last-macro macro))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
232 (progn
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
233 ;; Doesn't exist yet....
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
234 (autoconf-position-for-macro macro)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
235 (forward-sexp 2)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
236 (end-of-line)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
237 (insert "\n")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
238 (autoconf-insert-macro-at-point macro param))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
239 ;; Does exist, can we fit onto the current line?
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
240 (forward-sexp 2)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
241 (down-list -1)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
242 (if (> (+ (current-column) (length param)) fill-column)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
243 (insert " " param)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
244 (up-list 1)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
245 (end-of-line)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
246 (insert "\n")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
247 (autoconf-insert-macro-at-point macro param))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
248 ((autoconf-find-last-macro macro)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
249 ;; If it isn't one of the multi's, it's a singleton.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
250 ;; If it exists, ignore it.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
251 nil)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
252 (t
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
253 (autoconf-position-for-macro macro)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
254 (forward-sexp 1)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
255 (if (looking-at "\\s-*(")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
256 (forward-sexp 1))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
257 (end-of-line)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
258 (insert "\n")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
259 (autoconf-insert-macro-at-point macro param))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
260
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
261 (defun autoconf-find-query-for-header (header)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
262 "Position the cursor where HEADER is queried."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
263 (interactive "sHeader: ")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
264 (let ((op (point))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
265 (found t))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
266 (goto-char (point-min))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
267 (condition-case nil
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
268 (while (not
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
269 (progn
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
270 (re-search-forward
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
271 (concat "\\b" (regexp-quote header) "\\b"))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
272 (save-excursion
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
273 (beginning-of-line)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
274 (looking-at "AC_CHECK_HEADERS")))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
275 ;; We depend on the search failing to exit our loop on failure.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
276 (error (setq found nil)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
277 (if (not found) (goto-char op))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
278 found))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
279
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
280 (defun autoconf-add-query-for-header (header)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
281 "Add in HEADER to be queried for in our autoconf file."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
282 (interactive "sHeader: ")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
283 (or (autoconf-find-query-for-header header)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
284 (autoconf-insert-new-macro "AC_CHECK_HEADERS" header)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
285
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
286
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
287 (defun autoconf-find-query-for-func (func)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
288 "Position the cursor where FUNC is queried."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
289 (interactive "sFunction: ")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
290 (let ((op (point))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
291 (found t))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
292 (goto-char (point-min))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
293 (condition-case nil
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
294 (while (not
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
295 (progn
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
296 (re-search-forward
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
297 (concat "\\b" (regexp-quote func) "\\b"))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
298 (save-excursion
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
299 (beginning-of-line)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
300 (looking-at "AC_CHECK_FUNCS")))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
301 ;; We depend on the search failing to exit our loop on failure.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
302 (error (setq found nil)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
303 (if (not found) (goto-char op))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
304 found))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
305
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
306 (defun autoconf-add-query-for-func (func)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
307 "Add in FUNC to be queried for in our autoconf file."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
308 (interactive "sFunction: ")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
309 (or (autoconf-find-query-for-func func)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
310 (autoconf-insert-new-macro "AC_CHECK_FUNCS" func)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
311
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
312 (defvar autoconf-program-builtin
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
313 '(("AWK" . "AC_PROG_AWK")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
314 ("CC" . "AC_PROG_CC")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
315 ("CPP" . "AC_PROG_CPP")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
316 ("CXX" . "AC_PROG_CXX")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
317 ("CXXCPP" . "AC_PROG_CXXCPP")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
318 ("F77" . "AC_PROG_F77")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
319 ("GCC_TRADITIONAL" . "AC_PROG_GCC_TRADITIONAL")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
320 ("INSTALL" . "AC_PROG_INSTALL")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
321 ("LEX" . "AC_PROG_LEX")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
322 ("LN_S" . "AC_PROG_LN_S")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
323 ("RANLIB" . "AC_PROG_RANLIB")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
324 ("YACC" . "AC_PROG_YACC")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
325 )
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
326 "Association list of PROGRAM variables and their built-in MACRO.")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
327
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
328 (defun autoconf-find-query-for-program (prog)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
329 "Position the cursor where PROG is queried.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
330 PROG is the VARIABLE to use in autoconf to identify the program.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
331 PROG excludes the _PROG suffix. Thus if PROG were EMACS, then the
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
332 variable in configure.in would be EMACS_PROG."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
333 (let ((op (point))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
334 (found t)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
335 (builtin (assoc prog autoconf-program-builtin)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
336 (goto-char (point-min))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
337 (condition-case nil
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
338 (re-search-forward
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
339 (concat "^"
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
340 (or (cdr-safe builtin)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
341 (concat "AC_CHECK_PROG\\s-*(\\s-*" prog "_PROG"))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
342 "\\>"))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
343 (error (setq found nil)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
344 (if (not found) (goto-char op))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
345 found))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
346
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
347 (defun autoconf-add-query-for-program (prog &optional names)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
348 "Add in PROG to be queried for in our autoconf file.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
349 Optional NAMES is for non-built-in programs, and is the list
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
350 of possible names."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
351 (interactive "sProgram: ")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
352 (if (autoconf-find-query-for-program prog)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
353 nil
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
354 (let ((builtin (assoc prog autoconf-program-builtin)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
355 (if builtin
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
356 (autoconf-insert-new-macro (cdr builtin))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
357 ;; Not built in, try the params item
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
358 (autoconf-insert-new-macro "AC_CHECK_PROGS" (concat prog "," names))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
359 ))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
360
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
361 ;;; Scrappy little changes
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
362 ;;
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
363 (defvar autoconf-deleted-text nil
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
364 "Set to the last bit of text deleted during an edit.")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
365
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
366 (defvar autoconf-inserted-text nil
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
367 "Set to the last bit of text inserted during an edit.")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
368
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
369 (defmacro autoconf-edit-cycle (&rest body)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
370 "Start an edit cycle, unsetting the modified flag if there is no change.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
371 Optional argument BODY is the code to execute which edits the autoconf file."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
372 `(let ((autoconf-deleted-text nil)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
373 (autoconf-inserted-text nil)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
374 (mod (buffer-modified-p)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
375 ,@body
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
376 (if (and (not mod)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
377 (string= autoconf-deleted-text autoconf-inserted-text))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
378 (set-buffer-modified-p nil))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
379
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
380 (defun autoconf-delete-parameter (index)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
381 "Delete the INDEXth parameter from the macro starting on the current line.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
382 Leaves the cursor where a new parameter can be inserted.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
383 INDEX starts at 1."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
384 (beginning-of-line)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
385 (down-list 1)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
386 (re-search-forward ", ?" nil nil (1- index))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
387 (let ((end (save-excursion
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
388 (re-search-forward ",\\|)" (save-excursion
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
389 (end-of-line)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
390 (point)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
391 (forward-char -1)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
392 (point))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
393 (setq autoconf-deleted-text (buffer-substring (point) end))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
394 (delete-region (point) end)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
395
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
396 (defun autoconf-insert (text)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
397 "Insert TEXT."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
398 (setq autoconf-inserted-text text)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
399 (insert text))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
400
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
401 (defun autoconf-set-version (version)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
402 "Set the version used with automake to VERSION."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
403 (if (not (stringp version))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
404 (signal 'wrong-type-argument '(stringp version)))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
405 (if (not (autoconf-find-last-macro "AM_INIT_AUTOMAKE"))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
406 (error "Cannot update version")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
407 ;; Move to correct position.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
408 (autoconf-edit-cycle
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
409 (autoconf-delete-parameter 2)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
410 (autoconf-insert version))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
411
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
412 (defun autoconf-set-output (outputlist)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
413 "Set the files created in AC_OUTPUT to OUTPUTLIST.
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
414 OUTPUTLIST is a list of strings representing relative paths
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
415 to Makefiles, or other files using Autoconf substitution."
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
416 (if (not (autoconf-find-last-macro "AC_OUTPUT"))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
417 (error "Cannot update version")
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
418 (autoconf-edit-cycle
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
419 (autoconf-delete-parameter 1)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
420 (autoconf-insert (mapconcat (lambda (a) a) outputlist " ")))))
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
421
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
422 (provide 'ede/autoconf-edit)
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
423
105377
7f4c7f5c0eba Add arch tagline
Miles Bader <miles@gnu.org>
parents: 105333
diff changeset
424 ;; arch-tag: 5932c433-4fd4-4d5e-ab35-8effd95a405f
104496
8c4870c15962 * cedet/ede.el, cedet/ede/*.el: New files.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
425 ;;; ede/autoconf-edit.el ends here