Fossil

Check-in [9784e5cdab]
Login

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

Overview
Comment:switch/case style tweak, per request.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | reject-ckout-db
Files: files | file ages | folders
SHA3-256: 9784e5cdab49fde01c10e4f332f76b1a8705df5427cdedd603f2bf1809223308
User & Date: stephan 2020-08-17 15:40:00.105
Context
2020-08-17
16:10
Moved is_fossil_ckout_db_name() from db.c to file.c and renamed it filename_is_ckout_db(). Integrated the check into manifest_parse(), but testing it requires temporarily #if'ing out the Z-card check, which is one of the first validations. check-in: 6c19baa09b user: stephan tags: reject-ckout-db
15:40
switch/case style tweak, per request. check-in: 9784e5cdab user: stephan tags: reject-ckout-db
15:17
Part 1 of ticket [980a72dedd]: efficient check for determining whether a filename ends with a checkout db name. check-in: ddd1273ea2 user: stephan tags: reject-ckout-db
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/db.c.
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733

1734
1735
1736
1737
1738

1739
1740
1741
1742
1743
1744
1745
  const char *zEnd;

  if(nFilename>=0 && nFilename<8/*strlen _FOSSIL_*/) return 0;
  else if(nFilename<0) nFilename = (int)strlen(zFilename);
  if(nFilename<8) return 0;
  zEnd = zFilename + nFilename;
  switch(zEnd[-1]){
    case '_':
      return fossil_strcmp("_FOSSIL_", &zEnd[-8])
        ? 0 : (8==nFilename ? 1 : ('/'==zEnd[-9] ? 2 : 0));

    case 't':
      return (nFilename<9
              || '.'!=zEnd[-9]
              || fossil_strcmp(".fslckout", &zEnd[-9]))
        ? 0 : (9==nFilename ? 1 : ('/'==zEnd[-10] ? 2 : 0));

    default:
      return 0;
  }
}

/*
** COMMAND: test-is-ckout-db







|


>
|




>







1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
  const char *zEnd;

  if(nFilename>=0 && nFilename<8/*strlen _FOSSIL_*/) return 0;
  else if(nFilename<0) nFilename = (int)strlen(zFilename);
  if(nFilename<8) return 0;
  zEnd = zFilename + nFilename;
  switch(zEnd[-1]){
    case '_': {
      return fossil_strcmp("_FOSSIL_", &zEnd[-8])
        ? 0 : (8==nFilename ? 1 : ('/'==zEnd[-9] ? 2 : 0));
    }
    case 't': {
      return (nFilename<9
              || '.'!=zEnd[-9]
              || fossil_strcmp(".fslckout", &zEnd[-9]))
        ? 0 : (9==nFilename ? 1 : ('/'==zEnd[-10] ? 2 : 0));
    }
    default:
      return 0;
  }
}

/*
** COMMAND: test-is-ckout-db