Warning, /sdk/kde-dev-scripts/kde-emacs/kde-emacs-compat.el is written in an unsupported language. File is not indexed.
0001 ;; kde-emacs-compat.el - contains compatibility functions
0002 ;;
0003 ;; Copyright (C) 2003 Zack Rusin <zack@kde.org>
0004 ;; 2003 KDE Developlment team
0005 ;; 2003 XEmacs developers
0006 ;;
0007 ;; This program is free software; you can redistribute it and/or
0008 ;; modify it under the terms of the GNU General Public License
0009 ;; as published by the Free Software Foundation; either version 2
0010 ;; of the License, or (at your option) any later version.
0011 ;;
0012 ;; This program is distributed in the hope that it will be useful,
0013 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
0014 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0015 ;; GNU General Public License for more details.
0016 ;;
0017 ;; You should have received a copy of the GNU General Public License
0018 ;; along with this program; if not, write to the Free Software
0019 ;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
0020 ;; 02110-1301, USA.
0021
0022 (require 'kde-emacs-vars)
0023
0024 ;;GNU/Emacs does not have this one
0025 (if (not (fboundp 'replace-in-string))
0026 (defun replace-in-string (str regexp newtext &optional literal)
0027 "Replace all matches in STR for REGEXP with NEWTEXT string,
0028 and returns the new string.
0029 Optional LITERAL non-nil means do a literal replacement.
0030 Otherwise treat `\\' in NEWTEXT as special:
0031 `\\&' in NEWTEXT means substitute original matched text.
0032 `\\N' means substitute what matched the Nth `\\(...\\)'.
0033 If Nth parens didn't match, substitute nothing.
0034 `\\\\' means insert one `\\'.
0035 `\\u' means upcase the next character.
0036 `\\l' means downcase the next character.
0037 `\\U' means begin upcasing all following characters.
0038 `\\L' means begin downcasing all following characters.
0039 `\\E' means terminate the effect of any `\\U' or `\\L'."
0040 (if (> (length str) 50)
0041 (with-temp-buffer
0042 (insert str)
0043 (goto-char 1)
0044 (while (re-search-forward regexp nil t)
0045 (replace-match newtext t literal))
0046 (buffer-string))
0047 (let ((start 0) newstr)
0048 (while (string-match regexp str start)
0049 (setq newstr (replace-match newtext t literal str)
0050 start (+ (match-end 0) (- (length newstr) (length str)))
0051 str newstr))
0052 str)))
0053
0054 )
0055
0056 (if (not (fboundp 'read-shell-command))
0057 (progn
0058 (defvar read-shell-command-map
0059 (let ((map (make-sparse-keymap 'read-shell-command-map)))
0060 (if (eq kde-emacs-type 'xemacs)
0061 (set-keymap-parents map (list minibuffer-local-map))
0062 (set-keymap-parent map minibuffer-local-map))
0063 (define-key map "\t" 'comint-dynamic-complete)
0064 (define-key map "\M-\t" 'comint-dynamic-complete)
0065 (define-key map "\M-?" 'comint-dynamic-list-completions)
0066 map)
0067 "Minibuffer keymap used by `shell-command' and related commands.")
0068 (defun read-shell-command (prompt &optional initial-input history default-value)
0069 "Just like read-string, but uses read-shell-command-map:
0070 \\{read-shell-command-map}"
0071 (let ((minibuffer-completion-table nil))
0072 (read-from-minibuffer prompt initial-input read-shell-command-map
0073 nil (or history 'shell-command-history)
0074 nil default-value)))
0075 ))
0076
0077 (provide 'kde-emacs-compat)