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.
Commit
3500dbfd84fa90728ab0914fb9276ca3477aac3bbdd266a8e71318dbae00d394
Parent
56ef05a5677216b…
1 file changed
+3
-3
+3
-3
| --- src/tag.c | ||
| +++ src/tag.c | ||
| @@ -656,11 +656,11 @@ | ||
| 656 | 656 | "SELECT tagname FROM tag" |
| 657 | 657 | " WHERE EXISTS(SELECT 1 FROM tagxref" |
| 658 | 658 | " WHERE tagid=tag.tagid" |
| 659 | 659 | " AND tagtype%s%d)" |
| 660 | 660 | " AND CASE WHEN %Q IS NULL THEN 1 ELSE tagname GLOB %Q||'*' " |
| 661 | - " END ORDER BY tagname", | |
| 661 | + " END ORDER BY tagname COLLATE uintnocase", | |
| 662 | 662 | zTagType!=0 ? (fInverse!=0?"<>":"=") : ">"/*safe-for-%s*/, |
| 663 | 663 | nTagType, zTagPrefix, zTagPrefix |
| 664 | 664 | ); |
| 665 | 665 | while( db_step(&q)==SQLITE_ROW ){ |
| 666 | 666 | const char *zName = db_column_text(&q, 0); |
| @@ -698,11 +698,11 @@ | ||
| 698 | 698 | } |
| 699 | 699 | db_prepare(&q, |
| 700 | 700 | "SELECT tagname, value FROM tagxref, tag" |
| 701 | 701 | " WHERE tagxref.rid=%d AND tagxref.tagid=tag.tagid" |
| 702 | 702 | " AND tagtype%s%d" |
| 703 | - " ORDER BY tagname", | |
| 703 | + " ORDER BY tagname COLLATE uintnocase", | |
| 704 | 704 | rid, |
| 705 | 705 | zTagType!=0 ? (fInverse!=0?"<>":"=") : ">"/*safe-for-%s*/, |
| 706 | 706 | nTagType |
| 707 | 707 | ); |
| 708 | 708 | while( db_step(&q)==SQLITE_ROW ){ |
| @@ -817,11 +817,11 @@ | ||
| 817 | 817 | " FROM tag" |
| 818 | 818 | " WHERE EXISTS(SELECT 1 FROM tagxref" |
| 819 | 819 | " WHERE tagid=tag.tagid" |
| 820 | 820 | " AND tagtype=1)" |
| 821 | 821 | " AND tagname GLOB 'sym-*'" |
| 822 | - " ORDER BY tagname" | |
| 822 | + " ORDER BY tagname COLLATE uintnocase" | |
| 823 | 823 | ); |
| 824 | 824 | @ <ul> |
| 825 | 825 | while( db_step(&q)==SQLITE_ROW ){ |
| 826 | 826 | const char *zName = db_column_text(&q, 0); |
| 827 | 827 | if( g.perm.Hyperlink ){ |
| 828 | 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", |
| 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 |