Mercurial > emacs
view lisp/pcmpl-linux.el @ 67356:568e3be4fb8c
(gdb-error-regexp, gdb-first-post-prompt)
(gdb-version): New variables.
(gdb-source-file-list, gdb-register-names)
(gdb-changed-registers): New variables for use with GDB 6.4+.
(gdb-ann3): Replace with...
(gdb-init-1, gdb-init-2): ...two new functions.
(gdba, gdb-prompt): Call gdb-init-1.
(gdb-get-version): New function. Call gdb-init-2 from here.
(gud-watch): Make it work with mouse events too.
(gdb-post-prompt): Don't add to queue until GDB version is known.
(gdb-speedbar-expand-node, gdb-post-prompt, gdb-registers-mode)
(gdb-locals-mode): Use gdb-version.
(gdb-memory-format-map, gdb-memory-unit-map)
(gdb-locals-watch-map): Rename from gdb-*-*-keymap.
(gdb-locals-font-lock-keywords-1)
(gdb-locals-font-lock-keywords-2): New variables.
(gdb-find-file-hook): fgfg.
(gdb-set-gud-minor-mode-existing-buffers-1)
(gdb-var-list-children-1, gdb-var-list-children-handler-1)
(gdb-var-update-1, gdb-var-update-handler-1)
(gdb-data-list-register-values-handler)
(gdb-data-list-register-values-custom)
(gdb-get-changed-registers, gdb-get-changed-registers-handler)
(gdb-stack-list-locals-handler, gdb-get-register-names): New
functions for use with GDB 6.4+.
(gdb-locals-watch-map-1): New variable for use with GDB 6.4+.
(gdb-source-file-regexp, gdb-var-list-children-regexp-1)
(gdb-var-update-regexp-1, gdb-data-list-register-values-regexp)
(gdb-stack-list-locals-regexp)
(gdb-data-list-register-names-regexp): New regexps for use with
GDB 6.4+.
author | Nick Roberts <nickrob@snap.net.nz> |
---|---|
date | Tue, 06 Dec 2005 21:42:54 +0000 |
parents | 41bb365f41c4 |
children | 3bd95f4f2941 2d92f5c9d6ae |
line wrap: on
line source
;;; pcmpl-linux.el --- functions for dealing with GNU/Linux completions ;; Copyright (C) 1999, 2000, 2002, 2003, 2004, ;; 2005 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 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. ;;; Commentary: ;; These functions are for use with GNU/Linux. Since they depend on a ;; certain knowledge of the layout of such systems, they probably ;; won't work very well on other operating systems. ;;; Code: (provide 'pcmpl-linux) (require 'pcomplete) (defgroup pcmpl-linux nil "Functions for dealing with GNU/Linux completions." :group 'pcomplete) ;; Functions: ;;;###autoload (defun pcomplete/kill () "Completion for GNU/Linux `kill', using /proc filesystem." (if (pcomplete-match "^-\\(.*\\)" 0) (pcomplete-here (pcomplete-uniqify-list (split-string (pcomplete-process-result "kill" "-l"))) (pcomplete-match-string 1 0))) (while (pcomplete-here (if (file-directory-p "/proc") (let ((default-directory "/proc/")) (mapcar 'directory-file-name (pcomplete-entries "[0-9]+/$")))) nil 'identity))) ;;;###autoload (defun pcomplete/umount () "Completion for GNU/Linux `umount'." (pcomplete-opt "hVafrnvt(pcmpl-linux-fs-types)") (while (pcomplete-here (pcmpl-linux-mounted-directories) nil 'identity))) ;;;###autoload (defun pcomplete/mount () "Completion for GNU/Linux `mount'." (pcomplete-opt "hVanfFrsvwt(pcmpl-linux-fs-types)o?L?U?") (while (pcomplete-here (pcomplete-entries) nil 'identity))) (defun pcmpl-linux-fs-types () "Return a list of available fs modules on GNU/Linux systems." (let ((kernel-ver (pcomplete-process-result "uname" "-r"))) (mapcar (function (lambda (fsobj) (substring fsobj 0 (- (length fsobj) 2)))) (let ((default-directory (concat "/lib/modules/" kernel-ver "/fs/"))) (pcomplete-entries "\\.o$"))))) (defun pcmpl-linux-mounted-directories () "Return a list of mounted directory names." (let (points) (when (file-readable-p "/etc/mtab") (with-temp-buffer (insert-file-contents-literally "/etc/mtab") (while (not (eobp)) (let* ((line (buffer-substring (point) (line-end-position))) (args (split-string line " "))) (setq points (cons (nth 1 args) points))) (forward-line))) (pcomplete-uniqify-list points)))) (defun pcmpl-linux-mountable-directories () "Return a list of mountable directory names." (let (points) (when (file-readable-p "/etc/fstab") (with-temp-buffer (insert-file-contents-literally "/etc/fstab") (while (not (eobp)) (let* ((line (buffer-substring (point) (line-end-position))) (args (split-string line "\\s-+"))) (setq points (cons (nth 1 args) points))) (forward-line))) (pcomplete-pare-list (pcomplete-uniqify-list points) (cons "swap" (pcmpl-linux-mounted-directories)))))) ;;; arch-tag: bb0961a6-a623-463d-92c6-497c317293b1 ;;; pcmpl-linux.el ends here