X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/68e7476278a3dc4bd13dab63cc23bc0e671e5525..004dedd364f5944b51b61acf90c4976f9c974ba9:/lisp/longlines.el diff --git a/lisp/longlines.el b/lisp/longlines.el index 77176a5db2..387ce394f5 100644 --- a/lisp/longlines.el +++ b/lisp/longlines.el @@ -1,6 +1,6 @@ -;;; longlines.el --- automatically wrap long lines +;;; longlines.el --- automatically wrap long lines -*- coding:utf-8 -*- -;; Copyright (C) 2000, 2001, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +;; Copyright (C) 2000-2001, 2004-2011 Free Software Foundation, Inc. ;; Authors: Kai Grossjohann ;; Alex Schroeder @@ -10,10 +10,10 @@ ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; 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, or (at your option) -;; any later version. +;; 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 @@ -21,9 +21,7 @@ ;; 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. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -71,7 +69,7 @@ You can also enable the display temporarily, using the command :group 'longlines :type 'boolean) -(defcustom longlines-show-effect (propertize "|\n" 'face 'escape-glyph) +(defcustom longlines-show-effect (propertize "¶\n" 'face 'escape-glyph) "A string to display when showing hard newlines. This is used when `longlines-show-hard-newlines' is on." :group 'longlines @@ -121,6 +119,10 @@ are indicated with a symbol." (make-local-variable 'longlines-auto-wrap) (set (make-local-variable 'isearch-search-fun-function) 'longlines-search-function) + (set (make-local-variable 'replace-search-function) + 'longlines-search-forward) + (set (make-local-variable 'replace-re-search-function) + 'longlines-re-search-forward) (add-to-list 'buffer-substring-filters 'longlines-encode-string) (when longlines-wrap-follows-window-size (let ((dw (if (and (integerp longlines-wrap-follows-window-size) @@ -193,6 +195,8 @@ are indicated with a symbol." (when longlines-wrap-follows-window-size (kill-local-variable 'fill-column)) (kill-local-variable 'isearch-search-fun-function) + (kill-local-variable 'replace-search-function) + (kill-local-variable 'replace-re-search-function) (kill-local-variable 'require-final-newline) (kill-local-variable 'buffer-substring-filters) (kill-local-variable 'use-hard-newlines))) @@ -366,7 +370,7 @@ If BEG and END are nil, the point and mark are used." "Turn all newlines in the buffer into hard newlines." (longlines-decode-region (point-min) (point-max))) -(defun longlines-encode-region (beg end &optional buffer) +(defun longlines-encode-region (beg end &optional _buffer) "Replace each soft newline between BEG and END with exactly one space. Hard newlines are left intact. The optional argument BUFFER exists for compatibility with `format-alist', and is ignored." @@ -409,7 +413,7 @@ If automatic line wrapping is turned on, wrap the entire buffer." (setq longlines-auto-wrap nil) (message "Auto wrap disabled."))) -(defun longlines-after-change-function (beg end len) +(defun longlines-after-change-function (beg end _len) "Update `longlines-wrap-beg' and `longlines-wrap-end'. This is called by `after-change-functions' to keep track of the region that has changed." @@ -460,13 +464,17 @@ This is called by `window-configuration-change-hook'." 'longlines-search-backward)))) (defun longlines-search-forward (string &optional bound noerror count) - (let ((search-spaces-regexp "[ \n]+")) + (let ((search-spaces-regexp " *[ \n]")) (re-search-forward (regexp-quote string) bound noerror count))) (defun longlines-search-backward (string &optional bound noerror count) - (let ((search-spaces-regexp "[ \n]+")) + (let ((search-spaces-regexp " *[ \n]")) (re-search-backward (regexp-quote string) bound noerror count))) +(defun longlines-re-search-forward (string &optional bound noerror count) + (let ((search-spaces-regexp " *[ \n]")) + (re-search-forward string bound noerror count))) + ;; Loading and saving (defun longlines-before-revert-hook () @@ -482,7 +490,17 @@ This is called by `window-configuration-change-hook'." (list 'longlines "Automatically wrap long lines." nil nil 'longlines-encode-region t nil)) +;; Unloading + +(defun longlines-unload-function () + "Unload the longlines library." + (save-current-buffer + (dolist (buffer (buffer-list)) + (set-buffer buffer) + (longlines-mode-off))) + ;; continue standard unloading + nil) + (provide 'longlines) -;; arch-tag: 3489d225-5506-47b9-8659-d8807b77c624 ;;; longlines.el ends here