view anagram/support/file.h @ 21:1c9dac05d040

Add lint-style FALLTHROUGH annotations to fallthrough cases. (in the parse engine and thus the output code) Document this, because the old output causes warnings with gcc10.
author David A. Holland
date Mon, 13 Jun 2022 00:04:38 -0400
parents 13d2b8934445
children
line wrap: on
line source

/*
 * AnaGram, A System for Syntax Directed Programming
 * Copyright 2006 David A. Holland. All Rights Reserved.
 * See the file COPYING for license and usage terms.
 *
 * file.h - canonicalized interface to files.
 *
 * This module provides a common subset of Unix file handles and their
 * DOS/Windows imitations, as well as some related functions.
 */

#ifndef FILE_H
#define FILE_H

#include <time.h>
#include "port.h"

class AgString; // #include "agstring.h"


#ifdef AG_ON_UNIX

#include <unistd.h>
#define O_TEXT   0
#define O_BINARY 0
#define PATH_DELIMITER '/'

inline off_t tell(int fd) { return lseek(fd, 0, SEEK_CUR); }

#endif /* AG_ON_UNIX */



#ifdef AG_ON_WINDOWS

#include <io.h>
#define PATH_DELIMITER '\\'

#endif /* AG_ON_WINDOWS */


int open_shared_denywrite(const char *path, int openflags);
int open_shared_any(const char *name, int openflags);

extern AgString work_dir_name;
void set_work_dir(void);

time_t getFileTimestamp(const char *name);

#endif /* FILE_H */