Fossil SCM

The same for raw mode as well.

jan.nijtmans 2013-10-21 08:33 UTC limit-tag
Commit 4b9be08a4d93109a6ab48048e328b7b962a3d995
1 file changed +4 -2
+4 -2
--- src/tag.c
+++ src/tag.c
@@ -437,24 +437,26 @@
437437
if( zType==0 || zType[0]==0 ) zType = "*";
438438
if( g.argc!=4 ){
439439
usage("find ?--raw? ?-t|--type TYPE? ?-n|--limit #? TAGNAME");
440440
}
441441
if( fRaw ){
442
+ int nLine = 0;
442443
blob_appendf(&sql,
443444
"SELECT blob.uuid FROM tagxref, blob"
444445
" WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)"
445446
" AND tagxref.tagtype>0"
446447
" AND blob.rid=tagxref.rid",
447448
g.argv[3]
448449
);
449
- if(nFindLimit>0){
450
+ if( nFindLimit>0 ){
450451
blob_appendf(&sql, " LIMIT %d", nFindLimit);
451452
}
452453
db_prepare(&q, "%s", blob_str(&sql));
453454
blob_reset(&sql);
454
- while( db_step(&q)==SQLITE_ROW ){
455
+ while( db_step(&q)==SQLITE_ROW && (nFindLimit<=0 || nLine<=nFindLimit)){
455456
fossil_print("%s\n", db_column_text(&q, 0));
457
+ nLine++;
456458
}
457459
db_finalize(&q);
458460
}else{
459461
int tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname='sym-%q'",
460462
g.argv[3]);
461463
--- src/tag.c
+++ src/tag.c
@@ -437,24 +437,26 @@
437 if( zType==0 || zType[0]==0 ) zType = "*";
438 if( g.argc!=4 ){
439 usage("find ?--raw? ?-t|--type TYPE? ?-n|--limit #? TAGNAME");
440 }
441 if( fRaw ){
 
442 blob_appendf(&sql,
443 "SELECT blob.uuid FROM tagxref, blob"
444 " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)"
445 " AND tagxref.tagtype>0"
446 " AND blob.rid=tagxref.rid",
447 g.argv[3]
448 );
449 if(nFindLimit>0){
450 blob_appendf(&sql, " LIMIT %d", nFindLimit);
451 }
452 db_prepare(&q, "%s", blob_str(&sql));
453 blob_reset(&sql);
454 while( db_step(&q)==SQLITE_ROW ){
455 fossil_print("%s\n", db_column_text(&q, 0));
 
456 }
457 db_finalize(&q);
458 }else{
459 int tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname='sym-%q'",
460 g.argv[3]);
461
--- src/tag.c
+++ src/tag.c
@@ -437,24 +437,26 @@
437 if( zType==0 || zType[0]==0 ) zType = "*";
438 if( g.argc!=4 ){
439 usage("find ?--raw? ?-t|--type TYPE? ?-n|--limit #? TAGNAME");
440 }
441 if( fRaw ){
442 int nLine = 0;
443 blob_appendf(&sql,
444 "SELECT blob.uuid FROM tagxref, blob"
445 " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)"
446 " AND tagxref.tagtype>0"
447 " AND blob.rid=tagxref.rid",
448 g.argv[3]
449 );
450 if( nFindLimit>0 ){
451 blob_appendf(&sql, " LIMIT %d", nFindLimit);
452 }
453 db_prepare(&q, "%s", blob_str(&sql));
454 blob_reset(&sql);
455 while( db_step(&q)==SQLITE_ROW && (nFindLimit<=0 || nLine<=nFindLimit)){
456 fossil_print("%s\n", db_column_text(&q, 0));
457 nLine++;
458 }
459 db_finalize(&q);
460 }else{
461 int tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname='sym-%q'",
462 g.argv[3]);
463

Keyboard Shortcuts

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