Mercurial > emacs
annotate msdos/sigaction.c @ 89732:8acde12aba89
(get_translation_table): New function.
(translate_chars): Fix the bug of skipping annotation data.
(decode_coding): Utilze get_translation_table.
(encode_coding): Likewise.
(char_encodable_p): Translate char if necessary.
(Funencodable_char_position): Likewise.
(Ffind_coding_systems_region_internal): Setup translation table
for encode in a coding system attribute vector in advance.
(Fcheck_coding_systems_region): Likewise.
(Fdefine_coding_system_internal): Allow a symbol as translation
table. For shift-jis type coding system, allow 4th charset.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Sun, 25 Jan 2004 07:30:47 +0000 |
parents | 375f2633d815 |
children | 68c22ea6027c |
rev | line source |
---|---|
25856 | 1 /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
2 #include <signal.h> | |
3 #include <errno.h> | |
4 | |
5 int | |
6 sigaction(int _sig, const struct sigaction *_act, struct sigaction *_oact) | |
7 { | |
8 int retval = 0; | |
9 | |
10 if (_oact) | |
11 { | |
12 void (*installed_sig)(int) = signal (_sig, SIG_IGN); | |
13 | |
14 /* FIXME */ | |
15 if (installed_sig == SIG_ERR) | |
16 { | |
17 retval = -1; | |
18 errno = EINVAL; | |
19 } | |
20 else | |
21 signal (_sig, installed_sig); | |
22 _oact->sa_handler = installed_sig; | |
23 retval = sigemptyset (&_oact->sa_mask); | |
24 _oact->sa_flags = 0; | |
25 } | |
26 if (_act) | |
27 { | |
28 if (signal (_sig, _act->sa_handler) == SIG_ERR) | |
29 { | |
30 retval = -1; | |
31 errno = EINVAL; | |
32 } | |
33 } | |
34 return 0; | |
35 } | |
36 | |
37 | |
38 |