]> code.delx.au - gnu-emacs/blobdiff - lisp/sort.el
Merge from emacs--rel--22
[gnu-emacs] / lisp / sort.el
index 10426fa5244a55c1679a5b0adb4985c1e79edfbc..d08e07dc4b95c7a18eb12ce2541a471cee40df51 100644 (file)
@@ -1,7 +1,7 @@
 ;;; sort.el --- commands to sort text in an Emacs buffer
 
-;; Copyright (C) 1986, 1987, 1994, 1995, 2002, 2003,
-;;   2004, 2005, 2006 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1987, 1994, 1995, 2001, 2002, 2003,
+;;   2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 ;; Author: Howie Kaye
 ;; Maintainer: FSF
@@ -9,10 +9,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 2, 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
@@ -20,9 +20,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 <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
@@ -39,6 +37,7 @@
   "*Non-nil if the buffer sort functions should ignore case."
   :group 'sort
   :type 'boolean)
+;;;###autoload(put 'sort-fold-case 'safe-local-variable 'booleanp)
 
 ;;;###autoload
 (defun sort-subr (reverse nextrecfun endrecfun
@@ -156,8 +155,10 @@ it defaults to `<', otherwise it defaults to `string<'."
   (let ((last (point-min))
        (min (point-min)) (max (point-max))
        (old-buffer (current-buffer))
+        (mb enable-multibyte-characters)
        temp-buffer)
     (with-temp-buffer
+      (set-buffer-multibyte mb)
       ;; Record the temporary buffer.
       (setq temp-buffer (current-buffer))
 
@@ -248,7 +249,7 @@ the sort order."
     (while (< i 256)
       (modify-syntax-entry i "w" table)
       (setq i (1+ i)))
-    (modify-syntax-entry ?\  " " table)
+    (modify-syntax-entry ?\s " " table)
     (modify-syntax-entry ?\t " " table)
     (modify-syntax-entry ?\n " " table)
     (modify-syntax-entry ?\. "_" table)        ; for floating pt. numbers. -wsr
@@ -258,6 +259,7 @@ the sort order."
   "*The default base used by `sort-numeric-fields'."
   :group 'sort
   :type 'integer)
+;;;###autoload(put 'sort-numeric-base 'safe-local-variable 'integerp)
 
 ;;;###autoload
 (defun sort-numeric-fields (field beg end)
@@ -505,10 +507,8 @@ Use \\[untabify] to convert tabs to spaces before sorting."
          ;; Use the sort utility if we can; it is 4 times as fast.
          ;; Do not use it if there are any non-font-lock properties
          ;; in the region, since the sort utility would lose the
-         ;; properties.
-         ;; Set the field separator to tab to have the same effect as 
-         ;; sort-columns which makes sure there are no tabs in the region
-         ;; worked.
+         ;; properties.  Tabs are used as field separator; on NetBSD,
+         ;; sort complains if "\n" is used as field separator.
          (let ((sort-args (list (if reverse "-rt\t" "-t\t")
                                 (format "-k1.%d,1.%d"
                                         (1+ col-start)
@@ -559,5 +559,5 @@ From a program takes two point or marker arguments, BEG and END."
 
 (provide 'sort)
 
-;;; arch-tag: fbac12be-2a7b-4c8a-9665-264d61f70bd9
+;; arch-tag: fbac12be-2a7b-4c8a-9665-264d61f70bd9
 ;;; sort.el ends here