Mercurial > emacs
annotate src/dosfns.c @ 107427:ecbe0edc4f69
Stop message.el from loading about 40 libraries it doesn't always need.
The general approach is to autoload rather than require, and to
require in the specific functions rather than the file. (Bug#5642)
* url/url.el: Move mailcap require earlier in the file.
* gnus/gmm-utils.el: Don't require wid-edit.
(widget-create-child-value, widget-convert, widget-default-get):
Autoload.
* gnus/gnus-util.el: Don't require time-date, netrc.
(message-fetch-field, gnus-group-name-decode): Declare rather than
autoloading.
(gnus-fetch-field): Require message.
(gnus-decode-newsgroups): Require gnus-group.
* gnus/ietf-drums.el: Don't require time-date.
* gnus/message.el: Don't require hashcash, canlock, ecomplete.
Do require mail-utils. Require nnheader only when compiling.
(smtpmail-default-smtp-server): Remove declaration.
(message-send-mail-function): Check smtpmail-default-smtp-server
is bound rather than requiring smtpmail.
(message-auto-save-directory, message-insert-signature): Use
expand-file-name rather than nnheader-concat.
(nnheader-insert-file-contents): Autoload.
(hashcash-wait-async): Declare.
(message-send-mail): Only call gnus-setup-posting-charset if
gnus-group-posting-charset-alist is bound. Require hashcash if needed.
(message-send-mail-with-sendmail): Require sendmail.
(canlock-password, canlock-password-for-verify): Declare.
(message-canlock-password): Require canlock.
(nnheader-get-report): Autoload.
(gnus-setup-posting-charset): Declare.
(message-send-news): Require gnus-msg.
(message-make-references, message-make-in-reply-to): Use mail-header-id
rather than the alias mail-header-message-id.
(ecomplete-add-item, ecomplete-save): Declare.
(message-put-addresses-in-ecomplete): Require ecomplete.
(ecomplete-display-matches): Autoload.
* gnus/mm-decode.el: Don't require mailcap, gnus-util.
(gnus-map-function, gnus-replace-in-string, gnus-read-shell-command)
(message-fetch-field, mailcap-parse-mailcaps, mailcap-mime-info):
Autoload.
(mailcap-mime-extensions): Declare.
* gnus/mm-encode.el: Don't require mailcap.
(mailcap-extension-to-mime): Autoload.
* gnus/mml-sec.el: Don't require password-cache.
* gnus/mml.el (gnus-setup-posting-charset): Declare rather than autoload.
(mailcap-parse-mimetypes, mailcap-mime-types): Declare.
(mml-minibuffer-read-type): Require mailcap.
(mml-preview): Require gnus-msg.
* gnus/mml1991.el: Require password-cache.
(password-cache-expiry): Remove declaration.
* gnus/mml2015.el: Require password-cache.
(password-cache-expiry): Remove declaration.
* gnus/nneething.el (mailcap): Require mailcap.
* gnus/nnheader.el: (declare-function): Add compatibility stub.
(message-remove-header): Declare rather than autoload.
(nnheader-replace-header): Require message.
* gnus/nnimap.el (declare-function): Add compatibility stub.
(netrc-parse, netrc-machine-user-or-password): Declare.
(nnimap-open-connection): Require netrc.
* gnus/nntp.el (declare-function): Add compatibility stub.
(netrc-parse, netrc-machine, netrc-get): Declare.
(nntp-send-authinfo): Require netrc.
* gnus/rfc2047.el: Don't require qp.
(quoted-printable-encode-region, quoted-printable-decode-string):
Autoload.
* gnus/sieve-mode.el: Don't require easymenu.
(easy-menu-add-item): Autoload it.
* gnus/spam-stat.el (time-to-number-of-days): Autoload it.
* password-cache.el (password-cache, password-cache-expiry):
Autoload.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Thu, 18 Mar 2010 19:55:37 -0700 |
parents | 1d1d5d9bd884 |
children | 84b961690802 376148b31b5e |
rev | line source |
---|---|
5503 | 1 /* MS-DOS specific Lisp utilities. Coded by Manabu Higashida, 1991. |
2 Major changes May-July 1993 Morten Welinder (only 10% original code left) | |
64770
a0d1312ede66
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64084
diff
changeset
|
3 Copyright (C) 1991, 1993, 1996, 1997, 1998, 2001, 2002, 2003, 2004, |
106815 | 4 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
5503 | 5 |
6 This file is part of GNU Emacs. | |
7 | |
94963
8971ddf55736
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
8 GNU Emacs is free software: you can redistribute it and/or modify |
5503 | 9 it under the terms of the GNU General Public License as published by |
94963
8971ddf55736
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
10 the Free Software Foundation, either version 3 of the License, or |
8971ddf55736
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
11 (at your option) any later version. |
5503 | 12 |
13 GNU Emacs is distributed in the hope that it will be useful, | |
14 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 GNU General Public License for more details. | |
17 | |
18 You should have received a copy of the GNU General Public License | |
94963
8971ddf55736
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
19 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ |
5503 | 20 |
5980 | 21 #include <config.h> |
5503 | 22 |
23 #ifdef MSDOS | |
24 /* The entire file is within this conditional */ | |
25 | |
26 #include <stdio.h> | |
25113
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
27 #include <string.h> |
5503 | 28 #include <dos.h> |
105669
68dd71358159
* alloc.c: Do not define struct catchtag.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
102838
diff
changeset
|
29 #include <setjmp.h> |
5503 | 30 #include "lisp.h" |
31 #include "buffer.h" | |
32 #include "termchar.h" | |
97653
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
33 #include "frame.h" |
5503 | 34 #include "termhooks.h" |
20034 | 35 #include "blockinput.h" |
36 #include "window.h" | |
5503 | 37 #include "dosfns.h" |
38 #include "msdos.h" | |
25113
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
39 #include "dispextern.h" |
88351
aac41b50c875
Include "character.h" instead of "charset.h".
Kenichi Handa <handa@m17n.org>
parents:
41914
diff
changeset
|
40 #include "character.h" |
34348
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
41 #include "coding.h" |
100859
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
42 #include "process.h" |
20034 | 43 #include <dpmi.h> |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
44 #include <go32.h> |
15226
31a30cc1d61a
(init_dosfns) [DJGPP >= 2]: Make `opendir' preserve
Richard M. Stallman <rms@gnu.org>
parents:
15173
diff
changeset
|
45 #include <dirent.h> |
34348
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
46 #include <sys/vfs.h> |
100859
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
47 #include <unistd.h> |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
48 #include <grp.h> |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
49 #include <crt0.h> |
5503 | 50 |
20034 | 51 #ifndef __DJGPP_MINOR__ |
52 # define __tb _go32_info_block.linear_address_of_transfer_buffer; | |
53 #endif | |
54 | |
5503 | 55 DEFUN ("int86", Fint86, Sint86, 2, 2, 0, |
99540
c5c8f07bc47c
* w32-fns.el (w32-shell-dos-semantics):
Juanma Barranquero <lekktu@gmail.com>
parents:
97653
diff
changeset
|
56 doc: /* Call specific MS-DOS interrupt number INTERRUPT with REGISTERS. |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
57 Return the updated REGISTER vector. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
58 |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
59 INTERRUPT should be an integer in the range 0 to 255. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
60 REGISTERS should be a vector produced by `make-register' and |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
61 `set-register-value'. */) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
62 (interrupt, registers) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
63 Lisp_Object interrupt, registers; |
5503 | 64 { |
65 register int i; | |
66 int no; | |
67 union REGS inregs, outregs; | |
68 Lisp_Object val; | |
69 | |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
38319
diff
changeset
|
70 CHECK_NUMBER (interrupt); |
14070
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
71 no = (unsigned long) XINT (interrupt); |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
38319
diff
changeset
|
72 CHECK_VECTOR (registers); |
45331 | 73 if (no < 0 || no > 0xff || XVECTOR (registers)-> size != 8) |
5503 | 74 return Qnil; |
75 for (i = 0; i < 8; i++) | |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
38319
diff
changeset
|
76 CHECK_NUMBER (XVECTOR (registers)->contents[i]); |
5503 | 77 |
14070
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
78 inregs.x.ax = (unsigned long) XFASTINT (XVECTOR (registers)->contents[0]); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
79 inregs.x.bx = (unsigned long) XFASTINT (XVECTOR (registers)->contents[1]); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
80 inregs.x.cx = (unsigned long) XFASTINT (XVECTOR (registers)->contents[2]); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
81 inregs.x.dx = (unsigned long) XFASTINT (XVECTOR (registers)->contents[3]); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
82 inregs.x.si = (unsigned long) XFASTINT (XVECTOR (registers)->contents[4]); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
83 inregs.x.di = (unsigned long) XFASTINT (XVECTOR (registers)->contents[5]); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
84 inregs.x.cflag = (unsigned long) XFASTINT (XVECTOR (registers)->contents[6]); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
85 inregs.x.flags = (unsigned long) XFASTINT (XVECTOR (registers)->contents[7]); |
5503 | 86 |
87 int86 (no, &inregs, &outregs); | |
88 | |
14070
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
89 XVECTOR (registers)->contents[0] = make_number (outregs.x.ax); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
90 XVECTOR (registers)->contents[1] = make_number (outregs.x.bx); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
91 XVECTOR (registers)->contents[2] = make_number (outregs.x.cx); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
92 XVECTOR (registers)->contents[3] = make_number (outregs.x.dx); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
93 XVECTOR (registers)->contents[4] = make_number (outregs.x.si); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
94 XVECTOR (registers)->contents[5] = make_number (outregs.x.di); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
95 XVECTOR (registers)->contents[6] = make_number (outregs.x.cflag); |
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
96 XVECTOR (registers)->contents[7] = make_number (outregs.x.flags); |
5503 | 97 |
14070
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
98 return registers; |
5503 | 99 } |
100 | |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
101 DEFUN ("msdos-memget", Fdos_memget, Sdos_memget, 2, 2, 0, |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
102 doc: /* Read DOS memory at offset ADDRESS into VECTOR. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
103 Return the updated VECTOR. */) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
104 (address, vector) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
105 Lisp_Object address, vector; |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
106 { |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
107 register int i; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
108 int offs, len; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
109 char *buf; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
110 Lisp_Object val; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
111 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
38319
diff
changeset
|
112 CHECK_NUMBER (address); |
14070
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
113 offs = (unsigned long) XINT (address); |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
38319
diff
changeset
|
114 CHECK_VECTOR (vector); |
14070
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
115 len = XVECTOR (vector)-> size; |
58012
934f6fb6fd8a
* dosfns.c (Fdos_memget, Fdos_memput): Use integer variable offs in
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
116 if (len < 1 || len > 2048 || offs < 0 || offs > 0xfffff - len) |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
117 return Qnil; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
118 buf = alloca (len); |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
119 dosmemget (offs, len, buf); |
45331 | 120 |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
121 for (i = 0; i < len; i++) |
14070
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
122 XVECTOR (vector)->contents[i] = make_number (buf[i]); |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
123 |
14070
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
124 return vector; |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
125 } |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
126 |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
127 DEFUN ("msdos-memput", Fdos_memput, Sdos_memput, 2, 2, 0, |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
128 doc: /* Write DOS memory at offset ADDRESS from VECTOR. */) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
129 (address, vector) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
130 Lisp_Object address, vector; |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
131 { |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
132 register int i; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
133 int offs, len; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
134 char *buf; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
135 Lisp_Object val; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
136 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
38319
diff
changeset
|
137 CHECK_NUMBER (address); |
14070
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
138 offs = (unsigned long) XINT (address); |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
38319
diff
changeset
|
139 CHECK_VECTOR (vector); |
14070
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
140 len = XVECTOR (vector)-> size; |
58012
934f6fb6fd8a
* dosfns.c (Fdos_memget, Fdos_memput): Use integer variable offs in
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
141 if (len < 1 || len > 2048 || offs < 0 || offs > 0xfffff - len) |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
142 return Qnil; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
143 buf = alloca (len); |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
144 |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
145 for (i = 0; i < len; i++) |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
146 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
38319
diff
changeset
|
147 CHECK_NUMBER (XVECTOR (vector)->contents[i]); |
14070
c74bb6ea72ab
(Fint86, Fdos_memget, Fdos_memput, Fmsdos_set_keyboard): Harmonize
Erik Naggum <erik@naggum.no>
parents:
13745
diff
changeset
|
148 buf[i] = (unsigned char) XFASTINT (XVECTOR (vector)->contents[i]) & 0xFF; |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
149 } |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
150 |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
151 dosmemput (buf, len, offs); |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
152 return Qt; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
153 } |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
154 |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
155 DEFUN ("msdos-set-keyboard", Fmsdos_set_keyboard, Smsdos_set_keyboard, 1, 2, 0, |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
156 doc: /* Set keyboard layout according to COUNTRY-CODE. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
157 If the optional argument ALLKEYS is non-nil, the keyboard is mapped for |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
158 all keys; otherwise it is only used when the ALT key is pressed. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
159 The current keyboard layout is available in dos-keyboard-code. */) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
160 (country_code, allkeys) |
58012
934f6fb6fd8a
* dosfns.c (Fdos_memget, Fdos_memput): Use integer variable offs in
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
161 Lisp_Object country_code, allkeys; |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
162 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
38319
diff
changeset
|
163 CHECK_NUMBER (country_code); |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
164 if (!dos_set_keyboard (XINT (country_code), !NILP (allkeys))) |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
165 return Qnil; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
166 return Qt; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
167 } |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
168 |
9572 | 169 #ifndef HAVE_X_WINDOWS |
170 /* Later we might want to control the mouse interface with this function, | |
171 e.g., with respect to non-80 column screen modes. */ | |
172 | |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
173 DEFUN ("msdos-mouse-p", Fmsdos_mouse_p, Smsdos_mouse_p, 0, 0, 0, |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
174 doc: /* Report whether a mouse is present. */) |
9572 | 175 () |
176 { | |
177 if (have_mouse) | |
178 return Qt; | |
179 else | |
180 return Qnil; | |
181 } | |
182 #endif | |
183 | |
12990
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
184 DEFUN ("msdos-mouse-init", Fmsdos_mouse_init, Smsdos_mouse_init, 0, 0, "", |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
185 doc: /* Initialize and enable mouse if available. */) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
186 () |
12990
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
187 { |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
188 if (have_mouse) |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
189 { |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
190 have_mouse = 1; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
191 mouse_init (); |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
192 return Qt; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
193 } |
12990
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
194 return Qnil; |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
195 } |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
196 |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
197 DEFUN ("msdos-mouse-enable", Fmsdos_mouse_enable, Smsdos_mouse_enable, 0, 0, "", |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
198 doc: /* Enable mouse if available. */) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
199 () |
12990
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
200 { |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
201 if (have_mouse) |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
202 { |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
203 have_mouse = 1; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
204 mouse_on (); |
12990
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
205 } |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
206 return have_mouse ? Qt : Qnil; |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
207 } |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
208 |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
209 DEFUN ("msdos-mouse-disable", Fmsdos_mouse_disable, Smsdos_mouse_disable, 0, 0, "", |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
210 doc: /* Disable mouse if available. */) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
211 () |
12990
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
212 { |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
213 mouse_off (); |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
214 if (have_mouse) have_mouse = -1; |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
215 return Qnil; |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
216 } |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
217 |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
218 DEFUN ("insert-startup-screen", Finsert_startup_screen, Sinsert_startup_screen, 0, 0, "", |
73685
f25200449e7b
(Finsert_startup_screen): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
68651
diff
changeset
|
219 doc: /* Insert copy of screen contents prior to starting Emacs. |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
220 Return nil if startup screen is not available. */) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
221 () |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
222 { |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
223 char *s; |
45331 | 224 int rows, cols, i, j; |
225 | |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
226 if (!dos_get_saved_screen (&s, &rows, &cols)) |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
227 return Qnil; |
45331 | 228 |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
229 for (i = 0; i < rows; i++) |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
230 { |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
231 for (j = 0; j < cols; j++) |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
232 { |
19288
bdc4b7818976
(Finsert_startup_screen): Call `insert_char' with a single argument.
Richard M. Stallman <rms@gnu.org>
parents:
16335
diff
changeset
|
233 insert_char (*s); |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
234 s += 2; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
235 } |
19288
bdc4b7818976
(Finsert_startup_screen): Call `insert_char' with a single argument.
Richard M. Stallman <rms@gnu.org>
parents:
16335
diff
changeset
|
236 insert_char ('\n'); |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
237 } |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
238 |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
239 return Qt; |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
240 } |
9572 | 241 |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
242 /* country info */ |
43713
f92c4d87863a
Change defvar_int def and vars to use EMACS_INT instead of just int.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41914
diff
changeset
|
243 EMACS_INT dos_country_code; |
f92c4d87863a
Change defvar_int def and vars to use EMACS_INT instead of just int.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41914
diff
changeset
|
244 EMACS_INT dos_codepage; |
f92c4d87863a
Change defvar_int def and vars to use EMACS_INT instead of just int.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41914
diff
changeset
|
245 EMACS_INT dos_timezone_offset; |
f92c4d87863a
Change defvar_int def and vars to use EMACS_INT instead of just int.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41914
diff
changeset
|
246 EMACS_INT dos_decimal_point; |
f92c4d87863a
Change defvar_int def and vars to use EMACS_INT instead of just int.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41914
diff
changeset
|
247 EMACS_INT dos_keyboard_layout; |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
248 unsigned char dos_country_info[DOS_COUNTRY_INFO]; |
19294
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
249 static unsigned char usa_country_info[DOS_COUNTRY_INFO] = { |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
250 0, 0, /* date format */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
251 '$', 0, 0, 0, 0, /* currency string */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
252 ',', 0, /* thousands separator */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
253 '.', 0, /* decimal separator */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
254 '/', 0, /* date separator */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
255 ':', 0, /* time separator */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
256 0, /* currency format */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
257 2, /* digits after decimal in currency */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
258 0, /* time format */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
259 0, 0, 0, 0, /* address of case map routine, GPF if used */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
260 ' ', 0, /* data-list separator (?) */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* reserved */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
262 }; |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
263 |
43713
f92c4d87863a
Change defvar_int def and vars to use EMACS_INT instead of just int.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41914
diff
changeset
|
264 EMACS_INT dos_hyper_key; |
f92c4d87863a
Change defvar_int def and vars to use EMACS_INT instead of just int.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41914
diff
changeset
|
265 EMACS_INT dos_super_key; |
f92c4d87863a
Change defvar_int def and vars to use EMACS_INT instead of just int.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41914
diff
changeset
|
266 EMACS_INT dos_keypad_mode; |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
267 |
5503 | 268 Lisp_Object Vdos_version; |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
269 Lisp_Object Vdos_display_scancodes; |
20034 | 270 |
271 #ifndef HAVE_X_WINDOWS | |
272 static unsigned dos_windows_version; | |
273 Lisp_Object Vdos_windows_version; | |
274 | |
275 char parent_vm_title[50]; /* Ralf Brown says 30 is enough */ | |
276 int w95_set_virtual_machine_title (const char *); | |
277 | |
278 void | |
279 restore_parent_vm_title (void) | |
280 { | |
281 if (NILP (Vdos_windows_version)) | |
282 return; | |
283 if ((dos_windows_version & 0xff) >= 4 && parent_vm_title[0]) | |
284 w95_set_virtual_machine_title (parent_vm_title); | |
285 delay (50); | |
286 } | |
287 #endif /* !HAVE_X_WINDOWS */ | |
45331 | 288 |
5503 | 289 void |
290 init_dosfns () | |
291 { | |
292 union REGS regs; | |
293 _go32_dpmi_registers dpmiregs; | |
19294
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
294 unsigned long xbuf = _go32_info_block.linear_address_of_transfer_buffer; |
5503 | 295 |
9572 | 296 #ifndef SYSTEM_MALLOC |
5503 | 297 get_lim_data (); /* why the hell isn't this called elsewhere? */ |
9572 | 298 #endif |
5503 | 299 |
300 regs.x.ax = 0x3000; | |
301 intdos (®s, ®s); | |
302 Vdos_version = Fcons (make_number (regs.h.al), make_number (regs.h.ah)); | |
303 | |
19294
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
304 /* Obtain the country code via DPMI, use DJGPP transfer buffer. */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
305 dpmiregs.x.ax = 0x3800; |
21430
b6b154ad6e22
(init_dosfns): Fix bug in passing segment address of the transfer buffer.
Eli Zaretskii <eliz@gnu.org>
parents:
20034
diff
changeset
|
306 dpmiregs.x.ds = xbuf >> 4; |
19294
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
307 dpmiregs.x.dx = 0; |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
308 dpmiregs.x.ss = dpmiregs.x.sp = dpmiregs.x.flags = 0; |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
309 _go32_dpmi_simulate_int (0x21, &dpmiregs); |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
310 if (dpmiregs.x.flags & 1) |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
311 { |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
312 dos_country_code = 1; /* assume USA if 213800 failed */ |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
313 memcpy (dos_country_info, usa_country_info, DOS_COUNTRY_INFO); |
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
314 } |
5503 | 315 else |
316 { | |
317 dos_country_code = dpmiregs.x.bx; | |
19294
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
318 dosmemget (xbuf, DOS_COUNTRY_INFO, dos_country_info); |
5503 | 319 } |
19294
1f8ca0c4836f
(init_dosfns): Avoid calling DOS memory-allocation
Richard M. Stallman <rms@gnu.org>
parents:
19288
diff
changeset
|
320 |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
321 dos_set_keyboard (dos_country_code, 0); |
5503 | 322 |
323 regs.x.ax = 0x6601; | |
324 intdos (®s, ®s); | |
325 if (regs.x.cflag) | |
326 /* Estimate code page from country code */ | |
45331 | 327 switch (dos_country_code) |
5503 | 328 { |
329 case 45: /* Denmark */ | |
330 case 47: /* Norway */ | |
331 dos_codepage = 865; | |
332 break; | |
333 default: | |
334 /* US */ | |
335 dos_codepage = 437; | |
336 } | |
337 else | |
338 dos_codepage = regs.x.bx & 0xffff; | |
15226
31a30cc1d61a
(init_dosfns) [DJGPP >= 2]: Make `opendir' preserve
Richard M. Stallman <rms@gnu.org>
parents:
15173
diff
changeset
|
339 |
20034 | 340 #ifndef HAVE_X_WINDOWS |
341 parent_vm_title[0] = '\0'; | |
342 | |
343 /* If we are running from DOS box on MS-Windows, get Windows version. */ | |
344 dpmiregs.x.ax = 0x1600; /* enhanced mode installation check */ | |
345 dpmiregs.x.ss = dpmiregs.x.sp = dpmiregs.x.flags = 0; | |
346 _go32_dpmi_simulate_int (0x2f, &dpmiregs); | |
347 /* We only support Windows-specific features when we run on Windows 9X | |
348 or on Windows 3.X/enhanced mode. | |
349 | |
350 Int 2Fh/AX=1600h returns: | |
351 | |
352 AL = 00: no Windows at all; | |
353 AL = 01: Windows/386 2.x; | |
354 AL = 80h: Windows 3.x in mode other than enhanced; | |
355 AL = FFh: Windows/386 2.x | |
356 | |
357 We also check AH > 0 (Windows 3.1 or later), in case AL tricks us. */ | |
358 if (dpmiregs.h.al > 2 && dpmiregs.h.al != 0x80 && dpmiregs.h.al != 0xff | |
359 && (dpmiregs.h.al > 3 || dpmiregs.h.ah > 0)) | |
360 { | |
361 dos_windows_version = dpmiregs.x.ax; | |
362 Vdos_windows_version = | |
363 Fcons (make_number (dpmiregs.h.al), make_number (dpmiregs.h.ah)); | |
364 | |
365 /* Save the current title of this virtual machine, so we can restore | |
366 it before exiting. Otherwise, Windows 95 will continue to use | |
367 the title we set even after we are history, stupido... */ | |
368 if (dpmiregs.h.al >= 4) | |
369 { | |
370 dpmiregs.x.ax = 0x168e; | |
371 dpmiregs.x.dx = 3; /* get VM title */ | |
372 dpmiregs.x.cx = sizeof(parent_vm_title) - 1; | |
373 dpmiregs.x.es = __tb >> 4; | |
374 dpmiregs.x.di = __tb & 15; | |
375 dpmiregs.x.sp = dpmiregs.x.ss = dpmiregs.x.flags = 0; | |
376 _go32_dpmi_simulate_int (0x2f, &dpmiregs); | |
377 if (dpmiregs.x.ax == 1) | |
378 dosmemget (__tb, sizeof(parent_vm_title), parent_vm_title); | |
379 } | |
380 } | |
381 else | |
382 { | |
383 dos_windows_version = 0; | |
384 Vdos_windows_version = Qnil; | |
385 } | |
386 #endif /* !HAVE_X_WINDOWS */ | |
387 | |
15226
31a30cc1d61a
(init_dosfns) [DJGPP >= 2]: Make `opendir' preserve
Richard M. Stallman <rms@gnu.org>
parents:
15173
diff
changeset
|
388 #if __DJGPP__ >= 2 |
31a30cc1d61a
(init_dosfns) [DJGPP >= 2]: Make `opendir' preserve
Richard M. Stallman <rms@gnu.org>
parents:
15173
diff
changeset
|
389 |
16335
6cf0a8b5c895
(init_dosfns): When setting `__opendir_flags' value,
Richard M. Stallman <rms@gnu.org>
parents:
15393
diff
changeset
|
390 /* Without this, we never see hidden files. |
6cf0a8b5c895
(init_dosfns): When setting `__opendir_flags' value,
Richard M. Stallman <rms@gnu.org>
parents:
15393
diff
changeset
|
391 Don't OR it with the previous value, so the value recorded at dump |
6cf0a8b5c895
(init_dosfns): When setting `__opendir_flags' value,
Richard M. Stallman <rms@gnu.org>
parents:
15393
diff
changeset
|
392 time, possibly with `preserve-case' flags set, won't get through. */ |
6cf0a8b5c895
(init_dosfns): When setting `__opendir_flags' value,
Richard M. Stallman <rms@gnu.org>
parents:
15393
diff
changeset
|
393 __opendir_flags = __OPENDIR_FIND_HIDDEN; |
15226
31a30cc1d61a
(init_dosfns) [DJGPP >= 2]: Make `opendir' preserve
Richard M. Stallman <rms@gnu.org>
parents:
15173
diff
changeset
|
394 |
16335
6cf0a8b5c895
(init_dosfns): When setting `__opendir_flags' value,
Richard M. Stallman <rms@gnu.org>
parents:
15393
diff
changeset
|
395 #if __DJGPP_MINOR__ == 0 |
6cf0a8b5c895
(init_dosfns): When setting `__opendir_flags' value,
Richard M. Stallman <rms@gnu.org>
parents:
15393
diff
changeset
|
396 /* Under LFN, preserve the case of files as recorded in the directory |
6cf0a8b5c895
(init_dosfns): When setting `__opendir_flags' value,
Richard M. Stallman <rms@gnu.org>
parents:
15393
diff
changeset
|
397 (in DJGPP 2.01 and later this is automagically done by the library). */ |
15226
31a30cc1d61a
(init_dosfns) [DJGPP >= 2]: Make `opendir' preserve
Richard M. Stallman <rms@gnu.org>
parents:
15173
diff
changeset
|
398 if (!NILP (Fmsdos_long_file_names ())) |
31a30cc1d61a
(init_dosfns) [DJGPP >= 2]: Make `opendir' preserve
Richard M. Stallman <rms@gnu.org>
parents:
15173
diff
changeset
|
399 __opendir_flags |= __OPENDIR_PRESERVE_CASE; |
16335
6cf0a8b5c895
(init_dosfns): When setting `__opendir_flags' value,
Richard M. Stallman <rms@gnu.org>
parents:
15393
diff
changeset
|
400 #endif /* __DJGPP_MINOR__ == 0 */ |
6cf0a8b5c895
(init_dosfns): When setting `__opendir_flags' value,
Richard M. Stallman <rms@gnu.org>
parents:
15393
diff
changeset
|
401 #endif /* __DJGPP__ >= 2 */ |
5503 | 402 } |
403 | |
20034 | 404 #ifndef HAVE_X_WINDOWS |
25113
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
405 |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
406 /* Emulation of some X window features from xfns.c and xfaces.c. */ |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
407 |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
408 /* Standard VGA colors, in the order of their standard numbering |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
409 in the default VGA palette. */ |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
410 static char *vga_colors[16] = { |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
411 "black", "blue", "green", "cyan", "red", "magenta", "brown", |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
412 "lightgray", "darkgray", "lightblue", "lightgreen", "lightcyan", |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
413 "lightred", "lightmagenta", "yellow", "white" |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
414 }; |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
415 |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
416 /* Given a color name, return its index, or -1 if not found. Note |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
417 that this only performs case-insensitive comparison against the |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
418 standard names. For anything more sophisticated, like matching |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
419 "gray" with "grey" or translating X color names into their MSDOS |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
25212
diff
changeset
|
420 equivalents, call the Lisp function Qtty_color_desc (defined |
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
25212
diff
changeset
|
421 on lisp/term/tty-colors.el). */ |
25113
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
422 int |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
423 msdos_stdcolor_idx (const char *name) |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
424 { |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
425 int i; |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
426 |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
427 for (i = 0; i < sizeof (vga_colors) / sizeof (vga_colors[0]); i++) |
95209
6758d4235380
* dispextern.h, xfaces.c (xstrcasecmp): Renamed from xstricmp.
Jason Rumney <jasonr@gnu.org>
parents:
95205
diff
changeset
|
428 if (xstrcasecmp (name, vga_colors[i]) == 0) |
25113
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
429 return i; |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
430 |
26902
264b83a3a688
Changes for separate unspecified foreground and background colors
Eli Zaretskii <eliz@gnu.org>
parents:
26729
diff
changeset
|
431 return |
27115
13a2c64e6ade
(unspecified_colors): Remove.
Eli Zaretskii <eliz@gnu.org>
parents:
26902
diff
changeset
|
432 strcmp (name, unspecified_fg) == 0 ? FACE_TTY_DEFAULT_FG_COLOR |
13a2c64e6ade
(unspecified_colors): Remove.
Eli Zaretskii <eliz@gnu.org>
parents:
26902
diff
changeset
|
433 : strcmp (name, unspecified_bg) == 0 ? FACE_TTY_DEFAULT_BG_COLOR |
26902
264b83a3a688
Changes for separate unspecified foreground and background colors
Eli Zaretskii <eliz@gnu.org>
parents:
26729
diff
changeset
|
434 : FACE_TTY_DEFAULT_COLOR; |
25113
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
435 } |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
436 |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
437 /* Given a color index, return its standard name. */ |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
25212
diff
changeset
|
438 Lisp_Object |
25113
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
439 msdos_stdcolor_name (int idx) |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
440 { |
27115
13a2c64e6ade
(unspecified_colors): Remove.
Eli Zaretskii <eliz@gnu.org>
parents:
26902
diff
changeset
|
441 extern Lisp_Object Qunspecified; |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
25212
diff
changeset
|
442 |
27115
13a2c64e6ade
(unspecified_colors): Remove.
Eli Zaretskii <eliz@gnu.org>
parents:
26902
diff
changeset
|
443 if (idx == FACE_TTY_DEFAULT_FG_COLOR) |
13a2c64e6ade
(unspecified_colors): Remove.
Eli Zaretskii <eliz@gnu.org>
parents:
26902
diff
changeset
|
444 return build_string (unspecified_fg); |
13a2c64e6ade
(unspecified_colors): Remove.
Eli Zaretskii <eliz@gnu.org>
parents:
26902
diff
changeset
|
445 else if (idx == FACE_TTY_DEFAULT_BG_COLOR) |
13a2c64e6ade
(unspecified_colors): Remove.
Eli Zaretskii <eliz@gnu.org>
parents:
26902
diff
changeset
|
446 return build_string (unspecified_bg); |
13a2c64e6ade
(unspecified_colors): Remove.
Eli Zaretskii <eliz@gnu.org>
parents:
26902
diff
changeset
|
447 else if (idx >= 0 && idx < sizeof (vga_colors) / sizeof (vga_colors[0])) |
13a2c64e6ade
(unspecified_colors): Remove.
Eli Zaretskii <eliz@gnu.org>
parents:
26902
diff
changeset
|
448 return build_string (vga_colors[idx]); |
13a2c64e6ade
(unspecified_colors): Remove.
Eli Zaretskii <eliz@gnu.org>
parents:
26902
diff
changeset
|
449 else |
13a2c64e6ade
(unspecified_colors): Remove.
Eli Zaretskii <eliz@gnu.org>
parents:
26902
diff
changeset
|
450 return Qunspecified; /* meaning the default */ |
25113
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
451 } |
73c54061f4bb
(msdos_stdcolor_name, msdos_stdcolor_idx): New
Eli Zaretskii <eliz@gnu.org>
parents:
23814
diff
changeset
|
452 |
20034 | 453 /* Support for features that are available when we run in a DOS box |
454 on MS-Windows. */ | |
455 int | |
456 ms_windows_version (void) | |
457 { | |
458 return dos_windows_version; | |
459 } | |
460 | |
461 /* Set the title of the current virtual machine, to appear on | |
462 the caption bar of that machine's window. */ | |
463 | |
464 int | |
465 w95_set_virtual_machine_title (const char *title_string) | |
466 { | |
467 /* Only Windows 9X (version 4 and higher) support this function. */ | |
468 if (!NILP (Vdos_windows_version) | |
469 && (dos_windows_version & 0xff) >= 4) | |
470 { | |
471 _go32_dpmi_registers regs; | |
472 dosmemput (title_string, strlen (title_string) + 1, __tb); | |
473 regs.x.ax = 0x168e; | |
474 regs.x.dx = 1; | |
475 regs.x.es = __tb >> 4; | |
476 regs.x.di = __tb & 15; | |
477 regs.x.sp = regs.x.ss = regs.x.flags = 0; | |
478 _go32_dpmi_simulate_int (0x2f, ®s); | |
479 return regs.x.ax == 1; | |
480 } | |
481 return 0; | |
482 } | |
483 | |
484 /* Change the title of frame F to NAME. | |
485 If NAME is nil, use the frame name as the title. | |
486 | |
487 If Emacs is not run from a DOS box on Windows 9X, this only | |
488 sets the name in the frame struct, but has no other effects. */ | |
489 | |
490 void | |
491 x_set_title (f, name) | |
492 struct frame *f; | |
493 Lisp_Object name; | |
494 { | |
495 /* Don't change the title if it's already NAME. */ | |
496 if (EQ (name, f->title)) | |
497 return; | |
498 | |
499 update_mode_lines = 1; | |
500 | |
501 f->title = name; | |
502 | |
503 if (NILP (name)) | |
504 name = f->name; | |
505 | |
506 if (FRAME_MSDOS_P (f)) | |
507 { | |
508 BLOCK_INPUT; | |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
45331
diff
changeset
|
509 w95_set_virtual_machine_title (SDATA (name)); |
20034 | 510 UNBLOCK_INPUT; |
511 } | |
512 } | |
513 #endif /* !HAVE_X_WINDOWS */ | |
514 | |
34348
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
515 DEFUN ("file-system-info", Ffile_system_info, Sfile_system_info, 1, 1, 0, |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
516 doc: /* Return storage information about the file system FILENAME is on. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
517 Value is a list of floats (TOTAL FREE AVAIL), where TOTAL is the total |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
518 storage of the file system, FREE is the free storage, and AVAIL is the |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
519 storage available to a non-superuser. All 3 numbers are in bytes. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
520 If the underlying system call fails, value is nil. */) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
521 (filename) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
522 Lisp_Object filename; |
34348
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
523 { |
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
524 struct statfs stfs; |
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
525 Lisp_Object encoded, value; |
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
526 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
38319
diff
changeset
|
527 CHECK_STRING (filename); |
34348
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
528 filename = Fexpand_file_name (filename, Qnil); |
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
529 encoded = ENCODE_FILE (filename); |
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
530 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
45331
diff
changeset
|
531 if (statfs (SDATA (encoded), &stfs)) |
34348
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
532 value = Qnil; |
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
533 else |
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
534 value = list3 (make_float ((double) stfs.f_bsize * stfs.f_blocks), |
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
535 make_float ((double) stfs.f_bsize * stfs.f_bfree), |
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
536 make_float ((double) stfs.f_bsize * stfs.f_bavail)); |
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
537 |
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
538 return value; |
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
539 } |
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
540 |
100859
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
541 /* System depended enumeration of and access to system processes a-la |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
542 ps(1). Here, we only return info about the running Emacs process. |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
543 (There are no other processes on DOS, right?) */ |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
544 |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
545 Lisp_Object |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
546 list_system_processes () |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
547 { |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
548 Lisp_Object proclist = Qnil; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
549 |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
550 proclist = Fcons (make_fixnum_or_float (getpid ()), proclist); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
551 |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
552 return proclist; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
553 } |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
554 |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
555 Lisp_Object |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
556 system_process_attributes (Lisp_Object pid) |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
557 { |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
558 int proc_id; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
559 Lisp_Object attrs = Qnil; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
560 |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
561 CHECK_NUMBER_OR_FLOAT (pid); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
562 proc_id = FLOATP (pid) ? XFLOAT_DATA (pid) : XINT (pid); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
563 |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
564 if (proc_id == getpid ()) |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
565 { |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
566 EMACS_INT uid, gid; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
567 char *usr; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
568 struct group *gr; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
569 char cmd[FILENAME_MAX]; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
570 char *cmdline = NULL, *p, *q; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
571 size_t cmdline_size = 0; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
572 int i; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
573 Lisp_Object cmd_str, decoded_cmd, tem; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
574 double pmem; |
102838
a722c792ebd7
(system_process_attributes) [SYSTEM_MALLOC]: Don't call ret_lim_data.
Eli Zaretskii <eliz@gnu.org>
parents:
100859
diff
changeset
|
575 #ifndef SYSTEM_MALLOC |
100859
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
576 extern unsigned long ret_lim_data (); |
102838
a722c792ebd7
(system_process_attributes) [SYSTEM_MALLOC]: Don't call ret_lim_data.
Eli Zaretskii <eliz@gnu.org>
parents:
100859
diff
changeset
|
577 #endif |
100859
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
578 |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
579 uid = getuid (); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
580 attrs = Fcons (Fcons (Qeuid, make_fixnum_or_float (uid)), attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
581 usr = getlogin (); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
582 if (usr) |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
583 attrs = Fcons (Fcons (Quser, build_string (usr)), attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
584 gid = getgid (); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
585 attrs = Fcons (Fcons (Qegid, make_fixnum_or_float (gid)), attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
586 gr = getgrgid (gid); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
587 if (gr) |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
588 attrs = Fcons (Fcons (Qgroup, build_string (gr->gr_name)), attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
589 strcpy (cmd, basename (__crt0_argv[0])); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
590 /* Command name is encoded in locale-coding-system; decode it. */ |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
591 cmd_str = make_unibyte_string (cmd, strlen (cmd)); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
592 decoded_cmd = code_convert_string_norecord (cmd_str, |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
593 Vlocale_coding_system, 0); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
594 attrs = Fcons (Fcons (Qcomm, decoded_cmd), attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
595 /* Pretend we have 0 as PPID. */ |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
596 attrs = Fcons (Fcons (Qppid, make_number (0)), attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
597 attrs = Fcons (Fcons (Qpgrp, pid), attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
598 attrs = Fcons (Fcons (Qttname, build_string ("/dev/tty")), attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
599 /* We are never idle! */ |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
600 tem = Fget_internal_run_time (); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
601 attrs = Fcons (Fcons (Qtime, tem), attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
602 attrs = Fcons (Fcons (Qthcount, make_number (1)), attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
603 attrs = Fcons (Fcons (Qstart, |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
604 Fsymbol_value (intern ("before-init-time"))), |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
605 attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
606 attrs = Fcons (Fcons (Qvsize, |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
607 make_fixnum_or_float ((unsigned long)sbrk(0)/1024)), |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
608 attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
609 attrs = Fcons (Fcons (Qetime, tem), attrs); |
102838
a722c792ebd7
(system_process_attributes) [SYSTEM_MALLOC]: Don't call ret_lim_data.
Eli Zaretskii <eliz@gnu.org>
parents:
100859
diff
changeset
|
610 #ifndef SYSTEM_MALLOC |
a722c792ebd7
(system_process_attributes) [SYSTEM_MALLOC]: Don't call ret_lim_data.
Eli Zaretskii <eliz@gnu.org>
parents:
100859
diff
changeset
|
611 /* ret_lim_data is on vm-limit.c, which is not compiled in under |
a722c792ebd7
(system_process_attributes) [SYSTEM_MALLOC]: Don't call ret_lim_data.
Eli Zaretskii <eliz@gnu.org>
parents:
100859
diff
changeset
|
612 SYSTEM_MALLOC. */ |
100859
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
613 pmem = (double)((unsigned long) sbrk (0)) / ret_lim_data () * 100.0; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
614 if (pmem > 100) |
102838
a722c792ebd7
(system_process_attributes) [SYSTEM_MALLOC]: Don't call ret_lim_data.
Eli Zaretskii <eliz@gnu.org>
parents:
100859
diff
changeset
|
615 #endif |
100859
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
616 pmem = 100; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
617 attrs = Fcons (Fcons (Qpmem, make_float (pmem)), attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
618 /* Pass 1: Count how much storage we need. */ |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
619 for (i = 0; i < __crt0_argc; i++) |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
620 { |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
621 cmdline_size += strlen (__crt0_argv[i]) + 1; /* +1 for blank delim */ |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
622 if (strpbrk (__crt0_argv[i], " \t\n\r\v\f")) |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
623 { |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
624 cmdline_size += 2; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
625 for (p = __crt0_argv[i]; *p; p++) |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
626 { |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
627 if (*p == '"') |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
628 cmdline_size++; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
629 } |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
630 } |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
631 } |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
632 /* Pass 2: Allocate storage and concatenate argv[]. */ |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
633 cmdline = xmalloc (cmdline_size + 1); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
634 for (i = 0, q = cmdline; i < __crt0_argc; i++) |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
635 { |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
636 if (strpbrk (__crt0_argv[i], " \t\n\r\v\f")) |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
637 { |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
638 *q++ = '"'; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
639 for (p = __crt0_argv[i]; *p; p++) |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
640 { |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
641 if (*p == '\"') |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
642 *q++ = '\\'; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
643 *q++ = *p; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
644 } |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
645 *q++ = '"'; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
646 } |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
647 else |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
648 { |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
649 strcpy (q, __crt0_argv[i]); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
650 q += strlen (__crt0_argv[i]); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
651 } |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
652 *q++ = ' '; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
653 } |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
654 /* Remove the trailing blank. */ |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
655 if (q > cmdline) |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
656 q[-1] = '\0'; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
657 |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
658 /* Command line is encoded in locale-coding-system; decode it. */ |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
659 cmd_str = make_unibyte_string (cmdline, strlen (cmdline)); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
660 decoded_cmd = code_convert_string_norecord (cmd_str, |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
661 Vlocale_coding_system, 0); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
662 xfree (cmdline); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
663 attrs = Fcons (Fcons (Qargs, decoded_cmd), attrs); |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
664 } |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
665 |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
666 return attrs; |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
667 } |
bb7058ae1991
(system_process_attributes, list_system_processes): New functions.
Eli Zaretskii <eliz@gnu.org>
parents:
99540
diff
changeset
|
668 |
20034 | 669 void |
670 dos_cleanup (void) | |
671 { | |
97653
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
672 struct tty_display_info *tty; |
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
673 |
20034 | 674 #ifndef HAVE_X_WINDOWS |
675 restore_parent_vm_title (); | |
676 #endif | |
23814
3229c65a13c5
(dos_cleanup): Flush and fsync the termscript stream.
Eli Zaretskii <eliz@gnu.org>
parents:
21430
diff
changeset
|
677 /* Make sure the termscript file is committed, in case we are |
3229c65a13c5
(dos_cleanup): Flush and fsync the termscript stream.
Eli Zaretskii <eliz@gnu.org>
parents:
21430
diff
changeset
|
678 crashing and some vital info was written there. */ |
97653
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
679 if (FRAMEP (selected_frame)) |
23814
3229c65a13c5
(dos_cleanup): Flush and fsync the termscript stream.
Eli Zaretskii <eliz@gnu.org>
parents:
21430
diff
changeset
|
680 { |
97653
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
681 struct frame *sf = XFRAME (selected_frame); |
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
682 |
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
683 if (FRAME_LIVE_P (sf) |
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
684 && (FRAME_MSDOS_P (sf) || FRAME_TERMCAP_P (sf))) |
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
685 { |
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
686 tty = CURTTY (); |
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
687 if (tty->termscript) |
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
688 { |
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
689 fflush (tty->termscript); |
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
690 fsync (fileno (tty->termscript)); |
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
691 } |
8e2483da8823
Include frame.h before termhooks.h.
Eli Zaretskii <eliz@gnu.org>
parents:
95209
diff
changeset
|
692 } |
23814
3229c65a13c5
(dos_cleanup): Flush and fsync the termscript stream.
Eli Zaretskii <eliz@gnu.org>
parents:
21430
diff
changeset
|
693 } |
20034 | 694 } |
695 | |
5503 | 696 /* |
697 * Define everything | |
698 */ | |
699 syms_of_dosfns () | |
700 { | |
701 defsubr (&Sint86); | |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
702 defsubr (&Sdos_memget); |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
703 defsubr (&Sdos_memput); |
12990
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
704 defsubr (&Smsdos_mouse_init); |
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
705 defsubr (&Smsdos_mouse_enable); |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
706 defsubr (&Smsdos_set_keyboard); |
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
707 defsubr (&Sinsert_startup_screen); |
12990
93cc41315528
(Fmsdos_mouse_enable, Fmsdos_mouse_disable)
Richard M. Stallman <rms@gnu.org>
parents:
10504
diff
changeset
|
708 defsubr (&Smsdos_mouse_disable); |
34348
5cd770204501
(Ffile_system_info): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
32544
diff
changeset
|
709 defsubr (&Sfile_system_info); |
9572 | 710 #ifndef HAVE_X_WINDOWS |
711 defsubr (&Smsdos_mouse_p); | |
712 #endif | |
5503 | 713 |
714 DEFVAR_INT ("dos-country-code", &dos_country_code, | |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
715 doc: /* The country code returned by Dos when Emacs was started. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
716 Usually this is the international telephone prefix. */); |
5503 | 717 |
718 DEFVAR_INT ("dos-codepage", &dos_codepage, | |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
719 doc: /* The codepage active when Emacs was started. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
720 The following are known: |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
721 437 United States |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
722 850 Multilingual (Latin I) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
723 852 Slavic (Latin II) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
724 857 Turkish |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
725 860 Portugal |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
726 861 Iceland |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
727 863 Canada (French) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
728 865 Norway/Denmark */); |
5503 | 729 |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
730 DEFVAR_INT ("dos-timezone-offset", &dos_timezone_offset, |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
731 doc: /* The current timezone offset to UTC in minutes. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
732 Implicitly modified when the TZ variable is changed. */); |
45331 | 733 |
5503 | 734 DEFVAR_LISP ("dos-version", &Vdos_version, |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
735 doc: /* The (MAJOR . MINOR) Dos version (subject to modification with setver). */); |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
736 |
20034 | 737 #ifndef HAVE_X_WINDOWS |
738 DEFVAR_LISP ("dos-windows-version", &Vdos_windows_version, | |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
739 doc: /* The (MAJOR . MINOR) Windows version for DOS session on MS-Windows. */); |
20034 | 740 #endif |
741 | |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
742 DEFVAR_LISP ("dos-display-scancodes", &Vdos_display_scancodes, |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
743 doc: /* *Controls whether DOS raw keyboard events are displayed as you type. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
744 When non-nil, the keyboard scan-codes are displayed at the bottom right |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
745 corner of the display (typically at the end of the mode line). |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
746 The output format is: scan code:char code*modifiers. */); |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
747 |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
748 Vdos_display_scancodes = Qnil; |
45331 | 749 |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
750 DEFVAR_INT ("dos-hyper-key", &dos_hyper_key, |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
751 doc: /* *If set to 1, use right ALT key as hyper key. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
752 If set to 2, use right CTRL key as hyper key. */); |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
753 dos_hyper_key = 0; |
45331 | 754 |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
755 DEFVAR_INT ("dos-super-key", &dos_super_key, |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
756 doc: /* *If set to 1, use right ALT key as super key. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
757 If set to 2, use right CTRL key as super key. */); |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
758 dos_super_key = 0; |
45331 | 759 |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
760 DEFVAR_INT ("dos-keypad-mode", &dos_keypad_mode, |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
761 doc: /* *Controls what key code is returned by a key in the numeric keypad. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
762 The `numlock ON' action is only taken if no modifier keys are pressed. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
763 The value is an integer constructed by adding the following bits together: |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
764 |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
765 0x00 Digit key returns digit (if numlock ON) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
766 0x01 Digit key returns kp-digit (if numlock ON) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
767 0x02 Digit key returns M-digit (if numlock ON) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
768 0x03 Digit key returns edit key (if numlock ON) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
769 |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
770 0x00 Grey key returns char (if numlock ON) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
771 0x04 Grey key returns kp-key (if numlock ON) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
772 |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
773 0x00 Digit key returns digit (if numlock OFF) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
774 0x10 Digit key returns kp-digit (if numlock OFF) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
775 0x20 Digit key returns M-digit (if numlock OFF) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
776 0x30 Digit key returns edit key (if numlock OFF) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
777 |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
778 0x00 Grey key returns char (if numlock OFF) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
779 0x40 Grey key returns kp-key (if numlock OFF) |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
780 |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
781 0x200 ALT-0..ALT-9 in top-row produces shifted codes. */); |
13612
342d919f52b2
(syms_of_dosfns): Use 0x75 for dos_keypad_mode.
Richard M. Stallman <rms@gnu.org>
parents:
13180
diff
changeset
|
782 dos_keypad_mode = 0x75; |
45331 | 783 |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
784 DEFVAR_INT ("dos-keyboard-layout", &dos_keyboard_layout, |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
785 doc: /* Contains the country code for the current keyboard layout. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
786 Use msdos-set-keyboard to select another keyboard layout. */); |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
787 dos_keyboard_layout = 1; /* US */ |
45331 | 788 |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
789 DEFVAR_INT ("dos-decimal-point", &dos_decimal_point, |
41914
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
790 doc: /* The character to produce when kp-decimal key is pressed. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
791 If non-zero, this variable contains the character to be returned when the |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
792 decimal point key in the numeric keypad is pressed when Num Lock is on. |
ee8ae85f22ae
Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents:
41912
diff
changeset
|
793 If zero, the decimal point key returns the country code specific value. */); |
13180
59663cba4b02
(insert-startup-screen): New function.
Kim F. Storm <storm@cua.dk>
parents:
12990
diff
changeset
|
794 dos_decimal_point = 0; |
5503 | 795 } |
796 #endif /* MSDOS */ | |
52401 | 797 |
798 /* arch-tag: f5ea8847-a014-42c9-83f5-7738ad640b17 | |
799 (do not change this comment) */ |