Fossil SCM

Merge updates from trunk.

mistachkin 2014-06-24 00:40 experimental merge
Commit 591bc4434b4bf7068df57396e9b937a71a05deb6
+1 -1
--- src/main.c
+++ src/main.c
@@ -30,14 +30,14 @@
3030
#if defined(_WIN32)
3131
# include <windows.h>
3232
#else
3333
# include <errno.h> /* errno global */
3434
#endif
35
-#include "zlib.h"
3635
#ifdef FOSSIL_ENABLE_SSL
3736
# include "openssl/crypto.h"
3837
#endif
38
+#include "zlib.h"
3939
#if INTERFACE
4040
#ifdef FOSSIL_ENABLE_TCL
4141
# include "tcl.h"
4242
#endif
4343
#ifdef FOSSIL_ENABLE_JSON
4444
--- src/main.c
+++ src/main.c
@@ -30,14 +30,14 @@
30 #if defined(_WIN32)
31 # include <windows.h>
32 #else
33 # include <errno.h> /* errno global */
34 #endif
35 #include "zlib.h"
36 #ifdef FOSSIL_ENABLE_SSL
37 # include "openssl/crypto.h"
38 #endif
 
39 #if INTERFACE
40 #ifdef FOSSIL_ENABLE_TCL
41 # include "tcl.h"
42 #endif
43 #ifdef FOSSIL_ENABLE_JSON
44
--- src/main.c
+++ src/main.c
@@ -30,14 +30,14 @@
30 #if defined(_WIN32)
31 # include <windows.h>
32 #else
33 # include <errno.h> /* errno global */
34 #endif
 
35 #ifdef FOSSIL_ENABLE_SSL
36 # include "openssl/crypto.h"
37 #endif
38 #include "zlib.h"
39 #if INTERFACE
40 #ifdef FOSSIL_ENABLE_TCL
41 # include "tcl.h"
42 #endif
43 #ifdef FOSSIL_ENABLE_JSON
44
+2
--- src/rss.c
+++ src/rss.c
@@ -204,10 +204,12 @@
204204
}
205205
}
206206
207207
/*
208208
** COMMAND: rss
209
+**
210
+** Usage: %fossil rss ?OPTIONS?
209211
**
210212
** The CLI variant of the /timeline.rss page, this produces an RSS
211213
** feed of the timeline to stdout. Options:
212214
**
213215
** -type|y FLAG
214216
--- src/rss.c
+++ src/rss.c
@@ -204,10 +204,12 @@
204 }
205 }
206
207 /*
208 ** COMMAND: rss
 
 
209 **
210 ** The CLI variant of the /timeline.rss page, this produces an RSS
211 ** feed of the timeline to stdout. Options:
212 **
213 ** -type|y FLAG
214
--- src/rss.c
+++ src/rss.c
@@ -204,10 +204,12 @@
204 }
205 }
206
207 /*
208 ** COMMAND: rss
209 **
210 ** Usage: %fossil rss ?OPTIONS?
211 **
212 ** The CLI variant of the /timeline.rss page, this produces an RSS
213 ** feed of the timeline to stdout. Options:
214 **
215 ** -type|y FLAG
216
+9 -9
--- src/timeline.c
+++ src/timeline.c
@@ -1972,11 +1972,11 @@
19721972
19731973
/*
19741974
** Set by stats_report_init_view() to one of the y=XXXX values
19751975
** accepted by /timeline?y=XXXX.
19761976
*/
1977
-static char const * statsReportTimelineYFlag = NULL;
1977
+static const char * statsReportTimelineYFlag = NULL;
19781978
19791979
/*
19801980
** Creates a TEMP VIEW named v_reports which is a wrapper around the
19811981
** EVENT table filtered on event.type. It looks for the request
19821982
** parameter 'type' (reminder: we "should" use 'y' for consistency
@@ -1993,12 +1993,12 @@
19931993
** Returns one of: 'c', 'w', 'g', 't', 'e', representing the type of
19941994
** filter it applies, or '*' if no filter is applied (i.e. if "all" is
19951995
** used).
19961996
*/
19971997
static int stats_report_init_view(){
1998
- char const * zType = PD("type","*"); /* analog to /timeline?y=... */
1999
- char const * zRealType = NULL; /* normalized form of zType */
1998
+ const char * zType = PD("type","*"); /* analog to /timeline?y=... */
1999
+ const char * zRealType = NULL; /* normalized form of zType */
20002000
int rc = 0; /* result code */
20012001
assert( !statsReportType && "Must not be called more than once." );
20022002
switch( (zType && *zType) ? *zType : 0 ){
20032003
case 'c':
20042004
case 'C':
@@ -2047,11 +2047,11 @@
20472047
** Returns a string suitable (for a given value of suitable) for
20482048
** use in a label with the header of the /reports pages, dependent
20492049
** on the 'type' flag. See stats_report_init_view().
20502050
** The returned bytes are static.
20512051
*/
2052
-static char const * stats_report_label_for_type(){
2052
+static const char * stats_report_label_for_type(){
20532053
assert( statsReportType && "Must call stats_report_init_view() first." );
20542054
switch( statsReportType ){
20552055
case 'c':
20562056
return "checkins";
20572057
case 'w':
@@ -2072,12 +2072,12 @@
20722072
** time this is called. e.g. if called from the 'byuser' view then
20732073
** zCurrentViewName must be "byuser". Any URL parameters which need to
20742074
** be added to the generated URLs should be passed in zParam. The
20752075
** caller is expected to have already encoded any zParam in the %T or
20762076
** %t encoding. */
2077
-static void stats_report_event_types_menu(char const * zCurrentViewName,
2078
- char const * zParam){
2077
+static void stats_report_event_types_menu(const char * zCurrentViewName,
2078
+ const char * zParam){
20792079
char * zTop;
20802080
if(zParam && !*zParam){
20812081
zParam = NULL;
20822082
}
20832083
zTop = mprintf("%s/reports?view=%s%s%s", g.zTop, zCurrentViewName,
@@ -2297,11 +2297,11 @@
22972297
@ <td colspan='2'>Yearly total: %d(nEventsPerYear)</td>
22982298
@</tr>
22992299
}
23002300
@ </tbody></table>
23012301
if(nEventTotal){
2302
- char const * zAvgLabel = includeMonth ? "month" : "year";
2302
+ const char * zAvgLabel = includeMonth ? "month" : "year";
23032303
int nAvg = iterations ? (nEventTotal/iterations) : 0;
23042304
@ <br><div>Total events: %d(nEventTotal)
23052305
@ <br>Average per active %s(zAvgLabel): %d(nAvg)
23062306
@ </div>
23072307
}
@@ -2387,15 +2387,15 @@
23872387
int rowClass = 0; /* counter for alternating
23882388
row colors */
23892389
Blob sql = empty_blob; /* SQL */
23902390
int nMaxEvents = 1; /* max number of events for
23912391
all rows. */
2392
- static char const * daysOfWeek[] = {
2392
+ static const char * const daysOfWeek[] = {
23932393
"Monday", "Tuesday", "Wednesday", "Thursday",
23942394
"Friday", "Saturday", "Sunday"
23952395
};
2396
-
2396
+
23972397
stats_report_init_view();
23982398
stats_report_event_types_menu("byweekday", NULL);
23992399
blob_append(&sql,
24002400
"SELECT cast(mtime %% 7 AS INTEGER) dow, "
24012401
"COUNT(*) AS eventCount "
24022402
--- src/timeline.c
+++ src/timeline.c
@@ -1972,11 +1972,11 @@
1972
1973 /*
1974 ** Set by stats_report_init_view() to one of the y=XXXX values
1975 ** accepted by /timeline?y=XXXX.
1976 */
1977 static char const * statsReportTimelineYFlag = NULL;
1978
1979 /*
1980 ** Creates a TEMP VIEW named v_reports which is a wrapper around the
1981 ** EVENT table filtered on event.type. It looks for the request
1982 ** parameter 'type' (reminder: we "should" use 'y' for consistency
@@ -1993,12 +1993,12 @@
1993 ** Returns one of: 'c', 'w', 'g', 't', 'e', representing the type of
1994 ** filter it applies, or '*' if no filter is applied (i.e. if "all" is
1995 ** used).
1996 */
1997 static int stats_report_init_view(){
1998 char const * zType = PD("type","*"); /* analog to /timeline?y=... */
1999 char const * zRealType = NULL; /* normalized form of zType */
2000 int rc = 0; /* result code */
2001 assert( !statsReportType && "Must not be called more than once." );
2002 switch( (zType && *zType) ? *zType : 0 ){
2003 case 'c':
2004 case 'C':
@@ -2047,11 +2047,11 @@
2047 ** Returns a string suitable (for a given value of suitable) for
2048 ** use in a label with the header of the /reports pages, dependent
2049 ** on the 'type' flag. See stats_report_init_view().
2050 ** The returned bytes are static.
2051 */
2052 static char const * stats_report_label_for_type(){
2053 assert( statsReportType && "Must call stats_report_init_view() first." );
2054 switch( statsReportType ){
2055 case 'c':
2056 return "checkins";
2057 case 'w':
@@ -2072,12 +2072,12 @@
2072 ** time this is called. e.g. if called from the 'byuser' view then
2073 ** zCurrentViewName must be "byuser". Any URL parameters which need to
2074 ** be added to the generated URLs should be passed in zParam. The
2075 ** caller is expected to have already encoded any zParam in the %T or
2076 ** %t encoding. */
2077 static void stats_report_event_types_menu(char const * zCurrentViewName,
2078 char const * zParam){
2079 char * zTop;
2080 if(zParam && !*zParam){
2081 zParam = NULL;
2082 }
2083 zTop = mprintf("%s/reports?view=%s%s%s", g.zTop, zCurrentViewName,
@@ -2297,11 +2297,11 @@
2297 @ <td colspan='2'>Yearly total: %d(nEventsPerYear)</td>
2298 @</tr>
2299 }
2300 @ </tbody></table>
2301 if(nEventTotal){
2302 char const * zAvgLabel = includeMonth ? "month" : "year";
2303 int nAvg = iterations ? (nEventTotal/iterations) : 0;
2304 @ <br><div>Total events: %d(nEventTotal)
2305 @ <br>Average per active %s(zAvgLabel): %d(nAvg)
2306 @ </div>
2307 }
@@ -2387,15 +2387,15 @@
2387 int rowClass = 0; /* counter for alternating
2388 row colors */
2389 Blob sql = empty_blob; /* SQL */
2390 int nMaxEvents = 1; /* max number of events for
2391 all rows. */
2392 static char const * daysOfWeek[] = {
2393 "Monday", "Tuesday", "Wednesday", "Thursday",
2394 "Friday", "Saturday", "Sunday"
2395 };
2396
2397 stats_report_init_view();
2398 stats_report_event_types_menu("byweekday", NULL);
2399 blob_append(&sql,
2400 "SELECT cast(mtime %% 7 AS INTEGER) dow, "
2401 "COUNT(*) AS eventCount "
2402
--- src/timeline.c
+++ src/timeline.c
@@ -1972,11 +1972,11 @@
1972
1973 /*
1974 ** Set by stats_report_init_view() to one of the y=XXXX values
1975 ** accepted by /timeline?y=XXXX.
1976 */
1977 static const char * statsReportTimelineYFlag = NULL;
1978
1979 /*
1980 ** Creates a TEMP VIEW named v_reports which is a wrapper around the
1981 ** EVENT table filtered on event.type. It looks for the request
1982 ** parameter 'type' (reminder: we "should" use 'y' for consistency
@@ -1993,12 +1993,12 @@
1993 ** Returns one of: 'c', 'w', 'g', 't', 'e', representing the type of
1994 ** filter it applies, or '*' if no filter is applied (i.e. if "all" is
1995 ** used).
1996 */
1997 static int stats_report_init_view(){
1998 const char * zType = PD("type","*"); /* analog to /timeline?y=... */
1999 const char * zRealType = NULL; /* normalized form of zType */
2000 int rc = 0; /* result code */
2001 assert( !statsReportType && "Must not be called more than once." );
2002 switch( (zType && *zType) ? *zType : 0 ){
2003 case 'c':
2004 case 'C':
@@ -2047,11 +2047,11 @@
2047 ** Returns a string suitable (for a given value of suitable) for
2048 ** use in a label with the header of the /reports pages, dependent
2049 ** on the 'type' flag. See stats_report_init_view().
2050 ** The returned bytes are static.
2051 */
2052 static const char * stats_report_label_for_type(){
2053 assert( statsReportType && "Must call stats_report_init_view() first." );
2054 switch( statsReportType ){
2055 case 'c':
2056 return "checkins";
2057 case 'w':
@@ -2072,12 +2072,12 @@
2072 ** time this is called. e.g. if called from the 'byuser' view then
2073 ** zCurrentViewName must be "byuser". Any URL parameters which need to
2074 ** be added to the generated URLs should be passed in zParam. The
2075 ** caller is expected to have already encoded any zParam in the %T or
2076 ** %t encoding. */
2077 static void stats_report_event_types_menu(const char * zCurrentViewName,
2078 const char * zParam){
2079 char * zTop;
2080 if(zParam && !*zParam){
2081 zParam = NULL;
2082 }
2083 zTop = mprintf("%s/reports?view=%s%s%s", g.zTop, zCurrentViewName,
@@ -2297,11 +2297,11 @@
2297 @ <td colspan='2'>Yearly total: %d(nEventsPerYear)</td>
2298 @</tr>
2299 }
2300 @ </tbody></table>
2301 if(nEventTotal){
2302 const char * zAvgLabel = includeMonth ? "month" : "year";
2303 int nAvg = iterations ? (nEventTotal/iterations) : 0;
2304 @ <br><div>Total events: %d(nEventTotal)
2305 @ <br>Average per active %s(zAvgLabel): %d(nAvg)
2306 @ </div>
2307 }
@@ -2387,15 +2387,15 @@
2387 int rowClass = 0; /* counter for alternating
2388 row colors */
2389 Blob sql = empty_blob; /* SQL */
2390 int nMaxEvents = 1; /* max number of events for
2391 all rows. */
2392 static const char * const daysOfWeek[] = {
2393 "Monday", "Tuesday", "Wednesday", "Thursday",
2394 "Friday", "Saturday", "Sunday"
2395 };
2396
2397 stats_report_init_view();
2398 stats_report_event_types_menu("byweekday", NULL);
2399 blob_append(&sql,
2400 "SELECT cast(mtime %% 7 AS INTEGER) dow, "
2401 "COUNT(*) AS eventCount "
2402
+9 -9
--- src/timeline.c
+++ src/timeline.c
@@ -1972,11 +1972,11 @@
19721972
19731973
/*
19741974
** Set by stats_report_init_view() to one of the y=XXXX values
19751975
** accepted by /timeline?y=XXXX.
19761976
*/
1977
-static char const * statsReportTimelineYFlag = NULL;
1977
+static const char * statsReportTimelineYFlag = NULL;
19781978
19791979
/*
19801980
** Creates a TEMP VIEW named v_reports which is a wrapper around the
19811981
** EVENT table filtered on event.type. It looks for the request
19821982
** parameter 'type' (reminder: we "should" use 'y' for consistency
@@ -1993,12 +1993,12 @@
19931993
** Returns one of: 'c', 'w', 'g', 't', 'e', representing the type of
19941994
** filter it applies, or '*' if no filter is applied (i.e. if "all" is
19951995
** used).
19961996
*/
19971997
static int stats_report_init_view(){
1998
- char const * zType = PD("type","*"); /* analog to /timeline?y=... */
1999
- char const * zRealType = NULL; /* normalized form of zType */
1998
+ const char * zType = PD("type","*"); /* analog to /timeline?y=... */
1999
+ const char * zRealType = NULL; /* normalized form of zType */
20002000
int rc = 0; /* result code */
20012001
assert( !statsReportType && "Must not be called more than once." );
20022002
switch( (zType && *zType) ? *zType : 0 ){
20032003
case 'c':
20042004
case 'C':
@@ -2047,11 +2047,11 @@
20472047
** Returns a string suitable (for a given value of suitable) for
20482048
** use in a label with the header of the /reports pages, dependent
20492049
** on the 'type' flag. See stats_report_init_view().
20502050
** The returned bytes are static.
20512051
*/
2052
-static char const * stats_report_label_for_type(){
2052
+static const char * stats_report_label_for_type(){
20532053
assert( statsReportType && "Must call stats_report_init_view() first." );
20542054
switch( statsReportType ){
20552055
case 'c':
20562056
return "checkins";
20572057
case 'w':
@@ -2072,12 +2072,12 @@
20722072
** time this is called. e.g. if called from the 'byuser' view then
20732073
** zCurrentViewName must be "byuser". Any URL parameters which need to
20742074
** be added to the generated URLs should be passed in zParam. The
20752075
** caller is expected to have already encoded any zParam in the %T or
20762076
** %t encoding. */
2077
-static void stats_report_event_types_menu(char const * zCurrentViewName,
2078
- char const * zParam){
2077
+static void stats_report_event_types_menu(const char * zCurrentViewName,
2078
+ const char * zParam){
20792079
char * zTop;
20802080
if(zParam && !*zParam){
20812081
zParam = NULL;
20822082
}
20832083
zTop = mprintf("%s/reports?view=%s%s%s", g.zTop, zCurrentViewName,
@@ -2297,11 +2297,11 @@
22972297
@ <td colspan='2'>Yearly total: %d(nEventsPerYear)</td>
22982298
@</tr>
22992299
}
23002300
@ </tbody></table>
23012301
if(nEventTotal){
2302
- char const * zAvgLabel = includeMonth ? "month" : "year";
2302
+ const char * zAvgLabel = includeMonth ? "month" : "year";
23032303
int nAvg = iterations ? (nEventTotal/iterations) : 0;
23042304
@ <br><div>Total events: %d(nEventTotal)
23052305
@ <br>Average per active %s(zAvgLabel): %d(nAvg)
23062306
@ </div>
23072307
}
@@ -2387,15 +2387,15 @@
23872387
int rowClass = 0; /* counter for alternating
23882388
row colors */
23892389
Blob sql = empty_blob; /* SQL */
23902390
int nMaxEvents = 1; /* max number of events for
23912391
all rows. */
2392
- static char const * daysOfWeek[] = {
2392
+ static const char * const daysOfWeek[] = {
23932393
"Monday", "Tuesday", "Wednesday", "Thursday",
23942394
"Friday", "Saturday", "Sunday"
23952395
};
2396
-
2396
+
23972397
stats_report_init_view();
23982398
stats_report_event_types_menu("byweekday", NULL);
23992399
blob_append(&sql,
24002400
"SELECT cast(mtime %% 7 AS INTEGER) dow, "
24012401
"COUNT(*) AS eventCount "
24022402
--- src/timeline.c
+++ src/timeline.c
@@ -1972,11 +1972,11 @@
1972
1973 /*
1974 ** Set by stats_report_init_view() to one of the y=XXXX values
1975 ** accepted by /timeline?y=XXXX.
1976 */
1977 static char const * statsReportTimelineYFlag = NULL;
1978
1979 /*
1980 ** Creates a TEMP VIEW named v_reports which is a wrapper around the
1981 ** EVENT table filtered on event.type. It looks for the request
1982 ** parameter 'type' (reminder: we "should" use 'y' for consistency
@@ -1993,12 +1993,12 @@
1993 ** Returns one of: 'c', 'w', 'g', 't', 'e', representing the type of
1994 ** filter it applies, or '*' if no filter is applied (i.e. if "all" is
1995 ** used).
1996 */
1997 static int stats_report_init_view(){
1998 char const * zType = PD("type","*"); /* analog to /timeline?y=... */
1999 char const * zRealType = NULL; /* normalized form of zType */
2000 int rc = 0; /* result code */
2001 assert( !statsReportType && "Must not be called more than once." );
2002 switch( (zType && *zType) ? *zType : 0 ){
2003 case 'c':
2004 case 'C':
@@ -2047,11 +2047,11 @@
2047 ** Returns a string suitable (for a given value of suitable) for
2048 ** use in a label with the header of the /reports pages, dependent
2049 ** on the 'type' flag. See stats_report_init_view().
2050 ** The returned bytes are static.
2051 */
2052 static char const * stats_report_label_for_type(){
2053 assert( statsReportType && "Must call stats_report_init_view() first." );
2054 switch( statsReportType ){
2055 case 'c':
2056 return "checkins";
2057 case 'w':
@@ -2072,12 +2072,12 @@
2072 ** time this is called. e.g. if called from the 'byuser' view then
2073 ** zCurrentViewName must be "byuser". Any URL parameters which need to
2074 ** be added to the generated URLs should be passed in zParam. The
2075 ** caller is expected to have already encoded any zParam in the %T or
2076 ** %t encoding. */
2077 static void stats_report_event_types_menu(char const * zCurrentViewName,
2078 char const * zParam){
2079 char * zTop;
2080 if(zParam && !*zParam){
2081 zParam = NULL;
2082 }
2083 zTop = mprintf("%s/reports?view=%s%s%s", g.zTop, zCurrentViewName,
@@ -2297,11 +2297,11 @@
2297 @ <td colspan='2'>Yearly total: %d(nEventsPerYear)</td>
2298 @</tr>
2299 }
2300 @ </tbody></table>
2301 if(nEventTotal){
2302 char const * zAvgLabel = includeMonth ? "month" : "year";
2303 int nAvg = iterations ? (nEventTotal/iterations) : 0;
2304 @ <br><div>Total events: %d(nEventTotal)
2305 @ <br>Average per active %s(zAvgLabel): %d(nAvg)
2306 @ </div>
2307 }
@@ -2387,15 +2387,15 @@
2387 int rowClass = 0; /* counter for alternating
2388 row colors */
2389 Blob sql = empty_blob; /* SQL */
2390 int nMaxEvents = 1; /* max number of events for
2391 all rows. */
2392 static char const * daysOfWeek[] = {
2393 "Monday", "Tuesday", "Wednesday", "Thursday",
2394 "Friday", "Saturday", "Sunday"
2395 };
2396
2397 stats_report_init_view();
2398 stats_report_event_types_menu("byweekday", NULL);
2399 blob_append(&sql,
2400 "SELECT cast(mtime %% 7 AS INTEGER) dow, "
2401 "COUNT(*) AS eventCount "
2402
--- src/timeline.c
+++ src/timeline.c
@@ -1972,11 +1972,11 @@
1972
1973 /*
1974 ** Set by stats_report_init_view() to one of the y=XXXX values
1975 ** accepted by /timeline?y=XXXX.
1976 */
1977 static const char * statsReportTimelineYFlag = NULL;
1978
1979 /*
1980 ** Creates a TEMP VIEW named v_reports which is a wrapper around the
1981 ** EVENT table filtered on event.type. It looks for the request
1982 ** parameter 'type' (reminder: we "should" use 'y' for consistency
@@ -1993,12 +1993,12 @@
1993 ** Returns one of: 'c', 'w', 'g', 't', 'e', representing the type of
1994 ** filter it applies, or '*' if no filter is applied (i.e. if "all" is
1995 ** used).
1996 */
1997 static int stats_report_init_view(){
1998 const char * zType = PD("type","*"); /* analog to /timeline?y=... */
1999 const char * zRealType = NULL; /* normalized form of zType */
2000 int rc = 0; /* result code */
2001 assert( !statsReportType && "Must not be called more than once." );
2002 switch( (zType && *zType) ? *zType : 0 ){
2003 case 'c':
2004 case 'C':
@@ -2047,11 +2047,11 @@
2047 ** Returns a string suitable (for a given value of suitable) for
2048 ** use in a label with the header of the /reports pages, dependent
2049 ** on the 'type' flag. See stats_report_init_view().
2050 ** The returned bytes are static.
2051 */
2052 static const char * stats_report_label_for_type(){
2053 assert( statsReportType && "Must call stats_report_init_view() first." );
2054 switch( statsReportType ){
2055 case 'c':
2056 return "checkins";
2057 case 'w':
@@ -2072,12 +2072,12 @@
2072 ** time this is called. e.g. if called from the 'byuser' view then
2073 ** zCurrentViewName must be "byuser". Any URL parameters which need to
2074 ** be added to the generated URLs should be passed in zParam. The
2075 ** caller is expected to have already encoded any zParam in the %T or
2076 ** %t encoding. */
2077 static void stats_report_event_types_menu(const char * zCurrentViewName,
2078 const char * zParam){
2079 char * zTop;
2080 if(zParam && !*zParam){
2081 zParam = NULL;
2082 }
2083 zTop = mprintf("%s/reports?view=%s%s%s", g.zTop, zCurrentViewName,
@@ -2297,11 +2297,11 @@
2297 @ <td colspan='2'>Yearly total: %d(nEventsPerYear)</td>
2298 @</tr>
2299 }
2300 @ </tbody></table>
2301 if(nEventTotal){
2302 const char * zAvgLabel = includeMonth ? "month" : "year";
2303 int nAvg = iterations ? (nEventTotal/iterations) : 0;
2304 @ <br><div>Total events: %d(nEventTotal)
2305 @ <br>Average per active %s(zAvgLabel): %d(nAvg)
2306 @ </div>
2307 }
@@ -2387,15 +2387,15 @@
2387 int rowClass = 0; /* counter for alternating
2388 row colors */
2389 Blob sql = empty_blob; /* SQL */
2390 int nMaxEvents = 1; /* max number of events for
2391 all rows. */
2392 static const char * const daysOfWeek[] = {
2393 "Monday", "Tuesday", "Wednesday", "Thursday",
2394 "Friday", "Saturday", "Sunday"
2395 };
2396
2397 stats_report_init_view();
2398 stats_report_event_types_menu("byweekday", NULL);
2399 blob_append(&sql,
2400 "SELECT cast(mtime %% 7 AS INTEGER) dow, "
2401 "COUNT(*) AS eventCount "
2402

Keyboard Shortcuts

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