Fossil SCM

changed how /json/branch/list selects whether to look at open/all/closed branches.

stephan 2011-09-21 18:53 json
Commit 14423f32841334bca0fbed61a152d77771b66e60
1 file changed +24 -4
+24 -4
--- src/json.c
+++ src/json.c
@@ -1569,18 +1569,38 @@
15691569
static cson_value * json_branch_list(unsigned int depth){
15701570
cson_value * payV = cson_value_new_object();
15711571
cson_object * pay = cson_value_get_object(payV);
15721572
cson_value * listV = cson_value_new_array();
15731573
cson_array * list = cson_value_get_array(listV);
1574
+ char const * range = NULL;
15741575
int showAll = json_getenv_int("all",0);
15751576
int showClosed = showAll ? 0 : json_getenv_int("closed",0);
1577
+ int which = 0;
15761578
Stmt q;
1577
- char const * range = showAll
1578
- ? "all"
1579
- : (showClosed?"closed":"open");
1579
+ range = json_getenv_cstr("range");
1580
+ if(!range || !*range){
1581
+ range = showAll
1582
+ ? "all"
1583
+ : (showClosed?"closed":"open");
1584
+ }
1585
+ assert( (NULL != range) && *range );
1586
+ switch(*range){
1587
+ case 'c':
1588
+ range = "closed";
1589
+ which = -1;
1590
+ break;
1591
+ case 'a':
1592
+ range = "all";
1593
+ which = 1;
1594
+ break;
1595
+ default:
1596
+ range = "open";
1597
+ which = 0;
1598
+ break;
1599
+ };
15801600
cson_object_set(pay,"range",cson_value_new_string(range,strlen(range)));
1581
- branch_prepare_query(&q, showAll?1:(showClosed?-1:0));
1601
+ branch_prepare_query(&q, which);
15821602
cson_object_set(pay,"branches",listV);
15831603
while((SQLITE_ROW==db_step(&q))){
15841604
cson_value * v = cson_sqlite3_column_to_value(q.pStmt,0);
15851605
if(v){
15861606
cson_array_append(list,v);
15871607
--- src/json.c
+++ src/json.c
@@ -1569,18 +1569,38 @@
1569 static cson_value * json_branch_list(unsigned int depth){
1570 cson_value * payV = cson_value_new_object();
1571 cson_object * pay = cson_value_get_object(payV);
1572 cson_value * listV = cson_value_new_array();
1573 cson_array * list = cson_value_get_array(listV);
 
1574 int showAll = json_getenv_int("all",0);
1575 int showClosed = showAll ? 0 : json_getenv_int("closed",0);
 
1576 Stmt q;
1577 char const * range = showAll
1578 ? "all"
1579 : (showClosed?"closed":"open");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1580 cson_object_set(pay,"range",cson_value_new_string(range,strlen(range)));
1581 branch_prepare_query(&q, showAll?1:(showClosed?-1:0));
1582 cson_object_set(pay,"branches",listV);
1583 while((SQLITE_ROW==db_step(&q))){
1584 cson_value * v = cson_sqlite3_column_to_value(q.pStmt,0);
1585 if(v){
1586 cson_array_append(list,v);
1587
--- src/json.c
+++ src/json.c
@@ -1569,18 +1569,38 @@
1569 static cson_value * json_branch_list(unsigned int depth){
1570 cson_value * payV = cson_value_new_object();
1571 cson_object * pay = cson_value_get_object(payV);
1572 cson_value * listV = cson_value_new_array();
1573 cson_array * list = cson_value_get_array(listV);
1574 char const * range = NULL;
1575 int showAll = json_getenv_int("all",0);
1576 int showClosed = showAll ? 0 : json_getenv_int("closed",0);
1577 int which = 0;
1578 Stmt q;
1579 range = json_getenv_cstr("range");
1580 if(!range || !*range){
1581 range = showAll
1582 ? "all"
1583 : (showClosed?"closed":"open");
1584 }
1585 assert( (NULL != range) && *range );
1586 switch(*range){
1587 case 'c':
1588 range = "closed";
1589 which = -1;
1590 break;
1591 case 'a':
1592 range = "all";
1593 which = 1;
1594 break;
1595 default:
1596 range = "open";
1597 which = 0;
1598 break;
1599 };
1600 cson_object_set(pay,"range",cson_value_new_string(range,strlen(range)));
1601 branch_prepare_query(&q, which);
1602 cson_object_set(pay,"branches",listV);
1603 while((SQLITE_ROW==db_step(&q))){
1604 cson_value * v = cson_sqlite3_column_to_value(q.pStmt,0);
1605 if(v){
1606 cson_array_append(list,v);
1607

Keyboard Shortcuts

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