1 | /*----------------------------------------------------------------------* |
1 | /*----------------------------------------------------------------------* |
2 | * File: rxvtd.C |
2 | * File: rxvtd.C |
3 | *----------------------------------------------------------------------* |
3 | *----------------------------------------------------------------------* |
4 | * |
4 | * |
5 | * All portions of code are copyright by their respective author/s. |
5 | * All portions of code are copyright by their respective author/s. |
6 | * Copyright (c) 2003-2006 Marc Lehmann <pcg@goof.com> |
6 | * Copyright (c) 2003-2007 Marc Lehmann <pcg@goof.com> |
7 | * |
7 | * |
8 | * This program is free software; you can redistribute it and/or modify |
8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License as published by |
9 | * it under the terms of the GNU General Public License as published by |
10 | * the Free Software Foundation; either version 2 of the License, or |
10 | * the Free Software Foundation; either version 2 of the License, or |
11 | * (at your option) any later version. |
11 | * (at your option) any later version. |
… | |
… | |
196 | rxvt_term *term = new rxvt_term; |
196 | rxvt_term *term = new rxvt_term; |
197 | |
197 | |
198 | term->log_hook = &log_cb; |
198 | term->log_hook = &log_cb; |
199 | term->getfd_hook = &getfd_cb; |
199 | term->getfd_hook = &getfd_cb; |
200 | |
200 | |
201 | bool success; |
201 | bool success = true; |
202 | |
202 | |
203 | try |
203 | try |
204 | { |
204 | { |
205 | success = term->init (argv, envv); |
205 | term->init (argv, envv); |
206 | } |
206 | } |
207 | catch (const class rxvt_failure_exception &e) |
207 | catch (const class rxvt_failure_exception &e) |
208 | { |
208 | { |
209 | success = false; |
209 | success = false; |
210 | } |
210 | } |
… | |
… | |
246 | rxvt_log ("%s: unknown option '%s', aborting.\n", argv [0], argv [i]); |
246 | rxvt_log ("%s: unknown option '%s', aborting.\n", argv [0], argv [i]); |
247 | return EXIT_FAILURE; |
247 | return EXIT_FAILURE; |
248 | } |
248 | } |
249 | } |
249 | } |
250 | |
250 | |
251 | chdir ("/"); |
251 | // optionally open display and never release it. |
252 | |
|
|
253 | if (opt_opendisplay) |
252 | if (opt_opendisplay) |
254 | displays.get (getenv ("DISPLAY")); // open display and never release it |
253 | if (const char *dpy = getenv ("DISPLAY")) |
|
|
254 | displays.get (dpy ? dpy : ":0"); // move string logic into rxvt_display maybe? |
255 | |
255 | |
256 | char *sockname = rxvt_connection::unix_sockname (); |
256 | char *sockname = rxvt_connection::unix_sockname (); |
257 | unix_listener l (sockname); |
257 | unix_listener l (sockname); |
|
|
258 | |
|
|
259 | chdir ("/"); |
258 | |
260 | |
259 | if (!opt_quiet) |
261 | if (!opt_quiet) |
260 | { |
262 | { |
261 | printf ("rxvt-unicode daemon listening on %s.\n", sockname); |
263 | printf ("rxvt-unicode daemon listening on %s.\n", sockname); |
262 | fflush (stdout); |
264 | fflush (stdout); |