seed r92 - in trunk: . extensions libseed
- From: racarr svn gnome org
- To: svn-commits-list gnome org
- Subject: seed r92 - in trunk: . extensions libseed
- Date: Tue, 4 Nov 2008 01:58:45 +0000 (UTC)
Author: racarr
Date: Tue Nov 4 01:58:45 2008
New Revision: 92
URL: http://svn.gnome.org/viewvc/seed?rev=92&view=rev
Log:
Add printf. Build system fixes.
Added:
trunk/extensions/Makefile.am
trunk/extensions/Seed.js (contents, props changed)
Removed:
trunk/Makefile.am.bak
trunk/Makefile.in
trunk/configure
trunk/configure.ac.bak
Modified:
trunk/Makefile.am
trunk/configure.ac
trunk/libseed/seed-engine.c
Modified: trunk/Makefile.am
==============================================================================
--- trunk/Makefile.am (original)
+++ trunk/Makefile.am Tue Nov 4 01:58:45 2008
@@ -3,7 +3,8 @@
SUBDIRS = po \
libseed\
- src
+ src\
+ extensions
seeddocdir = ${prefix}/doc/seed
seeddoc_DATA = \
Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac (original)
+++ trunk/configure.ac Tue Nov 4 01:58:45 2008
@@ -42,4 +42,5 @@
libseed/Makefile
po/Makefile.in
src/Makefile
+extensions/Makefile
])
Added: trunk/extensions/Makefile.am
==============================================================================
--- (empty file)
+++ trunk/extensions/Makefile.am Tue Nov 4 01:58:45 2008
@@ -0,0 +1,4 @@
+EXTRA_DIST=
+
+extensiondir=$(datadir)/seed
+extension_DATA = Gio.js Seed.js
Added: trunk/extensions/Seed.js
==============================================================================
--- (empty file)
+++ trunk/extensions/Seed.js Tue Nov 4 01:58:45 2008
@@ -0,0 +1,132 @@
+#!/usr/local/bin/seed
+
+/**
+*
+* Javascript sprintf
+* http://www.webtoolkit.info/
+*
+*
+**/
+
+Seed.sprintf = function ()
+{
+ if (typeof arguments == "undefined") { return null; }
+ if (arguments.length < 1) { return null; }
+ if (typeof arguments[0] != "string") { return null; }
+ if (typeof RegExp == "undefined") { return null; }
+
+ var string = arguments[0];
+ var exp = new RegExp(/(%([%]|(\-)?(\+|\x20)?(0)?(\d+)?(\.(\d)?)?([bcdfosxX])))/g);
+ var matches = new Array();
+ var strings = new Array();
+ var convCount = 0;
+ var stringPosStart = 0;
+ var stringPosEnd = 0;
+ var matchPosEnd = 0;
+ var newString = '';
+ var match = null;
+
+ while (match = exp.exec(string)) {
+ if (match[9]) { convCount += 1; }
+
+ stringPosStart = matchPosEnd;
+ stringPosEnd = exp.lastIndex - match[0].length;
+ strings[strings.length] = string.substring(stringPosStart, stringPosEnd);
+
+ matchPosEnd = exp.lastIndex;
+ matches[matches.length] = {
+ match: match[0],
+ left: match[3] ? true : false,
+ sign: match[4] || '',
+ pad: match[5] || ' ',
+ min: match[6] || 0,
+ precision: match[8],
+ code: match[9] || '%',
+ negative: parseInt(arguments[convCount]) < 0 ? true : false,
+ argument: String(arguments[convCount])
+ };
+ }
+ strings[strings.length] = string.substring(matchPosEnd);
+
+ if (matches.length == 0) { return string; }
+ if ((arguments.length - 1) < convCount) { return null; }
+
+ var code = null;
+ var match = null;
+ var i = null;
+
+ for (i=0; i<matches.length; i++) {
+
+ if (matches[i].code == '%') { substitution = '%' }
+ else if (matches[i].code == 'b') {
+ matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(2));
+ substitution = Seed.sprintf.convert(matches[i], true);
+ }
+ else if (matches[i].code == 'c') {
+ matches[i].argument = String(String.fromCharCode(parseInt(Math.abs(parseInt(matches[i].argument)))));
+ substitution = Seed.sprintf.convert(matches[i], true);
+ }
+ else if (matches[i].code == 'd') {
+ matches[i].argument = String(Math.abs(parseInt(matches[i].argument)));
+ substitution = Seed.sprintf.convert(matches[i]);
+ }
+ else if (matches[i].code == 'f') {
+ matches[i].argument = String(Math.abs(parseFloat(matches[i].argument)).toFixed(matches[i].precision ? matches[i].precision : 6));
+ substitution = Seed.sprintf.convert(matches[i]);
+ }
+ else if (matches[i].code == 'o') {
+ matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(8));
+ substitution = Seed.sprintf.convert(matches[i]);
+ }
+ else if (matches[i].code == 's') {
+ matches[i].argument = matches[i].argument.substring(0, matches[i].precision ? matches[i].precision : matches[i].argument.length)
+ substitution = Seed.sprintf.convert(matches[i], true);
+ }
+ else if (matches[i].code == 'x') {
+ matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
+ substitution = Seed.sprintf.convert(matches[i]);
+ }
+ else if (matches[i].code == 'X') {
+ matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
+ substitution = Seed.sprintf.convert(matches[i]).toUpperCase();
+ }
+ else {
+ substitution = matches[i].match;
+ }
+
+ newString += strings[i];
+ newString += substitution;
+
+ }
+ newString += strings[i];
+
+ return newString;
+
+};
+
+Seed.sprintf.convert = function(match, nosign)
+{
+ if (nosign) {
+ match.sign = '';
+ } else {
+ match.sign = match.negative ? '-' : match.sign;
+ }
+ var l = match.min - match.argument.length + 1 - match.sign.length;
+ var pad = new Array(l < 0 ? 0 : l).join(match.pad);
+ if (!match.left) {
+ if (match.pad == "0" || nosign) {
+ return match.sign + pad + match.argument;
+ } else {
+ return pad + match.sign + match.argument;
+ }
+ } else {
+ if (match.pad == "0" || nosign) {
+ return match.sign + match.argument + pad.replace(/0/g, ' ');
+ } else {
+ return match.sign + match.argument + pad;
+ }
+ }
+};
+
+Seed.printf = function () { Seed.print(Seed.sprintf.apply(this, arguments)) };
+
Modified: trunk/libseed/seed-engine.c
==============================================================================
--- trunk/libseed/seed-engine.c (original)
+++ trunk/libseed/seed-engine.c Tue Nov 4 01:58:45 2008
@@ -871,6 +871,7 @@
gboolean seed_init(int * argc, char *** argv)
{
JSObjectRef seed_obj_ref;
+ JSStringRef defaults_script;
g_type_init ();
g_log_set_handler("GLib-GObject", G_LOG_LEVEL_WARNING, seed_log_handler, 0);
@@ -900,6 +901,12 @@
seed_create_function("import_namespace", &seed_gi_import_namespace, seed_obj_ref);
seed_init_builtins(argc, argv);
+ defaults_script =
+ JSStringCreateWithUTF8CString("Seed.include(\"/usr/local/share"
+ "/seed/Seed.js\")");
+ JSEvaluateScript(eng->context, defaults_script, NULL, NULL, 0, NULL);
+ JSStringRelease(defaults_script);
+
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]