Annotation of parser3/src/main/pa_common.C, revision 1.2
1.1 paf 1: /*
1.2 ! paf 2: $Id: pa_common.C,v 1.1 2001/01/29 20:46:22 paf Exp $
1.1 paf 3: */
4:
5: #ifdef HAVE_CONFIG_H
6: # include "pa_config.h"
7: #endif
8:
1.2 ! paf 9: #include <fcntl.h>
! 10: #include <sys/types.h>
! 11: #include <sys/stat.h>
! 12: #include <io.h>
1.1 paf 13: #include <stdio.h>
14:
1.2 ! paf 15:
1.1 paf 16: #include "pa_common.h"
1.2 ! paf 17: #include "pa_types.h"
1.1 paf 18:
19: #ifdef WIN32
20:
21: int __vsnprintf(char *b, size_t s, const char *f, va_list l) {
22: int r=_vsnprintf(b, --s, f, l);
23: b[s]=0;
24: return r;
25: }
26: int __snprintf(char *b, size_t s, const char *f, ...) {
27: va_list l;
28: va_start(l, f);
29: int r=__vsnprintf(b, s, f, l);
30: va_end(l);
31: return r;
32: }
33:
34: #endif
1.2 ! paf 35:
! 36: char *file_read(Pool& pool, char *fname) {
! 37: int f;
! 38: struct stat finfo;
! 39: if (fname && !stat(fname,&finfo) && (f=open(fname,O_RDONLY
! 40: #ifdef WIN32
! 41: |O_TEXT
! 42: #endif
! 43: ))>=0){
! 44: /*if(exclusive)
! 45: flock(f, LOCK_EX);*/
! 46:
! 47: char *result=static_cast<char *>(pool.malloc(finfo.st_size+1));
! 48: int read_size=read(f,result,finfo.st_size);
! 49: if(read_size>=0 && read_size<=finfo.st_size)
! 50: result[read_size]='\0';
! 51: /*if(exclusive)
! 52: flock(f, LOCK_UN);*/
! 53: close(f);
! 54: return result;//prepare_config(result, remove_empty_lines);
! 55: }
! 56: // maybe: exception?
! 57: return NULL;
! 58: }
E-mail: