Fossil SCM

Modify the Tcl argument handling to deal with object reference counts and errors.

mistachkin 2012-08-22 11:15 tcl-argv-handling-v2
Commit 46864ac9cc3e800a29157f1922d07a968117b000
+70 -11
--- src/th_tcl.c
+++ src/th_tcl.c
@@ -368,10 +368,66 @@
368368
/* Remove the Tcl integration commands. */
369369
for(i=0; i<(sizeof(aCommand)/sizeof(aCommand[0])); i++){
370370
Th_RenameCommand(th1Interp, aCommand[i].zName, -1, NULL, 0);
371371
}
372372
}
373
+
374
+/*
375
+** Sets the "argv0", "argc", and "argv" script variables in the Tcl interpreter
376
+** based on the supplied command line arguments.
377
+ */
378
+static int setTclArguments(
379
+ Tcl_Interp *pInterp,
380
+ int argc,
381
+ char **argv
382
+){
383
+ Tcl_Obj *objPtr;
384
+ Tcl_Obj *resultObjPtr;
385
+ Tcl_Obj *listPtr;
386
+ int rc;
387
+ if( argc<=0 || !argv ){
388
+ return TCL_OK;
389
+ }
390
+ objPtr = Tcl_NewStringObj(argv[0], -1);
391
+ Tcl_IncrRefCount(objPtr);
392
+ resultObjPtr = Tcl_SetVar2Ex(pInterp, "argv0", NULL, objPtr,
393
+ TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG);
394
+ Tcl_DecrRefCount(objPtr);
395
+ if( !resultObjPtr ){
396
+ return TCL_ERROR;
397
+ }
398
+ objPtr = Tcl_NewIntObj(argc - 1);
399
+ Tcl_IncrRefCount(objPtr);
400
+ resultObjPtr = Tcl_SetVar2Ex(pInterp, "argc", NULL, objPtr,
401
+ TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG);
402
+ Tcl_DecrRefCount(objPtr);
403
+ if( !resultObjPtr ){
404
+ return TCL_ERROR;
405
+ }
406
+ if( argc>1 ){
407
+ listPtr = Tcl_NewListObj(0, NULL);
408
+ Tcl_IncrRefCount(listPtr);
409
+ while( --argc ){
410
+ objPtr = Tcl_NewStringObj(*++argv, -1);
411
+ Tcl_IncrRefCount(objPtr);
412
+ rc = Tcl_ListObjAppendElement(pInterp, listPtr, objPtr);
413
+ Tcl_DecrRefCount(objPtr);
414
+ if( rc!=TCL_OK ){
415
+ break;
416
+ }
417
+ }
418
+ if( rc==TCL_OK ){
419
+ resultObjPtr = Tcl_SetVar2Ex(pInterp, "argv", NULL, listPtr,
420
+ TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG);
421
+ if( !resultObjPtr ){
422
+ rc = TCL_ERROR;
423
+ }
424
+ }
425
+ Tcl_DecrRefCount(listPtr);
426
+ }
427
+ return rc;
428
+}
373429
374430
/*
375431
** Creates and initializes a Tcl interpreter for use with the specified TH1
376432
** interpreter. Stores the created Tcl interpreter in the Tcl context supplied
377433
** by the caller.
@@ -379,10 +435,12 @@
379435
static int createTclInterp(
380436
Th_Interp *interp,
381437
void *pContext
382438
){
383439
struct TclContext *tclContext = (struct TclContext *)pContext;
440
+ int argc;
441
+ char **argv;
384442
Tcl_Interp *tclInterp;
385443
386444
if ( !tclContext ){
387445
Th_ErrorMessage(interp,
388446
"Invalid Tcl context", (const char *)"", 0);
@@ -389,11 +447,15 @@
389447
return TH_ERROR;
390448
}
391449
if ( tclContext->interp ){
392450
return TH_OK;
393451
}
394
- Tcl_FindExecutable(tclContext->argv[0]);
452
+ argc = tclContext->argc;
453
+ argv = tclContext->argv;
454
+ if ( argc>0 && argv ) {
455
+ Tcl_FindExecutable(argv[0]);
456
+ }
395457
tclInterp = tclContext->interp = Tcl_CreateInterp();
396458
if( !tclInterp || Tcl_InterpDeleted(tclInterp) ){
397459
Th_ErrorMessage(interp,
398460
"Could not create Tcl interpreter", (const char *)"", 0);
399461
return TH_ERROR;
@@ -403,20 +465,17 @@
403465
"Tcl initialization error:", Tcl_GetStringResult(tclInterp), -1);
404466
Tcl_DeleteInterp(tclInterp);
405467
tclContext->interp = tclInterp = 0;
406468
return TH_ERROR;
407469
}
408
- if (tclContext->argc > 0) {
409
- int argc = tclContext->argc - 1;
410
- char **argv = tclContext->argv + 1;
411
- Tcl_Obj *argvPtr = Tcl_NewListObj(0, NULL);
412
- while (argc--) {
413
- Tcl_ListObjAppendElement(NULL, argvPtr, Tcl_NewStringObj(*argv++, -1));
414
- }
415
- Tcl_SetVar2Ex(tclContext->interp, "argv", NULL, argvPtr, TCL_GLOBAL_ONLY);
416
- }
417
-
470
+ if( setTclArguments(tclInterp, argc, argv)!=TCL_OK ){
471
+ Th_ErrorMessage(interp,
472
+ "Tcl error setting arguments:", Tcl_GetStringResult(tclInterp), -1);
473
+ Tcl_DeleteInterp(tclInterp);
474
+ tclContext->interp = tclInterp = 0;
475
+ return TH_ERROR;
476
+ }
418477
/* Add the TH1 integration commands to Tcl. */
419478
Tcl_CallWhenDeleted(tclInterp, Th1DeleteProc, interp);
420479
Tcl_CreateObjCommand(tclInterp, "th1Eval", Th1EvalObjCmd, interp, NULL);
421480
Tcl_CreateObjCommand(tclInterp, "th1Expr", Th1ExprObjCmd, interp, NULL);
422481
return TH_OK;
423482
--- src/th_tcl.c
+++ src/th_tcl.c
@@ -368,10 +368,66 @@
368 /* Remove the Tcl integration commands. */
369 for(i=0; i<(sizeof(aCommand)/sizeof(aCommand[0])); i++){
370 Th_RenameCommand(th1Interp, aCommand[i].zName, -1, NULL, 0);
371 }
372 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
373
374 /*
375 ** Creates and initializes a Tcl interpreter for use with the specified TH1
376 ** interpreter. Stores the created Tcl interpreter in the Tcl context supplied
377 ** by the caller.
@@ -379,10 +435,12 @@
379 static int createTclInterp(
380 Th_Interp *interp,
381 void *pContext
382 ){
383 struct TclContext *tclContext = (struct TclContext *)pContext;
 
 
384 Tcl_Interp *tclInterp;
385
386 if ( !tclContext ){
387 Th_ErrorMessage(interp,
388 "Invalid Tcl context", (const char *)"", 0);
@@ -389,11 +447,15 @@
389 return TH_ERROR;
390 }
391 if ( tclContext->interp ){
392 return TH_OK;
393 }
394 Tcl_FindExecutable(tclContext->argv[0]);
 
 
 
 
395 tclInterp = tclContext->interp = Tcl_CreateInterp();
396 if( !tclInterp || Tcl_InterpDeleted(tclInterp) ){
397 Th_ErrorMessage(interp,
398 "Could not create Tcl interpreter", (const char *)"", 0);
399 return TH_ERROR;
@@ -403,20 +465,17 @@
403 "Tcl initialization error:", Tcl_GetStringResult(tclInterp), -1);
404 Tcl_DeleteInterp(tclInterp);
405 tclContext->interp = tclInterp = 0;
406 return TH_ERROR;
407 }
408 if (tclContext->argc > 0) {
409 int argc = tclContext->argc - 1;
410 char **argv = tclContext->argv + 1;
411 Tcl_Obj *argvPtr = Tcl_NewListObj(0, NULL);
412 while (argc--) {
413 Tcl_ListObjAppendElement(NULL, argvPtr, Tcl_NewStringObj(*argv++, -1));
414 }
415 Tcl_SetVar2Ex(tclContext->interp, "argv", NULL, argvPtr, TCL_GLOBAL_ONLY);
416 }
417
418 /* Add the TH1 integration commands to Tcl. */
419 Tcl_CallWhenDeleted(tclInterp, Th1DeleteProc, interp);
420 Tcl_CreateObjCommand(tclInterp, "th1Eval", Th1EvalObjCmd, interp, NULL);
421 Tcl_CreateObjCommand(tclInterp, "th1Expr", Th1ExprObjCmd, interp, NULL);
422 return TH_OK;
423
--- src/th_tcl.c
+++ src/th_tcl.c
@@ -368,10 +368,66 @@
368 /* Remove the Tcl integration commands. */
369 for(i=0; i<(sizeof(aCommand)/sizeof(aCommand[0])); i++){
370 Th_RenameCommand(th1Interp, aCommand[i].zName, -1, NULL, 0);
371 }
372 }
373
374 /*
375 ** Sets the "argv0", "argc", and "argv" script variables in the Tcl interpreter
376 ** based on the supplied command line arguments.
377 */
378 static int setTclArguments(
379 Tcl_Interp *pInterp,
380 int argc,
381 char **argv
382 ){
383 Tcl_Obj *objPtr;
384 Tcl_Obj *resultObjPtr;
385 Tcl_Obj *listPtr;
386 int rc;
387 if( argc<=0 || !argv ){
388 return TCL_OK;
389 }
390 objPtr = Tcl_NewStringObj(argv[0], -1);
391 Tcl_IncrRefCount(objPtr);
392 resultObjPtr = Tcl_SetVar2Ex(pInterp, "argv0", NULL, objPtr,
393 TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG);
394 Tcl_DecrRefCount(objPtr);
395 if( !resultObjPtr ){
396 return TCL_ERROR;
397 }
398 objPtr = Tcl_NewIntObj(argc - 1);
399 Tcl_IncrRefCount(objPtr);
400 resultObjPtr = Tcl_SetVar2Ex(pInterp, "argc", NULL, objPtr,
401 TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG);
402 Tcl_DecrRefCount(objPtr);
403 if( !resultObjPtr ){
404 return TCL_ERROR;
405 }
406 if( argc>1 ){
407 listPtr = Tcl_NewListObj(0, NULL);
408 Tcl_IncrRefCount(listPtr);
409 while( --argc ){
410 objPtr = Tcl_NewStringObj(*++argv, -1);
411 Tcl_IncrRefCount(objPtr);
412 rc = Tcl_ListObjAppendElement(pInterp, listPtr, objPtr);
413 Tcl_DecrRefCount(objPtr);
414 if( rc!=TCL_OK ){
415 break;
416 }
417 }
418 if( rc==TCL_OK ){
419 resultObjPtr = Tcl_SetVar2Ex(pInterp, "argv", NULL, listPtr,
420 TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG);
421 if( !resultObjPtr ){
422 rc = TCL_ERROR;
423 }
424 }
425 Tcl_DecrRefCount(listPtr);
426 }
427 return rc;
428 }
429
430 /*
431 ** Creates and initializes a Tcl interpreter for use with the specified TH1
432 ** interpreter. Stores the created Tcl interpreter in the Tcl context supplied
433 ** by the caller.
@@ -379,10 +435,12 @@
435 static int createTclInterp(
436 Th_Interp *interp,
437 void *pContext
438 ){
439 struct TclContext *tclContext = (struct TclContext *)pContext;
440 int argc;
441 char **argv;
442 Tcl_Interp *tclInterp;
443
444 if ( !tclContext ){
445 Th_ErrorMessage(interp,
446 "Invalid Tcl context", (const char *)"", 0);
@@ -389,11 +447,15 @@
447 return TH_ERROR;
448 }
449 if ( tclContext->interp ){
450 return TH_OK;
451 }
452 argc = tclContext->argc;
453 argv = tclContext->argv;
454 if ( argc>0 && argv ) {
455 Tcl_FindExecutable(argv[0]);
456 }
457 tclInterp = tclContext->interp = Tcl_CreateInterp();
458 if( !tclInterp || Tcl_InterpDeleted(tclInterp) ){
459 Th_ErrorMessage(interp,
460 "Could not create Tcl interpreter", (const char *)"", 0);
461 return TH_ERROR;
@@ -403,20 +465,17 @@
465 "Tcl initialization error:", Tcl_GetStringResult(tclInterp), -1);
466 Tcl_DeleteInterp(tclInterp);
467 tclContext->interp = tclInterp = 0;
468 return TH_ERROR;
469 }
470 if( setTclArguments(tclInterp, argc, argv)!=TCL_OK ){
471 Th_ErrorMessage(interp,
472 "Tcl error setting arguments:", Tcl_GetStringResult(tclInterp), -1);
473 Tcl_DeleteInterp(tclInterp);
474 tclContext->interp = tclInterp = 0;
475 return TH_ERROR;
476 }
 
 
 
477 /* Add the TH1 integration commands to Tcl. */
478 Tcl_CallWhenDeleted(tclInterp, Th1DeleteProc, interp);
479 Tcl_CreateObjCommand(tclInterp, "th1Eval", Th1EvalObjCmd, interp, NULL);
480 Tcl_CreateObjCommand(tclInterp, "th1Expr", Th1ExprObjCmd, interp, NULL);
481 return TH_OK;
482
--- test/th1-tcl.test
+++ test/th1-tcl.test
@@ -98,5 +98,11 @@
9898
test th1-tcl-8 {$RESULT eq {<hr><p class="thmainError">ERROR:\
9999
Cannot invoke Tcl command: tailcall</p>} || $RESULT eq {<hr><p\
100100
class="thmainError">ERROR: tailcall can only be called from a proc or\
101101
lambda</p>}}
102102
103
+###############################################################################
104
+
105
+fossil test-th-render [file nativename [file join $dir th1-tcl9.txt]]
106
+
107
+test th1-tcl-9 {[string trim $RESULT] eq [list [file tail $fossilexe] 2 \
108
+[list test-th-render [file nativename [file join $dir th1-tcl9.txt]]]]}
103109
104110
ADDED test/th1-tcl9.txt
--- test/th1-tcl.test
+++ test/th1-tcl.test
@@ -98,5 +98,11 @@
98 test th1-tcl-8 {$RESULT eq {<hr><p class="thmainError">ERROR:\
99 Cannot invoke Tcl command: tailcall</p>} || $RESULT eq {<hr><p\
100 class="thmainError">ERROR: tailcall can only be called from a proc or\
101 lambda</p>}}
102
 
 
 
 
 
 
103
104 DDED test/th1-tcl9.txt
--- test/th1-tcl.test
+++ test/th1-tcl.test
@@ -98,5 +98,11 @@
98 test th1-tcl-8 {$RESULT eq {<hr><p class="thmainError">ERROR:\
99 Cannot invoke Tcl command: tailcall</p>} || $RESULT eq {<hr><p\
100 class="thmainError">ERROR: tailcall can only be called from a proc or\
101 lambda</p>}}
102
103 ###############################################################################
104
105 fossil test-th-render [file nativename [file join $dir th1-tcl9.txt]]
106
107 test th1-tcl-9 {[string trim $RESULT] eq [list [file tail $fossilexe] 2 \
108 [list test-th-render [file nativename [file join $dir th1-tcl9.txt]]]]}
109
110 DDED test/th1-tcl9.txt
--- a/test/th1-tcl9.txt
+++ b/test/th1-tcl9.txt
@@ -0,0 +1,9 @@
1
+<th1>
2
+ #
3
+ # This is a "TH1 fragment" used to test the Tcl integration features of TH1.
4
+ # The corresponding test file executes this file using the test-th-render
5
+ # Fossil command.
6
+ #
7
+ set channel stdout; tclInvoke set channel $channel
8
+ tclEval {puts $channel [list [file tail $argv0] $argc $argv]}
9
+</th1>
--- a/test/th1-tcl9.txt
+++ b/test/th1-tcl9.txt
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
--- a/test/th1-tcl9.txt
+++ b/test/th1-tcl9.txt
@@ -0,0 +1,9 @@
1 <th1>
2 #
3 # This is a "TH1 fragment" used to test the Tcl integration features of TH1.
4 # The corresponding test file executes this file using the test-th-render
5 # Fossil command.
6 #
7 set channel stdout; tclInvoke set channel $channel
8 tclEval {puts $channel [list [file tail $argv0] $argc $argv]}
9 </th1>
--- win/Makefile.mingw.mistachkin
+++ win/Makefile.mingw.mistachkin
@@ -265,10 +265,11 @@
265265
$(SRCDIR)/verify.c \
266266
$(SRCDIR)/vfile.c \
267267
$(SRCDIR)/wiki.c \
268268
$(SRCDIR)/wikiformat.c \
269269
$(SRCDIR)/winhttp.c \
270
+ $(SRCDIR)/wysiwyg.c \
270271
$(SRCDIR)/xfer.c \
271272
$(SRCDIR)/xfersetup.c \
272273
$(SRCDIR)/zip.c
273274
274275
TRANS_SRC = \
@@ -364,10 +365,11 @@
364365
$(OBJDIR)/verify_.c \
365366
$(OBJDIR)/vfile_.c \
366367
$(OBJDIR)/wiki_.c \
367368
$(OBJDIR)/wikiformat_.c \
368369
$(OBJDIR)/winhttp_.c \
370
+ $(OBJDIR)/wysiwyg_.c \
369371
$(OBJDIR)/xfer_.c \
370372
$(OBJDIR)/xfersetup_.c \
371373
$(OBJDIR)/zip_.c
372374
373375
OBJ = \
@@ -463,10 +465,11 @@
463465
$(OBJDIR)/verify.o \
464466
$(OBJDIR)/vfile.o \
465467
$(OBJDIR)/wiki.o \
466468
$(OBJDIR)/wikiformat.o \
467469
$(OBJDIR)/winhttp.o \
470
+ $(OBJDIR)/wysiwyg.o \
468471
$(OBJDIR)/xfer.o \
469472
$(OBJDIR)/xfersetup.o \
470473
$(OBJDIR)/zip.o
471474
472475
APPNAME = fossil.exe
@@ -481,10 +484,11 @@
481484
$(OBJDIR)/icon.o: $(SRCDIR)/../win/icon.rc
482485
cp $(SRCDIR)/../win/icon.rc $(OBJDIR)
483486
windres $(OBJDIR)/icon.rc -o $(OBJDIR)/icon.o
484487
485488
install: $(APPNAME)
489
+ mkdir -p $(INSTALLDIR)
486490
mv $(APPNAME) $(INSTALLDIR)
487491
488492
$(OBJDIR):
489493
mkdir $(OBJDIR)
490494
@@ -536,11 +540,11 @@
536540
537541
538542
$(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex
539543
$(MKINDEX) $(TRANS_SRC) >$@
540544
$(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h
541
- $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h $(OBJDIR)/browse_.c:$(OBJDIR)/browse.h $(OBJDIR)/captcha_.c:$(OBJDIR)/captcha.h $(OBJDIR)/cgi_.c:$(OBJDIR)/cgi.h $(OBJDIR)/checkin_.c:$(OBJDIR)/checkin.h $(OBJDIR)/checkout_.c:$(OBJDIR)/checkout.h $(OBJDIR)/clearsign_.c:$(OBJDIR)/clearsign.h $(OBJDIR)/clone_.c:$(OBJDIR)/clone.h $(OBJDIR)/comformat_.c:$(OBJDIR)/comformat.h $(OBJDIR)/configure_.c:$(OBJDIR)/configure.h $(OBJDIR)/content_.c:$(OBJDIR)/content.h $(OBJDIR)/db_.c:$(OBJDIR)/db.h $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h $(OBJDIR)/event_.c:$(OBJDIR)/event.h $(OBJDIR)/export_.c:$(OBJDIR)/export.h $(OBJDIR)/file_.c:$(OBJDIR)/file.h $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h $(OBJDIR)/http_.c:$(OBJDIR)/http.h $(OBJDIR)/http_socket_.c:$(OBJDIR)/http_socket.h $(OBJDIR)/http_ssl_.c:$(OBJDIR)/http_ssl.h $(OBJDIR)/http_transport_.c:$(OBJDIR)/http_transport.h $(OBJDIR)/import_.c:$(OBJDIR)/import.h $(OBJDIR)/info_.c:$(OBJDIR)/info.h $(OBJDIR)/json_.c:$(OBJDIR)/json.h $(OBJDIR)/json_artifact_.c:$(OBJDIR)/json_artifact.h $(OBJDIR)/json_branch_.c:$(OBJDIR)/json_branch.h $(OBJDIR)/json_config_.c:$(OBJDIR)/json_config.h $(OBJDIR)/json_diff_.c:$(OBJDIR)/json_diff.h $(OBJDIR)/json_dir_.c:$(OBJDIR)/json_dir.h $(OBJDIR)/json_finfo_.c:$(OBJDIR)/json_finfo.h $(OBJDIR)/json_login_.c:$(OBJDIR)/json_login.h $(OBJDIR)/json_query_.c:$(OBJDIR)/json_query.h $(OBJDIR)/json_report_.c:$(OBJDIR)/json_report.h $(OBJDIR)/json_tag_.c:$(OBJDIR)/json_tag.h $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h $(OBJDIR)/login_.c:$(OBJDIR)/login.h $(OBJDIR)/main_.c:$(OBJDIR)/main.h $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h $(OBJDIR)/name_.c:$(OBJDIR)/name.h $(OBJDIR)/path_.c:$(OBJDIR)/path.h $(OBJDIR)/pivot_.c:$(OBJDIR)/pivot.h $(OBJDIR)/popen_.c:$(OBJDIR)/popen.h $(OBJDIR)/pqueue_.c:$(OBJDIR)/pqueue.h $(OBJDIR)/printf_.c:$(OBJDIR)/printf.h $(OBJDIR)/rebuild_.c:$(OBJDIR)/rebuild.h $(OBJDIR)/report_.c:$(OBJDIR)/report.h $(OBJDIR)/rss_.c:$(OBJDIR)/rss.h $(OBJDIR)/schema_.c:$(OBJDIR)/schema.h $(OBJDIR)/search_.c:$(OBJDIR)/search.h $(OBJDIR)/setup_.c:$(OBJDIR)/setup.h $(OBJDIR)/sha1_.c:$(OBJDIR)/sha1.h $(OBJDIR)/shun_.c:$(OBJDIR)/shun.h $(OBJDIR)/skins_.c:$(OBJDIR)/skins.h $(OBJDIR)/sqlcmd_.c:$(OBJDIR)/sqlcmd.h $(OBJDIR)/stash_.c:$(OBJDIR)/stash.h $(OBJDIR)/stat_.c:$(OBJDIR)/stat.h $(OBJDIR)/style_.c:$(OBJDIR)/style.h $(OBJDIR)/sync_.c:$(OBJDIR)/sync.h $(OBJDIR)/tag_.c:$(OBJDIR)/tag.h $(OBJDIR)/tar_.c:$(OBJDIR)/tar.h $(OBJDIR)/th_main_.c:$(OBJDIR)/th_main.h $(OBJDIR)/timeline_.c:$(OBJDIR)/timeline.h $(OBJDIR)/tkt_.c:$(OBJDIR)/tkt.h $(OBJDIR)/tktsetup_.c:$(OBJDIR)/tktsetup.h $(OBJDIR)/undo_.c:$(OBJDIR)/undo.h $(OBJDIR)/update_.c:$(OBJDIR)/update.h $(OBJDIR)/url_.c:$(OBJDIR)/url.h $(OBJDIR)/user_.c:$(OBJDIR)/user.h $(OBJDIR)/verify_.c:$(OBJDIR)/verify.h $(OBJDIR)/vfile_.c:$(OBJDIR)/vfile.h $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h $(OBJDIR)/VERSION.h
545
+ $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h $(OBJDIR)/browse_.c:$(OBJDIR)/browse.h $(OBJDIR)/captcha_.c:$(OBJDIR)/captcha.h $(OBJDIR)/cgi_.c:$(OBJDIR)/cgi.h $(OBJDIR)/checkin_.c:$(OBJDIR)/checkin.h $(OBJDIR)/checkout_.c:$(OBJDIR)/checkout.h $(OBJDIR)/clearsign_.c:$(OBJDIR)/clearsign.h $(OBJDIR)/clone_.c:$(OBJDIR)/clone.h $(OBJDIR)/comformat_.c:$(OBJDIR)/comformat.h $(OBJDIR)/configure_.c:$(OBJDIR)/configure.h $(OBJDIR)/content_.c:$(OBJDIR)/content.h $(OBJDIR)/db_.c:$(OBJDIR)/db.h $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h $(OBJDIR)/event_.c:$(OBJDIR)/event.h $(OBJDIR)/export_.c:$(OBJDIR)/export.h $(OBJDIR)/file_.c:$(OBJDIR)/file.h $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h $(OBJDIR)/http_.c:$(OBJDIR)/http.h $(OBJDIR)/http_socket_.c:$(OBJDIR)/http_socket.h $(OBJDIR)/http_ssl_.c:$(OBJDIR)/http_ssl.h $(OBJDIR)/http_transport_.c:$(OBJDIR)/http_transport.h $(OBJDIR)/import_.c:$(OBJDIR)/import.h $(OBJDIR)/info_.c:$(OBJDIR)/info.h $(OBJDIR)/json_.c:$(OBJDIR)/json.h $(OBJDIR)/json_artifact_.c:$(OBJDIR)/json_artifact.h $(OBJDIR)/json_branch_.c:$(OBJDIR)/json_branch.h $(OBJDIR)/json_config_.c:$(OBJDIR)/json_config.h $(OBJDIR)/json_diff_.c:$(OBJDIR)/json_diff.h $(OBJDIR)/json_dir_.c:$(OBJDIR)/json_dir.h $(OBJDIR)/json_finfo_.c:$(OBJDIR)/json_finfo.h $(OBJDIR)/json_login_.c:$(OBJDIR)/json_login.h $(OBJDIR)/json_query_.c:$(OBJDIR)/json_query.h $(OBJDIR)/json_report_.c:$(OBJDIR)/json_report.h $(OBJDIR)/json_tag_.c:$(OBJDIR)/json_tag.h $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h $(OBJDIR)/login_.c:$(OBJDIR)/login.h $(OBJDIR)/main_.c:$(OBJDIR)/main.h $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h $(OBJDIR)/name_.c:$(OBJDIR)/name.h $(OBJDIR)/path_.c:$(OBJDIR)/path.h $(OBJDIR)/pivot_.c:$(OBJDIR)/pivot.h $(OBJDIR)/popen_.c:$(OBJDIR)/popen.h $(OBJDIR)/pqueue_.c:$(OBJDIR)/pqueue.h $(OBJDIR)/printf_.c:$(OBJDIR)/printf.h $(OBJDIR)/rebuild_.c:$(OBJDIR)/rebuild.h $(OBJDIR)/report_.c:$(OBJDIR)/report.h $(OBJDIR)/rss_.c:$(OBJDIR)/rss.h $(OBJDIR)/schema_.c:$(OBJDIR)/schema.h $(OBJDIR)/search_.c:$(OBJDIR)/search.h $(OBJDIR)/setup_.c:$(OBJDIR)/setup.h $(OBJDIR)/sha1_.c:$(OBJDIR)/sha1.h $(OBJDIR)/shun_.c:$(OBJDIR)/shun.h $(OBJDIR)/skins_.c:$(OBJDIR)/skins.h $(OBJDIR)/sqlcmd_.c:$(OBJDIR)/sqlcmd.h $(OBJDIR)/stash_.c:$(OBJDIR)/stash.h $(OBJDIR)/stat_.c:$(OBJDIR)/stat.h $(OBJDIR)/style_.c:$(OBJDIR)/style.h $(OBJDIR)/sync_.c:$(OBJDIR)/sync.h $(OBJDIR)/tag_.c:$(OBJDIR)/tag.h $(OBJDIR)/tar_.c:$(OBJDIR)/tar.h $(OBJDIR)/th_main_.c:$(OBJDIR)/th_main.h $(OBJDIR)/timeline_.c:$(OBJDIR)/timeline.h $(OBJDIR)/tkt_.c:$(OBJDIR)/tkt.h $(OBJDIR)/tktsetup_.c:$(OBJDIR)/tktsetup.h $(OBJDIR)/undo_.c:$(OBJDIR)/undo.h $(OBJDIR)/update_.c:$(OBJDIR)/update.h $(OBJDIR)/url_.c:$(OBJDIR)/url.h $(OBJDIR)/user_.c:$(OBJDIR)/user.h $(OBJDIR)/verify_.c:$(OBJDIR)/verify.h $(OBJDIR)/vfile_.c:$(OBJDIR)/vfile.h $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h $(OBJDIR)/wysiwyg_.c:$(OBJDIR)/wysiwyg.h $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h $(OBJDIR)/VERSION.h
542546
echo Done >$(OBJDIR)/headers
543547
544548
$(OBJDIR)/headers: Makefile
545549
Makefile:
546550
$(OBJDIR)/add_.c: $(SRCDIR)/add.c $(OBJDIR)/translate
@@ -1199,10 +1203,17 @@
11991203
12001204
$(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/config.h
12011205
$(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c
12021206
12031207
winhttp.h: $(OBJDIR)/headers
1208
+$(OBJDIR)/wysiwyg_.c: $(SRCDIR)/wysiwyg.c $(OBJDIR)/translate
1209
+ $(TRANSLATE) $(SRCDIR)/wysiwyg.c >$(OBJDIR)/wysiwyg_.c
1210
+
1211
+$(OBJDIR)/wysiwyg.o: $(OBJDIR)/wysiwyg_.c $(OBJDIR)/wysiwyg.h $(SRCDIR)/config.h
1212
+ $(XTCC) -o $(OBJDIR)/wysiwyg.o -c $(OBJDIR)/wysiwyg_.c
1213
+
1214
+wysiwyg.h: $(OBJDIR)/headers
12041215
$(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(OBJDIR)/translate
12051216
$(TRANSLATE) $(SRCDIR)/xfer.c >$(OBJDIR)/xfer_.c
12061217
12071218
$(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h
12081219
$(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c
12091220
--- win/Makefile.mingw.mistachkin
+++ win/Makefile.mingw.mistachkin
@@ -265,10 +265,11 @@
265 $(SRCDIR)/verify.c \
266 $(SRCDIR)/vfile.c \
267 $(SRCDIR)/wiki.c \
268 $(SRCDIR)/wikiformat.c \
269 $(SRCDIR)/winhttp.c \
 
270 $(SRCDIR)/xfer.c \
271 $(SRCDIR)/xfersetup.c \
272 $(SRCDIR)/zip.c
273
274 TRANS_SRC = \
@@ -364,10 +365,11 @@
364 $(OBJDIR)/verify_.c \
365 $(OBJDIR)/vfile_.c \
366 $(OBJDIR)/wiki_.c \
367 $(OBJDIR)/wikiformat_.c \
368 $(OBJDIR)/winhttp_.c \
 
369 $(OBJDIR)/xfer_.c \
370 $(OBJDIR)/xfersetup_.c \
371 $(OBJDIR)/zip_.c
372
373 OBJ = \
@@ -463,10 +465,11 @@
463 $(OBJDIR)/verify.o \
464 $(OBJDIR)/vfile.o \
465 $(OBJDIR)/wiki.o \
466 $(OBJDIR)/wikiformat.o \
467 $(OBJDIR)/winhttp.o \
 
468 $(OBJDIR)/xfer.o \
469 $(OBJDIR)/xfersetup.o \
470 $(OBJDIR)/zip.o
471
472 APPNAME = fossil.exe
@@ -481,10 +484,11 @@
481 $(OBJDIR)/icon.o: $(SRCDIR)/../win/icon.rc
482 cp $(SRCDIR)/../win/icon.rc $(OBJDIR)
483 windres $(OBJDIR)/icon.rc -o $(OBJDIR)/icon.o
484
485 install: $(APPNAME)
 
486 mv $(APPNAME) $(INSTALLDIR)
487
488 $(OBJDIR):
489 mkdir $(OBJDIR)
490
@@ -536,11 +540,11 @@
536
537
538 $(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex
539 $(MKINDEX) $(TRANS_SRC) >$@
540 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h
541 $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h $(OBJDIR)/browse_.c:$(OBJDIR)/browse.h $(OBJDIR)/captcha_.c:$(OBJDIR)/captcha.h $(OBJDIR)/cgi_.c:$(OBJDIR)/cgi.h $(OBJDIR)/checkin_.c:$(OBJDIR)/checkin.h $(OBJDIR)/checkout_.c:$(OBJDIR)/checkout.h $(OBJDIR)/clearsign_.c:$(OBJDIR)/clearsign.h $(OBJDIR)/clone_.c:$(OBJDIR)/clone.h $(OBJDIR)/comformat_.c:$(OBJDIR)/comformat.h $(OBJDIR)/configure_.c:$(OBJDIR)/configure.h $(OBJDIR)/content_.c:$(OBJDIR)/content.h $(OBJDIR)/db_.c:$(OBJDIR)/db.h $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h $(OBJDIR)/event_.c:$(OBJDIR)/event.h $(OBJDIR)/export_.c:$(OBJDIR)/export.h $(OBJDIR)/file_.c:$(OBJDIR)/file.h $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h $(OBJDIR)/http_.c:$(OBJDIR)/http.h $(OBJDIR)/http_socket_.c:$(OBJDIR)/http_socket.h $(OBJDIR)/http_ssl_.c:$(OBJDIR)/http_ssl.h $(OBJDIR)/http_transport_.c:$(OBJDIR)/http_transport.h $(OBJDIR)/import_.c:$(OBJDIR)/import.h $(OBJDIR)/info_.c:$(OBJDIR)/info.h $(OBJDIR)/json_.c:$(OBJDIR)/json.h $(OBJDIR)/json_artifact_.c:$(OBJDIR)/json_artifact.h $(OBJDIR)/json_branch_.c:$(OBJDIR)/json_branch.h $(OBJDIR)/json_config_.c:$(OBJDIR)/json_config.h $(OBJDIR)/json_diff_.c:$(OBJDIR)/json_diff.h $(OBJDIR)/json_dir_.c:$(OBJDIR)/json_dir.h $(OBJDIR)/json_finfo_.c:$(OBJDIR)/json_finfo.h $(OBJDIR)/json_login_.c:$(OBJDIR)/json_login.h $(OBJDIR)/json_query_.c:$(OBJDIR)/json_query.h $(OBJDIR)/json_report_.c:$(OBJDIR)/json_report.h $(OBJDIR)/json_tag_.c:$(OBJDIR)/json_tag.h $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h $(OBJDIR)/login_.c:$(OBJDIR)/login.h $(OBJDIR)/main_.c:$(OBJDIR)/main.h $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h $(OBJDIR)/name_.c:$(OBJDIR)/name.h $(OBJDIR)/path_.c:$(OBJDIR)/path.h $(OBJDIR)/pivot_.c:$(OBJDIR)/pivot.h $(OBJDIR)/popen_.c:$(OBJDIR)/popen.h $(OBJDIR)/pqueue_.c:$(OBJDIR)/pqueue.h $(OBJDIR)/printf_.c:$(OBJDIR)/printf.h $(OBJDIR)/rebuild_.c:$(OBJDIR)/rebuild.h $(OBJDIR)/report_.c:$(OBJDIR)/report.h $(OBJDIR)/rss_.c:$(OBJDIR)/rss.h $(OBJDIR)/schema_.c:$(OBJDIR)/schema.h $(OBJDIR)/search_.c:$(OBJDIR)/search.h $(OBJDIR)/setup_.c:$(OBJDIR)/setup.h $(OBJDIR)/sha1_.c:$(OBJDIR)/sha1.h $(OBJDIR)/shun_.c:$(OBJDIR)/shun.h $(OBJDIR)/skins_.c:$(OBJDIR)/skins.h $(OBJDIR)/sqlcmd_.c:$(OBJDIR)/sqlcmd.h $(OBJDIR)/stash_.c:$(OBJDIR)/stash.h $(OBJDIR)/stat_.c:$(OBJDIR)/stat.h $(OBJDIR)/style_.c:$(OBJDIR)/style.h $(OBJDIR)/sync_.c:$(OBJDIR)/sync.h $(OBJDIR)/tag_.c:$(OBJDIR)/tag.h $(OBJDIR)/tar_.c:$(OBJDIR)/tar.h $(OBJDIR)/th_main_.c:$(OBJDIR)/th_main.h $(OBJDIR)/timeline_.c:$(OBJDIR)/timeline.h $(OBJDIR)/tkt_.c:$(OBJDIR)/tkt.h $(OBJDIR)/tktsetup_.c:$(OBJDIR)/tktsetup.h $(OBJDIR)/undo_.c:$(OBJDIR)/undo.h $(OBJDIR)/update_.c:$(OBJDIR)/update.h $(OBJDIR)/url_.c:$(OBJDIR)/url.h $(OBJDIR)/user_.c:$(OBJDIR)/user.h $(OBJDIR)/verify_.c:$(OBJDIR)/verify.h $(OBJDIR)/vfile_.c:$(OBJDIR)/vfile.h $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h $(OBJDIR)/VERSION.h
542 echo Done >$(OBJDIR)/headers
543
544 $(OBJDIR)/headers: Makefile
545 Makefile:
546 $(OBJDIR)/add_.c: $(SRCDIR)/add.c $(OBJDIR)/translate
@@ -1199,10 +1203,17 @@
1199
1200 $(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/config.h
1201 $(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c
1202
1203 winhttp.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
1204 $(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(OBJDIR)/translate
1205 $(TRANSLATE) $(SRCDIR)/xfer.c >$(OBJDIR)/xfer_.c
1206
1207 $(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h
1208 $(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c
1209
--- win/Makefile.mingw.mistachkin
+++ win/Makefile.mingw.mistachkin
@@ -265,10 +265,11 @@
265 $(SRCDIR)/verify.c \
266 $(SRCDIR)/vfile.c \
267 $(SRCDIR)/wiki.c \
268 $(SRCDIR)/wikiformat.c \
269 $(SRCDIR)/winhttp.c \
270 $(SRCDIR)/wysiwyg.c \
271 $(SRCDIR)/xfer.c \
272 $(SRCDIR)/xfersetup.c \
273 $(SRCDIR)/zip.c
274
275 TRANS_SRC = \
@@ -364,10 +365,11 @@
365 $(OBJDIR)/verify_.c \
366 $(OBJDIR)/vfile_.c \
367 $(OBJDIR)/wiki_.c \
368 $(OBJDIR)/wikiformat_.c \
369 $(OBJDIR)/winhttp_.c \
370 $(OBJDIR)/wysiwyg_.c \
371 $(OBJDIR)/xfer_.c \
372 $(OBJDIR)/xfersetup_.c \
373 $(OBJDIR)/zip_.c
374
375 OBJ = \
@@ -463,10 +465,11 @@
465 $(OBJDIR)/verify.o \
466 $(OBJDIR)/vfile.o \
467 $(OBJDIR)/wiki.o \
468 $(OBJDIR)/wikiformat.o \
469 $(OBJDIR)/winhttp.o \
470 $(OBJDIR)/wysiwyg.o \
471 $(OBJDIR)/xfer.o \
472 $(OBJDIR)/xfersetup.o \
473 $(OBJDIR)/zip.o
474
475 APPNAME = fossil.exe
@@ -481,10 +484,11 @@
484 $(OBJDIR)/icon.o: $(SRCDIR)/../win/icon.rc
485 cp $(SRCDIR)/../win/icon.rc $(OBJDIR)
486 windres $(OBJDIR)/icon.rc -o $(OBJDIR)/icon.o
487
488 install: $(APPNAME)
489 mkdir -p $(INSTALLDIR)
490 mv $(APPNAME) $(INSTALLDIR)
491
492 $(OBJDIR):
493 mkdir $(OBJDIR)
494
@@ -536,11 +540,11 @@
540
541
542 $(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex
543 $(MKINDEX) $(TRANS_SRC) >$@
544 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h
545 $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h $(OBJDIR)/browse_.c:$(OBJDIR)/browse.h $(OBJDIR)/captcha_.c:$(OBJDIR)/captcha.h $(OBJDIR)/cgi_.c:$(OBJDIR)/cgi.h $(OBJDIR)/checkin_.c:$(OBJDIR)/checkin.h $(OBJDIR)/checkout_.c:$(OBJDIR)/checkout.h $(OBJDIR)/clearsign_.c:$(OBJDIR)/clearsign.h $(OBJDIR)/clone_.c:$(OBJDIR)/clone.h $(OBJDIR)/comformat_.c:$(OBJDIR)/comformat.h $(OBJDIR)/configure_.c:$(OBJDIR)/configure.h $(OBJDIR)/content_.c:$(OBJDIR)/content.h $(OBJDIR)/db_.c:$(OBJDIR)/db.h $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h $(OBJDIR)/event_.c:$(OBJDIR)/event.h $(OBJDIR)/export_.c:$(OBJDIR)/export.h $(OBJDIR)/file_.c:$(OBJDIR)/file.h $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h $(OBJDIR)/http_.c:$(OBJDIR)/http.h $(OBJDIR)/http_socket_.c:$(OBJDIR)/http_socket.h $(OBJDIR)/http_ssl_.c:$(OBJDIR)/http_ssl.h $(OBJDIR)/http_transport_.c:$(OBJDIR)/http_transport.h $(OBJDIR)/import_.c:$(OBJDIR)/import.h $(OBJDIR)/info_.c:$(OBJDIR)/info.h $(OBJDIR)/json_.c:$(OBJDIR)/json.h $(OBJDIR)/json_artifact_.c:$(OBJDIR)/json_artifact.h $(OBJDIR)/json_branch_.c:$(OBJDIR)/json_branch.h $(OBJDIR)/json_config_.c:$(OBJDIR)/json_config.h $(OBJDIR)/json_diff_.c:$(OBJDIR)/json_diff.h $(OBJDIR)/json_dir_.c:$(OBJDIR)/json_dir.h $(OBJDIR)/json_finfo_.c:$(OBJDIR)/json_finfo.h $(OBJDIR)/json_login_.c:$(OBJDIR)/json_login.h $(OBJDIR)/json_query_.c:$(OBJDIR)/json_query.h $(OBJDIR)/json_report_.c:$(OBJDIR)/json_report.h $(OBJDIR)/json_tag_.c:$(OBJDIR)/json_tag.h $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h $(OBJDIR)/login_.c:$(OBJDIR)/login.h $(OBJDIR)/main_.c:$(OBJDIR)/main.h $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h $(OBJDIR)/name_.c:$(OBJDIR)/name.h $(OBJDIR)/path_.c:$(OBJDIR)/path.h $(OBJDIR)/pivot_.c:$(OBJDIR)/pivot.h $(OBJDIR)/popen_.c:$(OBJDIR)/popen.h $(OBJDIR)/pqueue_.c:$(OBJDIR)/pqueue.h $(OBJDIR)/printf_.c:$(OBJDIR)/printf.h $(OBJDIR)/rebuild_.c:$(OBJDIR)/rebuild.h $(OBJDIR)/report_.c:$(OBJDIR)/report.h $(OBJDIR)/rss_.c:$(OBJDIR)/rss.h $(OBJDIR)/schema_.c:$(OBJDIR)/schema.h $(OBJDIR)/search_.c:$(OBJDIR)/search.h $(OBJDIR)/setup_.c:$(OBJDIR)/setup.h $(OBJDIR)/sha1_.c:$(OBJDIR)/sha1.h $(OBJDIR)/shun_.c:$(OBJDIR)/shun.h $(OBJDIR)/skins_.c:$(OBJDIR)/skins.h $(OBJDIR)/sqlcmd_.c:$(OBJDIR)/sqlcmd.h $(OBJDIR)/stash_.c:$(OBJDIR)/stash.h $(OBJDIR)/stat_.c:$(OBJDIR)/stat.h $(OBJDIR)/style_.c:$(OBJDIR)/style.h $(OBJDIR)/sync_.c:$(OBJDIR)/sync.h $(OBJDIR)/tag_.c:$(OBJDIR)/tag.h $(OBJDIR)/tar_.c:$(OBJDIR)/tar.h $(OBJDIR)/th_main_.c:$(OBJDIR)/th_main.h $(OBJDIR)/timeline_.c:$(OBJDIR)/timeline.h $(OBJDIR)/tkt_.c:$(OBJDIR)/tkt.h $(OBJDIR)/tktsetup_.c:$(OBJDIR)/tktsetup.h $(OBJDIR)/undo_.c:$(OBJDIR)/undo.h $(OBJDIR)/update_.c:$(OBJDIR)/update.h $(OBJDIR)/url_.c:$(OBJDIR)/url.h $(OBJDIR)/user_.c:$(OBJDIR)/user.h $(OBJDIR)/verify_.c:$(OBJDIR)/verify.h $(OBJDIR)/vfile_.c:$(OBJDIR)/vfile.h $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h $(OBJDIR)/wysiwyg_.c:$(OBJDIR)/wysiwyg.h $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h $(OBJDIR)/VERSION.h
546 echo Done >$(OBJDIR)/headers
547
548 $(OBJDIR)/headers: Makefile
549 Makefile:
550 $(OBJDIR)/add_.c: $(SRCDIR)/add.c $(OBJDIR)/translate
@@ -1199,10 +1203,17 @@
1203
1204 $(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/config.h
1205 $(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c
1206
1207 winhttp.h: $(OBJDIR)/headers
1208 $(OBJDIR)/wysiwyg_.c: $(SRCDIR)/wysiwyg.c $(OBJDIR)/translate
1209 $(TRANSLATE) $(SRCDIR)/wysiwyg.c >$(OBJDIR)/wysiwyg_.c
1210
1211 $(OBJDIR)/wysiwyg.o: $(OBJDIR)/wysiwyg_.c $(OBJDIR)/wysiwyg.h $(SRCDIR)/config.h
1212 $(XTCC) -o $(OBJDIR)/wysiwyg.o -c $(OBJDIR)/wysiwyg_.c
1213
1214 wysiwyg.h: $(OBJDIR)/headers
1215 $(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(OBJDIR)/translate
1216 $(TRANSLATE) $(SRCDIR)/xfer.c >$(OBJDIR)/xfer_.c
1217
1218 $(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h
1219 $(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c
1220

Keyboard Shortcuts

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