source: vendor/diffutils/2.8.1/lib/setmode.c

Last change on this file was 2556, checked in by bird, 19 years ago

diffutils 2.8.1

File size: 1.6 KB
Line 
1/* Set a file descriptor's mode to binary or to text.
2
3 Copyright (C) 2001 Free Software Foundation, Inc.
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2, or (at your option)
8 any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; see the file COPYING.
17 If not, write to the Free Software Foundation,
18 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
19
20/* Written by Paul Eggert <eggert@twinsun.com> */
21
22#if HAVE_CONFIG_H
23# include <config.h>
24#endif
25
26#if HAVE_STDBOOL_H
27# include <stdbool.h>
28#else
29typedef enum {false = 0, true = 1} bool;
30#endif
31
32#if HAVE_SETMODE_DOS
33# include <io.h>
34# if HAVE_FCNTL_H
35# include <fcntl.h>
36# endif
37# if HAVE_UNISTD_H
38# include <unistd.h>
39# endif
40#endif
41
42#include "setmode.h"
43#undef set_binary_mode
44
45
46/* Set the binary mode of FD to MODE, returning its previous mode.
47 MODE is 1 for binary and 0 for text. If setting the mode might
48 cause problems, ignore the request and return MODE. Always return
49 1 on POSIX platforms, which do not distinguish between text and
50 binary. */
51
52bool
53set_binary_mode (int fd, bool mode)
54{
55#if HAVE_SETMODE_DOS
56 if (isatty (fd))
57 return mode;
58 return setmode (fd, mode ? O_BINARY : O_TEXT) != O_TEXT;
59#else
60 return 1;
61#endif
62}
Note: See TracBrowser for help on using the repository browser.