Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| SHA1 Hash: | 6cd9847f5479336ffbce9fe7460e5926e2832140 |
|---|---|
| Date: | 2012-08-10 19:59:08 |
| User: | drh |
| Comment: | Add experimental support for WYSIWYG editing of wiki pages. |
Tags And Properties
- branch=wysiwyg propagates to descendants added by [cc8ead6350] on 2012-08-10 20:00:08
- sym-trunk cancelled by [cc8ead6350] on 2012-08-10 20:00:08
- sym-wysiwyg propagates to descendants added by [cc8ead6350] on 2012-08-10 20:00:08
Changes
Changes to src/main.mk
104 $(SRCDIR)/url.c \ 104 $(SRCDIR)/url.c \ 105 $(SRCDIR)/user.c \ 105 $(SRCDIR)/user.c \ 106 $(SRCDIR)/verify.c \ 106 $(SRCDIR)/verify.c \ 107 $(SRCDIR)/vfile.c \ 107 $(SRCDIR)/vfile.c \ 108 $(SRCDIR)/wiki.c \ 108 $(SRCDIR)/wiki.c \ 109 $(SRCDIR)/wikiformat.c \ 109 $(SRCDIR)/wikiformat.c \ 110 $(SRCDIR)/winhttp.c \ 110 $(SRCDIR)/winhttp.c \ > 111 $(SRCDIR)/wysiwyg.c \ 111 $(SRCDIR)/xfer.c \ 112 $(SRCDIR)/xfer.c \ 112 $(SRCDIR)/xfersetup.c \ 113 $(SRCDIR)/xfersetup.c \ 113 $(SRCDIR)/zip.c 114 $(SRCDIR)/zip.c 114 115 115 TRANS_SRC = \ 116 TRANS_SRC = \ 116 $(OBJDIR)/add_.c \ 117 $(OBJDIR)/add_.c \ 117 $(OBJDIR)/allrepo_.c \ 118 $(OBJDIR)/allrepo_.c \ ................................................................................................................................................................................ 203 $(OBJDIR)/url_.c \ 204 $(OBJDIR)/url_.c \ 204 $(OBJDIR)/user_.c \ 205 $(OBJDIR)/user_.c \ 205 $(OBJDIR)/verify_.c \ 206 $(OBJDIR)/verify_.c \ 206 $(OBJDIR)/vfile_.c \ 207 $(OBJDIR)/vfile_.c \ 207 $(OBJDIR)/wiki_.c \ 208 $(OBJDIR)/wiki_.c \ 208 $(OBJDIR)/wikiformat_.c \ 209 $(OBJDIR)/wikiformat_.c \ 209 $(OBJDIR)/winhttp_.c \ 210 $(OBJDIR)/winhttp_.c \ > 211 $(OBJDIR)/wysiwyg_.c \ 210 $(OBJDIR)/xfer_.c \ 212 $(OBJDIR)/xfer_.c \ 211 $(OBJDIR)/xfersetup_.c \ 213 $(OBJDIR)/xfersetup_.c \ 212 $(OBJDIR)/zip_.c 214 $(OBJDIR)/zip_.c 213 215 214 OBJ = \ 216 OBJ = \ 215 $(OBJDIR)/add.o \ 217 $(OBJDIR)/add.o \ 216 $(OBJDIR)/allrepo.o \ 218 $(OBJDIR)/allrepo.o \ ................................................................................................................................................................................ 302 $(OBJDIR)/url.o \ 304 $(OBJDIR)/url.o \ 303 $(OBJDIR)/user.o \ 305 $(OBJDIR)/user.o \ 304 $(OBJDIR)/verify.o \ 306 $(OBJDIR)/verify.o \ 305 $(OBJDIR)/vfile.o \ 307 $(OBJDIR)/vfile.o \ 306 $(OBJDIR)/wiki.o \ 308 $(OBJDIR)/wiki.o \ 307 $(OBJDIR)/wikiformat.o \ 309 $(OBJDIR)/wikiformat.o \ 308 $(OBJDIR)/winhttp.o \ 310 $(OBJDIR)/winhttp.o \ > 311 $(OBJDIR)/wysiwyg.o \ 309 $(OBJDIR)/xfer.o \ 312 $(OBJDIR)/xfer.o \ 310 $(OBJDIR)/xfersetup.o \ 313 $(OBJDIR)/xfersetup.o \ 311 $(OBJDIR)/zip.o 314 $(OBJDIR)/zip.o 312 315 313 APPNAME = fossil$(E) 316 APPNAME = fossil$(E) 314 317 315 318 ................................................................................................................................................................................ 373 clean: 376 clean: 374 rm -rf $(OBJDIR)/* $(APPNAME) 377 rm -rf $(OBJDIR)/* $(APPNAME) 375 378 376 379 377 $(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex 380 $(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex 378 $(OBJDIR)/mkindex $(TRANS_SRC) >$@ 381 $(OBJDIR)/mkindex $(TRANS_SRC) >$@ 379 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/V 382 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/V 380 $(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrep | 383 $(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrep 381 touch $(OBJDIR)/headers 384 touch $(OBJDIR)/headers 382 $(OBJDIR)/headers: Makefile 385 $(OBJDIR)/headers: Makefile 383 $(OBJDIR)/json.o $(OBJDIR)/json_artifact.o $(OBJDIR)/json_branch.o $(OBJDIR)/jso 386 $(OBJDIR)/json.o $(OBJDIR)/json_artifact.o $(OBJDIR)/json_branch.o $(OBJDIR)/jso 384 Makefile: 387 Makefile: 385 $(OBJDIR)/add_.c: $(SRCDIR)/add.c $(OBJDIR)/translate 388 $(OBJDIR)/add_.c: $(SRCDIR)/add.c $(OBJDIR)/translate 386 $(OBJDIR)/translate $(SRCDIR)/add.c >$(OBJDIR)/add_.c 389 $(OBJDIR)/translate $(SRCDIR)/add.c >$(OBJDIR)/add_.c 387 390 ................................................................................................................................................................................ 1036 $(OBJDIR)/winhttp_.c: $(SRCDIR)/winhttp.c $(OBJDIR)/translate 1039 $(OBJDIR)/winhttp_.c: $(SRCDIR)/winhttp.c $(OBJDIR)/translate 1037 $(OBJDIR)/translate $(SRCDIR)/winhttp.c >$(OBJDIR)/winhttp_.c 1040 $(OBJDIR)/translate $(SRCDIR)/winhttp.c >$(OBJDIR)/winhttp_.c 1038 1041 1039 $(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/conf 1042 $(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/conf 1040 $(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c 1043 $(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c 1041 1044 1042 $(OBJDIR)/winhttp.h: $(OBJDIR)/headers 1045 $(OBJDIR)/winhttp.h: $(OBJDIR)/headers > 1046 $(OBJDIR)/wysiwyg_.c: $(SRCDIR)/wysiwyg.c $(OBJDIR)/translate > 1047 $(OBJDIR)/translate $(SRCDIR)/wysiwyg.c >$(OBJDIR)/wysiwyg_.c > 1048 > 1049 $(OBJDIR)/wysiwyg.o: $(OBJDIR)/wysiwyg_.c $(OBJDIR)/wysiwyg.h $(SRCDIR)/conf > 1050 $(XTCC) -o $(OBJDIR)/wysiwyg.o -c $(OBJDIR)/wysiwyg_.c > 1051 > 1052 $(OBJDIR)/wysiwyg.h: $(OBJDIR)/headers 1043 $(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(OBJDIR)/translate 1053 $(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(OBJDIR)/translate 1044 $(OBJDIR)/translate $(SRCDIR)/xfer.c >$(OBJDIR)/xfer_.c 1054 $(OBJDIR)/translate $(SRCDIR)/xfer.c >$(OBJDIR)/xfer_.c 1045 1055 1046 $(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h 1056 $(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h 1047 $(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c 1057 $(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c 1048 1058 1049 $(OBJDIR)/xfer.h: $(OBJDIR)/headers 1059 $(OBJDIR)/xfer.h: $(OBJDIR)/headers
Changes to src/makemake.tcl
107 url 107 url 108 user 108 user 109 verify 109 verify 110 vfile 110 vfile 111 wiki 111 wiki 112 wikiformat 112 wikiformat 113 winhttp 113 winhttp > 114 wysiwyg 114 xfer 115 xfer 115 xfersetup 116 xfersetup 116 zip 117 zip 117 http_ssl 118 http_ssl 118 } 119 } 119 120 120 # Name of the final application 121 # Name of the final application
Changes to src/wiki.c
185 zBody = pWiki->zWiki; 185 zBody = pWiki->zWiki; 186 } 186 } 187 } 187 } 188 if( !g.isHome ){ 188 if( !g.isHome ){ 189 if( (rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki) ){ 189 if( (rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki) ){ 190 style_submenu_element("Edit", "Edit Wiki Page", "%s/wikiedit?name=%T", 190 style_submenu_element("Edit", "Edit Wiki Page", "%s/wikiedit?name=%T", 191 g.zTop, zPageName); 191 g.zTop, zPageName); > 192 style_submenu_element("Wysiwyg", "Wysiwyg Editor", > 193 "%s/wikiedit?name=%T&wysiwyg", g.zTop, zPageName); 192 } 194 } 193 if( rid && g.perm.ApndWiki && g.perm.Attach ){ 195 if( rid && g.perm.ApndWiki && g.perm.Attach ){ 194 style_submenu_element("Attach", "Add An Attachment", 196 style_submenu_element("Attach", "Add An Attachment", 195 "%s/attachadd?page=%T&from=%s/wiki%%3fname=%T", 197 "%s/attachadd?page=%T&from=%s/wiki%%3fname=%T", 196 g.zTop, zPageName, g.zTop, zPageName); 198 g.zTop, zPageName, g.zTop, zPageName); 197 } 199 } 198 if( rid && g.perm.ApndWiki ){ 200 if( rid && g.perm.ApndWiki ){ ................................................................................................................................................................................ 334 return; 336 return; 335 } 337 } 336 if( zBody==0 ){ 338 if( zBody==0 ){ 337 zBody = mprintf("<i>Empty Page</i>"); 339 zBody = mprintf("<i>Empty Page</i>"); 338 } 340 } 339 zHtmlPageName = mprintf("Edit: %s", zPageName); 341 zHtmlPageName = mprintf("Edit: %s", zPageName); 340 style_header(zHtmlPageName); 342 style_header(zHtmlPageName); 341 if( P("preview")!=0 ){ < 342 blob_zero(&wiki); | 343 blob_zero(&wiki); 343 blob_append(&wiki, zBody, -1); | 344 blob_append(&wiki, zBody, -1); > 345 if( P("preview")!=0 ){ 344 @ Preview:<hr /> 346 @ Preview:<hr /> 345 wiki_convert(&wiki, 0, 0); 347 wiki_convert(&wiki, 0, 0); 346 @ <hr /> 348 @ <hr /> 347 blob_reset(&wiki); 349 blob_reset(&wiki); 348 } 350 } 349 for(n=2, z=zBody; z[0]; z++){ 351 for(n=2, z=zBody; z[0]; z++){ 350 if( z[0]=='\n' ) n++; 352 if( z[0]=='\n' ) n++; 351 } 353 } 352 if( n<20 ) n = 20; 354 if( n<20 ) n = 20; 353 if( n>40 ) n = 40; 355 if( n>40 ) n = 40; > 356 if( P("wysiwyg")==0 ){ > 357 /* Traditional markup-only editing */ 354 @ <form method="post" action="%s(g.zTop)/wikiedit"><div> | 358 @ <form method="post" action="%s(g.zTop)/wikiedit"><div> 355 login_insert_csrf_secret(); < 356 @ <input type="hidden" name="name" value="%h(zPageName)" /> < 357 @ <textarea name="w" class="wikiedit" cols="80" | 359 @ <textarea name="w" class="wikiedit" cols="80" 358 @ rows="%d(n)" wrap="virtual">%h(zBody)</textarea> | 360 @ rows="%d(n)" wrap="virtual">%h(zBody)</textarea> 359 @ <br /> | 361 @ <br /> 360 @ <input type="submit" name="preview" value="Preview Your Changes" /> | 362 @ <input type="submit" name="preview" value="Preview Your Changes" /> > 363 }else{ > 364 /* Wysiwyg editing */ > 365 Blob html; > 366 @ <form method="post" action="%s(g.zTop)/wikiedit" > 367 @ onsubmit="wysiwygSubmit()"><div> > 368 @ <input type="hidden" name="wysiwyg" value="1" /> > 369 blob_zero(&html); > 370 wiki_convert(&wiki, &html, 0); > 371 wysiwygEditor("w", blob_str(&html), 60, n); > 372 blob_reset(&html); > 373 @ <br /> > 374 } 361 @ <input type="submit" name="submit" value="Apply These Changes" /> 375 @ <input type="submit" name="submit" value="Apply These Changes" /> > 376 login_insert_csrf_secret(); > 377 @ <input type="hidden" name="name" value="%h(zPageName)" /> 362 @ <input type="submit" name="cancel" value="Cancel" /> 378 @ <input type="submit" name="cancel" value="Cancel" /> 363 @ </div></form> 379 @ </div></form> 364 manifest_destroy(pWiki); 380 manifest_destroy(pWiki); > 381 blob_reset(&wiki); 365 style_footer(); 382 style_footer(); 366 } 383 } 367 384 368 /* 385 /* 369 ** WEBPAGE: wikinew 386 ** WEBPAGE: wikinew 370 ** URL /wikinew 387 ** URL /wikinew 371 ** 388 ** ................................................................................................................................................................................ 377 login_check_credentials(); 394 login_check_credentials(); 378 if( !g.perm.NewWiki ){ 395 if( !g.perm.NewWiki ){ 379 login_needed(); 396 login_needed(); 380 return; 397 return; 381 } 398 } 382 zName = PD("name",""); 399 zName = PD("name",""); 383 if( zName[0] && wiki_name_is_wellformed((const unsigned char *)zName) ){ 400 if( zName[0] && wiki_name_is_wellformed((const unsigned char *)zName) ){ 384 cgi_redirectf("wikiedit?name=%T", zName); | 401 cgi_redirectf("wikiedit?name=%T&wysiwyg", zName); 385 } 402 } 386 style_header("Create A New Wiki Page"); 403 style_header("Create A New Wiki Page"); 387 @ <p>Rules for wiki page names:</p> 404 @ <p>Rules for wiki page names:</p> 388 well_formed_wiki_name_rules(); 405 well_formed_wiki_name_rules(); 389 @ <form method="post" action="%s(g.zTop)/wikinew"> 406 @ <form method="post" action="%s(g.zTop)/wikinew"> 390 @ <p>Name of new wiki page: 407 @ <p>Name of new wiki page: 391 @ <input style="width: 35;" type="text" name="name" value="%h(zName)" /> 408 @ <input style="width: 35;" type="text" name="name" value="%h(zName)" />
Added src/wysiwyg.c
> 1 /* > 2 ** Copyright (c) 2012 D. Richard Hipp > 3 ** > 4 ** This program is free software; you can redistribute it and/or > 5 ** modify it under the terms of the Simplified BSD License (also > 6 ** known as the "2-Clause License" or "FreeBSD License".) > 7 ** > 8 ** This program is distributed in the hope that it will be useful, > 9 ** but without any warranty; without even the implied warranty of > 10 ** merchantability or fitness for a particular purpose. > 11 ** > 12 ** Author contact information: > 13 ** drh@hwaci.com > 14 ** http://www.hwaci.com/drh/ > 15 ** > 16 ******************************************************************************* > 17 ** > 18 ** This file contains code that generates WYSIWYG text editors on > 19 ** web pages. > 20 */ > 21 #include <assert.h> > 22 #include <ctype.h> > 23 #include "config.h" > 24 #include "wysiwyg.h" > 25 > 26 > 27 /* > 28 ** Output code for a WYSIWYG editor. The caller must have already generated > 29 ** the <form> that will contain the editor, and the call must generate the > 30 ** corresponding </form> after this routine returns. The caller must include > 31 ** an onsubmit= attribute on the <form> element that invokes the > 32 ** wysiwygSubmit() function. > 33 ** > 34 ** There can only be a single WYSIWYG editor per frame. > 35 */ > 36 void wysiwygEditor( > 37 const char *zId, /* ID for this editor */ > 38 const char *zContent, /* Initial content (HTML) */ > 39 int w, int h /* Initial width and height */ > 40 ){ > 41 > 42 @ <style type="text/css"> > 43 @ .intLink { cursor: pointer; } > 44 @ img.intLink { border: 0; } > 45 @ #wysiwygBox { > 46 @ border: 1px #000000 solid; > 47 @ padding: 12px; > 48 @ } > 49 @ #editMode label { cursor: pointer; } > 50 @ </style> > 51 > 52 @ <input id="wysiwygValue" type="hidden" name="%s(zId)"> > 53 @ <div id="editModeDiv">Edit mode: > 54 @ <select id="editMode" size=1 onchange="setDocMode(this.selectedIndex)"> > 55 @ <option value="0">WYSIWYG</option> > 56 @ <option value="1">Raw HTML</option> > 57 @ </select></div> > 58 @ <div id="toolBar1"> > 59 @ <select onchange="formatDoc('formatblock',this[this.selectedIndex].value); > 60 @ this.selectedIndex=0;"> > 61 @ <option selected>- formatting -</option> > 62 @ <option value="h1">Title 1 <h1></option> > 63 @ <option value="h2">Title 2 <h2></option> > 64 @ <option value="h3">Title 3 <h3></option> > 65 @ <option value="h4">Title 4 <h4></option> > 66 @ <option value="h5">Title 5 <h5></option> > 67 @ <option value="h6">Subtitle <h6></option> > 68 @ <option value="p">Paragraph <p></option> > 69 @ <option value="pre">Preformatted <pre></option> > 70 @ </select> > 71 @ <select onchange="formatDoc('fontname',this[this.selectedIndex].value); > 72 @ this.selectedIndex=0;"> > 73 @ <option class="heading" selected>- font -</option> > 74 @ <option>Arial</option> > 75 @ <option>Arial Black</option> > 76 @ <option>Courier New</option> > 77 @ <option>Times New Roman</option> > 78 @ </select> > 79 @ <select onchange="formatDoc('fontsize',this[this.selectedIndex].value); > 80 @ this.selectedIndex=0;"> > 81 @ <option class="heading" selected>- size -</option> > 82 @ <option value="1">Very small</option> > 83 @ <option value="2">A bit small</option> > 84 @ <option value="3">Normal</option> > 85 @ <option value="4">Medium-large</option> > 86 @ <option value="5">Big</option> > 87 @ <option value="6">Very big</option> > 88 @ <option value="7">Maximum</option> > 89 @ </select> > 90 @ <select onchange="formatDoc('forecolor',this[this.selectedIndex].value); > 91 @ this.selectedIndex=0;"> > 92 @ <option class="heading" selected>- color -</option> > 93 @ <option value="red">Red</option> > 94 @ <option value="blue">Blue</option> > 95 @ <option value="green">Green</option> > 96 @ <option value="black">Black</option> > 97 @ </select> > 98 @ </div> > 99 @ <div id="toolBar2"> > 100 @ <img class="intLink" title="Undo" onclick="formatDoc('undo');" > 101 @ src="data:image/gif;base64,R0lGODlhFgAWAOMKADljwliE33mOrpGjuYKl8aezxqPD+7 > 102 @ /I19DV3NHa7P///////////////////////yH5BAEKAA8ALAAAAAAWABYAAARR8MlJq704680 > 103 @ 7TkaYeJJBnES4EeUJvIGapWYAC0CsocQ7SDlWJkAkCA6ToMYWIARGQF3mRQVIEjkkSVLIbSfE > 104 @ whdRIH4fh/DZMICe3/C4nBQBADs="> > 105 > 106 @ <img class="intLink" title="Redo" onclick="formatDoc('redo');" > 107 @ src="data:image/gif;base64,R0lGODlhFgAWAMIHAB1ChDljwl9vj1iE34Kl8aPD+7/I1/ > 108 @ ///yH5BAEKAAcALAAAAAAWABYAAANKeLrc/jDKSesyphi7SiEgsVXZEATDICqBVJjpqWZt9Na > 109 @ EDNbQK1wCQsxlYnxMAImhyDoFAElJasRRvAZVRqqQXUy7Cgx4TC6bswkAOw=="> > 110 > 111 @ <img class="intLink" title="Remove formatting" > 112 @ onclick="formatDoc('removeFormat')" > 113 @ src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AA > 114 @ AABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAOxAAADsQBlSsOGwA > 115 @ AAAd0SU1FB9oECQMCKPI8CIIAAAAIdEVYdENvbW1lbnQA9syWvwAAAuhJREFUOMtjYBgFxAB5 > 116 @ 01ZWBvVaL2nHnlmk6mXCJbF69zU+Hz/9fB5O1lx+bg45qhl8/fYr5it3XrP/YWTUvvvk3VeqG > 117 @ Xz70TvbJy8+Wv39+2/Hz19/mGwjZzuTYjALuoBv9jImaXHeyD3H7kU8fPj2ICML8z92dlbtMz > 118 @ deiG3fco7J08foH1kurkm3E9iw54YvKwuTuom+LPt/BgbWf3//sf37/1/c02cCG1lB8f//f95 > 119 @ DZx74MTMzshhoSm6szrQ/a6Ir/Z2RkfEjBxuLYFpDiDi6Af///2ckaHBp7+7wmavP5n76+P2C > 120 @ lrLIYl8H9W36auJCbCxM4szMTJac7Kza////R3H1w2cfWAgafPbqs5g7D95++/P1B4+ECK8tA > 121 @ wMDw/1H7159+/7r7ZcvPz4fOHbzEwMDwx8GBgaGnNatfHZx8zqrJ+4VJBh5CQEGOySEua/v3n > 122 @ 7hXmqI8WUGBgYGL3vVG7fuPK3i5GD9/fja7ZsMDAzMG/Ze52mZeSj4yu1XEq/ff7W5dvfVAS1 > 123 @ lsXc4Db7z8C3r8p7Qjf///2dnZGxlqJuyr3rPqQd/Hhyu7oSpYWScylDQsd3kzvnH738wMDzj > 124 @ 5GBN1VIWW4c3KDon7VOvm7S3paB9u5qsU5/x5KUnlY+eexQbkLNsErK61+++VnAJcfkyMTIwf > 125 @ fj0QwZbJDKjcETs1Y8evyd48toz8y/ffzv//vPP4veffxpX77z6l5JewHPu8MqTDAwMDLzyrj > 126 @ b/mZm0JcT5Lj+89+Ybm6zz95oMh7s4XbygN3Sluq4Mj5K8iKMgP4f0////fv77//8nLy+7MCc > 127 @ XmyYDAwODS9jM9tcvPypd35pne3ljdjvj26+H2dhYpuENikgfvQeXNmSl3tqepxXsqhXPyc66 > 128 @ 6s+fv1fMdKR3TK72zpix8nTc7bdfhfkEeVbC9KhbK/9iYWHiErbu6MWbY/7//8/4//9/pgOnH > 129 @ 6jGVazvFDRtq2VgiBIZrUTIBgCk+ivHvuEKwAAAAABJRU5ErkJggg=="> > 130 > 131 @ <img class="intLink" title="Bold" onclick="formatDoc('bold');" > 132 @ src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWAB > 133 @ YAQAInhI+pa+H9mJy0LhdgtrxzDG5WGFVk6aXqyk6Y9kXvKKNuLbb6zgMFADs=" /> > 134 > 135 @ <img class="intLink" title="Italic" onclick="formatDoc('italic');" > 136 @ src="data:image/gif;base64,R0lGODlhFgAWAKEDAAAAAF9vj5WIbf///yH5BAEAAAMALA > 137 @ AAAAAWABYAAAIjnI+py+0Po5x0gXvruEKHrF2BB1YiCWgbMFIYpsbyTNd2UwAAOw==" /> > 138 > 139 @ <img class="intLink" title="Underline" onclick="formatDoc('underline');" > 140 @ src="data:image/gif;base64,R0lGODlhFgAWAKECAAAAAF9vj////////yH5BAEAAAIALA > 141 @ AAAAAWABYAAAIrlI+py+0Po5zUgAsEzvEeL4Ea15EiJJ5PSqJmuwKBEKgxVuXWtun+DwxCCgA > 142 @ 7" /> > 143 > 144 @ <img class="intLink" title="Left align" > 145 @ onclick="formatDoc('justifyleft');" > 146 @ src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWAB > 147 @ YAQAIghI+py+0Po5y02ouz3jL4D4JMGELkGYxo+qzl4nKyXAAAOw==" /> > 148 > 149 @ <img class="intLink" title="Center align" > 150 @ onclick="formatDoc('justifycenter');" > 151 @ src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWAB > 152 @ YAQAIfhI+py+0Po5y02ouz3jL4D4JOGI7kaZ5Bqn4sycVbAQA7" /> > 153 > 154 @ <img class="intLink" title="Right align" > 155 @ onclick="formatDoc('justifyright');" > 156 @ src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWAB > 157 @ YAQAIghI+py+0Po5y02ouz3jL4D4JQGDLkGYxouqzl43JyVgAAOw==" /> > 158 @ <img class="intLink" title="Numbered list" > 159 @ onclick="formatDoc('insertorderedlist');" > 160 @ src="data:image/gif;base64,R0lGODlhFgAWAMIGAAAAADljwliE35GjuaezxtHa7P//// > 161 @ ///yH5BAEAAAcALAAAAAAWABYAAAM2eLrc/jDKSespwjoRFvggCBUBoTFBeq6QIAysQnRHaEO > 162 @ zyaZ07Lu9lUBnC0UGQU1K52s6n5oEADs=" /> > 163 > 164 @ <img class="intLink" title="Dotted list" > 165 @ onclick="formatDoc('insertunorderedlist');" > 166 @ src="data:image/gif;base64,R0lGODlhFgAWAMIGAAAAAB1ChF9vj1iE33mOrqezxv//// > 167 @ ///yH5BAEAAAcALAAAAAAWABYAAAMyeLrc/jDKSesppNhGRlBAKIZRERBbqm6YtnbfMY7lud6 > 168 @ 4UwiuKnigGQliQuWOyKQykgAAOw==" /> > 169 > 170 @ <img class="intLink" title="Quote" > 171 @ onclick="formatDoc('formatblock','blockquote');" > 172 @ src="data:image/gif;base64,R0lGODlhFgAWAIQXAC1NqjFRjkBgmT9nqUJnsk9xrFJ7u2 > 173 @ R9qmKBt1iGzHmOrm6Sz4OXw3Odz4Cl2ZSnw6KxyqO306K63bG70bTB0rDI3bvI4P///////// > 174 @ //////////////////////////yH5BAEKAB8ALAAAAAAWABYAAAVP4CeOZGmeaKqubEs2Cekk > 175 @ ErvEI1zZuOgYFlakECEZFi0GgTGKEBATFmJAVXweVOoKEQgABB9IQDCmrLpjETrQQlhHjINrT > 176 @ q/b7/i8fp8PAQA7" /> > 177 > 178 @ <img class="intLink" title="Add indentation" > 179 @ onclick="formatDoc('outdent');" > 180 @ src="data:image/gif;base64,R0lGODlhFgAWAMIHAAAAADljwliE35GjuaezxtDV3NHa7P > 181 @ ///yH5BAEAAAcALAAAAAAWABYAAAM2eLrc/jDKCQG9F2i7u8agQgyK1z2EIBil+TWqEMxhMcz > 182 @ sYVJ3e4ahk+sFnAgtxSQDqWw6n5cEADs=" /> > 183 > 184 @ <img class="intLink" title="Delete indentation" > 185 @ onclick="formatDoc('indent');" > 186 @ src="data:image/gif;base64,R0lGODlhFgAWAOMIAAAAADljwl9vj1iE35GjuaezxtDV3N > 187 @ Ha7P///////////////////////////////yH5BAEAAAgALAAAAAAWABYAAAQ7EMlJq704650 > 188 @ B/x8gemMpgugwHJNZXodKsO5oqUOgo5KhBwWESyMQsCRDHu9VOyk5TM9zSpFSr9gsJwIAOw=="> > 189 > 190 @ <img class="intLink" title="Hyperlink" > 191 @ onclick="var sLnk=prompt('Target URL:',''); > 192 @ if(sLnk&&sLnk!=''){formatDoc('createlink',sLnk)}" > 193 @ src="data:image/gif;base64,R0lGODlhFgAWAOMKAB1ChDRLY19vj3mOrpGjuaezxrCztb > 194 @ /I19Ha7Pv8/f///////////////////////yH5BAEKAA8ALAAAAAAWABYAAARY8MlJq704682 > 195 @ 7/2BYIQVhHg9pEgVGIklyDEUBy/RlE4FQF4dCj2AQXAiJQDCWQCAEBwIioEMQBgSAFhDAGghG > 196 @ i9XgHAhMNoSZgJkJei33UESv2+/4vD4TAQA7" /> > 197 > 198 @ <img class="intLink" title="Cut" > 199 @ onclick="formatDoc('cut');" > 200 @ src="data:image/gif;base64,R0lGODlhFgAWAIQSAB1ChBFNsRJTySJYwjljwkxwl19vj1 > 201 @ dusYODhl6MnHmOrpqbmpGjuaezxrCztcDCxL/I18rL1P///////////////////////////// > 202 @ //////////////////////////yH5BAEAAB8ALAAAAAAWABYAAAVu4CeOZGmeaKqubDs6TNnE > 203 @ bGNApNG0kbGMi5trwcA9GArXh+FAfBAw5UexUDAQESkRsfhJPwaH4YsEGAAJGisRGAQY7UCC9 > 204 @ ZAXBB+74LGCRxIEHwAHdWooDgGJcwpxDisQBQRjIgkDCVlfmZqbmiEAOw==" /> > 205 > 206 @ <img class="intLink" title="Copy" > 207 @ onclick="formatDoc('copy');" > 208 @ src="data:image/gif;base64,R0lGODlhFgAWAIQcAB1ChBFNsTRLYyJYwjljwl9vj1iE31 > 209 @ iGzF6MnHWX9HOdz5GjuYCl2YKl8ZOt4qezxqK63aK/9KPD+7DI3b/I17LM/MrL1MLY9NHa7OP > 210 @ s++bx/Pv8/f///////////////yH5BAEAAB8ALAAAAAAWABYAAAWG4CeOZGmeaKqubOum1SQ/ > 211 @ kPVOW749BeVSus2CgrCxHptLBbOQxCSNCCaF1GUqwQbBd0JGJAyGJJiobE+LnCaDcXAaEoxhQ > 212 @ ACgNw0FQx9kP+wmaRgYFBQNeAoGihCAJQsCkJAKOhgXEw8BLQYciooHf5o7EA+kC40qBKkAAA > 213 @ Grpy+wsbKzIiEAOw==" /> > 214 > 215 @ <img class="intLink" title="Paste" > 216 @ onclick="formatDoc('paste');" > 217 @ src="data:image/gif;base64,R0lGODlhFgAWAIQUAD04KTRLY2tXQF9vj414WZWIbXmOrp > 218 @ qbmpGjudClFaezxsa0cb/I1+3YitHa7PrkIPHvbuPs+/fvrvv8/f///////////////////// > 219 @ //////////////////////////yH5BAEAAB8ALAAAAAAWABYAAAWN4CeOZGmeaKqubGsusPvB > 220 @ SyFJjVDs6nJLB0khR4AkBCmfsCGBQAoCwjF5gwquVykSFbwZE+AwIBV0GhFog2EwIDchjwRiQ > 221 @ o9E2Fx4XD5R+B0DDAEnBXBhBhN2DgwDAQFjJYVhCQYRfgoIDGiQJAWTCQMRiwwMfgicnVcAAA > 222 @ MOaK+bLAOrtLUyt7i5uiUhADs=" /> > 223 @ </div> > 224 @ <div id="wysiwygBox" > 225 @ style="resize:both; overflow:auto; width: %d(w)em; height: %d(h)em;" > 226 @ contenteditable="true">%s(zContent)</div> > 227 @ <script> > 228 @ var oDoc; > 229 @ > 230 @ /* Initialize the document editor */ > 231 @ function initDoc() { > 232 @ oDoc = document.getElementById("wysiwygBox"); > 233 @ if (!isWysiwyg()) { setDocMode(true); } > 234 @ } > 235 @ > 236 @ /* Return true if the document editor is in WYSIWYG mode. Return > 237 @ ** false if it is in Markup mode */ > 238 @ function isWysiwyg() { > 239 @ return document.getElementById("editMode").selectedIndex==0; > 240 @ } > 241 @ > 242 @ /* Invoke this routine prior to submitting the HTML content back > 243 @ ** to the server */ > 244 @ function wysiwygSubmit() { > 245 @ if(oDoc.style.whiteSpace=="pre-wrap"){setDocMode(0);} > 246 @ document.getElementById("wysiwygValue").value=oDoc.innerHTML; > 247 @ } > 248 @ > 249 @ /* Run the editing command if in WYSIWYG mode */ > 250 @ function formatDoc(sCmd, sValue) { > 251 @ if (isWysiwyg()){ > 252 @ document.execCommand("styleWithCSS", false, false); > 253 @ document.execCommand(sCmd, false, sValue); > 254 @ oDoc.focus(); > 255 @ } > 256 @ } > 257 @ > 258 @ /* Change the editing mode. Convert to markup if the argument > 259 @ ** is true and wysiwyg if the argument is false. */ > 260 @ function setDocMode(bToMarkup) { > 261 @ var oContent; > 262 @ if (bToMarkup) { > 263 @ /* WYSIWYG -> Markup */ > 264 @ var linebreak = new RegExp("</p><p>","ig"); > 265 @ oContent = document.createTextNode( > 266 @ oDoc.innerHTML.replace(linebreak,"</p>\n\n<p>")); > 267 @ oDoc.innerHTML = ""; > 268 @ oDoc.style.whiteSpace = "pre-wrap"; > 269 @ oDoc.appendChild(oContent); > 270 @ document.getElementById("toolBar1").style.visibility="hidden"; > 271 @ document.getElementById("toolBar2").style.visibility="hidden"; > 272 @ } else { > 273 @ /* Markup -> WYSIWYG */ > 274 @ if (document.all) { > 275 @ oDoc.innerHTML = oDoc.innerText; > 276 @ } else { > 277 @ oContent = document.createRange(); > 278 @ oContent.selectNodeContents(oDoc.firstChild); > 279 @ oDoc.innerHTML = oContent.toString(); > 280 @ } > 281 @ oDoc.style.whiteSpace = "normal"; > 282 @ document.getElementById("toolBar1").style.visibility="visible"; > 283 @ document.getElementById("toolBar2").style.visibility="visible"; > 284 @ } > 285 @ oDoc.focus(); > 286 @ } > 287 @ initDoc(); > 288 @ </script> > 289 > 290 }
Changes to win/Makefile.dmc
24 CFLAGS = -o 24 CFLAGS = -o 25 BCC = $(DMDIR)\bin\dmc $(CFLAGS) 25 BCC = $(DMDIR)\bin\dmc $(CFLAGS) 26 TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL) 26 TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL) 27 LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32 27 LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32 28 28 29 SQLITE_OPTIONS = -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_D 29 SQLITE_OPTIONS = -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_D 30 30 31 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c | 31 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c 32 32 33 OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $ | 33 OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $ 34 34 35 35 36 RC=$(DMDIR)\bin\rcc 36 RC=$(DMDIR)\bin\rcc 37 RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ 37 RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ 38 38 39 APPNAME = $(OBJDIR)\fossil$(E) 39 APPNAME = $(OBJDIR)\fossil$(E) 40 40 ................................................................................................................................................................................ 44 cd $(OBJDIR) 44 cd $(OBJDIR) 45 $(DMDIR)\bin\link @link 45 $(DMDIR)\bin\link @link 46 46 47 $(OBJDIR)\fossil.res: $B\win\fossil.rc 47 $(OBJDIR)\fossil.res: $B\win\fossil.rc 48 $(RC) $(RCFLAGS) -o$@ $** 48 $(RC) $(RCFLAGS) -o$@ $** 49 49 50 $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res 50 $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res 51 +echo add allrepo attach bag bisect blob branch browse captcha cgi check | 51 +echo add allrepo attach bag bisect blob branch browse captcha cgi check 52 +echo fossil >> $@ 52 +echo fossil >> $@ 53 +echo fossil >> $@ 53 +echo fossil >> $@ 54 +echo $(LIBS) >> $@ 54 +echo $(LIBS) >> $@ 55 +echo. >> $@ 55 +echo. >> $@ 56 +echo fossil >> $@ 56 +echo fossil >> $@ 57 57 58 translate$E: $(SRCDIR)\translate.c 58 translate$E: $(SRCDIR)\translate.c ................................................................................................................................................................................ 671 +translate$E $** > $@ 671 +translate$E $** > $@ 672 672 673 $(OBJDIR)\winhttp$O : winhttp_.c winhttp.h 673 $(OBJDIR)\winhttp$O : winhttp_.c winhttp.h 674 $(TCC) -o$@ -c winhttp_.c 674 $(TCC) -o$@ -c winhttp_.c 675 675 676 winhttp_.c : $(SRCDIR)\winhttp.c 676 winhttp_.c : $(SRCDIR)\winhttp.c 677 +translate$E $** > $@ 677 +translate$E $** > $@ > 678 > 679 $(OBJDIR)\wysiwyg$O : wysiwyg_.c wysiwyg.h > 680 $(TCC) -o$@ -c wysiwyg_.c > 681 > 682 wysiwyg_.c : $(SRCDIR)\wysiwyg.c > 683 +translate$E $** > $@ 678 684 679 $(OBJDIR)\xfer$O : xfer_.c xfer.h 685 $(OBJDIR)\xfer$O : xfer_.c xfer.h 680 $(TCC) -o$@ -c xfer_.c 686 $(TCC) -o$@ -c xfer_.c 681 687 682 xfer_.c : $(SRCDIR)\xfer.c 688 xfer_.c : $(SRCDIR)\xfer.c 683 +translate$E $** > $@ 689 +translate$E $** > $@ 684 690 ................................................................................................................................................................................ 691 $(OBJDIR)\zip$O : zip_.c zip.h 697 $(OBJDIR)\zip$O : zip_.c zip.h 692 $(TCC) -o$@ -c zip_.c 698 $(TCC) -o$@ -c zip_.c 693 699 694 zip_.c : $(SRCDIR)\zip.c 700 zip_.c : $(SRCDIR)\zip.c 695 +translate$E $** > $@ 701 +translate$E $** > $@ 696 702 697 headers: makeheaders$E page_index.h VERSION.h 703 headers: makeheaders$E page_index.h VERSION.h 698 +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag | 704 +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag 699 @copy /Y nul: headers 705 @copy /Y nul: headers
Changes to win/Makefile.mingw
263 $(SRCDIR)/url.c \ 263 $(SRCDIR)/url.c \ 264 $(SRCDIR)/user.c \ 264 $(SRCDIR)/user.c \ 265 $(SRCDIR)/verify.c \ 265 $(SRCDIR)/verify.c \ 266 $(SRCDIR)/vfile.c \ 266 $(SRCDIR)/vfile.c \ 267 $(SRCDIR)/wiki.c \ 267 $(SRCDIR)/wiki.c \ 268 $(SRCDIR)/wikiformat.c \ 268 $(SRCDIR)/wikiformat.c \ 269 $(SRCDIR)/winhttp.c \ 269 $(SRCDIR)/winhttp.c \ > 270 $(SRCDIR)/wysiwyg.c \ 270 $(SRCDIR)/xfer.c \ 271 $(SRCDIR)/xfer.c \ 271 $(SRCDIR)/xfersetup.c \ 272 $(SRCDIR)/xfersetup.c \ 272 $(SRCDIR)/zip.c 273 $(SRCDIR)/zip.c 273 274 274 TRANS_SRC = \ 275 TRANS_SRC = \ 275 $(OBJDIR)/add_.c \ 276 $(OBJDIR)/add_.c \ 276 $(OBJDIR)/allrepo_.c \ 277 $(OBJDIR)/allrepo_.c \ ................................................................................................................................................................................ 362 $(OBJDIR)/url_.c \ 363 $(OBJDIR)/url_.c \ 363 $(OBJDIR)/user_.c \ 364 $(OBJDIR)/user_.c \ 364 $(OBJDIR)/verify_.c \ 365 $(OBJDIR)/verify_.c \ 365 $(OBJDIR)/vfile_.c \ 366 $(OBJDIR)/vfile_.c \ 366 $(OBJDIR)/wiki_.c \ 367 $(OBJDIR)/wiki_.c \ 367 $(OBJDIR)/wikiformat_.c \ 368 $(OBJDIR)/wikiformat_.c \ 368 $(OBJDIR)/winhttp_.c \ 369 $(OBJDIR)/winhttp_.c \ > 370 $(OBJDIR)/wysiwyg_.c \ 369 $(OBJDIR)/xfer_.c \ 371 $(OBJDIR)/xfer_.c \ 370 $(OBJDIR)/xfersetup_.c \ 372 $(OBJDIR)/xfersetup_.c \ 371 $(OBJDIR)/zip_.c 373 $(OBJDIR)/zip_.c 372 374 373 OBJ = \ 375 OBJ = \ 374 $(OBJDIR)/add.o \ 376 $(OBJDIR)/add.o \ 375 $(OBJDIR)/allrepo.o \ 377 $(OBJDIR)/allrepo.o \ ................................................................................................................................................................................ 461 $(OBJDIR)/url.o \ 463 $(OBJDIR)/url.o \ 462 $(OBJDIR)/user.o \ 464 $(OBJDIR)/user.o \ 463 $(OBJDIR)/verify.o \ 465 $(OBJDIR)/verify.o \ 464 $(OBJDIR)/vfile.o \ 466 $(OBJDIR)/vfile.o \ 465 $(OBJDIR)/wiki.o \ 467 $(OBJDIR)/wiki.o \ 466 $(OBJDIR)/wikiformat.o \ 468 $(OBJDIR)/wikiformat.o \ 467 $(OBJDIR)/winhttp.o \ 469 $(OBJDIR)/winhttp.o \ > 470 $(OBJDIR)/wysiwyg.o \ 468 $(OBJDIR)/xfer.o \ 471 $(OBJDIR)/xfer.o \ 469 $(OBJDIR)/xfersetup.o \ 472 $(OBJDIR)/xfersetup.o \ 470 $(OBJDIR)/zip.o 473 $(OBJDIR)/zip.o 471 474 472 APPNAME = fossil.exe 475 APPNAME = fossil.exe 473 TRANSLATE = $(OBJDIR)/translate.exe 476 TRANSLATE = $(OBJDIR)/translate.exe 474 MAKEHEADERS = $(OBJDIR)/makeheaders.exe 477 MAKEHEADERS = $(OBJDIR)/makeheaders.exe ................................................................................................................................................................................ 535 setup: $(OBJDIR) $(APPNAME) 538 setup: $(OBJDIR) $(APPNAME) 536 $(MAKENSIS) ./fossil.nsi 539 $(MAKENSIS) ./fossil.nsi 537 540 538 541 539 $(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex 542 $(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex 540 $(MKINDEX) $(TRANS_SRC) >$@ 543 $(MKINDEX) $(TRANS_SRC) >$@ 541 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/V 544 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/V 542 $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$( | 545 $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$( 543 echo Done >$(OBJDIR)/headers 546 echo Done >$(OBJDIR)/headers 544 547 545 $(OBJDIR)/headers: Makefile 548 $(OBJDIR)/headers: Makefile 546 Makefile: 549 Makefile: 547 $(OBJDIR)/add_.c: $(SRCDIR)/add.c $(OBJDIR)/translate 550 $(OBJDIR)/add_.c: $(SRCDIR)/add.c $(OBJDIR)/translate 548 $(TRANSLATE) $(SRCDIR)/add.c >$(OBJDIR)/add_.c 551 $(TRANSLATE) $(SRCDIR)/add.c >$(OBJDIR)/add_.c 549 552 ................................................................................................................................................................................ 1198 $(OBJDIR)/winhttp_.c: $(SRCDIR)/winhttp.c $(OBJDIR)/translate 1201 $(OBJDIR)/winhttp_.c: $(SRCDIR)/winhttp.c $(OBJDIR)/translate 1199 $(TRANSLATE) $(SRCDIR)/winhttp.c >$(OBJDIR)/winhttp_.c 1202 $(TRANSLATE) $(SRCDIR)/winhttp.c >$(OBJDIR)/winhttp_.c 1200 1203 1201 $(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/conf 1204 $(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/conf 1202 $(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c 1205 $(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c 1203 1206 1204 winhttp.h: $(OBJDIR)/headers 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)/conf > 1212 $(XTCC) -o $(OBJDIR)/wysiwyg.o -c $(OBJDIR)/wysiwyg_.c > 1213 > 1214 wysiwyg.h: $(OBJDIR)/headers 1205 $(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(OBJDIR)/translate 1215 $(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(OBJDIR)/translate 1206 $(TRANSLATE) $(SRCDIR)/xfer.c >$(OBJDIR)/xfer_.c 1216 $(TRANSLATE) $(SRCDIR)/xfer.c >$(OBJDIR)/xfer_.c 1207 1217 1208 $(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h 1218 $(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h 1209 $(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c 1219 $(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c 1210 1220 1211 xfer.h: $(OBJDIR)/headers 1221 xfer.h: $(OBJDIR)/headers
Changes to win/Makefile.msc
38 BCC = $(CC) $(CFLAGS) 38 BCC = $(CC) $(CFLAGS) 39 TCC = $(CC) -c $(CFLAGS) $(MSCDEF) $(SSL) $(INCL) 39 TCC = $(CC) -c $(CFLAGS) $(MSCDEF) $(SSL) $(INCL) 40 LIBS = $(ZLIB) ws2_32.lib advapi32.lib $(SSLLIB) 40 LIBS = $(ZLIB) ws2_32.lib advapi32.lib $(SSLLIB) 41 LIBDIR = -LIBPATH:$(MSCDIR)\extra\lib -LIBPATH:$(ZLIBDIR) 41 LIBDIR = -LIBPATH:$(MSCDIR)\extra\lib -LIBPATH:$(ZLIBDIR) 42 42 43 SQLITE_OPTIONS = /DSQLITE_OMIT_LOAD_EXTENSION=1 /DSQLITE_THREADSAFE=0 /DSQLITE_D 43 SQLITE_OPTIONS = /DSQLITE_OMIT_LOAD_EXTENSION=1 /DSQLITE_THREADSAFE=0 /DSQLITE_D 44 44 45 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c | 45 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c 46 46 47 OBJ = $(OX)\add$O $(OX)\allrepo$O $(OX)\attach$O $(OX)\bag$O $(OX)\bisect$O $( | 47 OBJ = $(OX)\add$O $(OX)\allrepo$O $(OX)\attach$O $(OX)\bag$O $(OX)\bisect$O $( 48 48 49 49 50 APPNAME = $(OX)\fossil$(E) 50 APPNAME = $(OX)\fossil$(E) 51 51 52 all: $(OX) $(APPNAME) 52 all: $(OX) $(APPNAME) 53 53 54 $(APPNAME) : translate$E mkindex$E headers $(OBJ) $(OX)\linkopts 54 $(APPNAME) : translate$E mkindex$E headers $(OBJ) $(OX)\linkopts ................................................................................................................................................................................ 150 echo $(OX)\url.obj >> $@ 150 echo $(OX)\url.obj >> $@ 151 echo $(OX)\user.obj >> $@ 151 echo $(OX)\user.obj >> $@ 152 echo $(OX)\verify.obj >> $@ 152 echo $(OX)\verify.obj >> $@ 153 echo $(OX)\vfile.obj >> $@ 153 echo $(OX)\vfile.obj >> $@ 154 echo $(OX)\wiki.obj >> $@ 154 echo $(OX)\wiki.obj >> $@ 155 echo $(OX)\wikiformat.obj >> $@ 155 echo $(OX)\wikiformat.obj >> $@ 156 echo $(OX)\winhttp.obj >> $@ 156 echo $(OX)\winhttp.obj >> $@ > 157 echo $(OX)\wysiwyg.obj >> $@ 157 echo $(OX)\xfer.obj >> $@ 158 echo $(OX)\xfer.obj >> $@ 158 echo $(OX)\xfersetup.obj >> $@ 159 echo $(OX)\xfersetup.obj >> $@ 159 echo $(OX)\zip.obj >> $@ 160 echo $(OX)\zip.obj >> $@ 160 echo $(LIBS) >> $@ 161 echo $(LIBS) >> $@ 161 162 162 163 163 164 ................................................................................................................................................................................ 780 translate$E $** > $@ 781 translate$E $** > $@ 781 782 782 $(OX)\winhttp$O : winhttp_.c winhttp.h 783 $(OX)\winhttp$O : winhttp_.c winhttp.h 783 $(TCC) /Fo$@ -c winhttp_.c 784 $(TCC) /Fo$@ -c winhttp_.c 784 785 785 winhttp_.c : $(SRCDIR)\winhttp.c 786 winhttp_.c : $(SRCDIR)\winhttp.c 786 translate$E $** > $@ 787 translate$E $** > $@ > 788 > 789 $(OX)\wysiwyg$O : wysiwyg_.c wysiwyg.h > 790 $(TCC) /Fo$@ -c wysiwyg_.c > 791 > 792 wysiwyg_.c : $(SRCDIR)\wysiwyg.c > 793 translate$E $** > $@ 787 794 788 $(OX)\xfer$O : xfer_.c xfer.h 795 $(OX)\xfer$O : xfer_.c xfer.h 789 $(TCC) /Fo$@ -c xfer_.c 796 $(TCC) /Fo$@ -c xfer_.c 790 797 791 xfer_.c : $(SRCDIR)\xfer.c 798 xfer_.c : $(SRCDIR)\xfer.c 792 translate$E $** > $@ 799 translate$E $** > $@ 793 800 ................................................................................................................................................................................ 800 $(OX)\zip$O : zip_.c zip.h 807 $(OX)\zip$O : zip_.c zip.h 801 $(TCC) /Fo$@ -c zip_.c 808 $(TCC) /Fo$@ -c zip_.c 802 809 803 zip_.c : $(SRCDIR)\zip.c 810 zip_.c : $(SRCDIR)\zip.c 804 translate$E $** > $@ 811 translate$E $** > $@ 805 812 806 headers: makeheaders$E page_index.h VERSION.h 813 headers: makeheaders$E page_index.h VERSION.h 807 makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_. | 814 makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_. 808 @copy /Y nul: headers 815 @copy /Y nul: headers