On Fri, Sep 5, 2008 at 10:32 PM, Mark Eichin <[EMAIL PROTECTED]> wrote:
>>> 3. You must quit conkeror using C-x C-c, rather than through your window
>>>    manager, if you want the session to be saved.
>
> I suggest supporting C-x C-s for "save right now" to work with our
> existing save-early-save-often emacs reflexes (and this is what my
> xmlhttprequest-based session-saving does too :-)  Should be just a
> direct binding to session.save()...
> _______________________________________________
> Conkeror mailing list
> Conkeror@mozdev.org
> https://www.mozdev.org/mailman/listinfo/conkeror
>
Here is a patch that adds that.  It does not bind the keys for you,
but it does create the command.

I shamelessly ripped off the code from the code that was already
there, but so far in my tests it works.

Btw. this is the first git format-patch I've done so I hope it is
correct.

Thanks again to David for implementing sessions, I am loving having
that functionality.

Rohan

Signed-off-by: Rohan <rohan dot nicholls at gmail dot com>
---
 modules/session.js |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/modules/session.js b/modules/session.js
index af4bbe1..91a26dd 100644
--- a/modules/session.js
+++ b/modules/session.js
@@ -29,7 +29,7 @@ session_manager.prototype.get_session = function () {
         }
     });
     return ar;
-}
+};

 /**
  * Encode a session to disk
@@ -41,6 +41,15 @@ session_manager.prototype.save = function () {
 add_hook("quit_hook",
          function () { if (typeof session != "undefined") session.save(); });

+function save_session(sess_file){
+  if (!conkeror.session){
+    return false;
+    //conkeror.session = new session_manager(sess_file);
+  }
+  conkeror.session.save();
+  return true;
+}
+
 /**
  * Restore from the session
  */
@@ -53,7 +62,7 @@ session_manager.prototype.restore = function () {
         }
         make_window(multiple_buffers_creator(creators), tag);
     }
-}
+};

 /**
  * The main entry point. Load all the buffers from the session at `sess_file',
@@ -79,3 +88,14 @@ interactive(
             $initial_value = profile_dir + "/session.json");
         restore_session(sess_file);
     });
+
+interactive(
+  "save-session",
+  "Prompt on the minibuffer for a session file to use for saving." +
+  "The default path is " + profile_dir + "/session.json",
+  function (I) {
+    var sess_file = yield I.minibuffer.read_file_path(
+      $prompt = "Session file:",
+      $initial_value = profile_dir + "/session.json");
+    save_session(sess_file);
+  });
-- 
1.5.4.3
_______________________________________________
Conkeror mailing list
Conkeror@mozdev.org
https://www.mozdev.org/mailman/listinfo/conkeror

Reply via email to