@@ -1825,11 +1825,11 @@
1825 1825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1826 1826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns non-zero if the default value for the "allow-symlinks" setting
1827 1827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is "on". When on Windows, this always returns false.
1828 1828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1829 1829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int db_allow_symlinks_by_default(void){
1830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(_WIN32)
1830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if defined(_WIN32) || !defined(FOSSIL_LEGACY_ALLOW_SYMLINKS)
1831 1831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
1832 1832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
1833 1833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 1;
1834 1834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
1835 1835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -2956,17 +2956,19 @@
2956 2956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
dflt = 0;
2957 2957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2958 2958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(zVal);
2959 2959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return dflt;
2960 2960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef FOSSIL_LEGACY_ALLOW_SYMLINKS
2961 2962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int db_get_versioned_boolean(const char *zName, int dflt){
2962 2963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zVal = db_get_versioned(zName, 0);
2963 2964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zVal==0 ) return dflt;
2964 2965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( is_truth(zVal) ) return 1;
2965 2966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( is_false(zVal) ) return 0;
2966 2967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return dflt;
2967 2968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* FOSSIL_LEGACY_ALLOW_SYMLINK */
2968 2970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *db_lget(const char *zName, const char *zDefault){
2969 2971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return db_text(zDefault,
2970 2972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"SELECT value FROM vvar WHERE name=%Q", zName);
2971 2973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2972 2974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void db_lset(const char *zName, const char *zValue){
@@ -3165,11 +3167,13 @@
3165 3167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void cmd_open(void){
3166 3168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int emptyFlag;
3167 3169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int keepFlag;
3168 3170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int forceMissingFlag;
3169 3171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int allowNested;
3172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef FOSSIL_LEGACY_ALLOW_SYMLINKS
3170 3173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int allowSymlinks;
3174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
3171 3175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int setmtimeFlag; /* --setmtime. Set mtimes on files */
3172 3176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bForce = 0; /* --force. Open even if non-empty dir */
3173 3177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static char *azNewArgv[] = { 0, "checkout", "--prompt", 0, 0, 0, 0 };
3174 3178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zWorkDir; /* --workdir value */
3175 3179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zRepo = 0; /* Name of the repository file */
@@ -3276,10 +3280,11 @@
3276 3280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( db_exists("SELECT 1 FROM event WHERE type='ci'") ){
3277 3281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.zOpenRevision = db_get("main-branch", 0);
3278 3282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
3279 3283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
3280 3284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
3285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef FOSSIL_LEGACY_ALLOW_SYMLINKS
3281 3286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.zOpenRevision ){
3282 3287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Since the repository is open and we know the revision now,
3283 3288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** refresh the allow-symlinks flag. Since neither the local
3284 3289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** checkout nor the configuration database are open at this
3285 3290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** point, this should always return the versioned setting,
@@ -3289,10 +3294,11 @@
3289 3294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** repository or global configuration databases only. */
3290 3295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
allowSymlinks = db_get_versioned_boolean("allow-symlinks", -1);
3291 3296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
3292 3297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
allowSymlinks = -1; /* Use non-versioned settings only. */
3293 3298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
3299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
3294 3300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
3295 3301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(_WIN32) || defined(__CYGWIN__)
3296 3302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define LOCALDB_NAME "./_FOSSIL_"
3297 3303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
3298 3304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define LOCALDB_NAME "./.fslckout"
@@ -3302,10 +3308,11 @@
3302 3308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"COMMIT; PRAGMA journal_mode=WAL; BEGIN;",
3303 3309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
3304 3310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(char*)0);
3305 3311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_delete_on_failure(LOCALDB_NAME);
3306 3312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_open_local(0);
3313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #ifdef FOSSIL_LEGACY_ALLOW_SYMLINKS
3307 3314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( allowSymlinks>=0 ){
3308 3315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Use the value from the versioned setting, which was read
3309 3316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** prior to opening the local checkout (i.e. which is most
3310 3317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** likely empty and does not actually contain any versioned
3311 3318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** setting files yet). Normally, this value would be given
@@ -3318,10 +3325,11 @@
3318 3325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** point, this will probably be the setting value from the
3319 3326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** repository or global configuration databases. */
3320 3327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.allowSymlinks = db_get_boolean("allow-symlinks",
3321 3328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_allow_symlinks_by_default());
3322 3329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
3330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif /* FOSSIL_LEGACY_ALLOW_SYMLINKS */
3323 3331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_lset("repository", zRepo);
3324 3332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_record_repository_filename(zRepo);
3325 3333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_set_checkout(0);
3326 3334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
azNewArgv[0] = g.argv[0];
3327 3335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.argv = azNewArgv;
@@ -3429,11 +3437,29 @@
3429 3437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** SETTING: admin-log boolean default=off
3430 3438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
3431 3439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** When the admin-log setting is enabled, configuration changes are recorded
3432 3440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in the "admin_log" table of the repository.
3433 3441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
3434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(_WIN32)
3442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if !defined(FOSSIL_LEGACY_ALLOW_SYMLINKS)
3443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
3444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SETTING: allow-symlinks boolean default=off
3445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
3446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** When allow-symlinks is OFF (which is the default and recommended setting)
3447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** symbolic links are treated like text files that contain a single line of
3448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** content which is the name of their target. If allow-symlinks is ON,
3449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the symbolic links are actually followed.
3450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
3451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The use of symbolic links is dangerous. If you checkout a maliciously
3452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** crafted checkin that contains symbolic links, it is possible that files
3453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** outside of the working directory might be overwritten.
3454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
3455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Keep this setting OFF unless you have a very good reason to turn it
3456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** on and you implicitly trust the integrity of the repositories you
3457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** open.
3458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
3459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
3460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if defined(_WIN32) && defined(FOSSIL_LEGACY_ALLOW_SYMLINKS)
3435 3461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
3436 3462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** SETTING: allow-symlinks boolean default=off versionable
3437 3463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
3438 3464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** When allow-symlinks is OFF, symbolic links in the repository are followed
3439 3465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and treated no differently from real files. When allow-symlinks is ON,
@@ -3440,11 +3466,11 @@
3440 3466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the object to which the symbolic link points is ignored, and the content
3441 3467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of the symbolic link that is stored in the repository is the name of the
3442 3468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** object to which the symbolic link points.
3443 3469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
3444 3470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
3445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if !defined(_WIN32)
3471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if !defined(_WIN32) && defined(FOSSIL_LEGACY_ALLOW_SYMLINKS)
3446 3472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
3447 3473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** SETTING: allow-symlinks boolean default=on versionable
3448 3474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
3449 3475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** When allow-symlinks is OFF, symbolic links in the repository are followed
3450 3476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and treated no differently from real files. When allow-symlinks is ON,
3451 3477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!