del /q compiled\*.js\r
\r
cd js\r
-copy version.js + jslib.js + irc\ircconnection.js + irc\irclib.js + irc\baseircclient.js + irc\irctracker.js + irc\commandparser.js + irc\ircclient.js + ui\baseui.js + ui\baseuiwindow.js + ui\colour.js + ui\theme.js + qwebircinterface.js ..\compiled\qwebirc-concat.js /b\r
+copy version.js + jslib.js + irc\ircconnection.js + irc\irclib.js + irc\baseircclient.js + irc\irctracker.js + irc\commandparser.js + irc\ircclient.js + ui\baseui.js + ui\baseuiwindow.js + ui\colour.js + ui\url.js + ui\theme.js + qwebircinterface.js ..\compiled\qwebirc-concat.js /b\r
copy ui\swmlayout.js + ui\swmui.js ..\compiled\swmui-concat.js /b\r
cd ..\compiled\r
\r
rm -f compiled/*.js
cd js
-cat version.js jslib.js irc/ircconnection.js irc/irclib.js irc/baseircclient.js irc/irctracker.js irc/commandparser.js irc/ircclient.js ui/baseui.js ui/baseuiwindow.js ui/colour.js ui/theme.js qwebircinterface.js > ../compiled/qwebirc-concat.js
+cat version.js jslib.js irc/ircconnection.js irc/irclib.js irc/baseircclient.js irc/irctracker.js irc/commandparser.js irc/ircclient.js ui/baseui.js ui/baseuiwindow.js ui/colour.js ui/url.js ui/theme.js qwebircinterface.js > ../compiled/qwebirc-concat.js
cat ui/swmlayout.js ui/swmui.js > ../compiled/swmui-concat.js
error() {
function emitEndToken() {
if(out.length > 0) {
- element.appendChild(document.createTextNode(out.join("")));
+ urlificate(element, out.join(""));
entity.appendChild(element);
out = [];
}
--- /dev/null
+var url_re = /https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/;
+
+function urlificate(element, text) {
+ function appendText(text) {
+ element.appendChild(document.createTextNode(text));
+ }
+ function appendA(text) {
+ var a = document.createElement("a");
+ a.href = text;
+ a.target = "new";
+ a.appendChild(document.createTextNode(text));
+
+ element.appendChild(a);
+ }
+
+ for(;;) {
+ var index = text.search(url_re);
+ if(index == -1) {
+ appendText(text);
+ break;
+ }
+ var match = text.match(url_re);
+
+ before = text.substring(0, index);
+ matched = match[0];
+ after = text.substring(index + matched.length);
+ text = after;
+ appendText(before);
+ appendA(matched, before);
+ }
+}
<script type="text/javascript" src="js/debug/ui/baseui.js"></script>
<script type="text/javascript" src="js/debug/ui/baseuiwindow.js"></script>
<script type="text/javascript" src="js/debug/ui/colour.js"></script>
+ <script type="text/javascript" src="js/debug/ui/url.js"></script>
<script type="text/javascript" src="js/debug/ui/theme.js"></script>
<script type="text/javascript" src="js/debug/ui/mochaui.js"></script>
<script type="text/javascript" src="js/debug/qwebircinterface.js"></script>
<script type="text/javascript" src="js/debug/ui/baseui.js"></script>
<script type="text/javascript" src="js/debug/ui/baseuiwindow.js"></script>
<script type="text/javascript" src="js/debug/ui/colour.js"></script>
+ <script type="text/javascript" src="js/debug/ui/url.js"></script>
<script type="text/javascript" src="js/debug/ui/theme.js"></script>
<script type="text/javascript" src="js/debug/ui/swmlayout.js"></script>
<script type="text/javascript" src="js/debug/ui/swmui.js"></script>
<script type="text/javascript" src="js/debug/ui/baseui.js"></script>
<script type="text/javascript" src="js/debug/ui/baseuiwindow.js"></script>
<script type="text/javascript" src="js/debug/ui/colour.js"></script>
+ <script type="text/javascript" src="js/debug/ui/url.js"></script>
<script type="text/javascript" src="js/debug/ui/theme.js"></script>
<script type="text/javascript" src="js/debug/ui/uglyui.js"></script>
<script type="text/javascript" src="js/debug/qwebircinterface.js"></script>