;; dos-w32.el --- Functions shared among MS-DOS and W32 (NT/95) platforms
-;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005,
+;; 2006, 2007, 2008 Free Software Foundation, Inc.
;; Maintainer: Geoff Voelker <voelker@cs.washington.edu>
;; Keywords: internal
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
(setq alist (cdr alist)))
found)))
+;; Silence compiler. Defined in src/buffer.c on DOS_NT.
+(defvar default-buffer-file-type)
+
;; Don't check for untranslated file systems here.
(defun find-buffer-file-type (filename)
(let ((match (find-buffer-file-type-match filename))
(setq-default buffer-file-coding-system 'undecided-dos)
(defun find-buffer-file-type-coding-system (command)
- "Choose a coding system for a file operation.
-If COMMAND is `insert-file-contents', the coding system is chosen based
-upon the filename, the contents of `untranslated-filesystem-list' and
-`file-name-buffer-file-type-alist', and whether the file exists:
+ "Choose a coding system for a file operation in COMMAND.
+COMMAND is a list that specifies the operation, an I/O primitive, as its
+CAR, and the arguments that might be given to that operation as its CDR.
+If operation is `insert-file-contents', the coding system is chosen based
+upon the filename (the CAR of the arguments beyond the operation), the contents
+of `untranslated-filesystem-list' and `file-name-buffer-file-type-alist',
+and whether the file exists:
If it matches in `untranslated-filesystem-list':
If the file exists: `undecided'
If the file exists: `undecided'
If the file does not exist: default-buffer-file-coding-system
-If COMMAND is `write-region', the coding system is chosen based upon
+Note that the CAR of arguments to `insert-file-contents' operation could
+be a cons cell of the form \(FILENAME . BUFFER\), where BUFFER is a buffer
+into which the file's contents were already read, but not yet decoded.
+
+If operation is `write-region', the coding system is chosen based upon
the value of `buffer-file-coding-system' and `buffer-file-type'. If
`buffer-file-coding-system' is non-nil, its value is used. If it is
nil and `buffer-file-type' is t, the coding system is `no-conversion'.
(undecided nil) (undecided-unix nil))
(cond ((eq op 'insert-file-contents)
(setq target (nth 1 command))
+ ;; If TARGET is a cons cell, it has the form (FILENAME . BUFFER),
+ ;; where BUFFER is a buffer into which the file was already read,
+ ;; but its contents were not yet decoded. (This form of the
+ ;; arguments is used, e.g., in arc-mode.el.) This function
+ ;; doesn't care about the contents, it only looks at the file's
+ ;; name, which is the CAR of the cons cell.
+ (if (consp target) (setq target (car target)))
;; First check for a file name that indicates
;; it is truly binary.
(setq binary (find-buffer-file-type target))
(setq buffer-file-type (eq buffer-file-coding-system 'no-conversion)))))
;;; To set the default coding system on new files.
-(add-hook 'find-file-not-found-hooks
+(add-hook 'find-file-not-found-functions
'find-file-not-found-set-buffer-file-coding-system)
;;; To accomodate filesystems that do not require CR/LF translation.
(defvar printer-name)
+(declare-function default-printer-name "w32fns.c")
+
(defun direct-print-region-function (start end
&optional lpr-prog
delete-text buf display
(direct-print-region-helper printer start end lpr-prog
delete-text buf display rest)))
+(defvar print-region-function)
+(defvar lpr-headers-switches)
(setq print-region-function 'direct-print-region-function)
;; Set this to nil if you have a port of the `pr' program
(direct-print-region-helper printer start end lpr-prog
delete-text buf display rest)))
+(defvar ps-print-region-function)
(setq ps-print-region-function 'direct-ps-print-region-function)
;(setq ps-lpr-command "gs")
(provide 'dos-w32)
-;;; arch-tag: dcfefdd2-362f-4fbc-9141-9634f5f4d6a7
+;; arch-tag: dcfefdd2-362f-4fbc-9141-9634f5f4d6a7
;;; dos-w32.el ends here