diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/gnus/gnus-setup.el | 191 | ||||
-rw-r--r-- | lisp/progmodes/cap-words.el | 98 | ||||
-rw-r--r-- | lisp/w32-common-fns.el | 134 |
3 files changed, 423 insertions, 0 deletions
diff --git a/lisp/gnus/gnus-setup.el b/lisp/gnus/gnus-setup.el new file mode 100644 index 00000000000..86b3bffcd4a --- /dev/null +++ b/lisp/gnus/gnus-setup.el @@ -0,0 +1,191 @@ +;;; gnus-setup.el --- Initialization & Setup for Gnus 5 + +;; Copyright (C) 1995-1996, 2000-2015 Free Software Foundation, Inc. + +;; Author: Steven L. Baur <steve@miranova.com> +;; Keywords: news + +;; 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: +;; My head is starting to spin with all the different mail/news packages. +;; Stop The Madness! + +;; Given that Emacs Lisp byte codes may be diverging, it is probably best +;; not to byte compile this, and just arrange to have the .el loaded out +;; of .emacs. + +;;; Code: + +(eval-when-compile (require 'cl)) + +(defvar gnus-use-installed-gnus t + "*If non-nil use installed version of Gnus.") + +(defvar gnus-use-installed-mailcrypt (featurep 'xemacs) + "*If non-nil use installed version of mailcrypt.") + +(defvar gnus-emacs-lisp-directory (if (featurep 'xemacs) + "/usr/local/lib/xemacs/" + "/usr/local/share/emacs/") + "Directory where Emacs site lisp is located.") + +(defvar gnus-gnus-lisp-directory (concat gnus-emacs-lisp-directory + "gnus/lisp/") + "Directory where Gnus Emacs lisp is found.") + +(defvar gnus-mailcrypt-lisp-directory (concat gnus-emacs-lisp-directory + "site-lisp/mailcrypt/") + "Directory where Mailcrypt Emacs Lisp is found.") + +(defvar gnus-bbdb-lisp-directory (concat gnus-emacs-lisp-directory + "site-lisp/bbdb/") + "Directory where Big Brother Database is found.") + +(defvar gnus-use-mhe nil + "Set this if you want to use MH-E for mail reading.") +(defvar gnus-use-rmail nil + "Set this if you want to use RMAIL for mail reading.") +(defvar gnus-use-sendmail nil + "Set this if you want to use SENDMAIL for mail reading.") +(defvar gnus-use-vm nil + "Set this if you want to use the VM package for mail reading.") +(defvar gnus-use-sc nil + "Set this if you want to use Supercite.") +(defvar gnus-use-mailcrypt t + "Set this if you want to use Mailcrypt for dealing with PGP messages.") +(defvar gnus-use-bbdb nil + "Set this if you want to use the Big Brother DataBase.") + +(when (and (not gnus-use-installed-gnus) + (null (member gnus-gnus-lisp-directory load-path))) + (push gnus-gnus-lisp-directory load-path)) + +;;; We can't do this until we know where Gnus is. +(require 'message) + +;;; Mailcrypt by +;;; Jin Choi <jin@atype.com> +;;; Patrick LoPresti <patl@lcs.mit.edu> + +(when gnus-use-mailcrypt + (when (and (not gnus-use-installed-mailcrypt) + (null (member gnus-mailcrypt-lisp-directory load-path))) + (setq load-path (cons gnus-mailcrypt-lisp-directory load-path))) + (autoload 'mc-install-write-mode "mailcrypt" nil t) + (autoload 'mc-install-read-mode "mailcrypt" nil t) +;;; (add-hook 'message-mode-hook 'mc-install-write-mode) +;;; (add-hook 'gnus-summary-mode-hook 'mc-install-read-mode) + (when gnus-use-mhe + (add-hook 'mh-folder-mode-hook 'mc-install-read-mode) + (add-hook 'mh-letter-mode-hook 'mc-install-write-mode))) + +;;; BBDB by +;;; Jamie Zawinski <jwz@lucid.com> + +(when gnus-use-bbdb + ;; bbdb will never be installed with emacs. + (when (null (member gnus-bbdb-lisp-directory load-path)) + (setq load-path (cons gnus-bbdb-lisp-directory load-path))) + (autoload 'bbdb "bbdb-com" + "Insidious Big Brother Database" t) + (autoload 'bbdb-name "bbdb-com" + "Insidious Big Brother Database" t) + (autoload 'bbdb-company "bbdb-com" + "Insidious Big Brother Database" t) + (autoload 'bbdb-net "bbdb-com" + "Insidious Big Brother Database" t) + (autoload 'bbdb-notes "bbdb-com" + "Insidious Big Brother Database" t) + + (when gnus-use-vm + (autoload 'bbdb-insinuate-vm "bbdb-vm" + "Hook BBDB into VM" t)) + + (when gnus-use-rmail + (autoload 'bbdb-insinuate-rmail "bbdb-rmail" + "Hook BBDB into RMAIL" t) + (add-hook 'rmail-mode-hook 'bbdb-insinuate-rmail)) + + (when gnus-use-mhe + (autoload 'bbdb-insinuate-mh "bbdb-mh" + "Hook BBDB into MH-E" t) + (add-hook 'mh-folder-mode-hook 'bbdb-insinuate-mh)) + + (autoload 'bbdb-insinuate-gnus "bbdb-gnus" + "Hook BBDB into Gnus" t) + (add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus) + + (when gnus-use-sendmail + (autoload 'bbdb-insinuate-sendmail "bbdb" + "Insidious Big Brother Database" t) + (add-hook 'mail-setup-hook 'bbdb-insinuate-sendmail) + (add-hook 'message-setup-hook 'bbdb-insinuate-sendmail))) + +(when gnus-use-sc + (add-hook 'mail-citation-hook 'sc-cite-original) + (setq message-cite-function 'sc-cite-original)) + +;;;### (autoloads (gnus gnus-slave gnus-no-server) "gnus" "lisp/gnus.el" (12473 2137)) +;;; Generated autoloads from lisp/gnus.el + +;; Don't redo this if autoloads already exist +(unless (fboundp 'gnus) + (autoload 'gnus-slave-no-server "gnus" "\ +Read network news as a slave without connecting to local server." t nil) + + (autoload 'gnus-no-server "gnus" "\ +Read network news. +If ARG is a positive number, Gnus will use that as the +startup level. If ARG is nil, Gnus will be started at level 2. +If ARG is non-nil and not a positive number, Gnus will +prompt the user for the name of an NNTP server to use. +As opposed to `gnus', this command will not connect to the local server." t nil) + + (autoload 'gnus-slave "gnus" "\ +Read news as a slave." t nil) + + (autoload 'gnus "gnus" "\ +Read network news. +If ARG is non-nil and a positive number, Gnus will use that as the +startup level. If ARG is non-nil and not a positive number, Gnus will +prompt the user for the name of an NNTP server to use." t nil) + +;;;*** + +;;; These have moved out of gnus.el into other files. +;;; FIX FIX FIX: should other things be in gnus-setup? or these not in it? + (autoload 'gnus-update-format "gnus-spec" "\ +Update the format specification near point." t nil) + + (autoload 'gnus-fetch-group "gnus-group" "\ +Start Gnus if necessary and enter GROUP. +Returns whether the fetching was successful or not." t nil) + + (defalias 'gnus-batch-kill 'gnus-batch-score) + + (autoload 'gnus-batch-score "gnus-kill" "\ +Run batched scoring. +Usage: emacs -batch -l gnus -f gnus-batch-score <newsgroups> ... +Newsgroups is a list of strings in Bnews format. If you want to score +the comp hierarchy, you'd say \"comp.all\". If you would not like to +score the alt hierarchy, you'd say \"!alt.all\"." t nil)) + +(provide 'gnus-setup) + +(run-hooks 'gnus-setup-load-hook) + +;;; gnus-setup.el ends here diff --git a/lisp/progmodes/cap-words.el b/lisp/progmodes/cap-words.el new file mode 100644 index 00000000000..94e865db62b --- /dev/null +++ b/lisp/progmodes/cap-words.el @@ -0,0 +1,98 @@ +;;; cap-words.el --- minor mode for motion in CapitalizedWordIdentifiers + +;; Copyright (C) 2002-2015 Free Software Foundation, Inc. + +;; Author: Dave Love <fx@gnu.org> +;; Keywords: languages + +;; 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: + +;; Provides Capitalized Words minor mode for word movement in +;; identifiers CapitalizedLikeThis. + +;; Note that the same effect could be obtained by frobbing the +;; category of upper case characters to produce word boundaries, but +;; the necessary processing isn't done for ASCII characters. + +;; Fixme: This doesn't work properly for mouse double clicks. + +;;; Code: + +(defun capitalized-find-word-boundary (pos limit) + "Function for use in `find-word-boundary-function-table'. +Looks for word boundaries before capitals." + (save-excursion + (goto-char pos) + (let (case-fold-search) + (if (<= pos limit) + ;; Fixme: Are these regexps the best? + (or (and (re-search-forward "\\=.\\w*[[:upper:]]" + limit t) + (progn (backward-char) + t)) + (re-search-forward "\\>" limit t)) + (or (re-search-backward "[[:upper:]]\\w*\\=" limit t) + (re-search-backward "\\<" limit t)))) + (point))) + + +(defconst capitalized-find-word-boundary-function-table + (let ((tab (make-char-table nil))) + (set-char-table-range tab t #'capitalized-find-word-boundary) + tab) + "Assigned to `find-word-boundary-function-table' in Capitalized Words mode.") + +;;;###autoload +(define-minor-mode capitalized-words-mode + "Toggle Capitalized Words mode. +With a prefix argument ARG, enable Capitalized Words mode if ARG +is positive, and disable it otherwise. If called from Lisp, +enable the mode if ARG is omitted or nil. + +Capitalized Words mode is a buffer-local minor mode. When +enabled, a word boundary occurs immediately before an uppercase +letter in a symbol. This is in addition to all the normal +boundaries given by the syntax and category tables. There is no +restriction to ASCII. + +E.g. the beginning of words in the following identifier are as marked: + + capitalizedWorDD + ^ ^ ^^ + +Note that these word boundaries only apply for word motion and +marking commands such as \\[forward-word]. This mode does not affect word +boundaries found by regexp matching (`\\>', `\\w' &c). + +This style of identifiers is common in environments like Java ones, +where underscores aren't trendy enough. Capitalization rules are +sometimes part of the language, e.g. Haskell, which may thus encourage +such a style. It is appropriate to add `capitalized-words-mode' to +the mode hook for programming language modes in which you encounter +variables like this, e.g. `java-mode-hook'. It's unlikely to cause +trouble if such identifiers aren't used. + +See also `glasses-mode' and `studlify-word'. +Obsoletes `c-forward-into-nomenclature'." + nil " Caps" nil :group 'programming + (set (make-local-variable 'find-word-boundary-function-table) + capitalized-find-word-boundary-function-table)) + +(provide 'cap-words) + +;;; cap-words.el ends here diff --git a/lisp/w32-common-fns.el b/lisp/w32-common-fns.el new file mode 100644 index 00000000000..1e4e9fe5bb1 --- /dev/null +++ b/lisp/w32-common-fns.el @@ -0,0 +1,134 @@ +;;; w32-common-fns.el --- Lisp routines for Windows and Cygwin-w32 + +;; Copyright (C) 1994, 2001-2015 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: +;;; +;;; This file contains functions that are used by both native NT Emacs +;;; and Cygwin Emacs compiled to use the native Windows widget +;;; library. + +(declare-function x-server-version "w32fns.c" (&optional terminal)) + +(defun w32-version () + "Return the MS-Windows version numbers. +The value is a list of three integers: the major and minor version +numbers, and the build number." + (x-server-version)) + +(defun w32-using-nt () + "Return non-nil if running on a Windows NT descendant. +That includes all Windows systems except for 9X/Me." + (getenv "SystemRoot")) + +(declare-function w32-get-clipboard-data "w32select.c") +(declare-function w32-set-clipboard-data "w32select.c") +(declare-function x-server-version "w32fns.c" (&optional display)) + +;;; Fix interface to (X-specific) mouse.el +(defun x-set-selection (type data) + "Make an X selection of type TYPE and value DATA. +The argument TYPE (nil means `PRIMARY') says which selection, and +DATA specifies the contents. TYPE must be a symbol. \(It can also +be a string, which stands for the symbol with that name, but this +is considered obsolete.) DATA may be a string, a symbol, an +integer (or a cons of two integers or list of two integers). + +The selection may also be a cons of two markers pointing to the same buffer, +or an overlay. In these cases, the selection is considered to be the text +between the markers *at whatever time the selection is examined*. +Thus, editing done in the buffer after you specify the selection +can alter the effective value of the selection. + +The data may also be a vector of valid non-vector selection values. + +The return value is DATA. + +Interactively, this command sets the primary selection. Without +prefix argument, it reads the selection in the minibuffer. With +prefix argument, it uses the text of the region as the selection value. + +Note that on MS-Windows, primary and secondary selections set by Emacs +are not available to other programs." + (put 'x-selections (or type 'PRIMARY) data)) + +(defun x-get-selection (&optional type _data-type) + "Return the value of an X Windows selection. +The argument TYPE (default `PRIMARY') says which selection, +and the argument DATA-TYPE (default `STRING') says +how to convert the data. + +TYPE may be any symbol \(but nil stands for `PRIMARY'). However, +only a few symbols are commonly used. They conventionally have +all upper-case names. The most often used ones, in addition to +`PRIMARY', are `SECONDARY' and `CLIPBOARD'. + +DATA-TYPE is usually `STRING', but can also be one of the symbols +in `selection-converter-alist', which see. This argument is +ignored on MS-Windows and MS-DOS." + (get 'x-selections (or type 'PRIMARY))) + +;; x-selection-owner-p is used in simple.el +(defun x-selection-owner-p (&optional selection _terminal) + "" ; placeholder for doc.c + (and (memq selection '(nil PRIMARY SECONDARY)) + (get 'x-selections (or selection 'PRIMARY)))) + +;; The "Windows" keys on newer keyboards bring up the Start menu +;; whether you want it or not - make Emacs ignore these keystrokes +;; rather than beep. +(global-set-key [lwindow] 'ignore) +(global-set-key [rwindow] 'ignore) + +(defvar w32-charset-info-alist) ; w32font.c + + +;;;; Selections + +;; We keep track of the last text selected here, so we can check the +;; current selection against it, and avoid passing back our own text +;; from x-selection-value. +(defvar x-last-selected-text nil) +(defvar x-select-enable-clipboard) + +(defun x-get-selection-value () + "Return the value of the current selection. +Consult the selection. Treat empty strings as if they were unset." + (if x-select-enable-clipboard + (let (text) + ;; Don't die if x-get-selection signals an error. + (with-demoted-errors "w32-get-clipboard-data:%s" + (setq text (w32-get-clipboard-data))) + (if (string= text "") (setq text nil)) + (cond + ((not text) nil) + ((eq text x-last-selected-text) nil) + ((string= text x-last-selected-text) + ;; Record the newer string, so subsequent calls can use the 'eq' test. + (setq x-last-selected-text text) + nil) + (t + (setq x-last-selected-text text)))))) + +(defalias 'x-selection-value 'x-get-selection-value) + +;; Arrange for the kill and yank functions to set and check the clipboard. +(setq interprogram-cut-function 'x-select-text) +(setq interprogram-paste-function 'x-get-selection-value) + +(provide 'w32-common-fns) |