X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=Xserver%2Flib%2Ffont%2Ffontfile%2Fbufio.c;fp=Xserver%2Flib%2Ffont%2Ffontfile%2Fbufio.c;h=0000000000000000000000000000000000000000;hb=ce66b81460e5353db09d45c02339d4583fbda255;hp=736b76fad0adc21e74aae4e1fb86a268529db2a0;hpb=7772d71ffd742cfc9b7ff214659d16c5bb56a391;p=rdpsrv diff --git a/Xserver/lib/font/fontfile/bufio.c b/Xserver/lib/font/fontfile/bufio.c deleted file mode 100644 index 736b76f..0000000 --- a/Xserver/lib/font/fontfile/bufio.c +++ /dev/null @@ -1,224 +0,0 @@ -/* $XConsortium: bufio.c,v 1.8 94/04/17 20:17:00 gildea Exp $ */ -/* $XFree86: xc/lib/font/fontfile/bufio.c,v 3.0 1994/12/17 09:41:39 dawes Exp $ */ - -/* - -Copyright (c) 1991 X Consortium - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the X Consortium shall -not be used in advertising or otherwise to promote the sale, use or -other dealings in this Software without prior written authorization -from the X Consortium. - -*/ - -/* - * Author: Keith Packard, MIT X Consortium - */ - - -#include -#include -#include -#include -#ifdef X_NOT_STDC_ENV -extern int errno; -#endif - -BufFilePtr -BufFileCreate (private, io, skip, close) - char *private; - int (*io)(); - int (*skip)(); - int (*close)(); -{ - BufFilePtr f; - - f = (BufFilePtr) xalloc (sizeof *f); - if (!f) - return 0; - f->private = private; - f->bufp = f->buffer; - f->left = 0; - f->io = io; - f->skip = skip; - f->close = close; - return f; -} - -#define FileDes(f) ((int) (f)->private) - -static int -BufFileRawFill (f) - BufFilePtr f; -{ - int left; - - left = read (FileDes(f), (char *)f->buffer, BUFFILESIZE); - if (left <= 0) { - f->left = 0; - return BUFFILEEOF; - } - f->left = left - 1; - f->bufp = f->buffer + 1; - return f->buffer[0]; -} - -static int -BufFileRawSkip (f, count) - BufFilePtr f; - int count; -{ - int curoff; - int fileoff; - int todo; - - curoff = f->bufp - f->buffer; - fileoff = curoff + f->left; - if (curoff + count <= fileoff) { - f->bufp += count; - f->left -= count; - } else { - todo = count - (fileoff - curoff); - if (lseek (FileDes(f), todo, 1) == -1) { - if (errno != ESPIPE) - return BUFFILEEOF; - while (todo) { - curoff = BUFFILESIZE; - if (curoff > todo) - curoff = todo; - fileoff = read (FileDes(f), (char *)f->buffer, curoff); - if (fileoff <= 0) - return BUFFILEEOF; - todo -= fileoff; - } - } - f->left = 0; - } - return count; -} - -static int -BufFileRawClose (f, doClose) - BufFilePtr f; -{ - if (doClose) - close (FileDes (f)); - return 1; -} - -BufFilePtr -BufFileOpenRead (fd) - int fd; -{ -#ifdef __EMX__ - /* hv: I'd bet WIN32 has the same effect here */ - setmode(fd,O_BINARY); -#endif - return BufFileCreate ((char *) fd, BufFileRawFill, BufFileRawSkip, BufFileRawClose); -} - -static -BufFileRawFlush (c, f) - int c; - BufFilePtr f; -{ - int cnt; - - if (c != BUFFILEEOF) - *f->bufp++ = c; - cnt = f->bufp - f->buffer; - f->bufp = f->buffer; - f->left = BUFFILESIZE; - if (write (FileDes(f), (char *)f->buffer, cnt) != cnt) - return BUFFILEEOF; - return c; -} - -BufFilePtr -BufFileOpenWrite (fd) - int fd; -{ - BufFilePtr f; - -#ifdef __EMX__ - /* hv: I'd bet WIN32 has the same effect here */ - setmode(fd,O_BINARY); -#endif - f = BufFileCreate ((char *) fd, BufFileRawFlush, 0, BufFileFlush); - f->bufp = f->buffer; - f->left = BUFFILESIZE; - return f; -} - -BufFileRead (f, b, n) - BufFilePtr f; - char *b; - int n; -{ - int c, cnt; - cnt = n; - while (cnt--) { - c = BufFileGet (f); - if (c == BUFFILEEOF) - break; - *b++ = c; - } - return n - cnt - 1; -} - -BufFileWrite (f, b, n) - BufFilePtr f; - char *b; - int n; -{ - int cnt; - cnt = n; - while (cnt--) { - if (BufFilePut (*b++, f) == BUFFILEEOF) - return BUFFILEEOF; - } - return n; -} - -int -BufFileFlush (f) - BufFilePtr f; -{ - if (f->bufp != f->buffer) - (*f->io) (BUFFILEEOF, f); -} - -int -BufFileClose (f, doClose) - BufFilePtr f; -{ - (void) (*f->close) (f, doClose); - xfree (f); -} - -int -BufFileFree (f) - BufFilePtr f; -{ - xfree (f); -}