87
87
static GtkWidget *term = NULL;
88
88
static GtkWidget *appbar = NULL;
89
89
static GtkWidget *notebook = NULL;
90
static GtkTooltips *tips;
90
91
static GString *errors=NULL;
91
92
static GString *infos=NULL;
99
100
static char *last_dir = NULL;
102
static GList *prog_menu_items = NULL;
101
104
GeniusSetup genius_setup = {
102
105
FALSE /* error_box */,
103
106
TRUE /* info_box */,
104
107
TRUE /* blinking_cursor */,
105
108
1000 /* scrollback */,
107
FALSE /* black on white */
110
FALSE /* black on white */,
111
FALSE /* output_remember */,
112
FALSE /* precision_remember */
182
187
static void load_cb (GtkWidget *w);
183
188
static void reload_cb (GtkWidget *w);
184
189
static void quitapp (GtkWidget * widget, gpointer data);
190
#ifdef HAVE_GTKSOURCEVIEW
191
static void setup_undo_redo (void);
192
static void undo_callback (GtkWidget *menu_item, gpointer data);
193
static void redo_callback (GtkWidget *menu_item, gpointer data);
185
195
static void cut_callback (GtkWidget *menu_item, gpointer data);
186
196
static void copy_callback (GtkWidget *menu_item, gpointer data);
187
197
static void paste_callback (GtkWidget *menu_item, gpointer data);
193
203
static void copy_as_latex (GtkWidget *menu_item, gpointer data);
194
204
static void copy_as_troff (GtkWidget *menu_item, gpointer data);
195
205
static void copy_as_mathml (GtkWidget *menu_item, gpointer data);
206
static void next_tab (GtkWidget *menu_item, gpointer data);
207
static void prev_tab (GtkWidget *menu_item, gpointer data);
208
static void prog_menu_activated (GtkWidget *item, gpointer data);
196
209
static void setup_calc (GtkWidget *widget, gpointer data);
197
210
static void run_program (GtkWidget *menu_item, gpointer data);
211
static void full_answer (GtkWidget *menu_item, gpointer data);
198
212
static void warranty_call (GtkWidget *widget, gpointer data);
199
213
static void aboutcb (GtkWidget * widget, gpointer data);
200
214
static void help_on_function (GtkWidget *menuitem, gpointer data);
222
236
static GnomeUIInfo edit_menu[] = {
237
#ifdef HAVE_GTKSOURCEVIEW
238
#define EDIT_UNDO_ITEM 0
239
GNOMEUIINFO_MENU_UNDO_ITEM(undo_callback,NULL),
240
#define EDIT_REDO_ITEM 1
241
GNOMEUIINFO_MENU_REDO_ITEM(redo_callback,NULL),
242
GNOMEUIINFO_SEPARATOR,
243
#define EDIT_CUT_ITEM 3
244
GNOMEUIINFO_MENU_CUT_ITEM(cut_callback,NULL),
245
#define EDIT_COPY_ITEM 4
246
GNOMEUIINFO_MENU_COPY_ITEM(copy_callback,NULL),
223
248
#define EDIT_CUT_ITEM 0
224
249
GNOMEUIINFO_MENU_CUT_ITEM(cut_callback,NULL),
225
250
#define EDIT_COPY_ITEM 1
226
251
GNOMEUIINFO_MENU_COPY_ITEM(copy_callback,NULL),
227
253
GNOMEUIINFO_MENU_PASTE_ITEM(paste_callback,NULL),
228
254
GNOMEUIINFO_SEPARATOR,
229
255
GNOMEUIINFO_ITEM_STOCK(N_("Copy Answer As Plain _Text"),
255
281
GNOMEUIINFO_ITEM_STOCK(N_("_Run"),N_("Run current program"),run_program, GTK_STOCK_EXECUTE),
256
282
GNOMEUIINFO_ITEM_STOCK(N_("_Interrupt"),N_("Interrupt current calculation"),genius_interrupt_calc,GTK_STOCK_STOP),
257
283
GNOMEUIINFO_SEPARATOR,
284
GNOMEUIINFO_ITEM_STOCK (N_("Show _Full Answer"), N_("Show the full text of last answer"), full_answer, GTK_STOCK_INFO),
285
GNOMEUIINFO_SEPARATOR,
258
286
GNOMEUIINFO_ITEM_STOCK (N_("_Plot"), N_("Plot a function"), genius_plot_dialog, GNOME_STOCK_BOOK_OPEN),
280
308
static GnomeUIInfo programs_menu[] = {
309
{ GNOME_APP_UI_ITEM, N_("_Next Tab"), N_("Go to next tab"),
310
(gpointer)next_tab, NULL, NULL, \
311
GNOME_APP_PIXMAP_STOCK, GTK_STOCK_GO_FORWARD,
312
GDK_Page_Down, (GdkModifierType) GDK_CONTROL_MASK, NULL },
313
{ GNOME_APP_UI_ITEM, N_("_Previous Tab"), N_("Go to previous tab"),
314
(gpointer)prev_tab, NULL, NULL, \
315
GNOME_APP_PIXMAP_STOCK, GTK_STOCK_GO_BACK,
316
GDK_Page_Up, (GdkModifierType) GDK_CONTROL_MASK, NULL },
318
GNOMEUIINFO_SEPARATOR,
320
GNOMEUIINFO_ITEM (N_("_Console"),
321
N_("Go to the console tab"),
457
501
/*display a message in a messagebox*/
458
502
static GtkWidget *
459
503
geniusbox (gboolean error,
504
gboolean always_textbox,
505
const char *textbox_title,
460
506
gboolean bind_response,
464
510
/* if less than 10 lines */
465
if (count_char (s, '\n') <= 10) {
511
if (count_char (ve_sure_string (s), '\n') <= 10 &&
466
513
GtkMessageType type = GTK_MESSAGE_INFO;
468
515
type = GTK_MESSAGE_ERROR;
478
525
GtkTextBuffer *buffer;
479
526
GtkTextIter iter;
529
if (textbox_title != NULL)
530
title = textbox_title;
534
title = _("Information");
481
536
mb = gtk_dialog_new_with_buttons
482
(error?_("Error"):_("Information"),
483
538
GTK_WINDOW (genius_window) /* parent */,
485
540
GTK_STOCK_OK, GTK_RESPONSE_OK,
504
559
gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
506
561
gtk_text_buffer_insert_with_tags_by_name
507
(buffer, &iter, s, -1, "foo", NULL);
562
(buffer, &iter, ve_sure_string (s), -1, "foo", NULL);
509
564
gtk_container_add (GTK_CONTAINER (sw), tv);
586
full_answer (GtkWidget *menu_item, gpointer data)
591
/* perhaps a bit ugly */
592
out = gel_output_new ();
593
gboolean last_info = genius_setup.info_box;
594
gboolean last_error = genius_setup.error_box;
595
genius_setup.info_box = TRUE;
596
genius_setup.error_box = TRUE;
597
gel_output_setup_string (out, 0, NULL);
598
gel_evalexp ("ans", NULL, out, NULL, TRUE, NULL);
599
gel_printout_infos ();
600
genius_setup.info_box = last_info;
601
genius_setup.error_box = last_error;
603
s = gel_output_snarf_string (out);
604
gel_output_unref (out);
606
geniusbox (FALSE /*error*/,
607
TRUE /*always textbox*/,
608
_("Full Answer") /*textbox_title*/,
609
TRUE /*bind_response*/,
531
615
printout_error_num_and_reset(void)
533
617
if(genius_setup.error_box) {
537
621
_("\nToo many errors! (%d followed)"),
538
622
errors_printed - curstate.max_errors);
540
geniusbox (TRUE, TRUE, errors->str);
624
geniusbox (TRUE /*error*/,
625
FALSE /*always textbox*/,
626
NULL /*textbox_title*/,
627
TRUE /*bind_response*/,
541
629
g_string_free(errors,TRUE);
608
696
/* Print out the infos */
609
697
if (infos != NULL) {
610
geniusbox (FALSE, TRUE, infos->str);
698
geniusbox (FALSE /*error*/,
699
FALSE /*always textbox*/,
700
NULL /*textbox_title*/,
701
TRUE /*bind_response*/,
611
703
g_string_free (infos, TRUE);
682
774
static GtkWidget *about;
683
775
static const char *authors[] = {
684
"Jiri (George) Lebl (jirka@5z.com)",
776
"Jiří (George) Lebl (jirka@5z.com)",
687
779
static const char *documenters[] = {
688
"Jiri (George) Lebl (jirka@5z.com)",
780
"Jiří (George) Lebl",
691
784
const char *translators;
752
845
genius_setup.info_box);
753
846
gnome_config_set_bool("/genius/properties/blinking_cursor",
754
847
genius_setup.blinking_cursor);
755
gnome_config_set_int("/genius/properties/max_digits",
756
curstate.max_digits);
757
gnome_config_set_bool("/genius/properties/results_as_floats",
758
curstate.results_as_floats);
759
gnome_config_set_bool("/genius/properties/scientific_notation",
760
curstate.scientific_notation);
761
gnome_config_set_bool("/genius/properties/full_expressions",
762
curstate.full_expressions);
848
gnome_config_set_bool("/genius/properties/output_remember",
849
genius_setup.output_remember);
850
if (genius_setup.output_remember) {
851
gnome_config_set_int("/genius/properties/max_digits",
852
curstate.max_digits);
853
gnome_config_set_bool("/genius/properties/results_as_floats",
854
curstate.results_as_floats);
855
gnome_config_set_bool("/genius/properties/scientific_notation",
856
curstate.scientific_notation);
857
gnome_config_set_bool("/genius/properties/full_expressions",
858
curstate.full_expressions);
859
gnome_config_set_bool("/genius/properties/mixed_fractions",
860
curstate.mixed_fractions);
763
862
gnome_config_set_int("/genius/properties/max_errors",
764
863
curstate.max_errors);
765
gnome_config_set_int("/genius/properties/float_prec",
766
curstate.float_prec);
864
gnome_config_set_bool("/genius/properties/precision_remember",
865
genius_setup.precision_remember);
866
if (genius_setup.precision_remember) {
867
gnome_config_set_int("/genius/properties/float_prec",
868
curstate.float_prec);
768
871
gnome_config_sync();
952
1055
setup_response (GtkWidget *widget, gint resp, gpointer data)
1057
if (resp == GTK_RESPONSE_HELP) {
1058
gnome_help_display ("genius", "genius-prefs", NULL /* error */);
954
1062
if (resp == GTK_RESPONSE_CANCEL ||
955
1063
resp == GTK_RESPONSE_OK ||
956
1064
resp == GTK_RESPONSE_APPLY) {
1018
1126
(_("Genius Setup"),
1019
1127
GTK_WINDOW (genius_window) /* parent */,
1129
GTK_STOCK_HELP, GTK_RESPONSE_HELP,
1021
1130
GTK_STOCK_APPLY, GTK_RESPONSE_APPLY,
1022
1131
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
1023
1132
GTK_STOCK_OK, GTK_RESPONSE_OK,
1089
1198
G_CALLBACK (optioncb),
1090
1199
(gpointer)&tmpstate.full_expressions);
1201
w=gtk_check_button_new_with_label(_("Use mixed fractions"));
1202
gtk_box_pack_start(GTK_BOX(box),w,FALSE,FALSE,0);
1203
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),
1204
tmpstate.mixed_fractions);
1205
g_signal_connect (G_OBJECT (w), "toggled",
1206
G_CALLBACK (optioncb),
1207
(gpointer)&tmpstate.mixed_fractions);
1209
w=gtk_check_button_new_with_label(_("Remember output settings across sessions"));
1210
gtk_box_pack_start(GTK_BOX(box),w,FALSE,FALSE,0);
1211
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),
1212
tmpsetup.output_remember);
1213
g_signal_connect (G_OBJECT(w), "toggled",
1214
G_CALLBACK (optioncb),
1215
(gpointer)&tmpsetup.output_remember);
1217
gtk_tooltips_set_tip (tips, w,
1218
_("Should the output settings in the "
1219
"\"Number/Expression output options\" frame "
1220
"be remembered for next session. Does not apply "
1221
"to the \"Error/Info output options\" frame."),
1093
1224
frame=gtk_frame_new(_("Error/Info output options"));
1094
1225
gtk_box_pack_start(GTK_BOX(mainbox),frame,FALSE,FALSE,0);
1179
1310
g_signal_connect (G_OBJECT (adj), "value_changed",
1180
1311
G_CALLBACK (intspincb), &tmpstate.float_prec);
1313
w=gtk_check_button_new_with_label(_("Remember precision setting across sessions"));
1314
gtk_box_pack_start(GTK_BOX(box),w,FALSE,FALSE,0);
1315
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),
1316
tmpsetup.precision_remember);
1317
g_signal_connect (G_OBJECT(w), "toggled",
1318
G_CALLBACK (optioncb),
1319
(gpointer)&tmpsetup.precision_remember);
1321
gtk_tooltips_set_tip (tips, w,
1322
_("Should the precision setting "
1323
"be remembered for next session."),
1183
1327
mainbox = gtk_vbox_new(FALSE, GNOME_PAD);
1184
1328
gtk_container_set_border_width(GTK_CONTAINER(mainbox),GNOME_PAD);
1185
1329
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
1187
1331
gtk_label_new(_("Terminal")));
1190
1333
frame=gtk_frame_new(_("Terminal options"));
1191
1334
gtk_box_pack_start(GTK_BOX(mainbox),frame,FALSE,FALSE,0);
1304
1447
last_dir = NULL;
1307
if (strcmp(s, "/") == 0) {
1450
if (strcmp(s, G_DIR_SEPARATOR_S) == 0) {
1311
last_dir = g_strconcat (s, "/", NULL);
1454
last_dir = g_strconcat (s, G_DIR_SEPARATOR_S, NULL);
1374
1517
gtk_widget_destroy (GTK_WIDGET (fs));
1519
vte_terminal_feed (VTE_TERMINAL (term),
1520
"\r\n\e[0mOutput from \e[0;32m", -1);
1521
vte_terminal_feed (VTE_TERMINAL (term), s, -1);
1522
vte_terminal_feed (VTE_TERMINAL (term),
1523
"\e[0m (((\r\n", -1);
1524
gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 0);
1376
1527
gel_load_guess_file (NULL, s, TRUE);
1378
1530
gel_printout_infos ();
1532
vte_terminal_feed (VTE_TERMINAL (term),
1535
/* interrupt the current command line */
1537
vte_terminal_feed_child (VTE_TERMINAL (term), "\n", 1);
1429
1588
gtk_widget_show (fs);
1591
#ifdef HAVE_GTKSOURCEVIEW
1593
static guint ur_idle_id = 0;
1596
setup_undo_redo_idle (gpointer data)
1598
int page = gtk_notebook_get_current_page (GTK_NOTEBOOK (notebook));
1605
gtk_widget_set_sensitive (edit_menu[EDIT_UNDO_ITEM].widget,
1607
gtk_widget_set_sensitive (edit_menu[EDIT_REDO_ITEM].widget,
1610
GtkWidget *w = gtk_notebook_get_nth_page
1611
(GTK_NOTEBOOK (notebook), page);
1612
Program *p = g_object_get_data (G_OBJECT (w), "program");
1613
gtk_widget_set_sensitive
1614
(edit_menu[EDIT_UNDO_ITEM].widget,
1615
gtk_source_buffer_can_undo
1616
(GTK_SOURCE_BUFFER (p->buffer)));
1617
gtk_widget_set_sensitive
1618
(edit_menu[EDIT_REDO_ITEM].widget,
1619
gtk_source_buffer_can_redo
1620
(GTK_SOURCE_BUFFER (p->buffer)));
1627
setup_undo_redo (void)
1629
if (ur_idle_id == 0) {
1630
ur_idle_id = gtk_idle_add (setup_undo_redo_idle, NULL);
1636
undo_callback (GtkWidget *menu_item, gpointer data)
1638
int page = gtk_notebook_get_current_page (GTK_NOTEBOOK (notebook));
1642
/* undo from a terminal? what are you talking about */
1645
GtkWidget *w = gtk_notebook_get_nth_page
1646
(GTK_NOTEBOOK (notebook), page);
1647
Program *p = g_object_get_data (G_OBJECT (w), "program");
1648
if (gtk_source_buffer_can_undo
1649
(GTK_SOURCE_BUFFER (p->buffer)))
1650
gtk_source_buffer_undo
1651
(GTK_SOURCE_BUFFER (p->buffer));
1656
redo_callback (GtkWidget *menu_item, gpointer data)
1658
int page = gtk_notebook_get_current_page (GTK_NOTEBOOK (notebook));
1662
/* redo from a terminal? what are you talking about */
1665
GtkWidget *w = gtk_notebook_get_nth_page
1666
(GTK_NOTEBOOK (notebook), page);
1667
Program *p = g_object_get_data (G_OBJECT (w), "program");
1668
if (gtk_source_buffer_can_redo
1669
(GTK_SOURCE_BUFFER (p->buffer)))
1670
gtk_source_buffer_redo
1671
(GTK_SOURCE_BUFFER (p->buffer));
1433
1677
cut_callback (GtkWidget *menu_item, gpointer data)
1435
1679
int page = gtk_notebook_get_current_page (GTK_NOTEBOOK (notebook));
1436
1682
if (page == 0) {
1437
1683
/* cut from a terminal? what are you talking about */
1903
next_tab (GtkWidget *menu_item, gpointer data)
1905
gtk_notebook_next_page (GTK_NOTEBOOK (notebook));
1909
prev_tab (GtkWidget *menu_item, gpointer data)
1911
gtk_notebook_prev_page (GTK_NOTEBOOK (notebook));
1653
1915
prog_menu_activated (GtkWidget *item, gpointer data)
1655
1917
GtkWidget *w = data;
1656
int num = gtk_notebook_page_num (GTK_NOTEBOOK (notebook), w);
1923
num = gtk_notebook_page_num (GTK_NOTEBOOK (notebook), w);
1657
1924
gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), num);
1663
1930
int n = gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook));
1665
1932
GtkWidget *menu;
1668
/* No programs in the menu */
1669
gtk_widget_hide (genius_menu[PROGRAMS_MENU].widget);
1936
while (prog_menu_items != NULL) {
1937
gtk_widget_destroy (prog_menu_items->data);
1938
prog_menu_items = g_list_remove_link (prog_menu_items, prog_menu_items);
1673
menu = gtk_menu_new ();
1674
gtk_widget_show (menu);
1941
menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (genius_menu[PROGRAMS_MENU].widget));
1675
1943
for (i = 1; i < n; i++) {
1676
1944
GtkWidget *item;
1677
1945
GtkWidget *w = gtk_notebook_get_nth_page
1684
1952
g_signal_connect (G_OBJECT (item), "activate",
1685
1953
G_CALLBACK (prog_menu_activated), w);
1686
1954
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
1956
prog_menu_items = g_list_prepend (prog_menu_items, item);
1689
gtk_menu_item_set_submenu
1690
(GTK_MENU_ITEM (genius_menu[PROGRAMS_MENU].widget), menu);
1691
gtk_widget_show (genius_menu[PROGRAMS_MENU].widget);
1894
2160
gtk_source_buffer_set_language
1895
2161
(GTK_SOURCE_BUFFER (buffer), lang);
2163
g_signal_connect (G_OBJECT (buffer), "can-undo",
2164
G_CALLBACK (setup_undo_redo), NULL);
2165
g_signal_connect (G_OBJECT (buffer), "can-redo",
2166
G_CALLBACK (setup_undo_redo), NULL);
1898
2168
tv = gtk_text_view_new ();
1899
2169
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv));
1916
2186
p->curline = 0;
1917
2187
g_object_set_data (G_OBJECT (sw), "program", p);
2189
#ifdef HAVE_GTKSOURCEVIEW
2190
g_signal_connect (G_OBJECT (buffer), "can-undo",
2191
G_CALLBACK (setup_undo_redo), NULL);
2192
g_signal_connect (G_OBJECT (buffer), "can-redo",
2193
G_CALLBACK (setup_undo_redo), NULL);
1919
2196
g_signal_connect_after (G_OBJECT (p->buffer), "mark_set",
1920
2197
G_CALLBACK (move_cursor),
1924
2201
char *d = g_get_current_dir ();
1925
2202
char *n = g_strdup_printf (_("Program_%d.gel"), cnt);
1926
2203
/* the file name will have an underscore */
1927
p->name = g_strconcat (d, "/", n, NULL);
2204
p->name = g_build_filename (d, n, NULL);
1930
2207
p->vname = g_strdup_printf (_("Program %d"), cnt);
1935
2212
contents = get_contents_vfs (filename);
1936
2213
if (contents != NULL) {
1937
2214
GtkTextIter iter;
2215
#ifdef HAVE_GTKSOURCEVIEW
2216
gtk_source_buffer_begin_not_undoable_action
2217
(GTK_SOURCE_BUFFER (buffer));
1938
2219
gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
1939
2220
gtk_text_buffer_insert_with_tags_by_name
1940
2221
(buffer, &iter, contents, -1, "foo", NULL);
2222
#ifdef HAVE_GTKSOURCEVIEW
2223
gtk_source_buffer_end_not_undoable_action
2224
(GTK_SOURCE_BUFFER (buffer));
1941
2226
g_free (contents);
1943
2228
char *s = g_strdup_printf (_("Cannot open %s"), filename);
2295
2584
int current = gtk_notebook_get_current_page (GTK_NOTEBOOK (notebook));
2296
if (current == 0) /* if the console */
2585
if (current <= 0) /* if the console */
2298
2587
w = gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), current);
2299
2588
p = g_object_get_data (G_OBJECT (w), "program");
2477
2766
curstate.full_expressions?"true":"false");
2478
2767
curstate.full_expressions = gnome_config_get_bool(buf);
2769
g_snprintf(buf,256,"/genius/properties/mixed_fractions=%s",
2770
curstate.mixed_fractions?"true":"false");
2771
curstate.mixed_fractions = gnome_config_get_bool(buf);
2773
g_snprintf(buf,256,"/genius/properties/output_remember=%s",
2774
genius_setup.output_remember?"true":"false");
2775
genius_setup.output_remember = gnome_config_get_bool(buf);
2480
2777
g_snprintf(buf,256,"/genius/properties/max_errors=%d",
2481
2778
curstate.max_errors);
2482
2779
curstate.max_errors = gnome_config_get_int(buf);
2490
2787
curstate.float_prec = 60;
2491
2788
else if (curstate.float_prec > 16384)
2492
2789
curstate.float_prec = 16384;
2791
g_snprintf(buf,256,"/genius/properties/precision_remember=%s",
2792
genius_setup.precision_remember?"true":"false");
2793
genius_setup.precision_remember = gnome_config_get_bool(buf);
2626
2927
foo = g_find_program_in_path ("genius-readline-helper-fifo");
2628
2929
if (foo == NULL) {
2629
GtkWidget *d = geniusbox (TRUE /* error */,
2930
GtkWidget *d = geniusbox (TRUE /*error*/,
2931
FALSE /*always textbox*/,
2932
NULL /*textbox_title*/,
2933
FALSE /*bind_response*/,
2631
2934
_("Can't execute genius-readline-helper-fifo!\n"));
2633
2936
gtk_dialog_run (GTK_DIALOG (d));
3070
3375
gtk_widget_hide (genius_menu[PLUGINS_MENU].widget);
3073
/* No programs in the menu */
3074
gtk_widget_hide (genius_menu[PROGRAMS_MENU].widget);
3076
3378
/*setup appbar*/
3077
3379
appbar = gnome_appbar_new(FALSE, TRUE, GNOME_PREFERENCES_USER);
3078
3380
gnome_app_set_statusbar(GNOME_APP(genius_window), appbar);
3186
3488
/*try the library file in the current/../lib directory*/
3187
3489
gel_load_compiled_file (NULL, "../lib/lib.cgel", FALSE);
3189
gel_load_compiled_file (NULL, LIBRARY_DIR "/gel/lib.cgel",
3491
gel_load_compiled_file (NULL,
3492
LIBRARY_DIR G_DIR_SEPARATOR_S
3493
"gel" G_DIR_SEPARATOR_S "lib.cgel",
3194
3498
* Read init files
3196
file = g_strconcat(g_getenv("HOME"),"/.geniusinit",NULL);
3500
file = g_build_filename (g_get_home_dir (), ".geniusinit",NULL);
3198
3502
gel_load_file(NULL, file, FALSE);