Page '''Notebook App - User Supplied Patches''' To use a patch, copy & paste into regular file and remove the first character, which is always a space here (for preformatted text). Later you can use it like follows: $ tar xvzf notebook.tar.gz $ cd notebookkit $ patch -p1 < patchfile Patch 0: *********************************************************************** Patch file for notebook Version 1.1 Turns original Makefile into Unix Makefile, thereby assuming that TCL installation is under /usr/local/tcl, with the library directory at TCLLIB=/usr/local/tcl/lib and the packages are located under $(TCLLIB)/bwidget1.6 $(TCLLIB)/tcllib1.4 $(TCLLIB)/snit $(TCLLIB)/trycatch *********************************************************************** diff -Nawur notebookkit-1.1.orig/Makefile notebookkit-1.1/Makefile --- notebookkit-1.1.orig/Makefile Sun Jul 20 23:26:21 2003 +++ notebookkit-1.1/Makefile Mon Jul 21 19:42:13 2003 @@ -1,41 +1,34 @@ -WINKIT = /Users/will/tclkit/tclkit-win32.upx.exe -OSXKIT = /Users/will/tclkit/tclkit-darwin-ppc +WKIT = /Users/will/tclkit/tclkit-win32.upx.exe +TCLLIB=/usr/local/tcl/lib all: @echo "Use 'make build' to build the executable." @echo "Use 'make install' to install it." install: - cp -r * /Users/will/bin/notebookkit - -dist: build - cp notebook.exe notebook notebook.kit README.txt \ - /Users/will/work/wjduquette/notebook - make clean - cd .. ; tar cvf notebook1.1.tar notebookkit ; gzip notebook1.1.tar - cp ../notebook1.1.tar.gz /Users/will/work/wjduquette/notebook - -build: update buildvfs buildexe + cp notebook.exe /local/bin update: update.tcl cp -f help.nbk lib/app-notebook +build: update buildvfs buildexe + buildvfs: mkdir -p ./notebook.vfs cp main.tcl ./notebook.vfs cp -r lib ./notebook.vfs rm -rf ./notebook.vfs/lib/CVS rm -rf ./notebook.vfs/lib/*/CVS - cp -r /Library/Tcl/bwidget1.6 ./notebook.vfs/lib - cp -r /Library/Tcl/tcllib1.3 ./notebook.vfs/lib - cp -r /Users/will/Library/Tcl/snit ./notebook.vfs/lib - cp -r /Users/will/Library/Tcl/trycatch ./notebook.vfs/lib + cp -r $(TCLLIB)/bwidget1.6 ./notebook.vfs/lib + cp -r $(TCLLIB)/tcllib1.4 ./notebook.vfs/lib + cp -r $(TCLLIB)/snit ./notebook.vfs/lib + cp -r $(TCLLIB)/trycatch ./notebook.vfs/lib buildexe: - sdx.kit wrap notebook.exe -runtime $(WINKIT) - sdx.kit wrap notebook -runtime $(OSXKIT) sdx.kit wrap notebook.kit + #sdx.kit wrap notebook.kit -writable + # sdx.kit wrap notebook.exe -runtime $(WKIT) clean: - -rm -rf notebook.vfs notebook.exe notebook.kit notebook.bat notebook + -rm -rf notebook.vfs notebook.exe notebook.kit notebook.bat Patch 1: Jump to next link with TAB, follow link with ENTER or SPACE (to be published later) Patch 2: *********************************************************************** Patch file for notebook Version 1.1 Add's support for tag '#unpre' to switch back from preformatted to normal mode. Good for inserting code examples. Patch supplied by Guido Ostkamp *********************************************************************** diff -Nawur notebookkit-1.1.orig/lib/app-notebook/renderpane.tcl notebookkit-1.1/lib/app-notebook/renderpane.tcl --- notebookkit-1.1.orig/lib/app-notebook/renderpane.tcl Sun Jun 29 23:21:31 2003 +++ notebookkit-1.1/lib/app-notebook/renderpane.tcl Mon Jul 21 22:35:49 2003 @@ -288,6 +356,8 @@ if {[string match "#---*" $value]} { $self InsertHLine } elseif {[string match "#pre*" $value]} { + # Skip it. + } elseif {[string match "#unpre*" $value]} { # Skip it. } else { $self insert end $value pre diff -Nawur notebookkit-1.1.orig/lib/markupparser/markupparser.tcl notebookkit-1.1/lib/markupparser/markupparser.tcl --- notebookkit-1.1.orig/lib/markupparser/markupparser.tcl Sun Jun 29 23:12:42 2003 +++ notebookkit-1.1/lib/markupparser/markupparser.tcl Mon Jul 21 23:21:41 2003 @@ -71,6 +71,14 @@ return -1 } +proc ::markupparser::FindEndOfLine {text} { + if {[regexp -indices {(\n)} $text match]} { + return [lindex $match 0] + } + return -1 +} + + # debugHandler tag value # # tag: A parsed markup tag @@ -314,6 +322,7 @@ # Parses text, generating a list directly proc ::markupparser::parse {text} { set result {} + set premode 0 # Q: Would scanning the string without modification be quicker? while {[string length $text] > 0} { @@ -329,9 +338,24 @@ lappend result HASH $para if {[string match "#pre*" $para] || [string match "#Tcl*" $para]} { - lappend result PRE $text + set premode 1 + } elseif {[string match "#unpre*" $para]} { + set premode 0 + } + continue + } + + if { $premode == 1 } { + set eop [FindEndOfLine $text] + + if {$eop == -1} { + set para $text set text "" + } else { + set para [string range $text 0 $eop] + set text [string range $text [expr {$eop + 1}] end] } + lappend result PRE $para continue } Patch 3: *********************************************************************** Patch file for notebook Version 1.1 Add proper mapping to Ctrl-c, Ctrl-x and Ctrl-v for Copy, Cut, and Paste functionality under Unix (otherwise this actions are only available through Meta-w, Control-w, Control-y). Patch supplied by Guido Ostkamp *********************************************************************** diff -Nawur notebookkit-1.1.orig/lib/app-notebook/pageeditor.tcl notebookkit-1.1/lib/app-notebook/pageeditor.tcl --- notebookkit-1.1.orig/lib/app-notebook/pageeditor.tcl Sun Jul 20 23:14:42 2003 +++ notebookkit-1.1/lib/app-notebook/pageeditor.tcl Tue Jul 22 22:54:47 2003 @@ -118,6 +118,12 @@ [list $win.pane.text insert insert "&lb;"] bind $win.pane.text \ [list $win.pane.text insert insert "&rb;"] + bind $win.pane.text \ + [tk_textCopy $win.pane.text] + bind $win.pane.text \ + [tk_textPaste $win.pane.text] + bind $win.pane.text \ + [tk_textCut $win.pane.text] #TBD bind $win.pane.text \ Patch 4: *********************************************************************** Patch file for notebook Version 1.1 Use confirmation for key after editing only, if something was changed. For copy only actions, this is not necessary. Patch supplied by Guido Ostkamp *********************************************************************** diff -Nawur notebookkit-1.1.orig/lib/app-notebook/pageeditor.tcl notebookkit-1.1/lib/app-notebook/pageeditor.tcl --- notebookkit-1.1.orig/lib/app-notebook/pageeditor.tcl Sun Jul 20 23:14:42 2003 +++ notebookkit-1.1/lib/app-notebook/pageeditor.tcl Tue Jul 22 22:54:47 2003 @@ -148,6 +154,7 @@ $self Revert + $win.pane.text edit modified 0 focus $win.pane.text } @@ -372,6 +379,7 @@ # Cancel editing. method Cancel {} { + if { [$win.pane.text edit modified] == 1 } { set result [tk_messageBox -icon question -parent $win \ -title "Are you sure?" \ -message "Return to browser without saving?" \ @@ -380,6 +388,7 @@ if {$result ne "yes"} { return + } } uplevel \#0 $options(-endcmd) [list $current 0] +# End of Notebook Database File