Mercurial > emacs
comparison lisp/arc-mode.el @ 19926:09d355f9877e
Customized.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 14 Sep 1997 17:23:52 +0000 |
parents | e526918bbae8 |
children | b93ac48bafd1 |
comparison
equal
deleted
inserted
replaced
19925:31b8e0e60e2d | 19926:09d355f9877e |
---|---|
1 ;;; arc-mode.el --- simple editing of archives | 1 ;;; arc-mode.el --- simple editing of archives |
2 | 2 |
3 ;; Copyright (C) 1995 Free Software Foundation, Inc. | 3 ;; Copyright (C) 1995, 1997 Free Software Foundation, Inc. |
4 | 4 |
5 ;; Author: Morten Welinder <terra@diku.dk> | 5 ;; Author: Morten Welinder <terra@diku.dk> |
6 ;; Keywords: archives msdog editing major-mode | 6 ;; Keywords: archives msdog editing major-mode |
7 ;; Favourite-brand-of-beer: None, I hate beer. | 7 ;; Favourite-brand-of-beer: None, I hate beer. |
8 | 8 |
97 ;;; Code: | 97 ;;; Code: |
98 | 98 |
99 ;; ------------------------------------------------------------------------- | 99 ;; ------------------------------------------------------------------------- |
100 ;; Section: Configuration. | 100 ;; Section: Configuration. |
101 | 101 |
102 (defvar archive-dos-members t | 102 (defgroup archive nil |
103 "*If non-nil then recognize member files using ^M^J as line terminator.") | 103 "Simple editing of archives." |
104 | 104 :group 'data) |
105 (defvar archive-tmpdir | 105 |
106 (defgroup archive-arc nil | |
107 "ARC-specific options to archive." | |
108 :group 'archive) | |
109 | |
110 (defgroup archive-lzh nil | |
111 "LZH-specific options to archive." | |
112 :group 'archive) | |
113 | |
114 (defgroup archive-zip nil | |
115 "ZIP-specific options to archive." | |
116 :group 'archive) | |
117 | |
118 (defgroup archive-zoo nil | |
119 "ZOO-specific options to archive." | |
120 :group 'archive) | |
121 | |
122 | |
123 (defcustom archive-dos-members t | |
124 "*If non-nil then recognize member files using ^M^J as line terminator." | |
125 :type 'boolean | |
126 :group 'archive) | |
127 | |
128 (defcustom archive-tmpdir | |
106 (expand-file-name | 129 (expand-file-name |
107 (make-temp-name (if (eq system-type 'ms-dos) "ar" "archive.tmp")) | 130 (make-temp-name (if (eq system-type 'ms-dos) "ar" "archive.tmp")) |
108 (or (getenv "TMPDIR") (getenv "TMP") "/tmp")) | 131 (or (getenv "TMPDIR") (getenv "TMP") "/tmp")) |
109 "*Directory for temporary files made by arc-mode.el") | 132 "*Directory for temporary files made by arc-mode.el" |
110 | 133 :type 'directory |
111 (defvar archive-remote-regexp "^/[^/:]*[^/:.]:" | 134 :group 'archive) |
135 | |
136 (defcustom archive-remote-regexp "^/[^/:]*[^/:.]:" | |
112 "*Regexp recognizing archive files names that are not local. | 137 "*Regexp recognizing archive files names that are not local. |
113 A non-local file is one whose file name is not proper outside Emacs. | 138 A non-local file is one whose file name is not proper outside Emacs. |
114 A local copy of the archive will be used when updating.") | 139 A local copy of the archive will be used when updating." |
115 | 140 :type 'regexp |
116 (defvar archive-extract-hooks nil | 141 :group 'archive) |
117 "*Hooks to run when an archive member has been extracted.") | 142 |
143 (defcustom archive-extract-hooks nil | |
144 "*Hooks to run when an archive member has been extracted." | |
145 :type 'hook | |
146 :group 'archive) | |
118 ;; ------------------------------ | 147 ;; ------------------------------ |
119 ;; Arc archive configuration | 148 ;; Arc archive configuration |
120 | 149 |
121 ;; We always go via a local file since there seems to be no reliable way | 150 ;; We always go via a local file since there seems to be no reliable way |
122 ;; to extract to stdout without junk getting added. | 151 ;; to extract to stdout without junk getting added. |
123 (defvar archive-arc-extract | 152 (defcustom archive-arc-extract |
124 '("arc" "x") | 153 '("arc" "x") |
125 "*Program and its options to run in order to extract an arc file member. | 154 "*Program and its options to run in order to extract an arc file member. |
126 Extraction should happen to the current directory. Archive and member | 155 Extraction should happen to the current directory. Archive and member |
127 name will be added.") | 156 name will be added." |
128 | 157 :type '(list (string :tag "Program") |
129 (defvar archive-arc-expunge | 158 (repeat :tag "Options" |
159 :inline t | |
160 (string :format "%v"))) | |
161 :group 'archive-arc) | |
162 | |
163 (defcustom archive-arc-expunge | |
130 '("arc" "d") | 164 '("arc" "d") |
131 "*Program and its options to run in order to delete arc file members. | 165 "*Program and its options to run in order to delete arc file members. |
132 Archive and member names will be added.") | 166 Archive and member names will be added." |
133 | 167 :type '(list (string :tag "Program") |
134 (defvar archive-arc-write-file-member | 168 (repeat :tag "Options" |
169 :inline t | |
170 (string :format "%v"))) | |
171 :group 'archive-arc) | |
172 | |
173 (defcustom archive-arc-write-file-member | |
135 '("arc" "u") | 174 '("arc" "u") |
136 "*Program and its options to run in order to update an arc file member. | 175 "*Program and its options to run in order to update an arc file member. |
137 Archive and member name will be added.") | 176 Archive and member name will be added." |
177 :type '(list (string :tag "Program") | |
178 (repeat :tag "Options" | |
179 :inline t | |
180 (string :format "%v"))) | |
181 :group 'archive-arc) | |
138 ;; ------------------------------ | 182 ;; ------------------------------ |
139 ;; Lzh archive configuration | 183 ;; Lzh archive configuration |
140 | 184 |
141 (defvar archive-lzh-extract | 185 (defcustom archive-lzh-extract |
142 '("lha" "pq") | 186 '("lha" "pq") |
143 "*Program and its options to run in order to extract an lzh file member. | 187 "*Program and its options to run in order to extract an lzh file member. |
144 Extraction should happen to standard output. Archive and member name will | 188 Extraction should happen to standard output. Archive and member name will |
145 be added.") | 189 be added." |
146 | 190 :type '(list (string :tag "Program") |
147 (defvar archive-lzh-expunge | 191 (repeat :tag "Options" |
192 :inline t | |
193 (string :format "%v"))) | |
194 :group 'archive-lzh) | |
195 | |
196 (defcustom archive-lzh-expunge | |
148 '("lha" "d") | 197 '("lha" "d") |
149 "*Program and its options to run in order to delete lzh file members. | 198 "*Program and its options to run in order to delete lzh file members. |
150 Archive and member names will be added.") | 199 Archive and member names will be added." |
151 | 200 :type '(list (string :tag "Program") |
152 (defvar archive-lzh-write-file-member | 201 (repeat :tag "Options" |
202 :inline t | |
203 (string :format "%v"))) | |
204 :group 'archive-lzh) | |
205 | |
206 (defcustom archive-lzh-write-file-member | |
153 '("lha" "a") | 207 '("lha" "a") |
154 "*Program and its options to run in order to update an lzh file member. | 208 "*Program and its options to run in order to update an lzh file member. |
155 Archive and member name will be added.") | 209 Archive and member name will be added." |
210 :type '(list (string :tag "Program") | |
211 (repeat :tag "Options" | |
212 :inline t | |
213 (string :format "%v"))) | |
214 :group 'archive-lzh) | |
156 ;; ------------------------------ | 215 ;; ------------------------------ |
157 ;; Zip archive configuration | 216 ;; Zip archive configuration |
158 | 217 |
159 (defvar archive-zip-use-pkzip (memq system-type '(ms-dos windows-nt)) | 218 (defcustom archive-zip-use-pkzip (memq system-type '(ms-dos windows-nt)) |
160 "*If non-nil then pkzip option are used instead of zip options. | 219 "*If non-nil then pkzip option are used instead of zip options. |
161 Only set to true for msdog systems!") | 220 Only set to true for msdog systems!" |
162 | 221 :type 'boolean |
163 (defvar archive-zip-extract | 222 :group 'archive-zip) |
223 | |
224 (defcustom archive-zip-extract | |
164 (if archive-zip-use-pkzip '("pkunzip" "-e") '("unzip" "-qq" "-c")) | 225 (if archive-zip-use-pkzip '("pkunzip" "-e") '("unzip" "-qq" "-c")) |
165 "*Program and its options to run in order to extract a zip file member. | 226 "*Program and its options to run in order to extract a zip file member. |
166 Extraction should happen to standard output. Archive and member name will | 227 Extraction should happen to standard output. Archive and member name will |
167 be added. If `archive-zip-use-pkzip' is non-nil then this program is | 228 be added. If `archive-zip-use-pkzip' is non-nil then this program is |
168 expected to extract to a file junking the directory part of the name.") | 229 expected to extract to a file junking the directory part of the name." |
230 :type '(list (string :tag "Program") | |
231 (repeat :tag "Options" | |
232 :inline t | |
233 (string :format "%v"))) | |
234 :group 'archive-zip) | |
169 | 235 |
170 ;; For several reasons the latter behaviour is not desirable in general. | 236 ;; For several reasons the latter behaviour is not desirable in general. |
171 ;; (1) It uses more disk space. (2) Error checking is worse or non- | 237 ;; (1) It uses more disk space. (2) Error checking is worse or non- |
172 ;; existent. (3) It tends to do funny things with other systems' file | 238 ;; existent. (3) It tends to do funny things with other systems' file |
173 ;; names. | 239 ;; names. |
174 | 240 |
175 (defvar archive-zip-expunge | 241 (defcustom archive-zip-expunge |
176 (if archive-zip-use-pkzip '("pkzip" "-d") '("zip" "-d" "-q")) | 242 (if archive-zip-use-pkzip '("pkzip" "-d") '("zip" "-d" "-q")) |
177 "*Program and its options to run in order to delete zip file members. | 243 "*Program and its options to run in order to delete zip file members. |
178 Archive and member names will be added.") | 244 Archive and member names will be added." |
179 | 245 :type '(list (string :tag "Program") |
180 (defvar archive-zip-update | 246 (repeat :tag "Options" |
247 :inline t | |
248 (string :format "%v"))) | |
249 :group 'archive-zip) | |
250 | |
251 (defcustom archive-zip-update | |
181 (if archive-zip-use-pkzip '("pkzip" "-u") '("zip" "-q")) | 252 (if archive-zip-use-pkzip '("pkzip" "-u") '("zip" "-q")) |
182 "*Program and its options to run in order to update a zip file member. | 253 "*Program and its options to run in order to update a zip file member. |
183 Options should ensure that specified directory will be put into the zip | 254 Options should ensure that specified directory will be put into the zip |
184 file. Archive and member name will be added.") | 255 file. Archive and member name will be added." |
185 | 256 :type '(list (string :tag "Program") |
186 (defvar archive-zip-update-case | 257 (repeat :tag "Options" |
258 :inline t | |
259 (string :format "%v"))) | |
260 :group 'archive-zip) | |
261 | |
262 (defcustom archive-zip-update-case | |
187 (if archive-zip-use-pkzip archive-zip-update '("zip" "-q" "-k")) | 263 (if archive-zip-use-pkzip archive-zip-update '("zip" "-q" "-k")) |
188 "*Program and its options to run in order to update a case fiddled zip member. | 264 "*Program and its options to run in order to update a case fiddled zip member. |
189 Options should ensure that specified directory will be put into the zip file. | 265 Options should ensure that specified directory will be put into the zip file. |
190 Archive and member name will be added.") | 266 Archive and member name will be added." |
191 | 267 :type '(list (string :tag "Program") |
192 (defvar archive-zip-case-fiddle t | 268 (repeat :tag "Options" |
269 :inline t | |
270 (string :format "%v"))) | |
271 :group 'archive-zip) | |
272 | |
273 (defcustom archive-zip-case-fiddle t | |
193 "*If non-nil then zip file members are case fiddled. | 274 "*If non-nil then zip file members are case fiddled. |
194 Case fiddling will only happen for members created by a system that | 275 Case fiddling will only happen for members created by a system that |
195 uses caseless file names.") | 276 uses caseless file names." |
277 :type 'boolean | |
278 :group 'archive-zip) | |
196 ;; ------------------------------ | 279 ;; ------------------------------ |
197 ;; Zoo archive configuration | 280 ;; Zoo archive configuration |
198 | 281 |
199 (defvar archive-zoo-extract | 282 (defcustom archive-zoo-extract |
200 '("zoo" "xpq") | 283 '("zoo" "xpq") |
201 "*Program and its options to run in order to extract a zoo file member. | 284 "*Program and its options to run in order to extract a zoo file member. |
202 Extraction should happen to standard output. Archive and member name will | 285 Extraction should happen to standard output. Archive and member name will |
203 be added.") | 286 be added." |
204 | 287 :type '(list (string :tag "Program") |
205 (defvar archive-zoo-expunge | 288 (repeat :tag "Options" |
289 :inline t | |
290 (string :format "%v"))) | |
291 :group 'archive-zoo) | |
292 | |
293 (defcustom archive-zoo-expunge | |
206 '("zoo" "DqPP") | 294 '("zoo" "DqPP") |
207 "*Program and its options to run in order to delete zoo file members. | 295 "*Program and its options to run in order to delete zoo file members. |
208 Archive and member names will be added.") | 296 Archive and member names will be added." |
209 | 297 :type '(list (string :tag "Program") |
210 (defvar archive-zoo-write-file-member | 298 (repeat :tag "Options" |
299 :inline t | |
300 (string :format "%v"))) | |
301 :group 'archive-zoo) | |
302 | |
303 (defcustom archive-zoo-write-file-member | |
211 '("zoo" "a") | 304 '("zoo" "a") |
212 "*Program and its options to run in order to update a zoo file member. | 305 "*Program and its options to run in order to update a zoo file member. |
213 Archive and member name will be added.") | 306 Archive and member name will be added." |
307 :type '(list (string :tag "Program") | |
308 (repeat :tag "Options" | |
309 :inline t | |
310 (string :format "%v"))) | |
311 :group 'archive-zoo) | |
214 ;; ------------------------------------------------------------------------- | 312 ;; ------------------------------------------------------------------------- |
215 ;; Section: Variables | 313 ;; Section: Variables |
216 | 314 |
217 (defvar archive-subtype nil "*Symbol describing archive type.") | 315 (defvar archive-subtype nil "*Symbol describing archive type.") |
218 (defvar archive-file-list-start nil "*Position of first contents line.") | 316 (defvar archive-file-list-start nil "*Position of first contents line.") |