Fossil SCM

Refactored [bf66d61582] to move the dir-has-a-checkout-db check into the new dir_has_ckout_db() routine.

stephan 2021-06-30 18:46 trunk
Commit 3946ff81b038c5db4f14bd9eaf4e648518ab6624c41bb0a53e1667e7533d2d23
2 files changed +21 +4 -14
+21
--- src/file.c
+++ src/file.c
@@ -2676,5 +2676,26 @@
26762676
for( i = 2; i < g.argc; ++i ){
26772677
const int check = file_is_reserved_name(g.argv[i], -1);
26782678
fossil_print("%d %s\n", check, g.argv[i]);
26792679
}
26802680
}
2681
+
2682
+
2683
+/*
2684
+** Returns 1 if the given directory contains a file named .fslckout, 2
2685
+** if it contains a file named _FOSSIL_, else returns 0.
2686
+*/
2687
+int dir_has_ckout_db(const char *zDir){
2688
+ int rc = 0;
2689
+ char * zCkoutDb = mprintf("%//.fslckout", zDir);
2690
+ if(file_isfile(zCkoutDb, ExtFILE)){
2691
+ rc = 1;
2692
+ }else{
2693
+ fossil_free(zCkoutDb);
2694
+ zCkoutDb = mprintf("%//_FOSSIL_", zDir);
2695
+ if(file_isfile(zCkoutDb, ExtFILE)){
2696
+ rc = 2;
2697
+ }
2698
+ }
2699
+ fossil_free(zCkoutDb);
2700
+ return rc;
2701
+}
26812702
--- src/file.c
+++ src/file.c
@@ -2676,5 +2676,26 @@
2676 for( i = 2; i < g.argc; ++i ){
2677 const int check = file_is_reserved_name(g.argv[i], -1);
2678 fossil_print("%d %s\n", check, g.argv[i]);
2679 }
2680 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2681
--- src/file.c
+++ src/file.c
@@ -2676,5 +2676,26 @@
2676 for( i = 2; i < g.argc; ++i ){
2677 const int check = file_is_reserved_name(g.argv[i], -1);
2678 fossil_print("%d %s\n", check, g.argv[i]);
2679 }
2680 }
2681
2682
2683 /*
2684 ** Returns 1 if the given directory contains a file named .fslckout, 2
2685 ** if it contains a file named _FOSSIL_, else returns 0.
2686 */
2687 int dir_has_ckout_db(const char *zDir){
2688 int rc = 0;
2689 char * zCkoutDb = mprintf("%//.fslckout", zDir);
2690 if(file_isfile(zCkoutDb, ExtFILE)){
2691 rc = 1;
2692 }else{
2693 fossil_free(zCkoutDb);
2694 zCkoutDb = mprintf("%//_FOSSIL_", zDir);
2695 if(file_isfile(zCkoutDb, ExtFILE)){
2696 rc = 2;
2697 }
2698 }
2699 fossil_free(zCkoutDb);
2700 return rc;
2701 }
2702
+4 -14
--- src/main.c
+++ src/main.c
@@ -2952,24 +2952,14 @@
29522952
if( g.argc!=2 && g.argc!=3 ) usage("?REPOSITORY?");
29532953
if( isUiCmd && 3==g.argc && file_isdir(g.argv[2], ExtFILE)>0 ){
29542954
/* If REPOSITORY arg is the root of a checkout,
29552955
** chdir to that checkout so that the current version
29562956
** gets highlighted in the timeline by default. */
2957
- const char * zArg = g.argv[2];
2958
- char * zCkoutDb = mprintf("%//.fslckout", zArg);
2959
- if(file_size(zCkoutDb, ExtFILE)<=0){
2960
- fossil_free(zCkoutDb);
2961
- zCkoutDb = mprintf("%//_FOSSIL_", zArg);
2962
- if(file_size(zCkoutDb, ExtFILE)<=0){
2963
- fossil_free(zCkoutDb);
2964
- zCkoutDb = 0;
2965
- }
2966
- }
2967
- if(zCkoutDb!=0){
2968
- fossil_free(zCkoutDb);
2969
- if(0!=file_chdir(zArg, 0)){
2970
- fossil_fatal("Cannot chdir to %s", zArg);
2957
+ const char * zDir = g.argv[2];
2958
+ if(dir_has_ckout_db(zDir)){
2959
+ if(0!=file_chdir(zDir, 0)){
2960
+ fossil_fatal("Cannot chdir to %s", zDir);
29712961
}
29722962
findServerArg = 99;
29732963
fCreate = 0;
29742964
g.argv[2] = 0;
29752965
--g.argc;
29762966
--- src/main.c
+++ src/main.c
@@ -2952,24 +2952,14 @@
2952 if( g.argc!=2 && g.argc!=3 ) usage("?REPOSITORY?");
2953 if( isUiCmd && 3==g.argc && file_isdir(g.argv[2], ExtFILE)>0 ){
2954 /* If REPOSITORY arg is the root of a checkout,
2955 ** chdir to that checkout so that the current version
2956 ** gets highlighted in the timeline by default. */
2957 const char * zArg = g.argv[2];
2958 char * zCkoutDb = mprintf("%//.fslckout", zArg);
2959 if(file_size(zCkoutDb, ExtFILE)<=0){
2960 fossil_free(zCkoutDb);
2961 zCkoutDb = mprintf("%//_FOSSIL_", zArg);
2962 if(file_size(zCkoutDb, ExtFILE)<=0){
2963 fossil_free(zCkoutDb);
2964 zCkoutDb = 0;
2965 }
2966 }
2967 if(zCkoutDb!=0){
2968 fossil_free(zCkoutDb);
2969 if(0!=file_chdir(zArg, 0)){
2970 fossil_fatal("Cannot chdir to %s", zArg);
2971 }
2972 findServerArg = 99;
2973 fCreate = 0;
2974 g.argv[2] = 0;
2975 --g.argc;
2976
--- src/main.c
+++ src/main.c
@@ -2952,24 +2952,14 @@
2952 if( g.argc!=2 && g.argc!=3 ) usage("?REPOSITORY?");
2953 if( isUiCmd && 3==g.argc && file_isdir(g.argv[2], ExtFILE)>0 ){
2954 /* If REPOSITORY arg is the root of a checkout,
2955 ** chdir to that checkout so that the current version
2956 ** gets highlighted in the timeline by default. */
2957 const char * zDir = g.argv[2];
2958 if(dir_has_ckout_db(zDir)){
2959 if(0!=file_chdir(zDir, 0)){
2960 fossil_fatal("Cannot chdir to %s", zDir);
 
 
 
 
 
 
 
 
 
 
2961 }
2962 findServerArg = 99;
2963 fCreate = 0;
2964 g.argv[2] = 0;
2965 --g.argc;
2966

Keyboard Shortcuts

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