Fossil SCM

For "fossil tag list" and the /taglist page, sort entries taking numbers into consideration. This puts tags that follow semantic versioning into the expected order.

danield 2022-03-31 12:10 trunk
Commit 3500dbfd84fa90728ab0914fb9276ca3477aac3bbdd266a8e71318dbae00d394
1 file changed +3 -3
+3 -3
--- src/tag.c
+++ src/tag.c
@@ -656,11 +656,11 @@
656656
"SELECT tagname FROM tag"
657657
" WHERE EXISTS(SELECT 1 FROM tagxref"
658658
" WHERE tagid=tag.tagid"
659659
" AND tagtype%s%d)"
660660
" AND CASE WHEN %Q IS NULL THEN 1 ELSE tagname GLOB %Q||'*' "
661
- " END ORDER BY tagname",
661
+ " END ORDER BY tagname COLLATE uintnocase",
662662
zTagType!=0 ? (fInverse!=0?"<>":"=") : ">"/*safe-for-%s*/,
663663
nTagType, zTagPrefix, zTagPrefix
664664
);
665665
while( db_step(&q)==SQLITE_ROW ){
666666
const char *zName = db_column_text(&q, 0);
@@ -698,11 +698,11 @@
698698
}
699699
db_prepare(&q,
700700
"SELECT tagname, value FROM tagxref, tag"
701701
" WHERE tagxref.rid=%d AND tagxref.tagid=tag.tagid"
702702
" AND tagtype%s%d"
703
- " ORDER BY tagname",
703
+ " ORDER BY tagname COLLATE uintnocase",
704704
rid,
705705
zTagType!=0 ? (fInverse!=0?"<>":"=") : ">"/*safe-for-%s*/,
706706
nTagType
707707
);
708708
while( db_step(&q)==SQLITE_ROW ){
@@ -817,11 +817,11 @@
817817
" FROM tag"
818818
" WHERE EXISTS(SELECT 1 FROM tagxref"
819819
" WHERE tagid=tag.tagid"
820820
" AND tagtype=1)"
821821
" AND tagname GLOB 'sym-*'"
822
- " ORDER BY tagname"
822
+ " ORDER BY tagname COLLATE uintnocase"
823823
);
824824
@ <ul>
825825
while( db_step(&q)==SQLITE_ROW ){
826826
const char *zName = db_column_text(&q, 0);
827827
if( g.perm.Hyperlink ){
828828
--- src/tag.c
+++ src/tag.c
@@ -656,11 +656,11 @@
656 "SELECT tagname FROM tag"
657 " WHERE EXISTS(SELECT 1 FROM tagxref"
658 " WHERE tagid=tag.tagid"
659 " AND tagtype%s%d)"
660 " AND CASE WHEN %Q IS NULL THEN 1 ELSE tagname GLOB %Q||'*' "
661 " END ORDER BY tagname",
662 zTagType!=0 ? (fInverse!=0?"<>":"=") : ">"/*safe-for-%s*/,
663 nTagType, zTagPrefix, zTagPrefix
664 );
665 while( db_step(&q)==SQLITE_ROW ){
666 const char *zName = db_column_text(&q, 0);
@@ -698,11 +698,11 @@
698 }
699 db_prepare(&q,
700 "SELECT tagname, value FROM tagxref, tag"
701 " WHERE tagxref.rid=%d AND tagxref.tagid=tag.tagid"
702 " AND tagtype%s%d"
703 " ORDER BY tagname",
704 rid,
705 zTagType!=0 ? (fInverse!=0?"<>":"=") : ">"/*safe-for-%s*/,
706 nTagType
707 );
708 while( db_step(&q)==SQLITE_ROW ){
@@ -817,11 +817,11 @@
817 " FROM tag"
818 " WHERE EXISTS(SELECT 1 FROM tagxref"
819 " WHERE tagid=tag.tagid"
820 " AND tagtype=1)"
821 " AND tagname GLOB 'sym-*'"
822 " ORDER BY tagname"
823 );
824 @ <ul>
825 while( db_step(&q)==SQLITE_ROW ){
826 const char *zName = db_column_text(&q, 0);
827 if( g.perm.Hyperlink ){
828
--- src/tag.c
+++ src/tag.c
@@ -656,11 +656,11 @@
656 "SELECT tagname FROM tag"
657 " WHERE EXISTS(SELECT 1 FROM tagxref"
658 " WHERE tagid=tag.tagid"
659 " AND tagtype%s%d)"
660 " AND CASE WHEN %Q IS NULL THEN 1 ELSE tagname GLOB %Q||'*' "
661 " END ORDER BY tagname COLLATE uintnocase",
662 zTagType!=0 ? (fInverse!=0?"<>":"=") : ">"/*safe-for-%s*/,
663 nTagType, zTagPrefix, zTagPrefix
664 );
665 while( db_step(&q)==SQLITE_ROW ){
666 const char *zName = db_column_text(&q, 0);
@@ -698,11 +698,11 @@
698 }
699 db_prepare(&q,
700 "SELECT tagname, value FROM tagxref, tag"
701 " WHERE tagxref.rid=%d AND tagxref.tagid=tag.tagid"
702 " AND tagtype%s%d"
703 " ORDER BY tagname COLLATE uintnocase",
704 rid,
705 zTagType!=0 ? (fInverse!=0?"<>":"=") : ">"/*safe-for-%s*/,
706 nTagType
707 );
708 while( db_step(&q)==SQLITE_ROW ){
@@ -817,11 +817,11 @@
817 " FROM tag"
818 " WHERE EXISTS(SELECT 1 FROM tagxref"
819 " WHERE tagid=tag.tagid"
820 " AND tagtype=1)"
821 " AND tagname GLOB 'sym-*'"
822 " ORDER BY tagname COLLATE uintnocase"
823 );
824 @ <ul>
825 while( db_step(&q)==SQLITE_ROW ){
826 const char *zName = db_column_text(&q, 0);
827 if( g.perm.Hyperlink ){
828

Keyboard Shortcuts

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