Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
John McEleney
/
mailutils
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
e3e2f785
...
e3e2f785b55afb404573fd9a2b58291b2252f141
authored
2001-08-03 19:06:33 +0000
by
Sergey Poznyakoff
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Call collect_output() before dropping mailbox. Added exception handling. Added user-name variable.
1 parent
f77e61f3
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
7 deletions
guimb/run_scm.c
guimb/run_scm.c
View file @
e3e2f78
...
...
@@ -29,12 +29,33 @@ run_main (int argc, char *argv[])
}
SCM
_current_mailbox
;
SCM
_user_name
;
static
SCM
catch_body
(
void
*
data
)
{
if
(
program_file
)
scm_primitive_load
(
scm_makfrom0str
(
program_file
));
if
(
program_expr
)
scm_eval_0str
(
program_expr
);
return
SCM_BOOL_F
;
}
static
SCM
catch_handler
(
void
*
data
,
SCM
tag
,
SCM
throw_args
)
{
collect_drop_mailbox
();
return
scm_handle_by_message
(
"guimb"
,
tag
,
throw_args
);
}
void
_scheme_main
()
{
SCM
*
scm_loc
;
int
rc
;
if
(
debug_guile
)
{
SCM_DEVAL_P
=
1
;
...
...
@@ -43,7 +64,7 @@ _scheme_main ()
SCM_RESET_DEBUG_MODE
;
}
/* Initialize scheme library */
/* Initialize scheme library */
mu_scm_init
();
/* Provide basic primitives */
...
...
@@ -53,12 +74,15 @@ _scheme_main ()
scm_loc
=
SCM_CDRLOC
(
scm_sysintern
(
"current-mailbox"
,
SCM_EOL
));
*
scm_loc
=
_current_mailbox
;
if
(
program_file
)
scm_primitive_load
(
scm_makfrom0str
(
program_file
));
_user_name
=
user_name
?
scm_makfrom0str
(
user_name
)
:
SCM_BOOL_F
;
scm_loc
=
SCM_CDRLOC
(
scm_sysintern
(
"user-name"
,
SCM_EOL
));
*
scm_loc
=
_user_name
;
if
(
program_expr
)
scm_eval_0str
(
program_expr
);
scm_internal_lazy_catch
(
SCM_BOOL_T
,
catch_body
,
NULL
,
catch_handler
,
NULL
);
rc
=
collect_output
();
collect_drop_mailbox
();
exit
(
rc
);
}
...
...
Please
register
or
sign in
to post a comment