Fossil

Check-in [385344eff7]
Login

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

Overview
Comment:Hostname prefix on the repository name for the "fossil ui" command must be at least two characters in length, to avoid confusing it with a drive letter on windows.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 385344eff7b03638c70cd940b9d2323b01654caf3565fd145e616c616dca805b
User & Date: drh 2021-07-12 15:13:46.334
Context
2021-07-12
18:14
Update the built-in Pikchr to the latest trunk version. check-in: 3fa951bb45 user: drh tags: trunk
15:13
Hostname prefix on the repository name for the "fossil ui" command must be at least two characters in length, to avoid confusing it with a drive letter on windows. check-in: 385344eff7 user: drh tags: trunk
13:26
Timeline enhancements: (1) Add the "nc" query parameter which means to omit all graph colorations other than highlights from "m" or "m2". (2) Add the "m2=" query parameter for secondary highlight. (3) Undocumented sel1= and sel2= query parameters remain undocumented but are now aliases for the documented "m=" and "m2=" query parameters. check-in: a3392298c3 user: drh tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/file.c.
921
922
923
924
925
926
927


928
929
930
931
932
933
934
935
936
937
938

939
940
941
942
943
944
945
** a remote file reference, then return NULL.
**
** Remote files look like:  "HOST:PATH" or "USER@HOST:PATH".  Host must
** be a valid hostname, meaning it must follow these rules:
**
**   *  Only characters [-.a-zA-Z0-9].  No spaces or other punctuation
**   *  Does not begin or end with -


**
** The USER section, it it exists, must not contain the '@' character.
*/
const char *file_skip_userhost(const char *zIn){
  const char *zTail;
  int n, i;
  if( zIn[0]==':' ) return 0;
  zTail = strchr(zIn, ':');
  if( zTail==0 ) return 0;
  if( zTail - zIn > 10000 ) return 0;
  n = (int)(zTail - zIn);

  if( zIn[n-1]=='-' || zIn[n-1]=='.' ) return 0;
  for(i=n-1; i>0 && zIn[i-1]!='@'; i--){
    if( !fossil_isalnum(zIn[i]) && zIn[i]!='-' && zIn[i]!='.' ) return 0;
  }
  if( zIn[i]=='-' || zIn[i]=='.' || i==1 ) return 0;
  if( i>1 ){
    i -= 2;







>
>

|









>







921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
** a remote file reference, then return NULL.
**
** Remote files look like:  "HOST:PATH" or "USER@HOST:PATH".  Host must
** be a valid hostname, meaning it must follow these rules:
**
**   *  Only characters [-.a-zA-Z0-9].  No spaces or other punctuation
**   *  Does not begin or end with -
**   *  Name is two or more characters long (otherwise it might be
**      confused with a drive-letter on Windows).
**
** The USER section, if it exists, must not contain the '@' character.
*/
const char *file_skip_userhost(const char *zIn){
  const char *zTail;
  int n, i;
  if( zIn[0]==':' ) return 0;
  zTail = strchr(zIn, ':');
  if( zTail==0 ) return 0;
  if( zTail - zIn > 10000 ) return 0;
  n = (int)(zTail - zIn);
  if( n<2 ) return 0;
  if( zIn[n-1]=='-' || zIn[n-1]=='.' ) return 0;
  for(i=n-1; i>0 && zIn[i-1]!='@'; i--){
    if( !fossil_isalnum(zIn[i]) && zIn[i]!='-' && zIn[i]!='.' ) return 0;
  }
  if( zIn[i]=='-' || zIn[i]=='.' || i==1 ) return 0;
  if( i>1 ){
    i -= 2;