- action.sa_handler = signalhandler;
- action.sa_mask = sigset_t();
- action.sa_flags = SA_NOCLDSTOP | SA_NODEFER;
-
- sigaction(SIGPIPE, &action, NULL);
- sigaction(SIGSEGV, &action, NULL);
- sigaction(SIGFPE, &action, NULL);
- sigaction(SIGTERM, &action, NULL);
- sigaction(SIGINT, &action, NULL);
- sigaction(SIGHUP, &action, NULL);
-#else // !HAVE_SIGACTION
- signal(SIGPIPE, (RETSIGTYPE (*)(int)) signalhandler);
- signal(SIGSEGV, (RETSIGTYPE (*)(int)) signalhandler);
- signal(SIGFPE, (RETSIGTYPE (*)(int)) signalhandler);
- signal(SIGTERM, (RETSIGTYPE (*)(int)) signalhandler);
- signal(SIGINT, (RETSIGTYPE (*)(int)) signalhandler);
- signal(SIGHUP, (RETSIGTYPE (*)(int)) signalhandler);
-#endif // HAVE_SIGACTION
-
- while (! _shutdown) {
- usleep(500);
+ for (int i = 1; i < argc; ++i) {
+ if (string(argv[i]) == "-display") {
+ if (++i >= argc) {
+ fprintf(stderr, i18n(mainSet, mainDISPLAYRequiresArg,
+ "error: '-display' requires an argument\n"));
+ exit(1);
+ }
+ display_name = argv[i];
+ } else if (string(argv[i]) == "-rc") {
+ if (++i >= argc) {
+ fprintf(stderr, i18n(mainSet, mainRCRequiresArg,
+ "error: '-rc' requires an argument\n"));
+ exit(1);
+ }
+ rc_file = argv[i];
+ }