Fossil

Check-in [4043d5ea0b]
Login

Check-in [4043d5ea0b]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix for Cygwin ACL bug
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | sqlite3-compat
Files: files | file ages | folders
SHA1: 4043d5ea0b767c10ee6007eae013b170d9802b2c
User & Date: jan.nijtmans 2015-01-28 03:34:00.000
Context
2015-02-26
22:38
Merge trunk ... (check-in: 38e1ce66c7 user: jan.nijtmans tags: sqlite3-compat)
2015-01-28
03:34
Fix for Cygwin ACL bug ... (check-in: 4043d5ea0b user: jan.nijtmans tags: sqlite3-compat)
2015-01-27
03:34
Openssl 1.0.2 ... (check-in: 1afb9f7d9f user: jan.nijtmans tags: sqlite3-compat)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/file.c.
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
#    define S_IXUSR  _S_IEXEC
#  endif
  if( S_ISREG(fileStat.st_mode) && ((S_IXUSR)&fileStat.st_mode)!=0 )
    return PERM_EXE;
  else
    return PERM_REG;
#else
  if( S_ISREG(fileStat.st_mode) &&
      ((S_IXUSR|S_IXGRP|S_IXOTH)&fileStat.st_mode)!=0 )
    return PERM_EXE;
  else if( g.allowSymlinks && S_ISLNK(fileStat.st_mode) )
    return PERM_LNK;
  else
    return PERM_REG;
#endif
}







|
<







245
246
247
248
249
250
251
252

253
254
255
256
257
258
259
#    define S_IXUSR  _S_IEXEC
#  endif
  if( S_ISREG(fileStat.st_mode) && ((S_IXUSR)&fileStat.st_mode)!=0 )
    return PERM_EXE;
  else
    return PERM_REG;
#else
  if( S_ISREG(fileStat.st_mode) && ((S_IXUSR)&fileStat.st_mode)!=0 )

    return PERM_EXE;
  else if( g.allowSymlinks && S_ISLNK(fileStat.st_mode) )
    return PERM_LNK;
  else
    return PERM_REG;
#endif
}
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
int file_wd_setexe(const char *zFilename, int onoff){
  int rc = 0;
#if !defined(_WIN32)
  struct stat buf;
  if( fossil_stat(zFilename, &buf, 1)!=0 || S_ISLNK(buf.st_mode) ) return 0;
  if( onoff ){
    int targetMode = (buf.st_mode & 0444)>>2;
    if( (buf.st_mode & 0111)!=targetMode ){
      chmod(zFilename, buf.st_mode | targetMode);
      rc = 1;
    }
  }else{
    if( (buf.st_mode & 0111)!=0 ){
      chmod(zFilename, buf.st_mode & ~0111);
      rc = 1;
    }
  }
#endif /* _WIN32 */
  return rc;
}







|




|







429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
int file_wd_setexe(const char *zFilename, int onoff){
  int rc = 0;
#if !defined(_WIN32)
  struct stat buf;
  if( fossil_stat(zFilename, &buf, 1)!=0 || S_ISLNK(buf.st_mode) ) return 0;
  if( onoff ){
    int targetMode = (buf.st_mode & 0444)>>2;
    if( (buf.st_mode & 0100) == 0 ){
      chmod(zFilename, buf.st_mode | targetMode);
      rc = 1;
    }
  }else{
    if( (buf.st_mode & 0100) != 0 ){
      chmod(zFilename, buf.st_mode & ~0111);
      rc = 1;
    }
  }
#endif /* _WIN32 */
  return rc;
}