Fossil SCM
Simpler: In raw mode, each entry outputs a single line, so LIMIT can do the job as well.
Commit
59da96864528f43e40bf8489b25980475025908f
Parent
4b9be08a4d93109…
1 file changed
+3
-5
+3
-5
| --- src/tag.c | ||
| +++ src/tag.c | ||
| @@ -437,26 +437,24 @@ | ||
| 437 | 437 | if( zType==0 || zType[0]==0 ) zType = "*"; |
| 438 | 438 | if( g.argc!=4 ){ |
| 439 | 439 | usage("find ?--raw? ?-t|--type TYPE? ?-n|--limit #? TAGNAME"); |
| 440 | 440 | } |
| 441 | 441 | if( fRaw ){ |
| 442 | - int nLine = 0; | |
| 443 | 442 | blob_appendf(&sql, |
| 444 | 443 | "SELECT blob.uuid FROM tagxref, blob" |
| 445 | 444 | " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)" |
| 446 | 445 | " AND tagxref.tagtype>0" |
| 447 | 446 | " AND blob.rid=tagxref.rid", |
| 448 | 447 | g.argv[3] |
| 449 | 448 | ); |
| 450 | - if( nFindLimit>0 ){ | |
| 451 | - blob_appendf(&sql, " LIMIT %d", nFindLimit); | |
| 449 | + if( nFindLimit!=0 ){ | |
| 450 | + blob_appendf(&sql, " LIMIT %d", nFindLimit<0?-nFindLimit:nFindLimit); | |
| 452 | 451 | } |
| 453 | 452 | db_prepare(&q, "%s", blob_str(&sql)); |
| 454 | 453 | blob_reset(&sql); |
| 455 | - while( db_step(&q)==SQLITE_ROW && (nFindLimit<=0 || nLine<=nFindLimit)){ | |
| 454 | + while( db_step(&q)==SQLITE_ROW){ | |
| 456 | 455 | fossil_print("%s\n", db_column_text(&q, 0)); |
| 457 | - nLine++; | |
| 458 | 456 | } |
| 459 | 457 | db_finalize(&q); |
| 460 | 458 | }else{ |
| 461 | 459 | int tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname='sym-%q'", |
| 462 | 460 | g.argv[3]); |
| 463 | 461 |
| --- src/tag.c | |
| +++ src/tag.c | |
| @@ -437,26 +437,24 @@ | |
| 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 |
| --- src/tag.c | |
| +++ src/tag.c | |
| @@ -437,26 +437,24 @@ | |
| 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<0?-nFindLimit: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 |