Initial Commit
[packages] / xemacs-packages / jde / lisp / jde-compat.el
1 ;;; jde-compat.el -- Integrated Development Environment for Java.
2
3 ;; Author: Paul Kinnucan <paulk@mathworks.com>
4 ;; Maintainer: Paul Kinnucan
5 ;; Keywords: java, tools
6
7 ;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004 Paul Kinnucan.
8
9 ;; GNU Emacs is free software; you can redistribute it and/or modify
10 ;; it under the terms of the GNU General Public License as published by
11 ;; the Free Software Foundation; either version 2, or (at your option)
12 ;; any later version.
13
14 ;; GNU Emacs is distributed in the hope that it will be useful,
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 ;; GNU General Public License for more details.
18
19 ;; You should have received a copy of the GNU General Public License
20 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
21 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 ;; Boston, MA 02111-1307, USA.
23
24 ;;; Commentary:
25 ;; 
26 ;; This library is intended to eliminate compiler warnings caused
27 ;; by reference to variables that are defined only in Emacs or
28 ;; only in XEmacs or in a particular version of either.
29 ;; This library is required only for compilation.
30
31 ;;; Code:
32
33
34 (defconst jde-xemacsp (string-match "XEmacs" (emacs-version))
35   "Non-nil if we are running in the XEmacs environment.")
36
37 (defconst jde-xemacs20p (and jde-xemacsp (>= emacs-major-version 20)))
38
39 (defconst jde-emacs21p (and (string-match "\\bEmacs\\b" (emacs-version))
40                             (>= emacs-major-version 21)))
41
42 ;; Define XEmacs- and Emacs-only variables 
43 ;; and functions to avoid compiler warnings.
44   (if jde-xemacsp
45       (progn
46         (defvar w32-start-process-show-window nil)
47         (defvar w32-quote-process-args nil)
48         (defvar last-nonmenu-event nil)
49         (defvar tags-table-format-hooks nil)
50         (defvar auto-insert nil)
51         (defvar message-log-max nil)
52         (defun easy-menu-create-menu (&rest args))
53         (defun define-key-after (&rest args))
54         (defun ange-ftp-ftp-name (&rest args))
55         (defun ange-ftp-get-file-entry (&rest args))
56         (defun make-overlay (beg end &optional buffer front-advance rear-advance))
57         (defun delete-overlay (overlay))
58         (defun overlay-start (overlay))
59         (defun overlay-end (overlay))
60         (defun overlay-lists ())
61         (defun event-start (ev))
62         (defun posn-point (p))
63         (defun posn-window (p))
64         (defalias 'frame-char-width 'frame-width)
65         (defalias 'frame-char-height 'frame-height))
66     (progn
67       ;; These are XEmacs-only functions
68       (defvar current-menubar nil)
69       (defvar tags-table-format-hooks nil)
70       (defvar windowed-process-io nil)
71       (unless (fboundp 'add-submenu)
72         (defun add-submenu (&rest args)))
73       (defun frame-property (&rest args))
74       (defun frame-highest-window (&rest args))
75       (defun mswindows-cygwin-to-win32-path (&rest args))
76       (defun ange-ftp-ftp-name (&rest args))
77       (defun ange-ftp-get-file-entry (&rest args))
78       (defun mswindows-cygwin-to-win32-path (&rest args))
79       (defun add-submenu (&rest args))
80       (defun add-menu (&rest args))
81       (defun easy-menu-create-keymaps (&rest args))
82       (defun locate-data-directory (&rest args))
83       (defun temp-directory (&rest args))
84       (defun extent-at (&rest args))
85       (defun make-extent (&rest args))
86       (defun set-extent-face (&rest args))
87       (defun set-extent-priority (&rest args))
88       (defun extent-property (&rest args))
89       (defun delete-extent (&rest args))
90       (defun map-extents (&rest args))
91       (defun extent-start-position (&rest args))))
92
93
94 ;; Define XEmacs- and Emacs-only variables 
95 ;; and functions to avoid compiler warnings.
96 (if (not jde-xemacsp)
97     (defun make-event (&rest args)))
98
99 (if jde-emacs21p
100     (progn
101       (defvar browse-url-new-window-p nil)
102       (defun hscroll-window-column (&rest args))))
103
104 ;; Avoid undefined function error when compiling jde-help.
105 (defun url-file-exists (&args))
106
107 ;; Required to compile jde-java-font-lock.el in versions
108 ;; of Emacs that lack the cc-fonts package.
109 (eval-when-compile
110   (if (not (fboundp 'c-make-font-lock-search-function))
111       (defun c-make-font-lock-search-function (&rest args))))
112
113 ;; From custom web page for compatibility between versions of custom:
114 (condition-case ()
115     (require 'custom)
116   (error nil))
117 (if (and (featurep 'custom) (fboundp 'custom-declare-variable))
118     nil ;; We've got what we needed
119   ;; We have the old custom-library, hack around it!
120   (defmacro defgroup (&rest args)
121     nil)
122   (defmacro defface (var values doc &rest args)
123     (` (progn
124          (defvar (, var) (quote (, var)))
125          ;; To make colors for your faces you need to set your .Xdefaults
126          ;; or set them up ahead of time in your .emacs file.
127          (make-face (, var))
128          )))
129   (defmacro defcustom (var value doc &rest args)
130     (` (defvar (, var) (, value) (, doc)))))
131
132 (provide 'jde-compat)
133
134 ;; Change History 
135
136 ;;
137 ;; $Log: jde-compat.el,v $
138 ;; Revision 1.6  2004/10/11 03:59:22  paulk
139 ;; Various updates.
140 ;;
141 ;; Revision 1.5  2004/07/01 14:04:39  jslopez
142 ;; Compatibility fix for emacs in CVS. Replaces jde-xemacsp check for boundp for
143 ;; the following variables: compilation-nomessage-regexp-alist,
144 ;; compilation-file-regexp-alist, compilation-leave-directory-regexp-alist,
145 ;; compilation-enter-directory-regexp-alist. Uses the compilation-mode without a
146 ;; parameter. The emacs in CVS does not contain the variables, or the parameter
147 ;; for compilation mode.
148 ;;
149 ;; Revision 1.4  2003/10/23 03:57:11  paulk
150 ;; Added compatibility fix for older versions of XEmacs. Thanks to Len Trigg.
151 ;;
152 ;; Revision 1.3  2003/04/01 04:05:15  paulk
153 ;; Add change log to end of file.
154 ;;
155 ;;
156
157 ;; End of jde-compat.el