Fossil SCM

Improvements to the test-file-environment command.

drh 2017-11-30 04:48 trunk
Commit fdc6af231531b9853a0171bd4a729666094c8c05dbd0d1ff37f35bce04295b6e
1 file changed +17 -8
+17 -8
--- src/file.c
+++ src/file.c
@@ -83,11 +83,10 @@
8383
static struct fossilStat fileStat;
8484
8585
/*
8686
** Fill stat buf with information received from stat() or lstat().
8787
** lstat() is called on Unix if isWd is TRUE and allow-symlinks setting is on.
88
-**
8988
*/
9089
static int fossil_stat(
9190
const char *zFilename, /* name of file or directory to inspect. */
9291
struct fossilStat *buf, /* pointer to buffer where info should go. */
9392
int isWd /* non-zero to consider look at symlink itself. */
@@ -964,11 +963,12 @@
964963
const char *zPath,
965964
int raw,
966965
int slash,
967966
int reset
968967
){
969
- char zBuf[100];
968
+ char zBuf[200];
969
+ char *z;
970970
Blob x;
971971
memset(zBuf, 0, sizeof(zBuf));
972972
blob_zero(&x);
973973
file_canonical_name(zPath, &x, slash);
974974
fossil_print("%s[%s] -> [%s]\n", raw ? "RAW " : "", zPath, blob_buffer(&x));
@@ -979,28 +979,36 @@
979979
memset(&testFileStat, 0, sizeof(struct fossilStat));
980980
rc = fossil_stat(zPath, &testFileStat, 0);
981981
fossil_print(" stat_rc = %d\n", rc);
982982
sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_size);
983983
fossil_print(" stat_size = %s\n", zBuf);
984
- sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_mtime);
984
+ z = db_text(0, "SELECT datetime(%lld, 'unixepoch')", testFileStat.st_mtime);
985
+ sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld (%s)", testFileStat.st_mtime, z);
986
+ fossil_free(z);
985987
fossil_print(" stat_mtime = %s\n", zBuf);
986
- fossil_print(" stat_mode = %d\n", testFileStat.st_mode);
988
+ fossil_print(" stat_mode = 0%o\n", testFileStat.st_mode);
987989
memset(&testFileStat, 0, sizeof(struct fossilStat));
988990
rc = fossil_stat(zPath, &testFileStat, 1);
989991
fossil_print(" l_stat_rc = %d\n", rc);
990992
sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_size);
991993
fossil_print(" l_stat_size = %s\n", zBuf);
992
- sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_mtime);
994
+ z = db_text(0, "SELECT datetime(%lld, 'unixepoch')", testFileStat.st_mtime);
995
+ sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld (%s)", testFileStat.st_mtime, z);
996
+ fossil_free(z);
993997
fossil_print(" l_stat_mtime = %s\n", zBuf);
994
- fossil_print(" l_stat_mode = %d\n", testFileStat.st_mode);
998
+ fossil_print(" l_stat_mode = 0%o\n", testFileStat.st_mode);
995999
}else{
1000
+ sqlite3_int64 iMtime;
9961001
if( reset ) resetStat();
9971002
sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", file_wd_size(zPath));
9981003
fossil_print(" file_size = %s\n", zBuf);
999
- sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", file_wd_mtime(zPath));
1004
+ iMtime = file_wd_mtime(zPath);
1005
+ z = db_text(0, "SELECT datetime(%lld, 'unixepoch')", iMtime);
1006
+ sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld (%s)", iMtime, z);
1007
+ fossil_free(z);
10001008
fossil_print(" file_mtime = %s\n", zBuf);
1001
- fossil_print(" file_mode = %d\n", file_wd_mode(zPath));
1009
+ fossil_print(" file_mode = 0%o\n", file_wd_mode(zPath));
10021010
fossil_print(" file_isfile = %d\n", file_wd_isfile(zPath));
10031011
fossil_print(" file_isfile_or_link = %d\n", file_wd_isfile_or_link(zPath));
10041012
fossil_print(" file_islink = %d\n", file_wd_islink(zPath));
10051013
fossil_print(" file_isexe = %d\n", file_wd_isexe(zPath));
10061014
fossil_print(" file_isdir = %d\n", file_wd_isdir(zPath));
@@ -1027,10 +1035,11 @@
10271035
int slashFlag = find_option("slash",0,0)!=0;
10281036
int resetFlag = find_option("reset",0,0)!=0;
10291037
if( find_option("open-config", 0, 0)!=0 ){
10301038
Th_OpenConfig(1);
10311039
}
1040
+ db_find_and_open_repository(OPEN_ANY_SCHEMA, 0);
10321041
fossil_print("filenames_are_case_sensitive() = %d\n",
10331042
filenames_are_case_sensitive());
10341043
fossil_print("db_allow_symlinks_by_default() = %d\n",
10351044
db_allow_symlinks_by_default());
10361045
fossil_print("db_allow_symlinks() = %d\n", db_allow_symlinks());
10371046
--- src/file.c
+++ src/file.c
@@ -83,11 +83,10 @@
83 static struct fossilStat fileStat;
84
85 /*
86 ** Fill stat buf with information received from stat() or lstat().
87 ** lstat() is called on Unix if isWd is TRUE and allow-symlinks setting is on.
88 **
89 */
90 static int fossil_stat(
91 const char *zFilename, /* name of file or directory to inspect. */
92 struct fossilStat *buf, /* pointer to buffer where info should go. */
93 int isWd /* non-zero to consider look at symlink itself. */
@@ -964,11 +963,12 @@
964 const char *zPath,
965 int raw,
966 int slash,
967 int reset
968 ){
969 char zBuf[100];
 
970 Blob x;
971 memset(zBuf, 0, sizeof(zBuf));
972 blob_zero(&x);
973 file_canonical_name(zPath, &x, slash);
974 fossil_print("%s[%s] -> [%s]\n", raw ? "RAW " : "", zPath, blob_buffer(&x));
@@ -979,28 +979,36 @@
979 memset(&testFileStat, 0, sizeof(struct fossilStat));
980 rc = fossil_stat(zPath, &testFileStat, 0);
981 fossil_print(" stat_rc = %d\n", rc);
982 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_size);
983 fossil_print(" stat_size = %s\n", zBuf);
984 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_mtime);
 
 
985 fossil_print(" stat_mtime = %s\n", zBuf);
986 fossil_print(" stat_mode = %d\n", testFileStat.st_mode);
987 memset(&testFileStat, 0, sizeof(struct fossilStat));
988 rc = fossil_stat(zPath, &testFileStat, 1);
989 fossil_print(" l_stat_rc = %d\n", rc);
990 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_size);
991 fossil_print(" l_stat_size = %s\n", zBuf);
992 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_mtime);
 
 
993 fossil_print(" l_stat_mtime = %s\n", zBuf);
994 fossil_print(" l_stat_mode = %d\n", testFileStat.st_mode);
995 }else{
 
996 if( reset ) resetStat();
997 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", file_wd_size(zPath));
998 fossil_print(" file_size = %s\n", zBuf);
999 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", file_wd_mtime(zPath));
 
 
 
1000 fossil_print(" file_mtime = %s\n", zBuf);
1001 fossil_print(" file_mode = %d\n", file_wd_mode(zPath));
1002 fossil_print(" file_isfile = %d\n", file_wd_isfile(zPath));
1003 fossil_print(" file_isfile_or_link = %d\n", file_wd_isfile_or_link(zPath));
1004 fossil_print(" file_islink = %d\n", file_wd_islink(zPath));
1005 fossil_print(" file_isexe = %d\n", file_wd_isexe(zPath));
1006 fossil_print(" file_isdir = %d\n", file_wd_isdir(zPath));
@@ -1027,10 +1035,11 @@
1027 int slashFlag = find_option("slash",0,0)!=0;
1028 int resetFlag = find_option("reset",0,0)!=0;
1029 if( find_option("open-config", 0, 0)!=0 ){
1030 Th_OpenConfig(1);
1031 }
 
1032 fossil_print("filenames_are_case_sensitive() = %d\n",
1033 filenames_are_case_sensitive());
1034 fossil_print("db_allow_symlinks_by_default() = %d\n",
1035 db_allow_symlinks_by_default());
1036 fossil_print("db_allow_symlinks() = %d\n", db_allow_symlinks());
1037
--- src/file.c
+++ src/file.c
@@ -83,11 +83,10 @@
83 static struct fossilStat fileStat;
84
85 /*
86 ** Fill stat buf with information received from stat() or lstat().
87 ** lstat() is called on Unix if isWd is TRUE and allow-symlinks setting is on.
 
88 */
89 static int fossil_stat(
90 const char *zFilename, /* name of file or directory to inspect. */
91 struct fossilStat *buf, /* pointer to buffer where info should go. */
92 int isWd /* non-zero to consider look at symlink itself. */
@@ -964,11 +963,12 @@
963 const char *zPath,
964 int raw,
965 int slash,
966 int reset
967 ){
968 char zBuf[200];
969 char *z;
970 Blob x;
971 memset(zBuf, 0, sizeof(zBuf));
972 blob_zero(&x);
973 file_canonical_name(zPath, &x, slash);
974 fossil_print("%s[%s] -> [%s]\n", raw ? "RAW " : "", zPath, blob_buffer(&x));
@@ -979,28 +979,36 @@
979 memset(&testFileStat, 0, sizeof(struct fossilStat));
980 rc = fossil_stat(zPath, &testFileStat, 0);
981 fossil_print(" stat_rc = %d\n", rc);
982 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_size);
983 fossil_print(" stat_size = %s\n", zBuf);
984 z = db_text(0, "SELECT datetime(%lld, 'unixepoch')", testFileStat.st_mtime);
985 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld (%s)", testFileStat.st_mtime, z);
986 fossil_free(z);
987 fossil_print(" stat_mtime = %s\n", zBuf);
988 fossil_print(" stat_mode = 0%o\n", testFileStat.st_mode);
989 memset(&testFileStat, 0, sizeof(struct fossilStat));
990 rc = fossil_stat(zPath, &testFileStat, 1);
991 fossil_print(" l_stat_rc = %d\n", rc);
992 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", testFileStat.st_size);
993 fossil_print(" l_stat_size = %s\n", zBuf);
994 z = db_text(0, "SELECT datetime(%lld, 'unixepoch')", testFileStat.st_mtime);
995 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld (%s)", testFileStat.st_mtime, z);
996 fossil_free(z);
997 fossil_print(" l_stat_mtime = %s\n", zBuf);
998 fossil_print(" l_stat_mode = 0%o\n", testFileStat.st_mode);
999 }else{
1000 sqlite3_int64 iMtime;
1001 if( reset ) resetStat();
1002 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", file_wd_size(zPath));
1003 fossil_print(" file_size = %s\n", zBuf);
1004 iMtime = file_wd_mtime(zPath);
1005 z = db_text(0, "SELECT datetime(%lld, 'unixepoch')", iMtime);
1006 sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld (%s)", iMtime, z);
1007 fossil_free(z);
1008 fossil_print(" file_mtime = %s\n", zBuf);
1009 fossil_print(" file_mode = 0%o\n", file_wd_mode(zPath));
1010 fossil_print(" file_isfile = %d\n", file_wd_isfile(zPath));
1011 fossil_print(" file_isfile_or_link = %d\n", file_wd_isfile_or_link(zPath));
1012 fossil_print(" file_islink = %d\n", file_wd_islink(zPath));
1013 fossil_print(" file_isexe = %d\n", file_wd_isexe(zPath));
1014 fossil_print(" file_isdir = %d\n", file_wd_isdir(zPath));
@@ -1027,10 +1035,11 @@
1035 int slashFlag = find_option("slash",0,0)!=0;
1036 int resetFlag = find_option("reset",0,0)!=0;
1037 if( find_option("open-config", 0, 0)!=0 ){
1038 Th_OpenConfig(1);
1039 }
1040 db_find_and_open_repository(OPEN_ANY_SCHEMA, 0);
1041 fossil_print("filenames_are_case_sensitive() = %d\n",
1042 filenames_are_case_sensitive());
1043 fossil_print("db_allow_symlinks_by_default() = %d\n",
1044 db_allow_symlinks_by_default());
1045 fossil_print("db_allow_symlinks() = %d\n", db_allow_symlinks());
1046

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button