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
6567d383
...
6567d383b2fbc7c333d59f7878432ecb7912b83f
authored
2001-07-19 14:52:25 +0000
by
Sergey Poznyakoff
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Main functions.
1 parent
1f2f9ff2
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
139 additions
and
0 deletions
guimb/main.c
guimb/main.c
0 → 100644
View file @
6567d38
/* GNU mailutils - a suite of utilities for electronic mail
Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "guimb.h"
#include "getopt.h"
static
char
short_options
[]
=
"de:f:g:hm:v"
;
static
struct
option
long_options
[]
=
{
{
"debug"
,
no_argument
,
0
,
'd'
},
{
"expression"
,
required_argument
,
0
,
'e'
},
{
"file"
,
required_argument
,
0
,
'f'
},
{
"help"
,
no_argument
,
0
,
'h'
},
{
"guile-command"
,
required_argument
,
0
,
'g'
},
{
"version"
,
no_argument
,
0
,
'v'
},
{
0
,
0
,
0
,
0
}
};
char
*
program_file
;
char
*
program_expr
;
int
debug_guile
;
static
void
usage
(
void
);
static
int
g_size
;
static
int
g_argc
;
static
char
**
g_argv
;
#define ARG_INC 16
void
append_arg
(
char
*
arg
)
{
if
(
g_argc
==
g_size
)
{
g_size
+=
ARG_INC
;
g_argv
=
realloc
(
g_argv
,
g_size
*
sizeof
(
g_argv
[
0
]));
if
(
!
g_argv
)
{
util_error
(
"not enough memory"
);
exit
(
1
);
}
}
g_argv
[
g_argc
++
]
=
arg
;
}
int
main
(
int
argc
,
char
*
argv
[])
{
int
c
;
while
((
c
=
getopt_long
(
argc
,
argv
,
short_options
,
long_options
,
NULL
))
!=
-
1
)
switch
(
c
)
{
case
'd'
:
debug_guile
=
1
;
break
;
case
'f'
:
program_file
=
optarg
;
break
;
case
'e'
:
program_expr
=
optarg
;
break
;
case
'g'
:
append_arg
(
optarg
);
break
;
case
'h'
:
usage
();
exit
(
0
);
case
'v'
:
printf
(
"guimb ("
PACKAGE
" "
VERSION
")
\n
"
);
exit
(
0
);
default:
fprintf
(
stderr
,
"Invalid argument. Try guimb --help for more info
\n
"
);
exit
(
1
);
}
append_arg
(
NULL
);
g_argc
--
;
/* Register the desired formats. */
{
list_t
lst
;
registrar_get_list
(
&
lst
);
list_append
(
lst
,
mbox_record
);
list_append
(
lst
,
path_record
);
list_append
(
lst
,
pop_record
);
list_append
(
lst
,
imap_record
);
/* Possible supported mailers. */
list_append
(
lst
,
sendmail_record
);
list_append
(
lst
,
smtp_record
);
}
collect_open_mailbox_file
();
if
(
argv
[
optind
])
{
for
(;
argv
[
optind
];
optind
++
)
collect_append_file
(
argv
[
optind
]);
}
else
collect_append_file
(
"-"
);
run_main
(
g_argc
,
g_argv
);
}
static
char
usage_str
[]
=
"Usage: guimb [OPTIONS] [MBOX ...]
\n
"
"Process the contents of the specified mailboxes using a Scheme program
\n
"
"or expression.
\n
"
"Options are:
\n
"
" -d, --debug Start with debugging evaluator and backtraces.
\n
"
" -e, --expression EXPR Execute scheme expression.
\n
"
" -f, --file PROGFILE Read program from PROGFILE.
\n
"
" -g, --guile-command ARG Append ARG to the command line passed to guile
\n
"
" program.
\n
"
" -h, --help Display help message.
\n
"
" -v, --version Display program version.
\n
"
"
\n
"
"When both --file and --expression are specified, file is evaluated first.
\n
"
"If no mailboxes are specified the standard input is read.
\n
"
;
void
usage
()
{
printf
(
"%s
\n
"
"Report bugs to <bug-mailutils@gnu.org>
\n
"
,
usage_str
);
}
Please
register
or
sign in
to post a comment