summaryrefslogtreecommitdiffhomepage
path: root/src/internal/tpax_driver_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal/tpax_driver_impl.h')
-rw-r--r--src/internal/tpax_driver_impl.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/internal/tpax_driver_impl.h b/src/internal/tpax_driver_impl.h
index 2bcb486..02e0d84 100644
--- a/src/internal/tpax_driver_impl.h
+++ b/src/internal/tpax_driver_impl.h
@@ -7,6 +7,7 @@
#ifndef TPAX_DRIVER_IMPL_H
#define TPAX_DRIVER_IMPL_H
+#include <regex.h>
#include <stdint.h>
#include <dirent.h>
#include <stdio.h>
@@ -31,6 +32,9 @@
#define TPAX_ITEM_SYMLINK 0X4
#define TPAX_ITEM_NAMEREF 0x8
+#define TPAX_REPL_GLOBAL 0x01
+#define TPAX_REPL_PRINT 0x02
+
extern const struct argv_option tpax_default_options[];
enum app_tags {
@@ -44,6 +48,8 @@ enum app_tags {
TAG_FILE,
TAG_FORMAT,
TAG_BLKSIZE,
+ TAG_OPTIONS,
+ TAG_REPLSTR,
TAG_RECURSE,
TAG_NORECURSE,
TAG_STRICT_PATH,
@@ -58,7 +64,12 @@ struct tpax_dirent {
int fdat;
int depth;
int flags;
+ int nlink;
+ int cpdev;
+ int cpino;
+ dev_t srdev;
dev_t stdev;
+ ino_t stino;
size_t nsize;
const char * prefix;
const struct tpax_dirent * parent;
@@ -73,6 +84,14 @@ struct tpax_dirent_buffer {
struct tpax_dirent dbuf[];
};
+struct tpax_replstr {
+ const char * replarg;
+ const char * replstr;
+ const char * regexp;
+ regex_t regex;
+ uint32_t flags;
+};
+
struct tpax_driver_ctx_impl {
const char * file;
struct tpax_common_ctx cctx;
@@ -80,6 +99,10 @@ struct tpax_driver_ctx_impl {
struct tpax_fd_ctx fdctx;
const struct tpax_unit_ctx * euctx;
const char * eunit;
+ struct stat srcstat;
+ struct argv_keyval ** keyvalv;
+ struct tpax_replstr * replstrv;
+ char * replstrs;
struct tpax_error_info ** errinfp;
struct tpax_error_info ** erricap;
struct tpax_error_info * erriptr[64];
@@ -88,12 +111,18 @@ struct tpax_driver_ctx_impl {
char ** prefixp;
char ** prefcap;
char * prefptr[64];
+ struct tpax_dirent ** cpiov;
struct tpax_dirent ** direntv;
struct tpax_dirent_buffer * dirents;
struct tpax_dirent * dirmark;
void * dirbuff;
void * bufaddr;
size_t bufsize;
+ void * mapaddr;
+ size_t mapsize;
+ char * cacheaddr;
+ char * cachemark;
+ char * cachecap;
size_t nqueued;
off_t cpos;
};