aboutsummaryrefslogtreecommitdiff
path: root/devel/sml_tk
diff options
context:
space:
mode:
authorMartin Wilke <miwi@FreeBSD.org>2008-06-21 09:56:54 +0000
committerMartin Wilke <miwi@FreeBSD.org>2008-06-21 09:56:54 +0000
commita15faa6309adb4b41cc265c2c5a9943b92c3c9b5 (patch)
tree19cb3988e31364642a7fee8bdfb87580516d7cdb /devel/sml_tk
parent0d72e6230358348a725928109540de85194c82d4 (diff)
downloadports-a15faa6309adb4b41cc265c2c5a9943b92c3c9b5.tar.gz
ports-a15faa6309adb4b41cc265c2c5a9943b92c3c9b5.zip
Notes
Diffstat (limited to 'devel/sml_tk')
-rw-r--r--devel/sml_tk/Makefile116
-rw-r--r--devel/sml_tk/distinfo3
-rw-r--r--devel/sml_tk/files/patch-Makefile69
-rw-r--r--devel/sml_tk/files/patch-README11
-rw-r--r--devel/sml_tk/files/patch-src-Makefile27
-rw-r--r--devel/sml_tk/files/patch-src-ann_texts.sml11
-rw-r--r--devel/sml_tk/files/patch-src-basic_util.sml20
-rw-r--r--devel/sml_tk/files/patch-src-com_state_pipe.sml11
-rw-r--r--devel/sml_tk/files/patch-src-config.sig11
-rw-r--r--devel/sml_tk/files/patch-src-config.sml100
-rw-r--r--devel/sml_tk/files/patch-src-export.sml35
-rw-r--r--devel/sml_tk/files/patch-src-fonts.sml13
-rw-r--r--devel/sml_tk/files/patch-src-njml.sml36
-rw-r--r--devel/sml_tk/files/patch-src-paths.sml18
-rw-r--r--devel/sml_tk/files/patch-src-poly.sml11
-rw-r--r--devel/sml_tk/files/patch-src-smltk.cm143
-rw-r--r--devel/sml_tk/files/patch-src-sources.cm120
-rw-r--r--devel/sml_tk/files/patch-src-std_lib-sources.cm26
-rw-r--r--devel/sml_tk/files/patch-src-tests+examples-sources.cm43
-rw-r--r--devel/sml_tk/files/patch-src-toolkit-icons.sml13
-rw-r--r--devel/sml_tk/files/patch-src-toolkit-markup.sml29
-rw-r--r--devel/sml_tk/files/patch-src-toolkit-njfiler.sml73
-rw-r--r--devel/sml_tk/files/patch-src-toolkit-regExp-sources.cm22
-rw-r--r--devel/sml_tk/files/patch-src-toolkit-sources.cm168
-rw-r--r--devel/sml_tk/files/patch-src-toolkit-tests+examples-simpleinst.sml11
-rw-r--r--devel/sml_tk/files/patch-src-toolkit-tests+examples-sources.cm45
-rw-r--r--devel/sml_tk/files/patch-src-toolkit-tests+examples-tsimpleinst.sml11
-rw-r--r--devel/sml_tk/files/patch-src-widget_tree.sig13
-rw-r--r--devel/sml_tk/files/patch-src-widget_tree.sml63
-rw-r--r--devel/sml_tk/files/sml_tk.1.in153
-rw-r--r--devel/sml_tk/files/src-mlton.sml68
-rw-r--r--devel/sml_tk/files/src-sml_tk.mlb95
-rw-r--r--devel/sml_tk/files/src-std_lib-std_lib.mlb18
-rw-r--r--devel/sml_tk/files/src-sys_conf.sml54
-rw-r--r--devel/sml_tk/files/src-toolkit-regExp-regexp.mlb12
-rw-r--r--devel/sml_tk/files/src-toolkit-toolkit.mlb128
-rw-r--r--devel/sml_tk/pkg-descr6
-rw-r--r--devel/sml_tk/pkg-plist299
38 files changed, 2105 insertions, 0 deletions
diff --git a/devel/sml_tk/Makefile b/devel/sml_tk/Makefile
new file mode 100644
index 000000000000..01c616799db9
--- /dev/null
+++ b/devel/sml_tk/Makefile
@@ -0,0 +1,116 @@
+# New ports collection makefile for: sml_tk
+# Date created: 2008-01-13
+# Whom: Timothy Bourke <timbob@bigpond.com>
+#
+# $FreeBSD$
+#
+
+PORTNAME= sml_tk
+PORTVERSION= 3.0
+CATEGORIES= devel
+MASTER_SITES= http://www.informatik.uni-bremen.de/~cxl/sml_tk/
+DISTNAME= smltk
+
+MAINTAINER= timbob@bigpond.com
+COMMENT= Typed and abstract Standard ML interface to Tcl/Tk
+
+USE_TK_WRAPPER= yes
+WRKSRC= ${WRKDIR}/${PORTNAME}
+
+OPTIONS= SMLNJDEVEL "Build with and stabilize for SML/NJ." on \
+ POLYML "Build and save state for Poly/ML" on
+
+ALL_TARGET= smltk
+SUB_FILES= sml_tk.1
+MAN1= sml_tk.1
+
+.include <bsd.port.pre.mk>
+
+.if defined(WITH_SMLNJDEVEL)
+BUILD_DEPENDS+= smlnj-devel>=65:${PORTSDIR}/lang/sml-nj-devel
+.endif
+.if defined(WITH_POLYML)
+BUILD_DEPENDS+= poly:${PORTSDIR}/lang/polyml
+.endif
+
+MAKE_ENV+= WRKSRC=${WRKSRC} WISH=${WISH}
+
+.if defined(WITH_SMLNJDEVEL)
+MAKE_ENV+= STABILIZE=yes SMLNJDEVEL=yes
+PLIST_SUB+= STABLE="" SMLNJBIN=""
+.else
+MAKE_ENV+= STABILIZE=no SMLNJDEVEL=no
+PLIST_SUB+= STABLE="@comment " SMLNJBIN="@comment "
+.endif
+
+.if defined(WITH_POLYML)
+MAKE_ENV+= POLYML=yes
+PLIST_SUB+= POLYSTATE=""
+.else
+MAKE_ENV+= POLYML=no
+PLIST_SUB+= POLYSTATE="@comment "
+.endif
+
+post-extract:
+ @${CP} ${WRKSRC}/src/toolkit/filer.sml ${WRKSRC}/src/toolkit/njfiler.sml
+ @${SED} -e 's|%%WISH%%|${WISH}|' \
+ -e 's|%%SMLTKLIB%%|${DATADIR}|' \
+ ${FILESDIR}/src-sys_conf.sml > ${WRKSRC}/src/sys_conf.sml
+ @${CP} ${FILESDIR}/src-mlton.sml ${WRKSRC}/src/mlton.sml
+ @${CP} ${FILESDIR}/src-sml_tk.mlb ${WRKSRC}/src/sml_tk.mlb
+ @${CP} ${FILESDIR}/src-toolkit-toolkit.mlb ${WRKSRC}/src/toolkit/toolkit.mlb
+ @${CP} ${FILESDIR}/src-toolkit-regExp-regexp.mlb \
+ ${WRKSRC}/src/toolkit/regExp/regexp.mlb
+ @${CP} ${FILESDIR}/src-std_lib-std_lib.mlb ${WRKSRC}/src/std_lib/std_lib.mlb
+ @${CHMOD} 0644 ${WRKSRC}/lib/images/info.gif
+
+post-build:
+.if defined(WITH_SMLNJDEVEL)
+ SMLNJ_DEVEL=yes heap2exec \
+ ${WRKSRC}/bin/sml_tk.heap.x86-bsd ${WRKSRC}/bin/sml_tk
+.endif
+
+do-install:
+ @(cd ${WRKSRC}/lib; for d in `find . -type d`; do \
+ ${MKDIR} ${DATADIR}/$$d; \
+ done)
+ @(cd ${WRKSRC}/lib; for f in `find . -type f -perm 0755`; do \
+ ${INSTALL_SCRIPT} $$f ${DATADIR}/$$f; \
+ done)
+ @(cd ${WRKSRC}/lib; for f in `find . -type f -perm 0644 `; do \
+ ${INSTALL_DATA} $$f ${DATADIR}/$$f; \
+ done)
+ @(cd ${WRKSRC}/src; \
+ for d in `find . -name .cm \! -prune -o \( -type d \! -name .cm \)`;\
+ do ${MKDIR} ${PREFIX}/lib/${PORTNAME}/$$d; \
+ done)
+ @(cd ${WRKSRC}/src; \
+ for f in `find . -name .cm \! -prune -o -type f \! \( -regex '.*\.orig' -o -name .cvsignore \)`;\
+ do ${INSTALL_DATA} $$f ${PREFIX}/lib/${PORTNAME}/$$f; \
+ done)
+ @${LN} -s ${PREFIX}/lib/${PORTNAME}/smltk.cm \
+ ${PREFIX}/lib/${PORTNAME}/sml_tk.cm
+.if defined(WITH_SMLNJDEVEL)
+ @${INSTALL_PROGRAM} ${WRKSRC}/bin/sml_tk ${PREFIX}/bin
+ @${MKDIR} ${PREFIX}/lib/${PORTNAME}/.cm
+ @${MKDIR} ${PREFIX}/lib/${PORTNAME}/.cm/x86-unix
+ @${INSTALL_DATA} ${WRKSRC}/src/.cm/x86-unix/sources.cm \
+ ${PREFIX}/lib/${PORTNAME}/.cm/x86-unix/sources.cm
+ @${LN} -s ${PREFIX}/lib/${PORTNAME}/.cm/x86-unix/sources.cm \
+ ${PREFIX}/lib/${PORTNAME}/.cm/x86-unix/sml_tk.cm
+.endif
+.if defined(WITH_POLYML)
+ @${INSTALL_DATA} ${WRKSRC}/bin/sml_tk.poly \
+ ${PREFIX}/lib/${PORTNAME}/sml_tk.poly
+.endif
+.if !defined(NOPORTDOCS)
+ @${MKDIR} ${DOCSDIR}
+ @${INSTALL_MAN} ${WRKSRC}/doc/manual.html ${DOCSDIR}/manual.html
+ @${MKDIR} ${DOCSDIR}/images
+ @for f in `ls ${WRKSRC}/doc/images/`; do \
+ ${INSTALL_DATA} ${WRKSRC}/doc/images/$$f ${DOCSDIR}/images/$$f;\
+ done
+.endif
+ @${INSTALL_MAN} ${WRKDIR}/sml_tk.1 ${MANPREFIX}/man/man1/sml_tk.1
+
+.include <bsd.port.post.mk>
diff --git a/devel/sml_tk/distinfo b/devel/sml_tk/distinfo
new file mode 100644
index 000000000000..ca32bef6b807
--- /dev/null
+++ b/devel/sml_tk/distinfo
@@ -0,0 +1,3 @@
+MD5 (smltk.tar.gz) = 7597da68a430a993589b563bffdf2933
+SHA256 (smltk.tar.gz) = 6dccd8a3345b9e8686a87e52773ba3787bf952d0db5bd4a51702734f6ab0c74e
+SIZE (smltk.tar.gz) = 440736
diff --git a/devel/sml_tk/files/patch-Makefile b/devel/sml_tk/files/patch-Makefile
new file mode 100644
index 000000000000..3f436ff17fee
--- /dev/null
+++ b/devel/sml_tk/files/patch-Makefile
@@ -0,0 +1,69 @@
+--- Makefile.orig Fri Mar 30 23:37:57 2001
++++ Makefile Sun Jan 13 21:51:20 2008
+@@ -28,19 +28,18 @@
+ ## start of configuration section
+ ##
+
+-SMLTK_LIB = /home/cxl/src/sml_tk/lib
+-SMLTK_TCL = /usr/local/X11/bin/wish
++SMLTK_LIB = ${WRKSRC}/lib
++SMLTK_TCL = ${WISH}
+ ## SMLTK_LOGFILE not set, hence by default no logging
+
+ # Produce the following heap image:
+-SMLTK_BINARY = /home/cxl/src/bin/sml_tk
+-
++SMLTK_BINARY = ${WRKSRC}/bin/sml_tk
+
+ # SML compiler.
+ ## SML/NJ
+-COMP = njml
+-COMP_BIN = sml-cm
+-COMP_NAME = SML/NJ 110
++#COMP = njml
++#COMP_BIN = sml
++#COMP_NAME = SML/NJ 110
+ ## PolyML
+ #COMP = poly
+ #COMP_BIN = /usr/local/PolyML/bin/polyml /home/wolff/ML_dbase
+@@ -64,14 +63,29 @@
+ # Invoke the make in src with the right parameters set.
+
+ smltk:
++.if ${SMLNJDEVEL} == "yes"
+ cd src; \
+ $(MAKE) "SMLTK_BINARY=$(SMLTK_BINARY)" \
+- "SMLTK_COMP=$(COMP_BIN)" \
+- "SMLTK_ROOT=root_$(COMP).sml" \
+- "SMLTK_BANNER=\"SmlTk 3.0 for $(COMP_NAME)\"" \
++ "SMLTK_COMP=sml" \
++ "SMLTK_ROOT=root_njml.sml" \
++ "SMLTK_BANNER=\"SmlTk 3.0 for SML/NJ 110 devel\"" \
++ "SMLTK_LIB=$(SMLTK_LIB)" \
++ "SMLTK_TCL=$(SMLTK_TCL)" \
++ "SMLTK_STABILIZE=$(STABILIZE)" \
++ all
++.endif
++.if ${POLYML} == "yes"
++ cd src; \
++ $(MAKE) "SMLTK_BINARY=$(SMLTK_BINARY).poly" \
++ "SMLTK_COMP=poly" \
++ "SMLTK_ROOT=root_poly.sml" \
++ "SMLTK_BANNER=\"SmlTk 3.0 for PolyML 5.1\"" \
+ "SMLTK_LIB=$(SMLTK_LIB)" \
+ "SMLTK_TCL=$(SMLTK_TCL)" \
++ "SMLTK_STABILIZE=no" \
+ all
++.endif
++
+
+ smltkI:
+ cd src; \
+@@ -82,7 +96,6 @@
+ "SMLTK_LIB=$(SMLTK_LIB)" \
+ "SMLTK_TCL=$(SMLTK_TCL)" \
+ allI
+-
+
+ # cleaning up:
+
diff --git a/devel/sml_tk/files/patch-README b/devel/sml_tk/files/patch-README
new file mode 100644
index 000000000000..e99d187b0de9
--- /dev/null
+++ b/devel/sml_tk/files/patch-README
@@ -0,0 +1,11 @@
+--- ./README.orig Sat Mar 31 01:43:03 2001
++++ README Sun Jan 13 11:03:51 2008
+@@ -25,7 +25,7 @@
+ - Set environment variable SMLTK_LIB to the full path of directory lib;
+ - chdir to src and start SML compiler;
+ - case you SML-compiler of
+- SML/NJ => CM.make();
++ SML/NJ => CM.make "sources.cm";
+ | PolyML => use "root_poly.sml";
+ | MoscowML => use "root_mosml.sml";
+ - After successful compilation:
diff --git a/devel/sml_tk/files/patch-src-Makefile b/devel/sml_tk/files/patch-src-Makefile
new file mode 100644
index 000000000000..7f7e7459a5b7
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-Makefile
@@ -0,0 +1,27 @@
+--- src/Makefile.orig Fri Mar 30 23:38:56 2001
++++ src/Makefile Sun Jan 13 21:53:55 2008
+@@ -12,10 +12,18 @@
+ ##
+
+ all :
++.if ${SMLTK_STABILIZE} == "yes"
++ echo "CM.stabilize true \"sources.cm\"; \
++ CM.make \"sources.cm\"; \
++ SmlTk.init(); \
++ SmlTk.xSmlTk {imagefile=\"$(SMLTK_BINARY)\", banner=\"$(SMLTK_BANNER)\"};" | \
++ $(SMLTK_COMP)
++.else
+ echo "use \"$(SMLTK_ROOT)\"; \
+ SmlTk.init(); \
+ SmlTk.xSmlTk {imagefile=\"$(SMLTK_BINARY)\", banner=\"$(SMLTK_BANNER)\"};" | \
+ $(SMLTK_COMP)
++.endif
+
+ allI :
+ echo "CM.SymVal.define(\"TK_INSIDE\", 1); \
+@@ -27,4 +35,4 @@
+ clean :
+ cd toolkit; $(MAKE) clean
+ cd tests+examples; $(MAKE) clean
+- rm -r -f CM .depend .x86 .sparc
++ rm -r -f .cm .depend .x86 .sparc
diff --git a/devel/sml_tk/files/patch-src-ann_texts.sml b/devel/sml_tk/files/patch-src-ann_texts.sml
new file mode 100644
index 000000000000..44d8dd9a7f12
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-ann_texts.sml
@@ -0,0 +1,11 @@
+--- ./src/ann_texts.sml.orig Fri Mar 30 23:38:57 2001
++++ src/ann_texts.sml Sun Jan 13 11:03:51 2008
+@@ -69,7 +69,7 @@
+ if (StringUtil.isLinefeed thischar)
+ then (line+1, 0)
+ else (line, char+1)
+- val (rows, cols) = Substring.foldl cnt (1, 0) (Substring.all t)
++ val (rows, cols) = Substring.foldl cnt (1, 0) (Substring.full t)
+ in (Int.max(rows, 1), cols)
+ end
+
diff --git a/devel/sml_tk/files/patch-src-basic_util.sml b/devel/sml_tk/files/patch-src-basic_util.sml
new file mode 100644
index 000000000000..af901c1f3405
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-basic_util.sml
@@ -0,0 +1,20 @@
+--- src/basic_util.sml.orig Sun Jan 13 18:28:51 2008
++++ src/basic_util.sml Sun Jan 13 18:28:13 2008
+@@ -132,7 +132,7 @@
+ open Substring
+ in
+ fun breakAtDot s =
+- let val (hd, tl) = splitl (not o isDot) (all s)
++ let val (hd, tl) = splitl (not o isDot) (full s)
+ in (string hd, string (triml 1 tl))
+ end
+ end
+@@ -150,7 +150,7 @@
+ else Int.toString s
+
+ fun all p str = Substring.foldl (fn (c, r)=> (p c) andalso r)
+- true (Substring.all str)
++ true (Substring.full str)
+
+ (* Adaptstring converts double quotes and other special characters
+ * into properly escaped sequences, to insure the string is to
diff --git a/devel/sml_tk/files/patch-src-com_state_pipe.sml b/devel/sml_tk/files/patch-src-com_state_pipe.sml
new file mode 100644
index 000000000000..8aa7603d5cd6
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-com_state_pipe.sml
@@ -0,0 +1,11 @@
+--- src/com_state_pipe.sml.orig Fri Mar 30 23:39:06 2001
++++ src/com_state_pipe.sml Sun Jan 13 13:40:19 2008
+@@ -145,7 +143,7 @@
+
+
+ fun getEvent () =
+- TextIO.inputLine(getWishIn())
++ valOf (TextIO.inputLine(getWishIn()))
+ handle Option.Option => "" (* wish has been closed in the meantime *)
+
+ fun eval ps =
diff --git a/devel/sml_tk/files/patch-src-config.sig b/devel/sml_tk/files/patch-src-config.sig
new file mode 100644
index 000000000000..d7d58ac5a59c
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-config.sig
@@ -0,0 +1,11 @@
+--- ./src/config.sig.orig Fri Mar 30 23:39:07 2001
++++ src/config.sig Sun Jan 13 11:10:08 2008
+@@ -50,6 +50,8 @@
+
+ val showReal : real -> string
+
++ val showColor : BasicTypes.Color -> string
++
+ val winConfEq : BasicTypes.WinConfigure ->
+ BasicTypes.WinConfigure -> bool
+
diff --git a/devel/sml_tk/files/patch-src-config.sml b/devel/sml_tk/files/patch-src-config.sml
new file mode 100644
index 000000000000..3ce982b6b5dc
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-config.sml
@@ -0,0 +1,100 @@
+--- ./src/config.sml.orig Fri Mar 30 23:39:07 2001
++++ src/config.sml Sun Jan 13 11:10:08 2008
+@@ -339,22 +339,22 @@
+ local
+ fun round n =
+ if n < 0 then 0 else if n > 255 then 255 else n
++ val toStr =
++ (StringCvt.padLeft #"0" 2) o Word.toString o Word.fromInt o round
+ in
+- fun showCol NoColor= "{}"
+- | showCol Black = "black"
+- | showCol White = "white"
+- | showCol Grey = "grey"
+- | showCol Blue = "blue"
+- | showCol Green = "green"
+- | showCol Red = "red"
+- | showCol Brown = "brown"
+- | showCol Yellow = "yellow"
+- | showCol Purple = "purple"
+- | showCol Orange = "orange"
+- | showCol (Mix {red, blue, green}) =
+- "\"#"^Word.toString(Word.fromInt(round red)) ^
+- Word.toString(Word.fromInt(round green)) ^
+- Word.toString(Word.fromInt(round blue)) ^ "\""
++ fun showColor NoColor= "{}"
++ | showColor Black = "black"
++ | showColor White = "white"
++ | showColor Grey = "grey"
++ | showColor Blue = "blue"
++ | showColor Green = "green"
++ | showColor Red = "red"
++ | showColor Brown = "brown"
++ | showColor Yellow = "yellow"
++ | showColor Purple = "purple"
++ | showColor Orange = "orange"
++ | showColor (Mix {red, blue, green}) =
++ "\"#"^ toStr red ^ toStr green ^ toStr blue ^ "\""
+ end
+
+ fun showAnchorKind North = "n"
+@@ -384,13 +384,13 @@
+
+ fun showCursorKind (NoCursor) = "{}"
+ | showCursorKind (XCursor(cn,NONE)) = cn
+- | showCursorKind (XCursor(cn,SOME(fg,NONE))) = cn ^ " " ^ (showCol fg)
++ | showCursorKind (XCursor(cn,SOME(fg,NONE))) = cn ^ " " ^ (showColor fg)
+ | showCursorKind (XCursor(cn,SOME(fg,SOME(bg)))) =
+- cn ^ " " ^ (showCol fg)^ " " ^ (showCol bg)
++ cn ^ " " ^ (showColor fg)^ " " ^ (showColor bg)
+ | showCursorKind (FileCursor(cf,fg,NONE)) =
+- "{@" ^ cf ^ " " ^ (showCol fg) ^ "}"
++ "{@" ^ cf ^ " " ^ (showColor fg) ^ "}"
+ | showCursorKind (FileCursor(cf,fg,SOME(mf,bg))) =
+- "{@" ^ cf ^ " " ^ mf ^ " " ^ (showCol fg) ^ " " ^ (showCol bg) ^ "}"
++ "{@" ^ cf ^ " " ^ mf ^ " " ^ (showColor fg) ^ " " ^ (showColor bg) ^ "}"
+
+ (* Added by E.L.Gunter 14 July 1998 *)
+ fun showArrowPos NoneAP = "none"
+@@ -429,8 +429,8 @@
+ | showConf _ (Height n) = " -height " ^ StringUtil.fromInt n
+ | showConf _ (Borderwidth n) = " -borderwidth " ^ StringUtil.fromInt n
+ | showConf _ (Relief r) = " -relief " ^ showRel r
+- | showConf _ (Foreground r) = " -foreground " ^ showCol r
+- | showConf _ (Background r) = " -background " ^ showCol r
++ | showConf _ (Foreground r) = " -foreground " ^ showColor r
++ | showConf _ (Background r) = " -background " ^ showColor r
+ | showConf _ (Text t) =
+ " -text \"" ^ StringUtil.adaptString t ^ "\""
+ | showConf _ (Font r) = " -font " ^ Fonts.fontDescr r
+@@ -441,8 +441,8 @@
+ | showConf (w, p) (Command c) =
+ " -command {" ^ Com.commToTcl ^ " \"Command " ^ w ^ " " ^ p ^ "\"}"
+ | showConf _ (Anchor a) = " -anchor " ^ showAnchorKind a
+- | showConf _ (FillColor r) = " -fill " ^ showCol r
+- | showConf _ (Outline r) = " -outline " ^ showCol r
++ | showConf _ (FillColor r) = " -fill " ^ showColor r
++ | showConf _ (Outline r) = " -outline " ^ showColor r
+ | showConf _ (OutlineWidth n) = " -width " ^ StringUtil.fromInt n
+ (*| showconf _ (Stipple) = ...*)
+ | showConf _ (Smooth true) = " -smooth true"
+@@ -490,7 +490,7 @@
+ " -command {" ^ Com.commToTcl' ^ " \"SCommand " ^ w ^ " " ^ p ^ "\"}"
+ | showConf _ (RepeatDelay i) = " -repeatdelay " ^ StringUtil.fromInt i
+ | showConf _ (RepeatInterval i) = " -repeatinterval " ^ StringUtil.fromInt i
+- | showConf _ (ThroughColor c) = " -throughcolor " ^ showCol c
++ | showConf _ (ThroughColor c) = " -throughcolor " ^ showColor c
+ | showConf _ (InnerPadX i) = " -padx " ^ StringUtil.fromInt i
+ | showConf _ (InnerPadY i) = " -pady " ^ StringUtil.fromInt i
+ | showConf _ (Show c) = " -show " ^ Char.toString c
+@@ -555,8 +555,8 @@
+ " -command {" ^ Com.commToTcl ^" \"MCommand " ^ w ^ " " ^ p ^ " "
+ ^ (packCascPath m) ^ "\"}"
+ | showMConf _ _ (Font f) = " -font " ^ Fonts.fontDescr f
+- | showMConf _ _ (Foreground r) = " -foreground " ^ showCol r
+- | showMConf _ _ (Background r) = " -background " ^ showCol r
++ | showMConf _ _ (Foreground r) = " -foreground " ^ showColor r
++ | showMConf _ _ (Background r) = " -background " ^ showColor r
+ | showMConf _ _ _ =
+ raise CONFIG ("Config.showMConf: got wrong Config")
+
diff --git a/devel/sml_tk/files/patch-src-export.sml b/devel/sml_tk/files/patch-src-export.sml
new file mode 100644
index 000000000000..e924a4a3ca19
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-export.sml
@@ -0,0 +1,35 @@
+--- src/export.sml.orig Fri Mar 30 23:39:11 2001
++++ src/export.sml Sun Jan 13 13:45:28 2008
+@@ -198,6 +198,10 @@
+ val moveCItem : WidId -> CItemId -> Coord -> unit
+ val setCItemCoords : WidId -> CItemId -> Coord list -> unit
+
++(* 4.? List Items *)
++ val addLItemConf : WidId -> Configure list -> Mark -> unit
++ val clearLItemConf : WidId -> Mark -> unit
++
+ (* 4.7 Menues *)
+ val popUpMenu : WidId -> int Option.option -> Coord -> unit
+
+@@ -433,6 +437,8 @@
+ val newWinId = newWidgetId (* dodgy *)
+ val newImageId = newWidgetId (* me too *)
+
++ val addLItemConf = WidgetTree.configureLItem
++ val clearLItemConf = WidgetTree.clearLItemConfig
+
+ (* these also have to check their arguments for non-alphanumerical
+ * characters etc. *)
+@@ -478,8 +484,10 @@
+ fun setFontBasesize x= (#BaseSize(Fonts.Config) := x; initFonts())
+
+ fun xSmlTk{imagefile, banner}
+- = SysDep.exportML {init= SysInit.initSmlTk,
+- banner= banner, imagefile=imagefile}
++ = (updTclPath (#default SysConf.wishVar);
++ updLibPath (#default SysConf.libVar);
++ SysDep.exportML {init= SysInit.initSmlTk,
++ banner= banner, imagefile=imagefile})
+
+ val getEnvSetting = SysInit.getEnvSetting
+
diff --git a/devel/sml_tk/files/patch-src-fonts.sml b/devel/sml_tk/files/patch-src-fonts.sml
new file mode 100644
index 000000000000..16cf8df08da1
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-fonts.sml
@@ -0,0 +1,13 @@
+--- ./src/fonts.sml.orig Fri Mar 30 23:39:12 2001
++++ src/fonts.sml Sun Jan 13 11:03:51 2008
+@@ -109,8 +109,8 @@
+ fun read_em si = if TextIO.endOfStream si
+ then [] before (TextIO.closeIn si;
+ TextIO.closeOut so)
+- else (splitFields
+- (TextIO.inputLine si))::(read_em si)
++ else (splitFields (valOf
++ (TextIO.inputLine si)))::(read_em si)
+ in read_em si
+ end
+
diff --git a/devel/sml_tk/files/patch-src-njml.sml b/devel/sml_tk/files/patch-src-njml.sml
new file mode 100644
index 000000000000..bf52bad50020
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-njml.sml
@@ -0,0 +1,36 @@
+--- src/njml.sml.orig Fri Mar 30 23:39:14 2001
++++ src/njml.sml Sun Jan 13 12:35:29 2008
+@@ -44,8 +44,8 @@
+
+ end
+
+- fun setPrintDepth n = (Compiler.Control.Print.printDepth := n div 2;
+- Compiler.Control.Print.printLength := n)
++ fun setPrintDepth n = (Control.Print.printDepth := n div 2;
++ Control.Print.printLength := n)
+
+ (* Set the terminal to a state suitable for sml_tk. Disables INTR
+ * s.t. we can use it to abort functions called from bindings, and
+@@ -60,11 +60,11 @@
+ if Posix.ProcEnv.isatty (Posix.FileSys.stdin) then
+ let (* configure TTY driver to have ^\ generate sigQUIT *)
+ val {iflag, oflag, cflag, lflag, cc, ispeed, ospeed} =
+- fieldsOf (getattr Posix.FileSys.stdin)
++ fieldsOf (Posix.TTY.TC.getattr Posix.FileSys.stdin)
+ val nuattr= termios {iflag=iflag, oflag=oflag, cflag=cflag,
+ lflag=lflag, ispeed=ispeed, ospeed=ospeed,
+ cc=V.update(cc, [(V.quit, Char.chr 28)])}
+- in setattr(Posix.FileSys.stdin, TC.sanow, nuattr);
++ in Posix.TTY.TC.setattr(Posix.FileSys.stdin, TC.sanow, nuattr);
+ (* install the top level continuation as QUIT signal handler *)
+ setHandler(UnixSignals.sigQUIT,
+ HANDLER (fn _ => (abort();
+@@ -106,7 +106,7 @@
+ fun exec (s,sl) =
+ let
+ val pr = Unix.execute (s,sl)
+- in case (Unix.reap pr) of
++ in case Posix.Process.fromStatus (Unix.reap pr) of
+ Posix.Process.W_EXITED => true
+ | _ => false
+ end
diff --git a/devel/sml_tk/files/patch-src-paths.sml b/devel/sml_tk/files/patch-src-paths.sml
new file mode 100644
index 000000000000..fa48bd75daca
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-paths.sml
@@ -0,0 +1,18 @@
+--- ./src/paths.sml.orig Fri Mar 30 23:39:15 2001
++++ src/paths.sml Sun Jan 13 11:03:51 2008
+@@ -29,13 +29,13 @@
+
+ fun fstWidPath s =
+ let val (m1, m2) = Substring.splitl (not o StringUtil.isDot)
+- (Substring.triml 1 (Substring.all s))
++ (Substring.triml 1 (Substring.full s))
+ in (Substring.string m1, Substring.string m2)
+ end
+
+ fun lastWidPath p =
+ let val (rp, rw) = Substring.splitr (not o StringUtil.isDot)
+- (Substring.all p)
++ (Substring.full p)
+ in
+ if (Substring.size rp)= 0 then
+ ("", Substring.string rw)
diff --git a/devel/sml_tk/files/patch-src-poly.sml b/devel/sml_tk/files/patch-src-poly.sml
new file mode 100644
index 000000000000..f4386d928809
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-poly.sml
@@ -0,0 +1,11 @@
+--- src/poly.sml.orig Sun Jan 13 18:42:52 2008
++++ src/poly.sml Sun Jan 13 18:42:35 2008
+@@ -20,7 +20,7 @@
+ (* from Isabelle --- to be used in Makefiles *)
+ fun exportML{init:unit->unit,
+ banner:string,
+- imagefile:string} = (PolyML.commit();())
++ imagefile:string} = (PolyML.SaveState.saveState imagefile)
+ (* runs only very rudimentarily . . . *)
+
+ fun setPrintDepth x = ();
diff --git a/devel/sml_tk/files/patch-src-smltk.cm b/devel/sml_tk/files/patch-src-smltk.cm
new file mode 100644
index 000000000000..75c1d46841f2
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-smltk.cm
@@ -0,0 +1,143 @@
+--- src/smltk.cm.orig Fri Mar 30 23:39:17 2001
++++ src/smltk.cm Sun Jan 13 17:40:24 2008
+@@ -1,8 +1,5 @@
+ (* -*-Mode: sml-*- *)
+-
+-Group
+-
+-
++Group
+ signature BASIC_UTIL
+ structure BasicUtil
+
+@@ -11,46 +8,93 @@
+ structure SmlTk21
+
+ structure GlobalConfig
+-
+ is
+-
+- ./std_lib/sources.cm
+-
+- sys_conf.sml
+-debug.sig debug.sml
+-sys_dep.sig njml.sml
+-basic_util.sig basic_util.sml
++ sys_conf.sml
++
++ debug.sig
++ debug.sml
++
++ sys_dep.sig
++ njml.sml
++
++ basic_util.sig
++ basic_util.sml
++
+ #if defined (TK_INSIDE)
+-tk_access.sig tk_access.sml
++ tk_access.sig
++ tk_access.sml
+ #endif
+-fonts.sig fonts.sml
+- basic_types.sml
+-gui_state.sig gui_state.sml
+-com_state.sig
++
++ fonts.sig
++ fonts.sml
++
++ basic_types.sml
++
++ gui_state.sig
++ gui_state.sml
++ com_state.sig
++
+ #if defined (TK_INSIDE)
+- com_state_clib.sml
++ com_state_clib.sml
+ #else
+- com_state_pipe.sml
++ com_state_pipe.sml
+ #endif
+-com.sig com.sml
+-paths.sig paths.sml
+-config.sig config.sml
+-tk_event.sig tk_event.sml
+-bind.sig bind.sml
+-coord.sig coord.sml
+-mark.sig mark.sml
+-c_item.sig c_item.sml
+-ann_texts.sig ann_texts.sml
+-annotation.sig annotation.sml
+-widget_tree.sig widget_tree.sml
+-c_item_tree.sig c_item_tree.sml
+-annotation_tree.sig annotation_tree.sml
+-windows.sig windows.sml
+-eventloop.sig eventloop.sml
+-widget_ops.sig widget_ops.sml
+-
+-sys_init.sml
+-tk_types.sml
+-export.sml
+-smltk21.sml
+-global_config.sml
++
++ com.sig
++ com.sml
++
++ paths.sig
++ paths.sml
++
++ config.sig
++ config.sml
++
++ tk_event.sig
++ tk_event.sml
++
++ bind.sig
++ bind.sml
++
++ coord.sig
++ coord.sml
++
++ mark.sig
++ mark.sml
++
++ c_item.sig
++ c_item.sml
++
++ ann_texts.sig
++ ann_texts.sml
++
++ annotation.sig
++ annotation.sml
++
++ widget_tree.sig
++ widget_tree.sml
++
++ c_item_tree.sig
++ c_item_tree.sml
++
++ annotation_tree.sig
++ annotation_tree.sml
++
++ windows.sig
++ windows.sml
++
++ eventloop.sig
++ eventloop.sml
++
++ widget_ops.sig
++ widget_ops.sml
++
++ sys_init.sml
++ tk_types.sml
++ export.sml
++ smltk21.sml
++ global_config.sml
++
++ $/basis.cm
++ $/smlnj-lib.cm
++ $smlnj/compiler.cm
++
diff --git a/devel/sml_tk/files/patch-src-sources.cm b/devel/sml_tk/files/patch-src-sources.cm
new file mode 100644
index 000000000000..2bf2c969f397
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-sources.cm
@@ -0,0 +1,120 @@
+--- src/sources.cm.orig Fri Mar 30 23:39:18 2001
++++ src/sources.cm Sun Jan 13 17:47:56 2008
+@@ -13,11 +13,115 @@
+ (C) 1997, Bremen Institute for Safe Systems, Universitaet Bremen
+
+ ************************************************************************** *)
++Library
++ (* smltk.cm *)
++ signature BASIC_UTIL
++ structure BasicUtil
+
+-Group is
++ signature SML_TK
++ structure SmlTk
++ structure SmlTk21
+
+- ./std_lib/sources.cm
++ structure GlobalConfig
++
++ (* toolkit/sources.cm *)
++ signature APPL_SIG
++ signature NP_APPL_SIG
++
++ signature DDITEMS
++ signature DRAG_DROP_SIG
++ functor DragAndDrop
++
++ signature GENGUI0_CONF
++ signature GENGUI_CONF
++ signature GENGUI_SIG
++ functor GenGUI
++
++ signature LAZY_TREE_OBJECTS
++ functor LazyTree
++
++ signature NUMERIC_CHOOSER_SIG
++ signature OBJECT_CLASS
++
++ signature FOLDERINFO
++ functor obj2tree_obj
++
++ signature TREE_OBJECT_CLASS
++ signature PTREE_OBJECT_CLASS
++ signature CLIPBOARD
++ signature CLIPBOARD_R
++ signature CLIPBOARD_W
++ structure DummyCB
++
++ signature SUBSTWIN
++ structure SubstWin
++
++ signature FILER_SIG
++ signature FILER_CONFIG
++ functor Filer
++ functor SimpleFiler
++ structure FilerDefaultConfig
++
++ signature ICON_SIG
++ structure Icons
++
++ functor Notepad
++ structure NumericChooser
++ structure Print
++
++ signature TAGS
++ signature SMLTK_MARKUP
++ signature BINDTAGS
++ functor SmlTkMarkup
++ functor StdTags
++ structure StdMarkup
++
++ signature TABLE_SIG
++ signature TABSSIG
++ structure Table
++ structure Tabs
++
++ signature TGENGUI_SIG
++ functor TGenGUI
++
++ signature TL_ACTION
++ functor TreeList
++
++ signature UTIL_WIN
++ signature WIDGET_BOX
++ structure UW
++ structure WidgetBox
++
++ (* tests+examples/sources.cm *)
++ structure BigEx
++ structure CanvasEx
++ structure Ex1
++ structure Ex2
++ structure GridEx
++ structure ListBoxEx
++ structure PopUpEx
++ structure ScaleEx
++ structure TagEx
++ structure WBindEx
++
++ (* toolkit/tests+examples/sources.cm *)
++ structure WeeBoxes
++ structure FilerEx
++ structure MarkupEx
++ structure SimpleInstAppl
++ structure SimpleInst
++ structure StdMarkEx
++ structure TableEx
++ structure TabsEx
++ structure LittleTreeList
++ structure TSimpleInstAppl
++ structure UW_Ex
++is
+ ./smltk.cm
+ ./toolkit/sources.cm
+ ./tests+examples/sources.cm
+ ./toolkit/tests+examples/sources.cm
++
++ $/basis.cm
++ $/smlnj-lib.cm
++
diff --git a/devel/sml_tk/files/patch-src-std_lib-sources.cm b/devel/sml_tk/files/patch-src-std_lib-sources.cm
new file mode 100644
index 000000000000..d825367dbd81
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-std_lib-sources.cm
@@ -0,0 +1,26 @@
+--- src/std_lib/sources.cm.orig Sun Jan 13 17:28:30 2008
++++ src/std_lib/sources.cm Sun Jan 13 17:30:44 2008
+@@ -1,7 +1,17 @@
+-Group is
+-
+-lib-base-sig.sml lib-base.sml
+-ord-key-sig.sml
+-ord-set-sig.sml int-binary-set.sml
+-ord-map-sig.sml binary-map-fn.sml
++Group
++ functor BinaryMapFn
++ structure IntBinarySet
++ signature LIB_BASE
++ structure LibBase
++ signature ORD_KEY
++ signature ORD_MAP
++ signature ORD_SET
++is
++ lib-base-sig.sml
++ lib-base.sml
++ ord-key-sig.sml
++ ord-set-sig.sml
++ int-binary-set.sml
++ ord-map-sig.sml
++ binary-map-fn.sml
+
diff --git a/devel/sml_tk/files/patch-src-tests+examples-sources.cm b/devel/sml_tk/files/patch-src-tests+examples-sources.cm
new file mode 100644
index 000000000000..2a91ee171af3
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-tests+examples-sources.cm
@@ -0,0 +1,43 @@
+--- src/tests+examples/sources.cm.orig Fri Mar 30 23:39:35 2001
++++ src/tests+examples/sources.cm Sun Jan 13 17:06:20 2008
+@@ -1,15 +1,28 @@
+-Group is
++Group
++ structure BigEx
++ structure CanvasEx
++ structure Ex1
++ structure Ex2
++ structure GridEx
++ structure ListBoxEx
++ structure PopUpEx
++ structure ScaleEx
++ structure TagEx
++ structure WBindEx
++is
++ ../smltk.cm
+
+-../smltk.cm
++ ex1.sml
++ ex2.sml
+
+-ex1.sml
+-ex2.sml
++ big_ex.sml
++ canvas_ex.sml
++ list_box_ex.sml
++ popup_ex.sml
++ tag_ex.sml
++ wbind_ex.sml
++ grid_ex.sml
++ scale_ex.sml
++
++ $/basis.cm
+
+-big_ex.sml
+-canvas_ex.sml
+-list_box_ex.sml
+-popup_ex.sml
+-tag_ex.sml
+-wbind_ex.sml
+-grid_ex.sml
+-scale_ex.sml
diff --git a/devel/sml_tk/files/patch-src-toolkit-icons.sml b/devel/sml_tk/files/patch-src-toolkit-icons.sml
new file mode 100644
index 000000000000..8585dfa5d882
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-toolkit-icons.sml
@@ -0,0 +1,13 @@
+--- ./src/toolkit/icons.sml.orig Fri Mar 30 23:39:44 2001
++++ src/toolkit/icons.sml Sun Jan 13 11:03:51 2008
+@@ -95,8 +95,8 @@
+ fun getIconData (dir, file) =
+ let val i = openFile(joinDirFile{dir=dir,
+ file=dataFileNm file})
+- val w = StringUtil.toInt (TextIO.inputLine i)
+- val h = StringUtil.toInt (TextIO.inputLine i)
++ val w = StringUtil.toInt (valOf (TextIO.inputLine i))
++ val h = StringUtil.toInt (valOf (TextIO.inputLine i))
+ val _ = TextIO.closeIn i
+ in (w, h)
+ end
diff --git a/devel/sml_tk/files/patch-src-toolkit-markup.sml b/devel/sml_tk/files/patch-src-toolkit-markup.sml
new file mode 100644
index 000000000000..460db0c4368c
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-toolkit-markup.sml
@@ -0,0 +1,29 @@
+--- ./src/toolkit/markup.sml.orig Fri Mar 30 23:39:46 2001
++++ src/toolkit/markup.sml Sun Jan 13 11:03:51 2008
+@@ -199,7 +199,7 @@
+ rest
+ end
+
+- fun parse t = parseMain (all t) 0
++ fun parse t = parseMain (full t) 0
+
+ end
+
+@@ -239,7 +239,7 @@
+ (case Tags.escape e of
+ SOME esc =>
+ let val estr= Tags.textForEsc esc
+- val nuc = addpos c (Substring.all estr)
++ val nuc = addpos c (Substring.full estr)
+ val ean = Tags.annotationForEsc esc (Mark c,
+ Mark nuc)
+ in (oe, nuc, s^estr,
+@@ -255,7 +255,7 @@
+ (Tags.warning ("Unknown escape sequence '"^e^
+ "' (left untouched).");
+ "&"^e^";")
+- in (oe, addpos c (Substring.all estr), s^estr, al)
++ in (oe, addpos c (Substring.full estr), s^estr, al)
+ end)
+ | consEl wid (elemStart els, (oe, c, s, al)) =
+ ((els, c):: oe, c, s, al)
diff --git a/devel/sml_tk/files/patch-src-toolkit-njfiler.sml b/devel/sml_tk/files/patch-src-toolkit-njfiler.sml
new file mode 100644
index 000000000000..60d62c9a9659
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-toolkit-njfiler.sml
@@ -0,0 +1,73 @@
+--- ./src/toolkit/njfiler.sml.orig Fri Mar 30 23:39:40 2001
++++ src/toolkit/njfiler.sml Sun Jan 13 11:03:51 2008
+@@ -335,11 +335,12 @@
+ handle NoAcc => false) then
+ if (!SHOW_HIDDEN orelse
+ not(hd(explode new) = #".")) then
+- new :: read (OS.FileSys.readDir dirstream)
+- else read (OS.FileSys.readDir dirstream)
+- else read (OS.FileSys.readDir dirstream)
++ new :: read (valOf (OS.FileSys.readDir
++ dirstream))
++ else read (valOf (OS.FileSys.readDir dirstream))
++ else read (valOf (OS.FileSys.readDir dirstream))
+ in
+- (sort (read (OS.FileSys.readDir dirstream))
++ (sort (read (valOf (OS.FileSys.readDir dirstream)))
+ (fn x => fn y => String.<(x, y)) before
+ OS.FileSys.closeDir dirstream)
+ end
+@@ -618,7 +619,7 @@
+ if (OS.FileSys.isDir(OS.Path.concat(!CURRENT_DIRECTORY,
+ new))
+ handle NoAcc => false) then
+- read (OS.FileSys.readDir dirstream)
++ read (valOf (OS.FileSys.readDir dirstream))
+ else
+ if (!SHOW_HIDDEN orelse
+ not(hd(explode new) = #".")) then
+@@ -628,10 +629,10 @@
+ in
+ if isSome dtp then
+ (new, valOf dtp) ::
+- read (OS.FileSys.readDir dirstream)
+- else read (OS.FileSys.readDir dirstream)
++ read (valOf (OS.FileSys.readDir dirstream))
++ else read (valOf (OS.FileSys.readDir dirstream))
+ end
+- else read (OS.FileSys.readDir dirstream)
++ else read (valOf (OS.FileSys.readDir dirstream))
+
+ fun type_ord e1 e2 ((ft : Filetype) :: fts) =
+ if (not(e1 = "") andalso
+@@ -659,7 +660,7 @@
+ else if !SORT_NAMES then String.<(#1 e1, #1 e2)
+ else true
+ in
+- sort (read (OS.FileSys.readDir dirstream)) ord before
++ sort (read (valOf (OS.FileSys.readDir dirstream))) ord before
+ OS.FileSys.closeDir dirstream
+ end
+
+@@ -755,8 +756,8 @@
+ !CURRENT_DIRECTORY
+ else
+ OS.Path.mkRelative
+- (!CURRENT_DIRECTORY,
+- root_dir()),
++ {path = !CURRENT_DIRECTORY,
++ relativeTo = root_dir()},
+ file = nm}) ev (fn () => ())
+ else ()
+ end
+@@ -770,8 +771,8 @@
+ !CURRENT_DIRECTORY
+ else
+ OS.Path.mkRelative
+- (!CURRENT_DIRECTORY,
+- root_dir()),
++ {path = !CURRENT_DIRECTORY,
++ relativeTo = root_dir()},
+ file = #1 f}
+ else
+ addConf file_statusID
diff --git a/devel/sml_tk/files/patch-src-toolkit-regExp-sources.cm b/devel/sml_tk/files/patch-src-toolkit-regExp-sources.cm
new file mode 100644
index 000000000000..341193ca62c2
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-toolkit-regExp-sources.cm
@@ -0,0 +1,22 @@
+--- src/toolkit/regExp/sources.cm.orig Fri Mar 30 23:39:59 2001
++++ src/toolkit/regExp/sources.cm Sun Jan 13 17:24:07 2008
+@@ -1,9 +1,13 @@
+-Group is
+-
+-../../std_lib/sources.cm
+-
+-match.sig rex.sml
+- globber.sml
++Group
++ signature MATCH
++ structure Globber
++ structure Rex
++is
+
++ match.sig
++ rex.sml
++ globber.sml
+
++ $/basis.cm
++ $/smlnj-lib.cm
+
diff --git a/devel/sml_tk/files/patch-src-toolkit-sources.cm b/devel/sml_tk/files/patch-src-toolkit-sources.cm
new file mode 100644
index 000000000000..a4e46382dd38
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-toolkit-sources.cm
@@ -0,0 +1,168 @@
+--- src/toolkit/sources.cm.orig Fri Mar 30 23:39:49 2001
++++ src/toolkit/sources.cm Sun Jan 13 18:41:12 2008
+@@ -1,40 +1,125 @@
+-Group is
+-
+-../smltk.cm
+-
+-../std_lib/sources.cm
+-./regExp/sources.cm
+-
+-markup.sig markup.sml
+- std_markup.sml
+-
+-util_win.sig util_win.sml
+- enter_windows.sml
+- clipboard.sml
+-widget_box.sig widget_box.sml
+-
+-lazy_tree_objects.sig lazy_trees.sml
+-
+-filer.sig filer_default_config.sml
+- filer.sml
+-
+- icons.sml
+-
+-table.sig table.sml
+-tabs.sig tabs.sml
+-numeric_chooser.sig numeric_chooser.sml
+-
+-drag_and_drop.sig drag_and_drop.sml
+-
+-appl.sig
+-
+- notepad.sml
+-gen_gui.sig gen_gui.sml
+- tgen_gui.sml
+-
+-print.sml
+-object_class.sig
+-tree_object_class.sig
+-obj2tree_obj-fun.sml
+-tree_list.sml
+-(* test.sml *)
++Group
++ signature APPL_SIG
++ signature NP_APPL_SIG
++
++ signature DDITEMS
++ signature DRAG_DROP_SIG
++ functor DragAndDrop
++
++ signature GENGUI0_CONF
++ signature GENGUI_CONF
++ signature GENGUI_SIG
++ functor GenGUI
++
++ signature LAZY_TREE_OBJECTS
++ functor LazyTree
++
++ signature NUMERIC_CHOOSER_SIG
++ signature OBJECT_CLASS
++
++ signature FOLDERINFO
++ functor obj2tree_obj
++
++ signature TREE_OBJECT_CLASS
++ signature PTREE_OBJECT_CLASS
++
++ signature CLIPBOARD
++ signature CLIPBOARD_R
++ signature CLIPBOARD_W
++ functor Clipboard
++ structure DummyCB
++
++ signature SUBSTWIN
++ structure SubstWin
++
++ signature FILER_SIG
++ signature FILER_CONFIG
++ functor Filer
++ functor SimpleFiler
++ structure FilerDefaultConfig
++
++ signature ICON_SIG
++ structure Icons
++
++ functor Notepad
++ structure NumericChooser
++ structure Print
++
++ signature TAGS
++ signature SMLTK_MARKUP
++ signature BINDTAGS
++ functor SmlTkMarkup
++ functor StdTags
++ structure StdMarkup
++
++ signature TABLE_SIG
++ signature TABSSIG
++ structure Table
++ structure Tabs
++
++ signature TGENGUI_SIG
++ functor TGenGUI
++
++ signature TL_ACTION
++ functor TreeList
++
++ signature UTIL_WIN
++ signature WIDGET_BOX
++ structure UW
++ structure WidgetBox
++
++ group(../smltk.cm)
++is
++
++ ../smltk.cm
++ ./regExp/sources.cm
++
++ markup.sig
++ markup.sml
++ std_markup.sml
++
++ util_win.sig
++ util_win.sml
++
++ enter_windows.sml
++ clipboard.sml
++
++ widget_box.sig
++ widget_box.sml
++
++ lazy_tree_objects.sig
++ lazy_trees.sml
++
++ filer.sig
++ filer_default_config.sml
++ njfiler.sml
++
++ icons.sml
++
++ table.sig
++ table.sml
++
++ tabs.sig
++ tabs.sml
++
++ numeric_chooser.sig
++ numeric_chooser.sml
++
++ drag_and_drop.sig
++ drag_and_drop.sml
++
++ appl.sig
++ notepad.sml
++
++ gen_gui.sig
++ gen_gui.sml
++ tgen_gui.sml
++
++ print.sml
++ object_class.sig
++ tree_object_class.sig
++ obj2tree_obj-fun.sml
++ tree_list.sml
++ (* test.sml *)
++
++ $/basis.cm
diff --git a/devel/sml_tk/files/patch-src-toolkit-tests+examples-simpleinst.sml b/devel/sml_tk/files/patch-src-toolkit-tests+examples-simpleinst.sml
new file mode 100644
index 000000000000..77732cdfd0e1
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-toolkit-tests+examples-simpleinst.sml
@@ -0,0 +1,11 @@
+--- ./src/toolkit/tests+examples/simpleinst.sml.orig Fri Mar 30 23:40:03 2001
++++ src/toolkit/tests+examples/simpleinst.sml Sun Jan 13 11:03:51 2008
+@@ -346,7 +346,7 @@
+ let
+ fun read_file si =
+ if TextIO.endOfStream si then ""
+- else (TextIO.inputLine si)^(read_file si)
++ else (valOf (TextIO.inputLine si))^(read_file si)
+ val is = TextIO.openIn filenm
+ val txt = read_file is
+ val _ = TextIO.closeIn is
diff --git a/devel/sml_tk/files/patch-src-toolkit-tests+examples-sources.cm b/devel/sml_tk/files/patch-src-toolkit-tests+examples-sources.cm
new file mode 100644
index 000000000000..007c517f0c9b
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-toolkit-tests+examples-sources.cm
@@ -0,0 +1,45 @@
+--- src/toolkit/tests+examples/sources.cm.orig Fri Mar 30 23:40:04 2001
++++ src/toolkit/tests+examples/sources.cm Sun Jan 13 17:50:07 2008
+@@ -1,15 +1,29 @@
+-Group is
++Group
++ structure WeeBoxes
++ structure FilerEx
++ structure MarkupEx
++ structure SimpleInstAppl
++ structure SimpleInst
++ structure StdMarkEx
++ structure TableEx
++ structure TabsEx
++ structure LittleTreeList
++ structure TSimpleInstAppl
++ structure UW_Ex
++is
++ ../sources.cm
+
+-../sources.cm
++ uw_ex.sml
++ boxes.sml
++ simpleinst.sml
++ tsimpleinst.sml
++ (* filemanager.sml *)
++ markup_ex.sml
++ stdmark_ex.sml
++ tree_list_ex.sml
++ filer_ex.sml
++ table_ex.sml
++ tabs_ex.sml
++
++ $/basis.cm
+
+-uw_ex.sml
+-boxes.sml
+-simpleinst.sml
+-tsimpleinst.sml
+-(* filemanager.sml *)
+-markup_ex.sml
+-stdmark_ex.sml
+-tree_list_ex.sml
+-filer_ex.sml
+-table_ex.sml
+-tabs_ex.sml
diff --git a/devel/sml_tk/files/patch-src-toolkit-tests+examples-tsimpleinst.sml b/devel/sml_tk/files/patch-src-toolkit-tests+examples-tsimpleinst.sml
new file mode 100644
index 000000000000..ca191588a9fc
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-toolkit-tests+examples-tsimpleinst.sml
@@ -0,0 +1,11 @@
+--- ./src/toolkit/tests+examples/tsimpleinst.sml.orig Fri Mar 30 23:40:06 2001
++++ src/toolkit/tests+examples/tsimpleinst.sml Sun Jan 13 11:03:51 2008
+@@ -344,7 +344,7 @@
+ let
+ fun read_file si =
+ if TextIO.endOfStream si then ""
+- else (TextIO.inputLine si)^(read_file si)
++ else (valOf (TextIO.inputLine si))^(read_file si)
+ val is = TextIO.openIn filenm
+ val txt = read_file is
+ val _ = TextIO.closeIn is
diff --git a/devel/sml_tk/files/patch-src-widget_tree.sig b/devel/sml_tk/files/patch-src-widget_tree.sig
new file mode 100644
index 000000000000..ae0019b88660
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-widget_tree.sig
@@ -0,0 +1,13 @@
+--- ./src/widget_tree.sig.orig Fri Mar 30 23:39:23 2001
++++ src/widget_tree.sig Sun Jan 13 11:10:20 2008
+@@ -196,6 +196,10 @@
+ BasicTypes.Mark * BasicTypes.Mark -> unit
+ val clearText : BasicTypes.WidId -> unit
+
++ val configureLItem : BasicTypes.WidId -> TkTypes.Configure list ->
++ BasicTypes.Mark -> unit
++ val clearLItemConfig : BasicTypes.WidId -> BasicTypes.Mark -> unit
++
+
+ val focus : BasicTypes.WinId -> unit
+ val deFocus : BasicTypes.WinId -> unit
diff --git a/devel/sml_tk/files/patch-src-widget_tree.sml b/devel/sml_tk/files/patch-src-widget_tree.sml
new file mode 100644
index 000000000000..d08bf603551d
--- /dev/null
+++ b/devel/sml_tk/files/patch-src-widget_tree.sml
@@ -0,0 +1,63 @@
+--- src/widget_tree.sml.orig Sun Jan 13 12:42:32 2008
++++ src/widget_tree.sml Sun Jan 13 12:44:14 2008
+@@ -1171,9 +1171,9 @@
+ if (List.exists (Config.confEq fdef) nc) then nc else fdef::nc
+ in
+ (packWid doP "frame" tp ip wid p [] [] grid ^
++ packWid true "scrollbar" sctp scip wid [si,Fill Y] [] [] false ^
+ packWid true "text" btp bip wid [siquer,Fill Both,Expand true] nc'
+ b false ^
+- packWid true "scrollbar" sctp scip wid [si,Fill Y] [] [] false ^
+ btp ^ " configure -yscrollcommand \"" ^ sctp ^ " set \" " ^ "\n" ^
+ sctp^" configure -command \""^ btp ^ " yview\"" ^ "\n" ^
+ tt ^ stt ^
+@@ -1547,6 +1547,49 @@
+ end
+
+ fun clearText wid = deleteText wid (Mark(0, 0), MarkEnd)
++
++fun configureLItem wid cf m =
++ let
++ fun litempack [] = ""
++ | litempack ((Foreground c)::xs) = let
++ val coltext = Config.showColor c
++ in
++ " -foreground " ^ coltext ^
++ " -selectforeground " ^ coltext ^ litempack xs
++ end
++ | litempack ((Background c)::xs) =
++ " -background " ^ (Config.showColor c) ^ litempack xs
++ | litempack (_::xs) = litempack xs
++ val ip = Paths.getIntPathGUI wid
++ val tp = Paths.getTclPathGUI ip
++ val w = getWidgetGUIPath ip
++ val (m1, _)= StringUtil.breakAtDot (Mark.show m)
++ in
++ case w of
++ Listbox _ =>
++ Com.putTclCmd (tp ^ ".box itemconfigure " ^ m1 ^ " " ^
++ litempack cf)
++ | _ =>
++ raise WIDGET "text insertion in illegal window"
++ end
++
++fun clearLItemConfig wid m =
++ let
++ val ip = Paths.getIntPathGUI wid
++ val tp = Paths.getTclPathGUI ip
++ val tp = Paths.getTclPathGUI (Paths.getIntPathGUI wid)
++ val w = getWidgetGUIPath ip
++ val (m1,_)= StringUtil.breakAtDot (Mark.show m)
++ in
++ case w of
++ Listbox _ =>
++ Com.putTclCmd (tp ^ ".box itemconfigure " ^ m1 ^
++ " -foreground \"\" -selectforeground \"\" " ^
++ " -background \"\" -selectbackground \"\"")
++ | _ =>
++ raise WIDGET "text insertion in illegal window"
++ end
++
+
+ fun focus win =
+ if ( win = "main" orelse win = "." ) then
diff --git a/devel/sml_tk/files/sml_tk.1.in b/devel/sml_tk/files/sml_tk.1.in
new file mode 100644
index 000000000000..0d3cab9fe5ff
--- /dev/null
+++ b/devel/sml_tk/files/sml_tk.1.in
@@ -0,0 +1,153 @@
+.Dd January 13, 2008
+.Dt sml_tk 1
+.Os
+.Sh NAME
+.Nm sml_tk
+.Nd Typed and abstract Standard ML interface to Tcl/Tk
+.Sh DESCRIPTION
+.Nm
+is a Standard ML package providing a portable, typed and abstract
+interface to the user interface description and command language Tcl/Tk.
+It allows the implementation of graphical user interfaces in a structured
+and reusable way, supported by the powerful module system of Standard ML.
+.Pp
+SML programs construct windows as sml_tk datatypes, which are then
+transformed into Tcl/Tk commands and sent over a pipe to a child wish
+process.
+Programs register event handlers with sml_tk, and then execute an event
+loop function which receives and dispatches events from the child process.
+.Pp
+The FreeBSD port supports working versions of SML/NJ (110.65 or greater).
+Poly/ML 5.1 is supported, but there appears to be a problem with long
+communications to the child process as evidenced in the BigEx example,
+possibly because the SysDep structure is largely unimplemented.
+Likewise for MLton.
+Further investigation is required.
+.Pp
+Moscow/ML and the blessed version of SML/NJ are not supported by the FreeBSD
+port, although they are in the standard distribution.
+These compilers use a deprecated version of the SML Basis Library: patches
+for the newer compilers cause errors.
+.Pp
+.\"
+.Ss Using the library
+The sml_tk library can be used in several different ways:
+.Bl -tag -width "MMM"
+.It Sy SML/NJ Executable
+The SML/NJ build installs an executable
+.Nm sml_tk ,
+which gives an interactive loop with the sml_tk bindings.
+One could type, for example:
+.Dl BigEx.go ();
+.\"
+.It Sy SML/NJ Library
+The library may be imported into an interactive session:
+.Bd -literal -compact -offset indent
+CM.make "%%PREFIX%%/lib/sml_tk/sources.cm";
+.Ed
+or included in another
+.Li .cm
+file.
+Possibly by adding a line to
+.Pa $HOME/.smlnj-pathconfig :
+.Dl sml_tk.cm %%PREFIX%%/lib/sml_tk
+and then including the library with
+.Dl $/sml_tk.cm .
+.\"
+.It Sy Poly/ML Saved State
+The Poly/ML build saves the compiled bindings, they can be loaded with the
+command:
+.Bd -literal -compact -offset indent
+PolyML.SaveState.loadState "%%PREFIX%%/lib/sml_tk/sml_tk.poly";
+.Ed
+One could then type, for example:
+.Dl CanvasEx.go ();
+.It Sy Poly/ML Compile
+To compile the bindings into Poly/ML, run:
+.Bd -literal -compact -offset indent
+use "%%PREFIX%%/lib/sml_tk/root_poly.sml";
+.Ed
+.\"
+.It Sy MLton Compile
+Include one or both of the basis files
+.Pa %%PREFIX%%/lib/sml_tk/sml_tk.mlb ,
+.Pa %%PREFIX%%/lib/sml_tk/toolkit/toolkit.mlb .
+.Pp
+For example, to run the ScaleEx example, create a file
+.Pa scaleex.sml :
+.Bd -literal -offset indent
+val _ = ScaleEx.go ();
+.Ed
+.Pp
+and a file
+.Pa scaleex.mlb :
+.Bd -literal -offset indent
+$(SML_LIB)/basis/basis.mlb
+%%PREFIX%%/lib/sml_tk/sml_tk.mlb
+"%%%PREFIX%%/lib/sml_tk/tests+examples/scale_ex.sml"
+scaleex.sml
+.Ed
+.Pp
+Then build
+.Pa scalex
+by typing:
+.Li mlton scaleex.mlb
+.El
+.\"
+.Sh ENVIRONMENT
+Three sml_tk environment variables can be used to override the installed
+defaults:
+.Bl -column -compact .Ev SMLTK_LOGFILE
+.It Ev SMLTK_TCL Ta Path to the wish executable
+.It Ev SMLTK_LIB Ta Path to the sml_tk library files (default: %%PREFIX%%/share/sml_tk)
+.It Ev SMLTK_LOGFILE Ta Set to log communications between the library and
+wish.
+.El
+.Sh EXAMPLES
+The main library comes with several example structures, each contains a
+.Li go
+function of type
+.Li unit -> string :
+.Bl -column -offset indent "ListBoxEx" "ListBoxEx" "ListBoxEx"
+.It ListBoxEx Ta GridEx Ta BigEx
+.It CanvasEx Ta PopUpEx Ta ScaleEx
+.It TagEx Ta WBindEx
+.El
+.Pp
+The toolbox library also comes with several example structures, each with a
+.Li go
+function:
+.Bl -column -offset indent "SimpleInst" "FilerEx" "LittleTreeList"
+.It WeeBoxes Ta FilerEx Ta MarkupEx
+.It TableEx Ta TabsEx Ta LittleTreeList
+.It SimpleInst Ta UW_Ex Ta StdMarkEx
+.El
+.Sh COMPATIBILITY
+The port adds two non-standard features:
+.Bl -tag
+.It Li Config.showColor
+Exposes a function mapping colors to their names.
+.It Li WidgetTree.addLItemConf, WidgetTree.clearLItemConf
+Allow formatting of list items.
+.El
+.Sh SEE ALSO
+The website:
+.Pa http://www.informatik.uni-bremen.de/~cxl/sml_tk/
+.Pp
+Local documentation: %%PREFIX%%/share/doc/sml_tk/manual.html
+.Pp
+.Xr wish 1 ,
+and the rest of the Tcl/Tk documentation.
+.\"
+.Sh AUTHORS
+.An Christoph L\[:u]th and Burkhart Wolff
+wrote
+.Nm
+and the first paragraph of this man page.
+.Pp
+.An Timothy Bourke Aq timbob@bigpond.com
+wrote the rest of the man page and some of the patches for the FreeBSD port.
+.Sh BUGS
+More work is required for Poly/ML and MLton.
+The Filer example crashes.
+.\"
diff --git a/devel/sml_tk/files/src-mlton.sml b/devel/sml_tk/files/src-mlton.sml
new file mode 100644
index 000000000000..ebfdb215a106
--- /dev/null
+++ b/devel/sml_tk/files/src-mlton.sml
@@ -0,0 +1,68 @@
+(* ***************************************************************************
+
+ $Source$
+
+ Implementation of system-dependend functions for MLton 20070826
+
+ Based on version for SMLNJ 109/110.
+ Author: stefan
+ (C) 1996, Bremen Institute for Safe Systems, Universitaet Bremen
+
+ ************************************************************************** *)
+
+structure SysDep : SYS_DEP
+=
+struct
+ (* from Isabelle --- to be used in Makefiles *)
+ fun exportML{init:unit->unit,
+ banner:string,
+ imagefile:string} = (TextIO.output (TextIO.stdErr,
+ "export is not supported.\n"))
+
+ fun setPrintDepth n = ()
+
+ (* Set the terminal to a state suitable for sml_tk. Disables INTR
+ * s.t. we can use it to abort functions called from bindings, and
+ * sets up QUIT (CTRL-\) to terminate sml_tk instead. Bits of the
+ * following are system-independent, but unfortunately the basis library
+ * merely allows you to specfiy signals but not install a handler for them
+ * which is bloody useless if you ask me :-) *)
+
+ local open Posix.TTY in
+
+ fun initTTY abort =
+ if Posix.ProcEnv.isatty (Posix.FileSys.stdin) then
+ let (* configure TTY driver to have ^\ generate sigQUIT *)
+ val {iflag, oflag, cflag, lflag, cc, ispeed, ospeed} =
+ fieldsOf (Posix.TTY.TC.getattr Posix.FileSys.stdin)
+ val nuattr= termios {iflag=iflag, oflag=oflag, cflag=cflag,
+ lflag=lflag, ispeed=ispeed, ospeed=ospeed,
+ cc=V.update(cc, [(V.quit, Char.chr 28)])}
+ in Posix.TTY.TC.setattr(Posix.FileSys.stdin, TC.sanow, nuattr)
+ (* no signal handlers: MLton only has vtalrm and prof. *)
+ end
+ else
+ () (* stdin is not a tty *)
+ end
+
+ fun resetTTY () = ()
+
+ (* Wrap an interrupt handler around a function f *)
+ (* Not implemented as we are limited in the signals we can catch. *)
+ fun interruptable f i a = f a
+
+
+ (* This shouldn't be here, but SML/NJ implements Unix.reap incorrectly--
+ * it returns Posix.Process.status whereas it should return
+ * OS.Process.Process.status *)
+
+ fun exec (s,sl) =
+ let
+ val pr = Unix.execute (s,sl)
+ in case Posix.Process.fromStatus (Unix.reap pr) of
+ Posix.Process.W_EXITED => true
+ | _ => false
+ end
+
+end
+
diff --git a/devel/sml_tk/files/src-sml_tk.mlb b/devel/sml_tk/files/src-sml_tk.mlb
new file mode 100644
index 000000000000..620337cf268c
--- /dev/null
+++ b/devel/sml_tk/files/src-sml_tk.mlb
@@ -0,0 +1,95 @@
+ann
+ "nonexhaustiveMatch ignore"
+in
+ local
+ $(SML_LIB)/basis/basis.mlb
+ ./std_lib/std_lib.mlb
+
+ sys_conf.sml
+
+ sys_dep.sig
+ mlton.sml
+
+ basic_util.sig
+ basic_util.sml
+
+ debug.sig
+ debug.sml
+
+ fonts.sig
+ fonts.sml
+
+ basic_types.sml
+
+ gui_state.sig
+ gui_state.sml
+ com_state.sig
+
+ com_state_pipe.sml
+
+ com.sig
+ com.sml
+
+ paths.sig
+ paths.sml
+
+ config.sig
+ config.sml
+
+ tk_event.sig
+ tk_event.sml
+
+ bind.sig
+ bind.sml
+
+ coord.sig
+ coord.sml
+
+ mark.sig
+ mark.sml
+
+ c_item.sig
+ c_item.sml
+
+ ann_texts.sig
+ ann_texts.sml
+
+ annotation.sig
+ annotation.sml
+
+ tk_types.sml
+
+ widget_tree.sig
+ widget_tree.sml
+
+ c_item_tree.sig
+ c_item_tree.sml
+
+ annotation_tree.sig
+ annotation_tree.sml
+
+ windows.sig
+ windows.sml
+
+ eventloop.sig
+ eventloop.sml
+
+ widget_ops.sig
+ widget_ops.sml
+
+ sys_init.sml
+ export.sml
+ smltk21.sml
+ global_config.sml
+
+ in
+ signature BASIC_UTIL
+ structure BasicUtil
+
+ signature SML_TK
+ structure SmlTk
+ structure SmlTk21
+
+ structure GlobalConfig
+ end
+end
diff --git a/devel/sml_tk/files/src-std_lib-std_lib.mlb b/devel/sml_tk/files/src-std_lib-std_lib.mlb
new file mode 100644
index 000000000000..c6be7935da04
--- /dev/null
+++ b/devel/sml_tk/files/src-std_lib-std_lib.mlb
@@ -0,0 +1,18 @@
+local
+ $(SML_LIB)/basis/basis.mlb
+ lib-base-sig.sml
+ lib-base.sml
+ ord-key-sig.sml
+ ord-map-sig.sml
+ ord-set-sig.sml
+ binary-map-fn.sml
+ int-binary-set.sml
+in
+ functor BinaryMapFn
+ structure IntBinarySet
+ signature LIB_BASE
+ structure LibBase
+ signature ORD_KEY
+ signature ORD_MAP
+ signature ORD_SET
+end
diff --git a/devel/sml_tk/files/src-sys_conf.sml b/devel/sml_tk/files/src-sys_conf.sml
new file mode 100644
index 000000000000..7e6a7a5b033c
--- /dev/null
+++ b/devel/sml_tk/files/src-sys_conf.sml
@@ -0,0 +1,54 @@
+(* ***************************************************************************
+
+ $Source: /repository/sml/sml_tk/src/sys_conf.sml,v $
+
+ System configuration.
+
+ The environment variables controlling the configuration of sml_tk,
+ and more importantly, their default values.
+
+ These values can, and are meant to be changed (in particular the
+ default values).
+
+ $Date: 2001/03/30 13:39:18 $
+ $Revision: 3.0 $
+ Author: cxl/stefan (Last modification by $Author: 2cxl $)
+
+ (C) 1996, Bremen Institute for Safe Systems (BISS), University of Bremen.
+
+ ************************************************************************** *)
+
+
+signature SYS_CONF =
+sig
+ type envVar = {name: string, default: string}
+
+ val logfileVar : envVar
+ val libVar : envVar
+ val wishVar : envVar
+end;
+
+
+structure SysConf : SYS_CONF =
+struct
+ type envVar = {name: string, default: string}
+
+ (* Probably the most important setting: the correct path to the
+ * wish at your site *)
+ val wishVar = {name= "SMLTK_TCL",
+ default= "%%WISH%%"}
+
+ (* This default value for SMLTK_LIB assumes the curent directory
+ * is the sml_tk source directory. You may want to replace this
+ * with the actual path at your installation. *)
+ val libVar = {name= "SMLTK_LIB",
+ default= "%%SMLTKLIB%%"}
+
+
+ (* the logfile doesn't need a default; if it is not set,
+ * the logging is turned off
+ *)
+ val logfileVar = {name= "SMLTK_LOGFILE",
+ default= ""}
+
+end
diff --git a/devel/sml_tk/files/src-toolkit-regExp-regexp.mlb b/devel/sml_tk/files/src-toolkit-regExp-regexp.mlb
new file mode 100644
index 000000000000..14571329c3cb
--- /dev/null
+++ b/devel/sml_tk/files/src-toolkit-regExp-regexp.mlb
@@ -0,0 +1,12 @@
+local
+ $(SML_LIB)/basis/basis.mlb
+ ../../std_lib/std_lib.mlb
+
+ match.sig
+ rex.sml
+ globber.sml
+in
+ signature MATCH
+ structure Globber
+ structure Rex
+end
diff --git a/devel/sml_tk/files/src-toolkit-toolkit.mlb b/devel/sml_tk/files/src-toolkit-toolkit.mlb
new file mode 100644
index 000000000000..04abcd629f74
--- /dev/null
+++ b/devel/sml_tk/files/src-toolkit-toolkit.mlb
@@ -0,0 +1,128 @@
+ann
+ "nonexhaustiveMatch ignore"
+in
+ local
+ $(SML_LIB)/basis/basis.mlb
+ ../smltk.mlb
+ ./regExp/regexp.mlb
+
+ markup.sig
+ markup.sml
+ std_markup.sml
+
+ util_win.sig
+ util_win.sml
+
+ enter_windows.sml
+ clipboard.sml
+
+ widget_box.sig
+ widget_box.sml
+
+ lazy_tree_objects.sig
+ lazy_trees.sml
+
+ filer.sig
+ filer_default_config.sml
+ njfiler.sml
+
+ icons.sml
+
+ table.sig
+ table.sml
+
+ tabs.sig
+ tabs.sml
+
+ numeric_chooser.sig
+ numeric_chooser.sml
+
+ drag_and_drop.sig
+ drag_and_drop.sml
+
+ print.sml
+ object_class.sig
+ tree_object_class.sig
+ obj2tree_obj-fun.sml
+
+ gen_gui.sig
+
+ tree_list.sml
+ (* test.sml *)
+
+ appl.sig
+ notepad.sml
+ gen_gui.sml
+ tgen_gui.sml
+ in
+ signature APPL_SIG
+ signature NP_APPL_SIG
+
+ signature DDITEMS
+ signature DRAG_DROP_SIG
+ functor DragAndDrop
+
+ signature GENGUI0_CONF
+ signature GENGUI_CONF
+ signature GENGUI_SIG
+ functor GenGUI
+
+ signature LAZY_TREE_OBJECTS
+ functor LazyTree
+
+ signature NUMERIC_CHOOSER_SIG
+ signature OBJECT_CLASS
+
+ signature FOLDERINFO
+ functor obj2tree_obj
+
+ signature TREE_OBJECT_CLASS
+ signature PTREE_OBJECT_CLASS
+
+ signature CLIPBOARD
+ signature CLIPBOARD_R
+ signature CLIPBOARD_W
+ functor Clipboard
+ structure DummyCB
+
+ signature SUBSTWIN
+ structure SubstWin
+
+ signature FILER_SIG
+ signature FILER_CONFIG
+ functor Filer
+ functor SimpleFiler
+ structure FilerDefaultConfig
+
+ signature ICON_SIG
+ structure Icons
+
+ functor Notepad
+ structure NumericChooser
+ structure Print
+
+ signature TAGS
+ signature SMLTK_MARKUP
+ signature BINDTAGS
+ functor SmlTkMarkup
+ functor StdTags
+ structure StdMarkup
+
+ signature TABLE_SIG
+ signature TABSSIG
+ structure Table
+ structure Tabs
+
+ signature TGENGUI_SIG
+ functor TGenGUI
+
+ signature TL_ACTION
+ functor TreeList
+
+ signature UTIL_WIN
+ signature WIDGET_BOX
+ structure UW
+ structure WidgetBox
+ end
+end
+
diff --git a/devel/sml_tk/pkg-descr b/devel/sml_tk/pkg-descr
new file mode 100644
index 000000000000..134f75f9b22e
--- /dev/null
+++ b/devel/sml_tk/pkg-descr
@@ -0,0 +1,6 @@
+sml_tk is a Standard ML package providing a portable, typed and abstract
+interface to the user interface description and command language Tcl/Tk. It
+allows the implementation of graphical user interfaces in a structured and
+reusable way, supported by the powerful module system of Standard ML.
+
+WWW: http://www.informatik.uni-bremen.de/~cxl/sml_tk
diff --git a/devel/sml_tk/pkg-plist b/devel/sml_tk/pkg-plist
new file mode 100644
index 000000000000..80a401c4a4ab
--- /dev/null
+++ b/devel/sml_tk/pkg-plist
@@ -0,0 +1,299 @@
+%%SMLNJBIN%%bin/sml_tk
+%%POLYSTATE%%lib/sml_tk/sml_tk.poly
+%%DATADIR%%/icons/filer/example/default_Icon.gif
+%%DATADIR%%/icons/filer/example/gif_Icon.gif
+%%DATADIR%%/icons/filer/example/html_Icon.gif
+%%DATADIR%%/icons/filer/example/ps_Icon.gif
+%%DATADIR%%/icons/filer/example/sml_Icon.gif
+%%DATADIR%%/icons/filer/acc_Icon.gif
+%%DATADIR%%/icons/filer/back_Icon.gif
+%%DATADIR%%/icons/filer/back_highlighted_Icon.gif
+%%DATADIR%%/icons/filer/back_outlined_Icon.gif
+%%DATADIR%%/icons/filer/delfold_Icon.gif
+%%DATADIR%%/icons/filer/filedel_Icon.gif
+%%DATADIR%%/icons/filer/filedel_highlighted_Icon.gif
+%%DATADIR%%/icons/filer/filedel_outlined_Icon.gif
+%%DATADIR%%/icons/filer/forward_Icon.gif
+%%DATADIR%%/icons/filer/forward_highlighted_Icon.gif
+%%DATADIR%%/icons/filer/forward_outlined_Icon.gif
+%%DATADIR%%/icons/filer/homedir_Icon.gif
+%%DATADIR%%/icons/filer/homedir_highlighted_Icon.gif
+%%DATADIR%%/icons/filer/homedir_outlined_Icon.gif
+%%DATADIR%%/icons/filer/mkDir_Icon.gif
+%%DATADIR%%/icons/filer/mkDir_highlighted_Icon.gif
+%%DATADIR%%/icons/filer/mkDir_outlined_Icon.gif
+%%DATADIR%%/icons/filer/noacc_Icon.gif
+%%DATADIR%%/icons/filer/open_Icon.gif
+%%DATADIR%%/icons/filer/reload_Icon.gif
+%%DATADIR%%/icons/filer/reload_highlighted_Icon.gif
+%%DATADIR%%/icons/filer/reload_outlined_Icon.gif
+%%DATADIR%%/icons/filer/unknown_Icon.gif
+%%DATADIR%%/icons/filer/updir_Icon.gif
+%%DATADIR%%/icons/filer/updir_highlighted_Icon.gif
+%%DATADIR%%/icons/filer/updir_outlined_Icon.gif
+%%DATADIR%%/icons/gengui/folder-hi.gif
+%%DATADIR%%/icons/gengui/folder-mic.gif
+%%DATADIR%%/icons/gengui/folder-out.gif
+%%DATADIR%%/icons/gengui/folder.data
+%%DATADIR%%/icons/gengui/folder.gif
+%%DATADIR%%/icons/numeric_chooser/down.gif
+%%DATADIR%%/icons/numeric_chooser/down_highlighted.gif
+%%DATADIR%%/icons/numeric_chooser/left.gif
+%%DATADIR%%/icons/numeric_chooser/left_highlighted.gif
+%%DATADIR%%/icons/numeric_chooser/right.gif
+%%DATADIR%%/icons/numeric_chooser/right_highlighted.gif
+%%DATADIR%%/icons/numeric_chooser/up.gif
+%%DATADIR%%/icons/numeric_chooser/up_highlighted.gif
+%%DATADIR%%/icons/treelist/micro/data-folder.gif
+%%DATADIR%%/icons/treelist/micro/data-text.gif
+%%DATADIR%%/icons/treelist/micro/folder-hi.gif
+%%DATADIR%%/icons/treelist/micro/folder-out.gif
+%%DATADIR%%/icons/treelist/micro/folder.data
+%%DATADIR%%/icons/treelist/micro/folder.gif
+%%DATADIR%%/icons/treelist/micro/text.gif
+%%DATADIR%%/icons/mini-folder-hi.gif
+%%DATADIR%%/icons/mini-folder-mic.gif
+%%DATADIR%%/icons/mini-folder-out.gif
+%%DATADIR%%/icons/mini-folder.data
+%%DATADIR%%/icons/mini-folder.gif
+%%DATADIR%%/icons/mini-text.gif
+%%DATADIR%%/icons/trashcan-hi.gif
+%%DATADIR%%/icons/trashcan-mic.gif
+%%DATADIR%%/icons/trashcan-out.gif
+%%DATADIR%%/icons/trashcan.data
+%%DATADIR%%/icons/trashcan.gif
+%%DATADIR%%/images/info.gif
+%%DATADIR%%/images/large_warning.gif
+%%DATADIR%%/images/q.gif
+%%DATADIR%%/images/q.gif87
+%%DATADIR%%/images/smltk.gif
+%%DATADIR%%/images/stop.gif
+%%DATADIR%%/images/stop.gif87
+%%DATADIR%%/images/warning.gif
+%%DATADIR%%/images/warning.gif87
+%%DATADIR%%/tests+examples/filemanager/file-hi.gif
+%%DATADIR%%/tests+examples/filemanager/file-out.gif
+%%DATADIR%%/tests+examples/filemanager/file.data
+%%DATADIR%%/tests+examples/filemanager/file.gif
+%%DATADIR%%/tests+examples/filemanager/fold-hi.gif
+%%DATADIR%%/tests+examples/filemanager/fold-out.gif
+%%DATADIR%%/tests+examples/filemanager/fold.data
+%%DATADIR%%/tests+examples/filemanager/fold.gif
+%%DATADIR%%/tests+examples/icons/note-hi.gif
+%%DATADIR%%/tests+examples/icons/note-mic.gif
+%%DATADIR%%/tests+examples/icons/note-out.gif
+%%DATADIR%%/tests+examples/icons/note.data
+%%DATADIR%%/tests+examples/icons/note.gif
+%%DATADIR%%/tests+examples/icons/number-hi.gif
+%%DATADIR%%/tests+examples/icons/number-mic.gif
+%%DATADIR%%/tests+examples/icons/number-out.gif
+%%DATADIR%%/tests+examples/icons/number.data
+%%DATADIR%%/tests+examples/icons/number.gif
+%%DATADIR%%/tests+examples/icons/numdiv-hi.gif
+%%DATADIR%%/tests+examples/icons/numdiv-out.gif
+%%DATADIR%%/tests+examples/icons/numdiv.data
+%%DATADIR%%/tests+examples/icons/numdiv.gif
+%%DATADIR%%/tests+examples/icons/nummin-hi.gif
+%%DATADIR%%/tests+examples/icons/nummin-out.gif
+%%DATADIR%%/tests+examples/icons/nummin.data
+%%DATADIR%%/tests+examples/icons/nummin.gif
+%%DATADIR%%/tests+examples/icons/numtim-hi.gif
+%%DATADIR%%/tests+examples/icons/numtim-out.gif
+%%DATADIR%%/tests+examples/icons/numtim.data
+%%DATADIR%%/tests+examples/icons/numtim.gif
+%%DATADIR%%/tests+examples/images/teapot.gif
+%%DATADIR%%/tests+examples/verbose
+%%DATADIR%%/tests+examples/myex.bmp
+%%DATADIR%%/tests+examples/myex.cursor
+%%DATADIR%%/tests+examples/myex.cursor_mask
+%%DATADIR%%/lsfonts
+%%DATADIR%%/testfont
+lib/sml_tk/std_lib/README
+lib/sml_tk/std_lib/binary-map-fn.sml
+lib/sml_tk/std_lib/int-binary-set.sml
+lib/sml_tk/std_lib/lib-base-sig.sml
+lib/sml_tk/std_lib/lib-base.sml
+lib/sml_tk/std_lib/ord-key-sig.sml
+lib/sml_tk/std_lib/ord-map-sig.sml
+lib/sml_tk/std_lib/ord-set-sig.sml
+lib/sml_tk/std_lib/sources.cm
+lib/sml_tk/std_lib/std_lib.mlb
+lib/sml_tk/tests+examples/Makefile
+lib/sml_tk/tests+examples/big_ex.sml
+lib/sml_tk/tests+examples/canvas_ex.sml
+lib/sml_tk/tests+examples/ex1.sml
+lib/sml_tk/tests+examples/ex2.sml
+lib/sml_tk/tests+examples/grid_ex.sml
+lib/sml_tk/tests+examples/list_box_ex.sml
+lib/sml_tk/tests+examples/popup_ex.sml
+lib/sml_tk/tests+examples/scale_ex.sml
+lib/sml_tk/tests+examples/small_ex.sml
+lib/sml_tk/tests+examples/sources.cm
+lib/sml_tk/tests+examples/tag_ex.sml
+lib/sml_tk/tests+examples/wbind_ex.sml
+lib/sml_tk/toolkit/regExp/globber.sml
+lib/sml_tk/toolkit/regExp/match.sig
+lib/sml_tk/toolkit/regExp/rex.sml
+lib/sml_tk/toolkit/regExp/sources.cm
+lib/sml_tk/toolkit/regExp/regexp.mlb
+lib/sml_tk/toolkit/tests+examples/Makefile
+lib/sml_tk/toolkit/tests+examples/boxes.sml
+lib/sml_tk/toolkit/tests+examples/filemanager.sml
+lib/sml_tk/toolkit/tests+examples/filer_ex.sml
+lib/sml_tk/toolkit/tests+examples/markup_ex.sml
+lib/sml_tk/toolkit/tests+examples/simpleinst.sml
+lib/sml_tk/toolkit/tests+examples/sources.cm
+lib/sml_tk/toolkit/tests+examples/stdmark_ex.sml
+lib/sml_tk/toolkit/tests+examples/table_ex.sml
+lib/sml_tk/toolkit/tests+examples/tabs_ex.sml
+lib/sml_tk/toolkit/tests+examples/tree_list_ex.sml
+lib/sml_tk/toolkit/tests+examples/tsimpleinst.sml
+lib/sml_tk/toolkit/tests+examples/uw_ex.sml
+lib/sml_tk/toolkit/Makefile
+lib/sml_tk/toolkit/appl.sig
+lib/sml_tk/toolkit/clipboard.sml
+lib/sml_tk/toolkit/drag_and_drop.sig
+lib/sml_tk/toolkit/drag_and_drop.sml
+lib/sml_tk/toolkit/enter_windows.sml
+lib/sml_tk/toolkit/err_warn_windows.sml
+lib/sml_tk/toolkit/filer.sig
+lib/sml_tk/toolkit/filer.sml
+lib/sml_tk/toolkit/njfiler.sml
+lib/sml_tk/toolkit/filer_default_config.sml
+lib/sml_tk/toolkit/gen_gui.sig
+lib/sml_tk/toolkit/gen_gui.sml
+lib/sml_tk/toolkit/icons.sml
+lib/sml_tk/toolkit/lazy_tree_objects.sig
+lib/sml_tk/toolkit/lazy_trees.sml
+lib/sml_tk/toolkit/markup.sig
+lib/sml_tk/toolkit/markup.sml
+lib/sml_tk/toolkit/notepad.sml
+lib/sml_tk/toolkit/numeric_chooser.sig
+lib/sml_tk/toolkit/numeric_chooser.sml
+lib/sml_tk/toolkit/obj2tree_obj-fun.sml
+lib/sml_tk/toolkit/object_class.sig
+lib/sml_tk/toolkit/print.sml
+lib/sml_tk/toolkit/sources.cm
+lib/sml_tk/toolkit/std_markup.sml
+lib/sml_tk/toolkit/table.sig
+lib/sml_tk/toolkit/table.sml
+lib/sml_tk/toolkit/tabs.sig
+lib/sml_tk/toolkit/tabs.sml
+lib/sml_tk/toolkit/toolkit.mlb
+lib/sml_tk/toolkit/tgen_gui.sml
+lib/sml_tk/toolkit/tree_list.sml
+lib/sml_tk/toolkit/tree_object_class.sig
+lib/sml_tk/toolkit/util_win.sig
+lib/sml_tk/toolkit/util_win.sml
+lib/sml_tk/toolkit/widget_box.sig
+lib/sml_tk/toolkit/widget_box.sml
+lib/sml_tk/Makefile
+lib/sml_tk/ann_texts.sig
+lib/sml_tk/ann_texts.sml
+lib/sml_tk/annotation.sig
+lib/sml_tk/annotation.sml
+lib/sml_tk/annotation_tree.sig
+lib/sml_tk/annotation_tree.sml
+lib/sml_tk/basic_types.sml
+lib/sml_tk/basic_util.sig
+lib/sml_tk/basic_util.sml
+lib/sml_tk/bind.sig
+lib/sml_tk/bind.sml
+lib/sml_tk/c_item.sig
+lib/sml_tk/c_item.sml
+lib/sml_tk/c_item_tree.sig
+lib/sml_tk/c_item_tree.sml
+lib/sml_tk/com.sig
+lib/sml_tk/com.sml
+lib/sml_tk/com_state.sig
+lib/sml_tk/com_state_clib.sml
+lib/sml_tk/com_state_pipe.sml
+lib/sml_tk/config.sig
+lib/sml_tk/config.sml
+lib/sml_tk/coord.sig
+lib/sml_tk/coord.sml
+lib/sml_tk/debug.sig
+lib/sml_tk/debug.sml
+lib/sml_tk/eventloop.sig
+lib/sml_tk/eventloop.sml
+lib/sml_tk/export.sml
+lib/sml_tk/fonts.sig
+lib/sml_tk/fonts.sml
+lib/sml_tk/global_config.sml
+lib/sml_tk/gui_state.sig
+lib/sml_tk/gui_state.sml
+lib/sml_tk/mark.sig
+lib/sml_tk/mark.sml
+lib/sml_tk/mosml.sml
+lib/sml_tk/mlton.sml
+lib/sml_tk/njml.sml
+lib/sml_tk/paths.sig
+lib/sml_tk/paths.sml
+lib/sml_tk/poly.sml
+lib/sml_tk/poly_fix.sml
+lib/sml_tk/root.sml
+lib/sml_tk/root_mosml.sml
+lib/sml_tk/root_njml.sml
+lib/sml_tk/root_poly.sml
+lib/sml_tk/smltk.cm
+lib/sml_tk/sml_tk.cm
+lib/sml_tk/sml_tk.mlb
+lib/sml_tk/smltk21.sml
+lib/sml_tk/sources.cm
+lib/sml_tk/sys_conf.sml
+lib/sml_tk/sys_dep.sig
+lib/sml_tk/sys_init.sml
+lib/sml_tk/tk_access.sig
+lib/sml_tk/tk_access.sml
+lib/sml_tk/tk_event.sig
+lib/sml_tk/tk_event.sml
+lib/sml_tk/tk_types.sml
+lib/sml_tk/widget_ops.sig
+lib/sml_tk/widget_ops.sml
+lib/sml_tk/widget_tree.sig
+lib/sml_tk/widget_tree.sml
+lib/sml_tk/windows.sig
+lib/sml_tk/windows.sml
+%%STABLE%%lib/sml_tk/.cm/x86-unix/sources.cm
+%%STABLE%%lib/sml_tk/.cm/x86-unix/sml_tk.cm
+%%PORTDOCS%%%%DOCSDIR%%/images/alu-logo.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/confirm.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/enterline.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/error.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/filer.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/info.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/isawin.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/lazy_tree_lists.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/numeric_choosers.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/simpleinst.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/small_ex.1.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/small_ex.2.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/tables.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/tabs.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/treelist.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/uni-hb-logo.gif
+%%PORTDOCS%%%%DOCSDIR%%/images/warning.gif
+%%PORTDOCS%%%%DOCSDIR%%/manual.html
+@dirrm %%DATADIR%%/icons/filer/example
+@dirrm %%DATADIR%%/icons/filer
+@dirrm %%DATADIR%%/icons/gengui
+@dirrm %%DATADIR%%/icons/numeric_chooser
+@dirrm %%DATADIR%%/icons/treelist/micro
+@dirrm %%DATADIR%%/icons/treelist
+@dirrm %%DATADIR%%/icons
+@dirrm %%DATADIR%%/images
+@dirrm %%DATADIR%%/tests+examples/filemanager
+@dirrm %%DATADIR%%/tests+examples/icons
+@dirrm %%DATADIR%%/tests+examples/images
+@dirrm %%DATADIR%%/tests+examples
+@dirrm %%DATADIR%%
+@dirrm lib/sml_tk/toolkit/tests+examples
+@dirrm lib/sml_tk/toolkit/regExp
+@dirrm lib/sml_tk/toolkit
+@dirrm lib/sml_tk/std_lib
+@dirrm lib/sml_tk/tests+examples
+%%STABLE%%@dirrm lib/sml_tk/.cm/x86-unix
+%%STABLE%%@dirrm lib/sml_tk/.cm
+@dirrm lib/sml_tk
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/images
+%%PORTDOCS%%@dirrm %%DOCSDIR%%