--- /dev/null
+;;; Gacela configuration
+
+(defun launch-gacela ()
+ (interactive)
+ (start-process "gacela" "gacela" "/home/jsancho/proyectos/gacela/trunk/src/gacela" "--dev"))
+
+(defun send-to-gacela ()
+ (interactive)
+ (cond ((not (get-process "gacela"))
+ (launch-gacela)))
+ (cond ((use-region-p)
+ (process-send-region "gacela" (region-beginning) (region-end)))
+ (t
+ (process-send-region "gacela" (point-min-marker) (point-max-marker)))))
+
+(define-key global-map [(ctrl x) (ctrl g)] 'send-to-gacela)
+
+(define-key-after global-map [menu-bar tools gacela] (cons "Gacela" (make-sparse-keymap "hoot hoot")) 'games)
+(define-key global-map [menu-bar tools gacela send] '("Send to Gacela" . send-to-gacela))
+(define-key global-map [menu-bar tools gacela launch] '("Launch Gacela" . launch-gacela))
+
#include "gacela_GL.h"
#include "gacela_FTGL.h"
-// Generic variables
+// Global variables
int ctrl_c = 0;
int pid = 0;
+char *history_path = NULL;
+
static int
find_matching_paren (int k)
}
void
-look_child_handler (int signum)
+child_dies_handler (int signum)
{
- printf ("Hola\n");
+ write_history (history_path);
+ exit (0);
}
static void
init_gacela_client ()
{
- struct sigaction ctrl_c_action, look_child_action;
+ struct sigaction ctrl_c_action, child_dies_action;
// init bouncing parens
rl_bind_key (')', match_paren);
// SIGALRM
if (pid != 0) {
- look_child_action.sa_handler = look_child_handler;
- sigemptyset (&look_child_action.sa_mask);
- look_child_action.sa_flags = 0;
+ child_dies_action.sa_handler = child_dies_handler;
+ sigemptyset (&child_dies_action.sa_mask);
+ child_dies_action.sa_flags = 0;
- sigaction (SIGALRM, &look_child_action, NULL);
+ sigaction (SIGALRM, &child_dies_action, NULL);
}
}
int n;
SCM buffer;
char *line = NULL, *line_for_sending = NULL;
- char *history_path;
int opened = 0;
// Command line
scm_close (SCM_CDR (fd2));
init_gacela (dirname (argv[0]));
start_local_server (scm_cons (SCM_CAR (fd2), SCM_CDR (fd1)));
+ kill (getppid (), SIGALRM);
}
else {
scm_close (SCM_CDR (fd1));