Fossil SCM

Minor cleanup to the implementation of command-line "timeline".

drh 2009-12-18 22:16 trunk
Commit 02920e92b50bdafc72937ee38277829f98ab2c43
1 file changed +10 -8
+10 -8
--- src/timeline.c
+++ src/timeline.c
@@ -894,11 +894,11 @@
894894
int n, k;
895895
const char *zCount;
896896
const char *zType;
897897
char *zOrigin;
898898
char *zDate;
899
- char *zSQL;
899
+ Blob sql;
900900
int objid = 0;
901901
Blob uuid;
902902
int mode = 0 ; /* 0:none 1: before 2:after 3:children 4:parents */
903903
db_find_and_open_repository(1);
904904
zCount = find_option("count","n",1);
@@ -961,31 +961,33 @@
961961
if( isIsoDate(zOrigin) ) zShift = ",'+1 day'";
962962
}
963963
zDate = mprintf("(SELECT julianday(%Q%s, 'utc'))", zOrigin, zShift);
964964
}
965965
if( mode==0 ) mode = 1;
966
- zSQL = mprintf("%z AND event.mtime %s %s",
967
- timeline_query_for_tty_m(),
966
+ blob_zero(&sql);
967
+ blob_append(&sql, timeline_query_for_tty(), -1);
968
+ blob_appendf(&sql, " AND event.mtime %s %s",
968969
(mode==1 || mode==4) ? "<=" : ">=",
969970
zDate
970971
);
972
+
971973
if( mode==3 || mode==4 ){
972974
db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY)");
973975
if( mode==3 ){
974976
compute_descendants(objid, n);
975977
}else{
976978
compute_ancestors(objid, n);
977979
}
978
- zSQL = mprintf("%z AND blob.rid IN ok", zSQL);
980
+ blob_appendf(&sql, " AND blob.rid IN ok");
979981
}
980982
if( zType && (zType[0]!='a') ){
981
- zSQL = mprintf( "%z AND event.type=%Q ", zSQL, zType);
983
+ blob_appendf(&sql, " AND event.type=%Q ", zType);
982984
}
983985
984
- zSQL = mprintf("%z ORDER BY event.mtime DESC", zSQL);
985
- db_prepare(&q, zSQL);
986
- free( zSQL );
986
+ blob_appendf(&sql, " ORDER BY event.mtime DESC");
987
+ db_prepare(&q, blob_str(&sql));
988
+ blob_reset(&sql);
987989
print_timeline(&q, n);
988990
db_finalize(&q);
989991
}
990992
991993
/*
992994
--- src/timeline.c
+++ src/timeline.c
@@ -894,11 +894,11 @@
894 int n, k;
895 const char *zCount;
896 const char *zType;
897 char *zOrigin;
898 char *zDate;
899 char *zSQL;
900 int objid = 0;
901 Blob uuid;
902 int mode = 0 ; /* 0:none 1: before 2:after 3:children 4:parents */
903 db_find_and_open_repository(1);
904 zCount = find_option("count","n",1);
@@ -961,31 +961,33 @@
961 if( isIsoDate(zOrigin) ) zShift = ",'+1 day'";
962 }
963 zDate = mprintf("(SELECT julianday(%Q%s, 'utc'))", zOrigin, zShift);
964 }
965 if( mode==0 ) mode = 1;
966 zSQL = mprintf("%z AND event.mtime %s %s",
967 timeline_query_for_tty_m(),
 
968 (mode==1 || mode==4) ? "<=" : ">=",
969 zDate
970 );
 
971 if( mode==3 || mode==4 ){
972 db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY)");
973 if( mode==3 ){
974 compute_descendants(objid, n);
975 }else{
976 compute_ancestors(objid, n);
977 }
978 zSQL = mprintf("%z AND blob.rid IN ok", zSQL);
979 }
980 if( zType && (zType[0]!='a') ){
981 zSQL = mprintf( "%z AND event.type=%Q ", zSQL, zType);
982 }
983
984 zSQL = mprintf("%z ORDER BY event.mtime DESC", zSQL);
985 db_prepare(&q, zSQL);
986 free( zSQL );
987 print_timeline(&q, n);
988 db_finalize(&q);
989 }
990
991 /*
992
--- src/timeline.c
+++ src/timeline.c
@@ -894,11 +894,11 @@
894 int n, k;
895 const char *zCount;
896 const char *zType;
897 char *zOrigin;
898 char *zDate;
899 Blob sql;
900 int objid = 0;
901 Blob uuid;
902 int mode = 0 ; /* 0:none 1: before 2:after 3:children 4:parents */
903 db_find_and_open_repository(1);
904 zCount = find_option("count","n",1);
@@ -961,31 +961,33 @@
961 if( isIsoDate(zOrigin) ) zShift = ",'+1 day'";
962 }
963 zDate = mprintf("(SELECT julianday(%Q%s, 'utc'))", zOrigin, zShift);
964 }
965 if( mode==0 ) mode = 1;
966 blob_zero(&sql);
967 blob_append(&sql, timeline_query_for_tty(), -1);
968 blob_appendf(&sql, " AND event.mtime %s %s",
969 (mode==1 || mode==4) ? "<=" : ">=",
970 zDate
971 );
972
973 if( mode==3 || mode==4 ){
974 db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY)");
975 if( mode==3 ){
976 compute_descendants(objid, n);
977 }else{
978 compute_ancestors(objid, n);
979 }
980 blob_appendf(&sql, " AND blob.rid IN ok");
981 }
982 if( zType && (zType[0]!='a') ){
983 blob_appendf(&sql, " AND event.type=%Q ", zType);
984 }
985
986 blob_appendf(&sql, " ORDER BY event.mtime DESC");
987 db_prepare(&q, blob_str(&sql));
988 blob_reset(&sql);
989 print_timeline(&q, n);
990 db_finalize(&q);
991 }
992
993 /*
994

Keyboard Shortcuts

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