Mercurial > hg > xemacs-beta
comparison tests/automated/files-tests.el @ 5766:182d01410b8d
Add mode-require-final-newline from GNU. Thanks GNU.
lisp/ChangeLog:
2013-09-15 Mats Lidell <matsl@cxemacs.org>
* files.el (mode-require-final-newline): Variable synced from
GNU. Thank you GNU. Allows modes to control final newlines.
(require-final-newline): Add action on visiting and visiting or
saving in sync with GNU.
* text-mode.el (text-mode): Use mode-require-final-newline.
man/ChangeLog:
2013-09-15 Mats Lidell <matsl@xemacs.org>
* xemacs/files.texi (Saving): New variable
mode-require-final-newline. Update info for
require-final-newline.
tests/ChangeLog:
2013-09-15 Mats Lidell <matsl@xemacs.org>
* automated/files-tests.el: New file. Test new states in
require-final-newline and new variable
mode-require-final-newline.
author | Mats Lidell <mats.lidell@cag.se> |
---|---|
date | Mon, 16 Sep 2013 00:00:12 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
5765:e88d026f3917 | 5766:182d01410b8d |
---|---|
1 ;; Copyright (C) 2013 Free Software Foundation, Inc. | |
2 | |
3 ;; Author: Mats Lidell <matsl@xemacs.org> | |
4 ;; Maintainer: | |
5 ;; Created: 2013 | |
6 ;; Keywords: tests | |
7 | |
8 ;; This file is part of XEmacs. | |
9 | |
10 ;; XEmacs is free software: you can redistribute it and/or modify it | |
11 ;; under the terms of the GNU General Public License as published by the | |
12 ;; Free Software Foundation, either version 3 of the License, or (at your | |
13 ;; option) any later version. | |
14 | |
15 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
16 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
17 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
18 ;; for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
21 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>. | |
22 | |
23 ;;; Synched up with: Not in FSF. | |
24 | |
25 ;;; Commentary: | |
26 | |
27 ;; Test tag support. | |
28 ;; See test-harness.el for instructions on how to run these tests. | |
29 | |
30 (require 'test-harness) | |
31 | |
32 ;; Require a newline on save | |
33 (let ((test-file-name (make-temp-file "files-tests")) | |
34 (require-final-newline t)) | |
35 (find-file test-file-name) | |
36 (erase-buffer) | |
37 (insert "no newline") | |
38 (Silence-Message (save-buffer 0)) | |
39 (Assert (equal (buffer-string) "no newline\n")) | |
40 (kill-buffer nil) | |
41 (delete-file test-file-name)) | |
42 | |
43 ;; Don't require a newline on save | |
44 (let ((test-file-name (make-temp-file "files-tests")) | |
45 (require-final-newline nil)) | |
46 (find-file test-file-name) | |
47 (erase-buffer) | |
48 (insert "no newline") | |
49 (Silence-Message (save-buffer 0)) | |
50 (Assert (equal (buffer-string) "no newline")) | |
51 (kill-buffer nil) | |
52 (delete-file test-file-name)) | |
53 | |
54 ;; Require a newline on visit (not on save) | |
55 ;; Answer query when saving with both no and yes. | |
56 (let ((test-file-name (make-temp-file "files-tests")) | |
57 (require-final-newline nil)) | |
58 (find-file test-file-name) | |
59 (erase-buffer) | |
60 (insert "no newline") | |
61 (Silence-Message (save-buffer 0)) | |
62 (kill-buffer nil) | |
63 (let ((require-final-newline 'visit)) | |
64 (find-file test-file-name) | |
65 (Assert (equal (buffer-string) "no newline\n")) | |
66 | |
67 ;; Answer no | |
68 (erase-buffer) | |
69 (insert "no newline") | |
70 (flet ((y-or-n-p (prompt) nil)) | |
71 (Silence-Message (save-buffer 0))) | |
72 (Assert (equal (buffer-string) "no newline")) | |
73 | |
74 ;; Answer yes | |
75 (erase-buffer) | |
76 (insert "no newline") | |
77 (flet ((y-or-n-p (prompt) t)) | |
78 (Silence-Message (save-buffer 0))) | |
79 (Assert (equal (buffer-string) "no newline\n"))) | |
80 | |
81 (kill-buffer nil) | |
82 (delete-file test-file-name)) | |
83 | |
84 ;; Require a newline on visit and save | |
85 (let ((test-file-name (make-temp-file "files-tests")) | |
86 (require-final-newline nil)) | |
87 (find-file test-file-name) | |
88 (erase-buffer) | |
89 (insert "no newline") | |
90 (Silence-Message (save-buffer 0)) | |
91 (kill-buffer nil) | |
92 (let ((require-final-newline 'visit-save)) | |
93 (find-file test-file-name) | |
94 (Assert (equal (buffer-string) "no newline\n")) | |
95 (erase-buffer) | |
96 (insert "no newline") | |
97 (Silence-Message (save-buffer 0)) | |
98 (Assert (equal (buffer-string) "no newline\n"))) | |
99 (kill-buffer nil) | |
100 (delete-file test-file-name)) | |
101 | |
102 ;; mode-require-final-newline is respected by text-mode | |
103 (let ((test-file-name (make-temp-file "files-tests")) | |
104 (require-final-newline nil) | |
105 (mode-require-final-newline t)) | |
106 (Assert (equal require-final-newline nil)) | |
107 (find-file test-file-name) | |
108 (erase-buffer) | |
109 (text-mode) | |
110 (Assert (equal require-final-newline t)) | |
111 (insert "no newline") | |
112 (Silence-Message (save-buffer 0)) | |
113 (Assert (equal (buffer-string) "no newline\n")) | |
114 (kill-buffer nil) | |
115 (delete-file test-file-name)) |