[Pkg-mozext-commits] [firetray] 14/399: add debug() facility to print to terminal stderr
David Prévot
taffit at alioth.debian.org
Tue Oct 29 18:23:05 UTC 2013
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch dfsg-clean
in repository firetray.
commit 1b68487af8164c77d51aae34c29f86f838a3c264
Author: foudfou <foudil.newbie+git at gmail.com>
Date: Wed Jul 13 01:23:58 2011 +0200
add debug() facility to print to terminal stderr
---
src/modules/LibC.js | 85 ++++++++++++++++++++++++++++++++++++++++++++++++
src/modules/commons.js | 8 +++++
2 files changed, 93 insertions(+)
diff --git a/src/modules/LibC.js b/src/modules/LibC.js
new file mode 100644
index 0000000..a21261c
--- /dev/null
+++ b/src/modules/LibC.js
@@ -0,0 +1,85 @@
+/* -*- Mode: javascript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+
+var EXPORTED_SYMBOLS = ["LibC"];
+
+const LIB_C = "libc.so.6";
+
+const Cu = Components.utils;
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+
+Cu.import("resource://gre/modules/ctypes.jsm");
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+
+XPCOMUtils.defineLazyGetter(this, "libc", function() {
+ var libc = ctypes.open(LIB_C);
+ if (!libc)
+ throw "libc is unavailable";
+
+ return libc;
+});
+
+XPCOMUtils.defineLazyGetter(this, "FILE", function() {
+ return ctypes.StructType("FILE");
+});
+
+XPCOMUtils.defineLazyGetter(this, "fdopen", function() {
+ var fdopen = libc.declare(
+ "fdopen", ctypes.default_abi, FILE.ptr,
+ ctypes.int,
+ ctypes.char.ptr
+ );
+
+ if (!fdopen)
+ throw "fdopen is unavailable";
+
+ return fdopen;
+});
+
+
+XPCOMUtils.defineLazyGetter(this, "puts", function() {
+ var puts = libc.declare(
+ "puts", ctypes.default_abi, ctypes.int32_t,
+ ctypes.char.ptr
+ );
+
+ if (!puts)
+ throw "puts is unavailable";
+
+ return puts;
+});
+
+XPCOMUtils.defineLazyGetter(this, "fputs", function() {
+ var fputs = libc.declare(
+ "fputs", ctypes.default_abi, ctypes.int32_t,
+ ctypes.char.ptr,
+ FILE.ptr
+ );
+
+ if (!fputs)
+ throw "fputs is unavailable";
+
+ return fputs;
+});
+
+XPCOMUtils.defineLazyGetter(this, "fflush", function() {
+ var fflush = libc.declare(
+ "fflush", ctypes.default_abi, ctypes.int32_t,
+ FILE.ptr
+ );
+
+ if (!fflush)
+ throw "fflush is unavailable";
+
+ return fflush;
+});
+
+var LibC = {
+ stderr: this.fdopen(2, "a"),
+
+ FILE: FILE,
+ fdopen: fdopen,
+ puts: puts,
+ fputs: fputs,
+ fflush: fflush,
+}
diff --git a/src/modules/commons.js b/src/modules/commons.js
index 73d35cc..45278a8 100644
--- a/src/modules/commons.js
+++ b/src/modules/commons.js
@@ -10,6 +10,9 @@ var EXPORTED_SYMBOLS = [ "mozt", "Cc", "Ci" ];
const Cc = Components.classes;
const Ci = Components.interfaces;
+const Cu = Components.utils;
+
+Cu.import("resource://moztray/LibC.js");
const FIREFOX_ID = "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}";
const THUNDERBIRD_ID = "{3550f703-e582-4d05-9a08-453d09bdfdc6}";
@@ -64,6 +67,11 @@ mozt.Debug = {
this.dump(str);
},
+ // dump to terminal (stderr)
+ debug: function(str) {
+ LibC.fputs(str + "\n", LibC.stderr);
+ LibC.fflush(LibC.stderr);
+ },
};
// build it !
mozt.Debug.init();
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/firetray.git
More information about the Pkg-mozext-commits
mailing list