1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
--- ctm/ctm.h.orig 2018-10-27 15:56:22 UTC
+++ ctm/ctm.h
@@ -24,6 +24,7 @@
#include <sys/stat.h>
#include <sys/file.h>
#include <sys/time.h>
+#include <stdint.h>
#define VERSION "2.0"
@@ -40,6 +41,8 @@
#define CTM_F_MD5 0x05
#define CTM_F_Count 0x06
#define CTM_F_Bytes 0x07
+#define CTM_F_Release 0x08
+#define CTM_F_Forward 0x09
/* The qualifiers... */
#define CTM_Q_MASK 0xff00
@@ -47,10 +50,13 @@
#define CTM_Q_Name_Dir 0x0200
#define CTM_Q_Name_New 0x0400
#define CTM_Q_Name_Subst 0x0800
+#define CTM_Q_Name_Svnbase 0x1000
#define CTM_Q_MD5_After 0x0100
#define CTM_Q_MD5_Before 0x0200
#define CTM_Q_MD5_Chunk 0x0400
#define CTM_Q_MD5_Force 0x0800
+#define CTM_Q_Forward_Tar 0x0100
+#define CTM_Q_Forward_SVN 0x0200
struct CTM_Syntax {
char *Key; /* CTM key for operation */
@@ -145,14 +151,16 @@ void Fatal_(int ln, char *fn, char *kind);
u_char * Ffield(FILE *fd, MD5_CTX *ctx,u_char term);
u_char * Fname(FILE *fd, MD5_CTX *ctx,u_char term,int qual, int verbose);
-int Fbytecnt(FILE *fd, MD5_CTX *ctx, u_char term);
+intmax_t Fbytecnt(FILE *fd, MD5_CTX *ctx, u_char term);
u_char * Fdata(FILE *fd, int u_chars, MD5_CTX *ctx);
+int Fforward(FILE *fd, intmax_t u_chars, MD5_CTX *ctx, FILE *fd_to);
#define GETFIELD(p,q) if(!((p)=Ffield(fd,&ctx,(q)))) return BADREAD
#define GETFIELDCOPY(p,q) if(!((p)=Ffield(fd,&ctx,(q)))) return BADREAD; else p=String(p)
#define GETBYTECNT(p,q) if(0 >((p)= Fbytecnt(fd,&ctx,(q)))) return BADREAD
#define GETDATA(p,q) if(!((p) = Fdata(fd,(q),&ctx))) return BADREAD
+#define GETFORWARD(p,q) if(!Fforward(fd,(p),&ctx,q)) return BADREAD
#define GETNAMECOPY(p,q,r,v) if(!((p)=Fname(fd,&ctx,(q),(r),(v)))) return BADREAD; else p=String(p)
int Pass1(FILE *fd, unsigned applied);
|