Skip to content

Commit

Permalink
Add option parsing and support for -h and -v switches to fishd
Browse files Browse the repository at this point in the history
darcs-hash:20060123162534-ac50b-e993c28ee80cf83dc1f83a64f2cf7bac5dc1c55d.gz
  • Loading branch information
liljencrantz committed Jan 23, 2006
1 parent 9853286 commit 89eb80f
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 6 deletions.
8 changes: 5 additions & 3 deletions Makefile.in
Expand Up @@ -85,6 +85,7 @@ FISH_TESTS_OBJS := $(COMMON_OBJS) $(COMMON_OBJS_WITH_CODE) \

# All objects that the system needs to build fishd
FISHD_OBJS := fishd.o env_universal_common.o common.o util.o wutil.o \
doc_src/fishd.o

# All objects needed to build mimedb
MIME_OBJS := mimedb.o xdgmimealias.o xdgmime.o xdgmimeglob.o \
Expand Down Expand Up @@ -171,7 +172,8 @@ PROGRAMS:=fish set_color @XSEL@ @SEQ_FALLBACK@ mimedb count fish_pager fishd
MANUALS:=doc_src/fish.1 @XSEL_MAN_PATH@ \
doc_src/builtin_doc/man/man1/mimedb.1 \
doc_src/builtin_doc/man/man1/set_color.1 \
doc_src/builtin_doc/man/man1/count.1
doc_src/builtin_doc/man/man1/count.1 \
doc_src/builtin_doc/man/man1/fishd.1

#All translation message catalogs
TRANSLATIONS_SRC := $(wildcard po/*.po)
Expand Down Expand Up @@ -366,7 +368,7 @@ uninstall: uninstall-translations
rm -f $(DESTDIR)$(sysconfdir)$(fishinputfile)
rm -r $(DESTDIR)$(sysconfdir)$(fishdir)
rm -r $(DESTDIR)$(docdir)
for i in fish.1* @XSEL_MAN@ mimedb.1* set_color.1* count.1*; do \
for i in fish.1* @XSEL_MAN@ mimedb.1* fishd.1* set_color.1* count.1*; do \
rm $(DESTDIR)$(mandir)/man1/$$i; \
done;

Expand All @@ -393,7 +395,7 @@ fish: $(FISH_OBJS)
fish_pager: $(FISH_PAGER_OBJS)
$(CC) $(FISH_PAGER_OBJS) $(LDFLAGS) -o $@

fishd: $(FISHD_OBJS)
fishd: $(FISHD_OBJS)
$(CC) $(FISHD_OBJS) $(LDFLAGS) -o $@

fish_tests: $(FISH_TESTS_OBJS)
Expand Down
1 change: 1 addition & 0 deletions fish.spec.in
Expand Up @@ -52,6 +52,7 @@ fi
%_mandir/man1/mimedb.1*
%_mandir/man1/set_color.1*
%_mandir/man1/count.1*
%_mandir/man1/fishd.1*
%attr(0755,root,root) %_bindir/fish
%attr(0755,root,root) %_bindir/fishd
%attr(0755,root,root) %_bindir/fish_pager
Expand Down
76 changes: 73 additions & 3 deletions fishd.c
Expand Up @@ -7,6 +7,9 @@ instances. When no clients are running, fishd will automatically shut
down and save.
*/

#include "config.h"

#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
Expand All @@ -19,6 +22,10 @@ down and save.
#include <pwd.h>
#include <fcntl.h>

#ifdef HAVE_GETOPT_H
#include <getopt.h>
#endif

#include <errno.h>
#include <locale.h>
#include <signal.h>
Expand Down Expand Up @@ -75,6 +82,11 @@ static int sock;
*/
static int quit=0;

/**
Dynamically generated function, made from the documentation in doc_src.
*/
void print_help();

/**
Constructs the fish socket filename
*/
Expand Down Expand Up @@ -396,11 +408,9 @@ static void save()
*/
static void init()
{
program_name=L"fishd";

sock = get_socket();
daemonize();
wsetlocale( LC_ALL, L"" );
env_universal_common_init( &broadcast );

load();
Expand All @@ -419,8 +429,68 @@ int main( int argc, char ** argv )

fd_set read_fd, write_fd;

init();
program_name=L"fishd";
wsetlocale( LC_ALL, L"" );

/*
Parse options
*/
while( 1 )
{
#ifdef HAVE_GETOPT_LONG
static struct option
long_options[] =
{
{
"help", no_argument, 0, 'h'
}
,
{
"version", no_argument, 0, 'v'
}
,
{
0, 0, 0, 0
}
}
;

int opt_index = 0;

int opt = getopt_long( argc,
argv,
"hv",
long_options,
&opt_index );

#else
int opt = getopt( argc,
argv,
"hv" );
#endif
if( opt == -1 )
break;

switch( opt )
{
case 0:
break;

case 'h':
print_help();
exit(0);

case 'v':
debug( 0, L"%ls, version %s\n", program_name, PACKAGE_VERSION );
exit( 0 );

case '?':
return 1;

}
}

init();
while(1)
{
connection_t *c;
Expand Down

0 comments on commit 89eb80f

Please sign in to comment.