view lisp/eshell/em-xtra.el @ 69860:000a5d4aa083

(rcirc-default-server): Rename from rcirc-server. (rcirc-default-port): Rename from rcirc-port. (rcirc-default-nick): Rename from rcirc-nick. (rcirc-default-user-name): Rename from rcirc-user-name. (rcirc-default-user-full-name): Rename from rcirc-user-full-name. (rcirc-low-priority-flag): New variable. (rcirc-decode-coding-system): New defcustom. (rcirc-encode-coding-system): New defcustom. (rcirc-coding-system-alist): New defcustom. (rcirc-multiline-major-mode): New defcustom. (rcirc-nick): New internal variable. (rcirc-process): Remove variable. (rcirc-server-buffer): New variable. (rcirc): Update to use rcirc-default-* variables above. (rcirc-connect): Do not add window-configuration-hook-here. (rcirc-server): New internal variable. (rcirc-connect): Do not send keepalive pings if rcirc-keepalive-seconds is nil. (with-rcirc-server-buffer): New macro. (rcirc-send-string): Encode with rcirc-encode-coding-system. (rcirc-server-name): Rename from rcirc-server. (rcirc-buffer-process): New function. (rcirc-buffer-nick): New function. (rcirc-buffer-target): Remove function. (set-rcirc-decode-coding-system, set-rcirc-encode-coding-system): New commands. (rcirc-mode-map): Change binding of C-c C-l to rcirc-toggle-low-priority. (rcirc-mode): Initialize coding system based on rcirc-coding-system-alist. New change-major-mode-hook to part the channel on a mode change. Make kill-buffer-hook buffer-local. (rcirc-change-major-mode-hook): New function. (rcirc-clean-up-buffer): Rename from rcirc-kill-buffer-hook-1. (rcirc-last-post-time): New variable. (rcirc-process-message): Store the last time user posted a message to this target. (rcirc-multiline-minor-mode): New mode. (rcirc-multiline-minor-mode-map): New mode map. (rcirc-edit-multiline): Put multiline-edit buffer in rcirc-multiline-major-mode along with rcirc-multiline-minor-mode. (rcirc-print): Any line starting with an ignored nick will be ignored. (rcirc-print): Decode using rcirc-decode-coding-system. (rcirc-track-minor-mode): Update global-mode-string when disabling this mode. (minor-mode-alist): add LowPri indicator. (rcirc-toggle-low-priority): New function. (rcirc-last-non-irc-buffer): Prefix arg now no means switch to next low priority buffer with activity. (rcirc-record-activity): Sort buffers in rcirc-activity by the last time the user posted a message in to the target. (rcirc-update-activity-string): New formatting for low priority buffers. (rcirc-split-activity): New function. (rcirc-handler-PART, rcirc-handler-KICK) (rcirc-handler-PART-or-KICK): Kick responses are printed properly. (rcirc-nick-away-alist): New variable. (rcirc-handler-301): New handler. Away messages are printed once per change.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 08 Apr 2006 10:23:24 +0000
parents 067115a6e738
children f7702c5f335d c5406394f567
line wrap: on
line source

;;; em-xtra.el --- extra alias functions

;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
;;   2005, 2006 Free Software Foundation, Inc.

;; Author: John Wiegley <johnw@gnu.org>

;; 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 2, 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; see the file COPYING.  If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.

(provide 'em-xtra)

(eval-when-compile (require 'esh-maint))

(defgroup eshell-xtra nil
  "This module defines some extra alias functions which are entirely
optional.  They can be viewed as samples for how to write Eshell alias
functions, or as aliases which make some of Emacs' behavior more
naturally accessible within Emacs."
  :tag "Extra alias functions"
  :group 'eshell-module)

;;; Commentary:

(require 'compile)

;;; Functions:

(defun eshell/expr (&rest args)
  "Implementation of expr, using the calc package."
  (if (not (fboundp 'calc-eval))
      (throw 'eshell-replace-command
	     (eshell-parse-command "*expr" (eshell-flatten-list args)))
    ;; to fool the byte-compiler...
    (let ((func 'calc-eval))
      (funcall func (eshell-flatten-and-stringify args)))))

(defun eshell/substitute (&rest args)
  "Easy front-end to `intersection', for comparing lists of strings."
  (apply 'substitute (car args) (cadr args) :test 'equal
	 (cddr args)))

(defun eshell/count (&rest args)
  "Easy front-end to `intersection', for comparing lists of strings."
  (apply 'count (car args) (cadr args) :test 'equal
	 (cddr args)))

(defun eshell/mismatch (&rest args)
  "Easy front-end to `intersection', for comparing lists of strings."
  (apply 'mismatch (car args) (cadr args) :test 'equal
	 (cddr args)))

(defun eshell/union (&rest args)
  "Easy front-end to `intersection', for comparing lists of strings."
  (apply 'union (car args) (cadr args) :test 'equal
	 (cddr args)))

(defun eshell/intersection (&rest args)
  "Easy front-end to `intersection', for comparing lists of strings."
  (apply 'intersection (car args) (cadr args) :test 'equal
	 (cddr args)))

(defun eshell/set-difference (&rest args)
  "Easy front-end to `intersection', for comparing lists of strings."
  (apply 'set-difference (car args) (cadr args) :test 'equal
	 (cddr args)))

(defun eshell/set-exclusive-or (&rest args)
  "Easy front-end to `intersection', for comparing lists of strings."
  (apply 'set-exclusive-or (car args) (cadr args) :test 'equal
	 (cddr args)))

(defalias 'eshell/ff 'find-name-dired)
(defalias 'eshell/gf 'find-grep-dired)

(defun pcomplete/bcc32 ()
  "Completion function for Borland's C++ compiler."
  (let ((cur (pcomplete-arg 0)))
    (cond
     ((string-match "\\`-w\\([^;]+;\\)*\\([^;]*\\)\\'" cur)
      (pcomplete-here
       '("ali" "amb" "amp" "asc" "asm" "aus" "bbf" "bei" "big" "ccc"
	 "cln" "cod" "com" "cpt" "csu" "def" "dig" "dpu" "dsz" "dup"
	 "eas" "eff" "ext" "hch" "hid" "ias" "ibc" "ifr" "ill" "nil"
	 "lin" "lvc" "mcs" "mes" "mpc" "mpd" "msg" "nak" "ncf" "nci"
	 "ncl" "nfd" "ngu" "nin" "nma" "nmu" "nod" "nop" "npp" "nsf"
	 "nst" "ntd" "nto" "nvf" "obi" "obs" "ofp" "osh" "ovf" "par"
	 "pch" "pck" "pia" "pin" "pow" "prc" "pre" "pro" "rch" "ret"
	 "rng" "rpt" "rvl" "sig" "spa" "stl" "stu" "stv" "sus" "tai"
	 "tes" "thr" "ucp" "use" "voi" "zdi") (match-string 2 cur)))
     ((string-match "\\`-[LIn]\\([^;]+;\\)*\\([^;]*\\)\\'" cur)
      (pcomplete-here (pcomplete-dirs) (match-string 2 cur)))
     ((string-match "\\`-[Ee]\\(.*\\)\\'" cur)
      (pcomplete-here (pcomplete-dirs-or-entries "\\.[Ee][Xx][Ee]\\'")
		      (match-string 1 cur)))
     ((string-match "\\`-o\\(.*\\)\\'" cur)
      (pcomplete-here (pcomplete-dirs-or-entries "\\.[Oo][Bb][Jj]\\'")
		      (match-string 1 cur)))
     (t
      (pcomplete-opt "3456ABCDEHIKLMNOPRSTUVXabcdefgijklnoptuvwxyz"))))
  (while (pcomplete-here
	  (pcomplete-dirs-or-entries "\\.[iCc]\\([Pp][Pp]\\)?\\'"))))

(defalias 'pcomplete/bcc 'pcomplete/bcc32)

;;; Code:

;;; arch-tag: f944cfda-a118-470c-a0d6-b41a3a5c99c7
;;; em-xtra.el ends here