[Pkg-mozext-commits] [nostalgy] 98/252: *** empty log message ***

David Prévot taffit at moszumanska.debian.org
Tue Jun 14 15:24:45 UTC 2016


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository nostalgy.

commit f6caa938b516dd0c7cbba0830618479d986afc0c
Author: frisch <frisch at 56b81dcf-5a2f-0410-9db0-014be2e416ff>
Date:   Wed May 30 15:29:18 2007 +0000

    *** empty log message ***
---
 content/edit_prefs.js          | 13 +++-----
 content/edit_prefs.xul         |  1 +
 content/edit_rule.js           | 11 +------
 content/edit_rule.xul          |  1 +
 content/folders.js             | 73 +++++++++++++++++++++++++++++++++---------
 content/messageOverlay.xul     |  1 +
 content/misc.js                | 28 ++++++++++++++++
 content/nostalgy.js            | 22 ++++++-------
 content/thunderbirdOverlay.xul |  1 +
 files                          |  1 +
 10 files changed, 106 insertions(+), 46 deletions(-)

diff --git a/content/edit_prefs.js b/content/edit_prefs.js
index 4833726..d343db2 100644
--- a/content/edit_prefs.js
+++ b/content/edit_prefs.js
@@ -1,5 +1,3 @@
-function gEBI(s) { return document.getElementById(s); }
-
 var gList = null;
 
 var wait_key = null;
@@ -23,7 +21,7 @@ var nost_js_quote = {
 String.prototype.quote = function () {
   var x = this;
   if (/["\x00-\x20\\"]/.test(this)) {
-    x = this.replace(/(["\x00-\x20\\"])/g, function(a, b) {
+    x = this.replace(/(["\x00-\x20\\>"])/g, function(a, b) {
       var c = nost_js_quote[b];
       if (c) { return c; }
       c = b.charCodeAt();
@@ -217,8 +215,7 @@ function DoMoveDown(idx1,idx2) {
 }
 
 function onAcceptChanges() {
-  var prefs = Components.classes["@mozilla.org/preferences-service;1"].
-                         getService(Components.interfaces.nsIPrefBranch);
+  var prefs = NostalgyPrefService();
   prefs.setCharPref("extensions.nostalgy.rules", MkPrefStr());
 
   for (var n in nostalgy_completion_options)
@@ -311,11 +308,9 @@ function onNostalgyLoad() {
   gList = gEBI("rules");
   folder_select = gEBI("folderselect");
 
-  var prefs = Components.classes["@mozilla.org/preferences-service;1"].
-                         getService(Components.interfaces.nsIPrefBranch);
-
+  var prefs = NostalgyPrefService();
   try {
-   var r = eval(prefs.getCharPref("extensions.nostalgy.rules"));
+   var r = NostalgyJSONEval(prefs.getCharPref("extensions.nostalgy.rules"));
    var i;
    for (i = 0; i < r.length; i++) { CreateItem(r[i]); }
   } catch (ex) { }
diff --git a/content/edit_prefs.xul b/content/edit_prefs.xul
index 9f3c32b..160bfb7 100644
--- a/content/edit_prefs.xul
+++ b/content/edit_prefs.xul
@@ -11,6 +11,7 @@
 	buttonlabelextra2="Nostalgy usage directions..."
         title="Nostalgy Preferences">
 
+ <script src="misc.js"/>
  <script src="folders.js"/>
  <script src="nostalgy_keys.js"/>
  <script src="edit_prefs.js"/>
diff --git a/content/edit_rule.js b/content/edit_rule.js
index b462b4d..dedb398 100644
--- a/content/edit_rule.js
+++ b/content/edit_rule.js
@@ -1,5 +1,3 @@
-function gEBI(id) { return (document.getElementById(id)); }
-
 var gFolderSelect = null;
 var gContainsSelect = null;
 var gUnderSelect = null;
@@ -25,13 +23,6 @@ function onNostalgyLoad() {
 }
 
 function onAcceptChanges() {
-/*
- var f = document.commandDispatcher.focusedElement;
- while (f && f.tagName != "textbox") f = f.parentNode;
- if (f && f.hasAttribute("nostalgyfolderbox"))
-   eval(f.getAttribute("nostalgyfolderbox"));
-*/
-
  var folder = FindFolderExact(gFolderSelect.value);
  if (!folder) {
    alert("Please choose an existing folder");
@@ -78,4 +69,4 @@ function OnKeyPressTxt(ev) {
   }
 }
 
-window.addEventListener("load", onNostalgyLoad, false);
\ No newline at end of file
+window.addEventListener("load", onNostalgyLoad, false);
diff --git a/content/edit_rule.xul b/content/edit_rule.xul
index 047e0f5..a8f68f4 100644
--- a/content/edit_rule.xul
+++ b/content/edit_rule.xul
@@ -10,6 +10,7 @@
 	ondialogaccept="return onAcceptChanges();"
 >
 
+ <script src="misc.js"/>
  <script src="folders.js"/>
  <script src="edit_rule.js"/>
 
diff --git a/content/folders.js b/content/folders.js
index 29e4d11..30ffa87 100644
--- a/content/folders.js
+++ b/content/folders.js
@@ -7,13 +7,47 @@ var nostalgy_completion_options = {
   always_include_tags  : false
 };
 
-function NostalgyDebug(aText)
-{
-  var csClass = Components.classes['@mozilla.org/consoleservice;1'];
-  var cs = csClass.getService(Components.interfaces.nsIConsoleService);
-  cs.logStringMessage(aText);
+
+
+/** The set of "recent folder" for Nostalgy **/
+
+var nostalgy_recent_folders = [ ];
+var nostalgy_recent_folders_max_size = 5;
+// TODO: make that customizable
+
+function NostalgySaveRecentFolder(recent) {
+  NostalgyPrefService().
+    setCharPref("extensions.nostalgy.recent_folders",
+		recent.toSource());
+}
+
+function NostalgyInstallRecentFolders() {
+  var s = "";
+  try { s = NostalgyPrefService().
+	  getCharPref("extensions.nostalgy.recent_folders"); }
+  catch (ex) { return; }
+  var a = NostalgyJSONEval(s);
+  if (a) nostalgy_recent_folders = a;
+  else nostalgy_recent_folders = [ ];
+}
+
+function NostalgyRecordRecentFolder(folder) {
+  var recent = nostalgy_recent_folders;
+  var fname = folder_name(folder);
+  if (recent.indexOf(fname) >= 0)
+    recent = recent.filter(function (elt,idx,arr) {
+      return (elt != fname);
+    });
+
+  recent.push(fname);
+  while (recent.length >  nostalgy_recent_folders_max_size)  recent.shift();
+  NostalgySaveRecentFolder(recent);
 }
 
+
+/****/
+
+
 function NostalgyCrop(s) {
   var len = 120;
   var l = s.length;
@@ -103,24 +137,31 @@ function(text, results, listener) {
  var nb = 0;
  items.Clear();
 
- var f = function (folder) {
+ var add_folder = function (fname) {
   var newitem = 
    Components.classes[
     "@mozilla.org/autocomplete/item;1"
    ].createInstance(Components.interfaces.nsIAutoCompleteItem);
-  newitem.value = NostalgyCrop(folder_name(folder));
+  newitem.value = NostalgyCrop(fname);
 
   items.AppendElement(newitem);
   nb++;
- }; 
-
- nostalgy_search_folder_options.do_tags = 
-   nostalgy_completion_options.always_include_tags || 
-   (text.substr(0,1) == ":");
- IterateMatches(text, this.box.shell_completion, f);
- if (nb == 0 && !nostalgy_search_folder_options.do_tags) {
-  nostalgy_search_folder_options.do_tags = true;
-  IterateMatches(text, this.box.shell_completion, f);
+ };
+ 
+ var f = function (folder) { add_folder(folder_name(folder)); }; 
+ 
+ if (text == "") {
+   for (var j = 0; j < nostalgy_recent_folders.length; j++) 
+     add_folder(nostalgy_recent_folders[j]);
+ } else {
+   nostalgy_search_folder_options.do_tags = 
+     nostalgy_completion_options.always_include_tags || 
+     (text.substr(0,1) == ":");
+   IterateMatches(text, this.box.shell_completion, f);
+   if (nb == 0 && !nostalgy_search_folder_options.do_tags) {
+     nostalgy_search_folder_options.do_tags = true;
+     IterateMatches(text, this.box.shell_completion, f);
+   }
  }
 
  this.xresults.searchString = text;
diff --git a/content/messageOverlay.xul b/content/messageOverlay.xul
index c08abef..702ea97 100644
--- a/content/messageOverlay.xul
+++ b/content/messageOverlay.xul
@@ -3,6 +3,7 @@
 <overlay id="nostalgy-message-overlay"
          xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
+ <script src="misc.js"/>
  <script src="folders.js"/>
  <script src="nostalgy_keys.js"/>
  <script src="nostalgy.js"/>
diff --git a/content/misc.js b/content/misc.js
new file mode 100644
index 0000000..52df72e
--- /dev/null
+++ b/content/misc.js
@@ -0,0 +1,28 @@
+function gEBI(id) { return document.getElementById(id); }
+
+function NostalgyPrefService() {
+  return Components.classes["@mozilla.org/preferences-service;1"]
+    .getService(Components.interfaces.nsIPrefService);
+}
+
+function NostalgyDebug(aText)
+{
+  var csClass = Components.classes['@mozilla.org/consoleservice;1'];
+  var cs = csClass.getService(Components.interfaces.nsIConsoleService);
+  cs.logStringMessage(aText);
+}
+
+function NostalgyJSONEval(s) {
+  if (/^("(\\.|[^"\\\n\r])*?"|[a-z]+:|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/. // "
+  test(s)) {
+    try {  
+      return eval('(' + s + ')');
+    } catch (e) {
+      NostalgyDebug("parseJSON 1: " + s);
+      return null;
+    }
+  } else {
+    NostalgyDebug("parseJSON 2:" + s);
+    return null;
+  }
+}
diff --git a/content/nostalgy.js b/content/nostalgy.js
index 98c7b7c..22da189 100644
--- a/content/nostalgy.js
+++ b/content/nostalgy.js
@@ -1,5 +1,3 @@
-function gEBI(s) { return document.getElementById(s); }
-
 var in_message_window = !window.SetFocusFolderPane;
 
 var nostalgy_folderBox = null;
@@ -32,9 +30,7 @@ var NostalgyRules =
 
   register: function()
   {
-    var prefService = Components.classes["@mozilla.org/preferences-service;1"]
-                            .getService(Components.interfaces.nsIPrefService);
-    this._branch = prefService.getBranch("extensions.nostalgy.");
+    this._branch = NostalgyPrefService().getBranch("extensions.nostalgy.");
     this._branch2 = 
         this._branch.QueryInterface(Components.interfaces.nsIPrefBranch2);
     this._branch2.addObserver("", this, false);
@@ -45,6 +41,7 @@ var NostalgyRules =
         nostalgy_completion_options[n] = this._branch.getBoolPref(n);
       } catch (ex) { }
     }
+    NostalgyInstallRecentFolders();
   },
 
   register_keys: function() {
@@ -78,7 +75,7 @@ var NostalgyRules =
   get_rules: function()
   {
     try {
-     var r = eval(this._branch.getCharPref("rules"));
+     var r = NostalgyJSONEval(this._branch.getCharPref("rules"));
      var i;
      for (i = 0; i < r.length; i++) {
        var rule = r[i];
@@ -100,6 +97,8 @@ var NostalgyRules =
   observe: function(aSubject, aTopic, aData)
   {
     if(aTopic != "nsPref:changed") return;
+    if (aData == "recent_folders") NostalgyInstallRecentFolders();
+
     if (aData == "rules") {
       this.get_rules();
       if (!in_message_window) NostalgyDefLabel();
@@ -143,10 +142,8 @@ NostalgyRules.register();
 function NostalgyExtractRules() {
   var s = nostalgy_extracted_rules;
   if (s == "") return;
-  // remove whitespaces. they should have been escaped as \u0020
-  NostalgyDebug("before whitespace removal:" + s);
-  s = s.replace(/([\x00-\x20])/g,function(a,b){ return "" });
-  NostalgyDebug("after whitespace removal:" + s);
+  // remove characters that should have been escaped
+  s = s.replace(/([\x00-\x20>])/g,function(a,b){ return "" });
   if (confirm(
 "Do you want to install the rules contained in this message?\n"+
 "This will overwrite your current set of rules.\n"+
@@ -421,7 +418,10 @@ function NostalgyRunCommand() {
   NostalgyHide();
   var s = nostalgy_folderBox.value;
   var f = NostalgyResolveFolder(s);
-  if (f) nostalgy_command(f);
+  if (f) {
+    NostalgyRecordRecentFolder(f);
+    nostalgy_command(f);
+  }
   else { 
     if (s.substr(0,1) == ":" && s != ":") {
       var name;
diff --git a/content/thunderbirdOverlay.xul b/content/thunderbirdOverlay.xul
index 30b2742..cbd7097 100644
--- a/content/thunderbirdOverlay.xul
+++ b/content/thunderbirdOverlay.xul
@@ -3,6 +3,7 @@
 <overlay id="nostalgy-overlay"
          xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
+ <script src="misc.js"/>
  <script src="folders.js"/>
  <script src="nostalgy_keys.js"/>
  <script src="nostalgy.js"/>
diff --git a/files b/files
index f8af104..de5d4d7 100644
--- a/files
+++ b/files
@@ -1,6 +1,7 @@
 content/about.xul
 content/edit_prefs.xul
 content/thunderbirdOverlay.xul
+content/misc.js
 content/dummy_window.xul
 content/composer.js
 content/messageOverlay.xul

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/nostalgy.git



More information about the Pkg-mozext-commits mailing list