]> code.delx.au - gnu-emacs/blob - src/cygw32.h
Merge cygw32
[gnu-emacs] / src / cygw32.h
1 /* Header for Cygwin support routines.
2 Copyright (C) 2011 Free Software Foundation, Inc.
3
4 This file is part of GNU Emacs.
5
6 GNU Emacs is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 GNU Emacs is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
18
19 #ifndef CYGW32_H
20 #define CYGW32_H
21 #include <config.h>
22 #include <windef.h>
23 #include <sys/cygwin.h>
24 #include <wchar.h>
25
26 #include <signal.h>
27 #include <stdio.h>
28 #include <limits.h>
29 #include <errno.h>
30 #include <math.h>
31 #include <setjmp.h>
32
33 #include "lisp.h"
34 #include "coding.h"
35
36 /* *** Character conversion *** */
37
38 /* Access the wide-character string stored in a Lisp string object. */
39 #define WCSDATA(x) ((wchar_t *) SDATA (x))
40
41 /* Convert the Emacs string in STR to UTF-16LE and store a new string
42 containing the encoded version of STR into *BUF. BUF may safely
43 point to STR on entry. */
44 extern wchar_t *to_unicode (Lisp_Object str, Lisp_Object *buf);
45
46 /* Convert STR, a UTF-16LE encoded string embedded in an Emacs string
47 object, to a normal Emacs string and return it. */
48 extern Lisp_Object from_unicode (Lisp_Object str);
49
50 /* *** Path conversion. *** */
51
52 EXFUN (Fcygwin_convert_path_to_windows, 2);
53 EXFUN (Fcygwin_convert_path_from_windows, 2);
54
55 /* *** Misc *** */
56 extern void syms_of_cygw32 (void);
57 extern char * w32_strerror (int error_no);
58
59 #endif /* CYGW32_H */