summaryrefslogtreecommitdiff
path: root/util/bsetroot.cc
diff options
context:
space:
mode:
authorpekdon <pekdon>2002-01-18 23:01:20 (GMT)
committerpekdon <pekdon>2002-01-18 23:01:20 (GMT)
commit0cd4c92647f1e11f4ff8af11af906005c1a21f04 (patch)
treec9ace71ddefb326789a27a7f4a23ce8330dd17d3 /util/bsetroot.cc
parent74454c8f2a8f1fcae493930a5a00cafab0959a4c (diff)
downloadfluxbox_lack-0cd4c92647f1e11f4ff8af11af906005c1a21f04.zip
fluxbox_lack-0cd4c92647f1e11f4ff8af11af906005c1a21f04.tar.bz2
bsetroot now sets backgrounds that trans Eterms can use
Diffstat (limited to 'util/bsetroot.cc')
-rw-r--r--util/bsetroot.cc537
1 files changed, 331 insertions, 206 deletions
diff --git a/util/bsetroot.cc b/util/bsetroot.cc
index 7f13854..4a610a7 100644
--- a/util/bsetroot.cc
+++ b/util/bsetroot.cc
@@ -14,287 +14,412 @@
14#include "../src/i18n.hh" 14#include "../src/i18n.hh"
15#include "bsetroot.hh" 15#include "bsetroot.hh"
16 16
17#include <iostream>
17 18
18bsetroot::bsetroot(int argc, char **argv, char *dpy_name) 19bsetroot::bsetroot(int argc, char **argv, char *dpy_name)
19 : BaseDisplay(argv[0], dpy_name) 20 : BaseDisplay(argv[0], dpy_name) {
20{
21 pixmaps = (Pixmap *) 0;
22 grad = fore = back = (char *) 0;
23
24 Bool mod = False, sol = False, grd = False;
25 int mod_x = 0, mod_y = 0, i = 0;
26 img_ctrl = new BImageControl*[10];
27 for (; i < getNumberOfScreens(); i++) {
28 img_ctrl[i] = new BImageControl(this, getScreenInfo(i), True);
29
30 }
31 21
32 for (i = 1; i < argc; i++) { 22 pixmaps = (Pixmap *) 0;
33 if (! strcmp("-help", argv[i])) { 23 grad = fore = back = (char *) 0;
34 usage();
35 } else if ((! strcmp("-fg", argv[i])) ||
36 (! strcmp("-foreground", argv[i])) ||
37 (! strcmp("-from", argv[i]))) {
38 if ((++i) >= argc) usage(1);
39 24
40 fore = argv[i]; 25 Bool mod = False, sol = False, grd = False;
41 } else if ((! strcmp("-bg", argv[i])) || 26 int mod_x = 0, mod_y = 0, i = 0;
42 (! strcmp("-background", argv[i])) ||
43 (! strcmp("-to", argv[i]))) {
44 if ((++i) >= argc) usage(1);
45 27
46 back = argv[i]; 28 img_ctrl = new BImageControl*[10];
47 } else if (! strcmp("-solid", argv[i])) { 29 for (; i < getNumberOfScreens(); i++) {
48 if ((++i) >= argc) usage(1); 30 img_ctrl[i] = new BImageControl(this, getScreenInfo(i), True);
31 }
49 32
33 for (i = 1; i < argc; i++) {
34 if (! strcmp("-help", argv[i])) {
35 usage();
36
37 } else if ((! strcmp("-fg", argv[i])) ||
38 (! strcmp("-foreground", argv[i])) ||
39 (! strcmp("-from", argv[i]))) {
40 if ((++i) >= argc)
41 usage(1);
42 fore = argv[i];
43
44 } else if ((! strcmp("-bg", argv[i])) ||
45 (! strcmp("-background", argv[i])) ||
46 (! strcmp("-to", argv[i]))) {
47 if ((++i) >= argc)
48 usage(1);
49 back = argv[i];
50
51 } else if (! strcmp("-solid", argv[i])) {
52 if ((++i) >= argc)
53 usage(1);
50 fore = argv[i]; 54 fore = argv[i];
51 sol = True; 55 sol = True;
52 } else if (! strcmp("-mod", argv[i])) {
53 if ((++i) >= argc) usage();
54
55 mod_x = atoi(argv[i]);
56
57 if ((++i) >= argc) usage();
58
59 mod_y = atoi(argv[i]);
60
61 if (mod_x < 1) mod_x = 1;
62 if (mod_y < 1) mod_y = 1;
63 56
64 mod = True; 57 } else if (! strcmp("-mod", argv[i])) {
65 } else if (! strcmp("-gradient", argv[i])) { 58 if ((++i) >= argc)
66 if ((++i) >= argc) usage(); 59 usage();
67 60 mod_x = atoi(argv[i]);
68 grad = argv[i]; 61 if ((++i) >= argc)
69 grd = True; 62 usage();
70 } else if (! strcmp("-display", argv[i])) { 63 mod_y = atoi(argv[i]);
71 // -display passed through tests ealier... we just skip it now 64 if (mod_x < 1)
72 i++; 65 mod_x = 1;
73 } else 66 if (mod_y < 1)
74 usage(); 67 mod_y = 1;
75 } 68 mod = True;
69
70 } else if (! strcmp("-gradient", argv[i])) {
71 if ((++i) >= argc)
72 usage();
73
74 grad = argv[i];
75 grd = True;
76
77 } else if (! strcmp("-display", argv[i])) {
78 // -display passed through tests earlier... we just skip it now
79 i++;
80
81 } else
82 usage();
83 }
76 84
77 if ((mod + sol + grd) != True) { 85 if ((mod + sol + grd) != True) {
78 fprintf(stderr, 86 fprintf(stderr,
79 I18n::instance()-> 87 I18n::instance()->
80 getMessage( 88 getMessage(
81#ifdef NLS 89#ifdef NLS
82 bsetrootSet, bsetrootMustSpecify, 90 bsetrootSet, bsetrootMustSpecify,
83#else // !NLS 91#else // !NLS
84 0, 0, 92 0, 0,
85#endif // NLS 93#endif // NLS
86 "%s: error: must specify on of: -solid, -mod, -gradient\n"), 94 "%s: error: must specify on of: -solid, -mod, -gradient\n"),
87 getApplicationName()); 95 getApplicationName());
88 96
89 usage(2); 97 usage(2);
90 } 98 }
91 99
92 if (sol && fore) solid();
93 else if (mod && mod_x && mod_y && fore && back) modula(mod_x, mod_y);
94 else if (grd && grad && fore && back) gradient();
95 else usage();
96 display = getXDisplay(); 100 display = getXDisplay();
97 num_screens = getNumberOfScreens(); 101 num_screens = getNumberOfScreens();
102
103 if (sol && fore)
104 solid();
105 else if (mod && mod_x && mod_y && fore && back)
106 modula(mod_x, mod_y);
107 else if (grd && grad && fore && back)
108 gradient();
109 else
110 usage();
111
98} 112}
99 113
100 114
101bsetroot::~bsetroot(void) { 115bsetroot::~bsetroot(void) {
102 XKillClient(display, AllTemporary); 116 XKillClient(display, AllTemporary);
103 117
104 if (pixmaps) { 118 if (pixmaps) { // should always be true
105 int i; 119 XSetCloseDownMode(display, RetainTemporary);
106 for (i = 0; i < num_screens; i++)
107 if (pixmaps[i] != None) {
108 XSetCloseDownMode(display, RetainTemporary);
109 break;
110 }
111 120
112 delete [] pixmaps; 121 delete [] pixmaps;
113 } 122 }
123#ifdef DEBUG
124 else
125 cerr<<"~bsetroot: why don't we have any pixmaps?"<<endl;
126#endif // DEBUG
127
128 if (img_ctrl) {
129 int i = 0;
130 for (; i < num_screens; i++)
131 delete img_ctrl[i];
132
133 delete [] img_ctrl;
134 }
135}
114 136
115 if (img_ctrl) { 137//------------ setRootAtoms ---------------
116 int i = 0; 138// set root pixmap atoms so that apps like
117 for (; i < num_screens; i++) 139// Eterm and xchat will be able to use
118 delete img_ctrl[i]; 140// transparent background
141//-----------------------------------------
142void bsetroot::setRootAtoms(Pixmap pixmap, int screen) {
143 Atom atom_root, atom_eroot, type;
144 unsigned char *data_root, *data_eroot;
145 int format;
146 unsigned long length, after;
147
148 atom_root = XInternAtom(display, "_XROOTMAP_ID", true);
149 atom_eroot = XInternAtom(display, "ESETROOT_PMAP_ID", true);
150
151 // doing this to clean up after old background
152 if (atom_root != None && atom_eroot != None) {
153 XGetWindowProperty(display, getScreenInfo(screen)->getRootWindow(),
154 atom_root, 0L, 1L, false, AnyPropertyType,
155 &type, &format, &length, &after, &data_root);
156
157 if (type == XA_PIXMAP) {
158 XGetWindowProperty(display, getScreenInfo(screen)->getRootWindow(),
159 atom_eroot, 0L, 1L, False, AnyPropertyType,
160 &type, &format, &length, &after, &data_eroot);
161
162 if (data_root && data_eroot && type == XA_PIXMAP &&
163 *((Pixmap *) data_root) == *((Pixmap *) data_eroot)) {
164
165 XKillClient(display, *((Pixmap *) data_root));
166 }
167 }
168 }
119 169
120 delete [] img_ctrl; 170 atom_root = XInternAtom(display, "_XROOTPMAP_ID", false);
121 } 171 atom_eroot = XInternAtom(display, "ESETROOT_PMAP_ID", false);
122
123}
124 172
173 if (atom_root == None || atom_eroot == None) {
174 cerr<<"couldn't create pixmap atoms, giving up!"<<endl;
175 exit(1);
176 }
125 177
178 // setting new background atoms
179 XChangeProperty(display, getScreenInfo(screen)->getRootWindow(),
180 atom_root, XA_PIXMAP, 32, PropModeReplace, (unsigned char *) &pixmap, 1);
181 XChangeProperty(display, getScreenInfo(screen)->getRootWindow(),
182 atom_eroot, XA_PIXMAP, 32, PropModeReplace, (unsigned char *) &pixmap, 1);
183
184}
185
186//-------------- solid --------------------
187// draws pixmaps with a single color
188//-----------------------------------------
126void bsetroot::solid(void) { 189void bsetroot::solid(void) {
127 register int screen = 0; 190 register int screen = 0;
128 191
192 pixmaps = new Pixmap[getNumberOfScreens()];
193
129 for (; screen < getNumberOfScreens(); screen++) { 194 for (; screen < getNumberOfScreens(); screen++) {
130 BColor c; 195 BColor c;
196 GC gc;
197 XGCValues gcv;
131 198
132 img_ctrl[screen]->parseColor(&c, fore); 199 img_ctrl[screen]->parseColor(&c, fore);
133 if (! c.isAllocated()) c.setPixel(BlackPixel(getXDisplay(), screen)); 200 if (! c.isAllocated())
201 c.setPixel(BlackPixel(getXDisplay(), screen));
202
203 gcv.foreground = c.getPixel();
204 gc = XCreateGC(getXDisplay(), getScreenInfo(screen)->getRootWindow(),
205 GCForeground , &gcv);
206
207 pixmaps[screen] = XCreatePixmap(getXDisplay(),
208 getScreenInfo(screen)->getRootWindow(),
209 getScreenInfo(screen)->getWidth(), getScreenInfo(screen)->getHeight(),
210 getScreenInfo(screen)->getDepth());
211
212 XFillRectangle(getXDisplay(), pixmaps[screen], gc, 0, 0,
213 getScreenInfo(screen)->getWidth(), getScreenInfo(screen)->getHeight());
214
215 setRootAtoms(pixmaps[screen], screen);
216
217 XSetWindowBackgroundPixmap(getXDisplay(),
218 getScreenInfo(screen)->getRootWindow(), pixmaps[screen]);
134 219
135 XSetWindowBackground(getXDisplay(), getScreenInfo(screen)->getRootWindow(),
136 c.getPixel());
137 XClearWindow(getXDisplay(), getScreenInfo(screen)->getRootWindow()); 220 XClearWindow(getXDisplay(), getScreenInfo(screen)->getRootWindow());
221
222 XFreeGC(getXDisplay(), gc);
138 } 223 }
139} 224}
140 225
141 226//-------------- modula ------------------
227// draws pixmaps with an 16x16 pattern with
228// fg and bg colors.
229//-----------------------------------------
142void bsetroot::modula(int x, int y) { 230void bsetroot::modula(int x, int y) {
143 char data[32]; 231 char data[32];
144 long pattern; 232 long pattern;
145 233
146 register int screen, i; 234 register int screen, i;
147 235
148 pixmaps = new Pixmap[getNumberOfScreens()]; 236 pixmaps = new Pixmap[getNumberOfScreens()];
149 237
150 for (pattern = 0, screen = 0; screen < getNumberOfScreens(); screen++) { 238 for (pattern = 0, screen = 0; screen < getNumberOfScreens(); screen++) {
151 for (i = 0; i < 16; i++) {
152 pattern <<= 1;
153 if ((i % x) == 0)
154 pattern |= 0x0001;
155 }
156 239
157 for (i = 0; i < 16; i++) 240 for (i = 0; i < 16; i++) {
158 if ((i % y) == 0) { 241 pattern <<= 1;
159 data[(i * 2)] = (char) 0xff; 242 if ((i % x) == 0)
160 data[(i * 2) + 1] = (char) 0xff; 243 pattern |= 0x0001;
161 } else { 244 }
162 data[(i * 2)] = pattern & 0xff;
163 data[(i * 2) + 1] = (pattern >> 8) & 0xff;
164 }
165 245
166 BColor f, b; 246 for (i = 0; i < 16; i++) {
167 GC gc; 247 if ((i % y) == 0) {
168 Pixmap bitmap; 248 data[(i * 2)] = (char) 0xff;
169 XGCValues gcv; 249 data[(i * 2) + 1] = (char) 0xff;
250 } else {
251 data[(i * 2)] = pattern & 0xff;
252 data[(i * 2) + 1] = (pattern >> 8) & 0xff;
253 }
254 }
170 255
171 bitmap = 256 BColor f, b;
172 XCreateBitmapFromData(getXDisplay(), 257 GC gc;
173 getScreenInfo(screen)->getRootWindow(), data, 258 Pixmap bitmap, r_bitmap;
174 16, 16); 259 XGCValues gcv;
175 260
176 img_ctrl[screen]->parseColor(&f, fore); 261 bitmap = XCreateBitmapFromData(getXDisplay(),
177 img_ctrl[screen]->parseColor(&b, back); 262 getScreenInfo(screen)->getRootWindow(), data, 16, 16);
178 263
179 if (! f.isAllocated()) f.setPixel(WhitePixel(getXDisplay(), screen)); 264 // bitmap used as tile, needs to have the same depth as background pixmap
180 if (! b.isAllocated()) b.setPixel(BlackPixel(getXDisplay(), screen)); 265 r_bitmap = XCreatePixmap(getXDisplay(),
266 getScreenInfo(screen)->getRootWindow(), 16, 16,
267 getScreenInfo(screen)->getDepth());
181 268
182 gcv.foreground = f.getPixel(); 269 img_ctrl[screen]->parseColor(&f, fore);
183 gcv.background = b.getPixel(); 270 img_ctrl[screen]->parseColor(&b, back);
184 271
185 gc = XCreateGC(getXDisplay(), getScreenInfo(screen)->getRootWindow(), 272 if (! f.isAllocated())
186 GCForeground | GCBackground, &gcv); 273 f.setPixel(WhitePixel(getXDisplay(), screen));
274 if (! b.isAllocated())
275 b.setPixel(BlackPixel(getXDisplay(), screen));
187 276
188 pixmaps[screen] = 277 gcv.foreground = f.getPixel();
189 XCreatePixmap(getXDisplay(), getScreenInfo(screen)->getRootWindow(), 278 gcv.background = b.getPixel();
190 16, 16, getScreenInfo(screen)->getDepth());
191 279
192 XCopyPlane(getXDisplay(), bitmap, pixmaps[screen], gc, 280 gc = XCreateGC(getXDisplay(), getScreenInfo(screen)->getRootWindow(),
193 0, 0, 16, 16, 0, 0, 1l); 281 GCForeground | GCBackground, &gcv);
194 XSetWindowBackgroundPixmap(getXDisplay(),
195 getScreenInfo(screen)->getRootWindow(),
196 pixmaps[screen]);
197 XClearWindow(getXDisplay(), getScreenInfo(screen)->getRootWindow());
198 282
199 XFreeGC(getXDisplay(), gc); 283 // copying bitmap to the one going to be used as tile
200 XFreePixmap(getXDisplay(), bitmap); 284 XCopyPlane(getXDisplay(), bitmap, r_bitmap, gc,
285 0, 0, 16, 16, 0, 0, 1l);
201 286
202 if (! (getScreenInfo(screen)->getVisual()->c_class & 1)) { 287 XSetTile(getXDisplay(), gc, r_bitmap);
203 XFreePixmap(getXDisplay(), pixmaps[screen]); 288 XSetFillStyle(getXDisplay(), gc, FillTiled);
204 pixmaps[screen] = None; 289
205 } 290 pixmaps[screen] = XCreatePixmap(getXDisplay(),
206 } 291 getScreenInfo(screen)->getRootWindow(),
207} 292 getScreenInfo(screen)->getWidth(), getScreenInfo(screen)->getHeight(),
293 getScreenInfo(screen)->getDepth());
294
295 XFillRectangle(getXDisplay(), pixmaps[screen], gc, 0, 0,
296 getScreenInfo(screen)->getWidth(), getScreenInfo(screen)->getHeight());
208 297
298 setRootAtoms(pixmaps[screen], screen);
209 299
300 XSetWindowBackgroundPixmap(getXDisplay(),
301 getScreenInfo(screen)->getRootWindow(), pixmaps[screen]);
302
303 XClearWindow(getXDisplay(), getScreenInfo(screen)->getRootWindow());
304
305 XFreeGC(getXDisplay(), gc);
306 XFreePixmap(getXDisplay(), bitmap);
307 XFreePixmap(getXDisplay(), r_bitmap);
308 }
309}
310
311//-------------- gradient -----------------
312// draws pixmaps with a fluxbox texure
313//-----------------------------------------
210void bsetroot::gradient(void) { 314void bsetroot::gradient(void) {
211 register int screen; 315 register int screen;
316 // using temporaray pixmap and then copying it to background pixmap, as it'll
317 // get crashed somewhere on the way causing apps like XChat chrashing
318 // as the pixmap has been destroyed
319 Pixmap tmp;
320 pixmaps = new Pixmap[getNumberOfScreens()];
321
322 for (screen = 0; screen < getNumberOfScreens(); screen++) {
323 BTexture texture;
324 GC gc;
325 XGCValues gcv;
326
327 img_ctrl[screen]->parseTexture(&texture, grad);
328 img_ctrl[screen]->parseColor(texture.getColor(), fore);
329 img_ctrl[screen]->parseColor(texture.getColorTo(), back);
330
331 if (! texture.getColor()->isAllocated())
332 texture.getColor()->setPixel(WhitePixel(getXDisplay(), screen));
333 if (! texture.getColorTo()->isAllocated())
334 texture.getColorTo()->setPixel(BlackPixel(getXDisplay(), screen));
212 335
213 pixmaps = new Pixmap[getNumberOfScreens()]; 336 tmp = img_ctrl[screen]->renderImage(getScreenInfo(screen)->getWidth(),
337 getScreenInfo(screen)->getHeight(), &texture);
214 338
215 for (screen = 0; screen < getNumberOfScreens(); screen++) { 339 pixmaps[screen] = XCreatePixmap(getXDisplay(),
216 BTexture texture; 340 getScreenInfo(screen)->getRootWindow(),
217 img_ctrl[screen]->parseTexture(&texture, grad); 341 getScreenInfo(screen)->getWidth(), getScreenInfo(screen)->getHeight(),
218 img_ctrl[screen]->parseColor(texture.getColor(), fore); 342 getScreenInfo(screen)->getDepth());
219 img_ctrl[screen]->parseColor(texture.getColorTo(), back);
220 343
221 if (! texture.getColor()->isAllocated()) 344 gc = XCreateGC(getXDisplay(), getScreenInfo(screen)->getRootWindow(),
222 texture.getColor()->setPixel(WhitePixel(getXDisplay(), screen)); 345 GCForeground , &gcv);
223 if (! texture.getColorTo()->isAllocated())
224 texture.getColorTo()->setPixel(BlackPixel(getXDisplay(), screen));
225 346
226 pixmaps[screen] = 347 XCopyArea(getXDisplay(), tmp, pixmaps[screen], gc, 0, 0,
227 img_ctrl[screen]->renderImage(getScreenInfo(screen)->getWidth(), 348 getScreenInfo(screen)->getWidth(), getScreenInfo(screen)->getHeight(),
228 getScreenInfo(screen)->getHeight(), 349 0, 0);
229 &texture); 350
351 setRootAtoms(pixmaps[screen], screen);
230 352
231 XSetWindowBackgroundPixmap(getXDisplay(), 353 XSetWindowBackgroundPixmap(getXDisplay(),
232 getScreenInfo(screen)->getRootWindow(), 354 getScreenInfo(screen)->getRootWindow(), pixmaps[screen]);
233 pixmaps[screen]);
234 XClearWindow(getXDisplay(), getScreenInfo(screen)->getRootWindow());
235 355
236 if (! (getScreenInfo(screen)->getVisual()->c_class & 1)) { 356 XClearWindow(getXDisplay(), getScreenInfo(screen)->getRootWindow());
237 img_ctrl[screen]->removeImage(pixmaps[screen]);
238 img_ctrl[screen]->timeout();
239 pixmaps[screen] = None;
240 }
241 }
242}
243 357
358 if (! (getScreenInfo(screen)->getVisual()->c_class & 1)) {
359 img_ctrl[screen]->removeImage(tmp);
360 img_ctrl[screen]->timeout();
361 }
244 362
363 XFreeGC(getXDisplay(), gc);
364 }
365}
366
367//-------------- usage --------------------
368// shows information about usage
369//-----------------------------------------
245void bsetroot::usage(int exit_code) { 370void bsetroot::usage(int exit_code) {
246 fprintf(stderr, 371 fprintf(stderr,
247 I18n::instance()-> 372 I18n::instance()->getMessage(
248 getMessage( 373#ifdef NLS
249#ifdef NLS 374 bsetrootSet, bsetrootUsage,
250 bsetrootSet, bsetrootUsage,
251#else // !NLS 375#else // !NLS
252 0, 0, 376 0, 0,
253#endif // NLS 377#endif // NLS
254 "%s 2.0 : (c) 1997-1999 Brad Hughes\n\n" 378 "%s 2.1 : (c) 2002 Claes Nasten\n"
255 " -display <string> display connection\n" 379 "%s 2.0 : (c) 1997-2000 Brad Hughes\n\n"
256 " -mod <x> <y> modula pattern\n" 380 " -display <string> display connection\n"
257 " -foreground, -fg <color> modula foreground color\n" 381 " -mod <x> <y> modula pattern\n"
258 " -background, -bg <color> modula background color\n\n" 382 " -foreground, -fg <color> modula foreground color\n"
259 " -gradient <texture> gradient texture\n" 383 " -background, -bg <color> modula background color\n\n"
260 " -from <color> gradient start color\n" 384 " -gradient <texture> gradient texture\n"
261 " -to <color> gradient end color\n\n" 385 " -from <color> gradient start color\n"
262 " -solid <color> solid color\n\n" 386 " -to <color> gradient end color\n\n"
263 " -help print this help text and exit\n"), 387 " -solid <color> solid color\n\n"
264 getApplicationName()); 388 " -help print this help text and exit\n"),
265 389 getApplicationName(), getApplicationName());
266 exit(exit_code); 390
391 exit(exit_code);
267} 392}
268 393
269 394
270int main(int argc, char **argv) { 395int main(int argc, char **argv) {
271 char *display_name = (char *) 0; 396 char *display_name = (char *) 0;
272 int i = 1; 397 int i = 1;
273 398
274 NLSInit("blackbox.cat"); 399 NLSInit("blackbox.cat");
275 400
276 for (; i < argc; i++) { 401 for (; i < argc; i++) {
277 if (! strcmp(argv[i], "-display")) { 402 if (! strcmp(argv[i], "-display")) {
278 // check for -display option 403 // check for -display option
279 404
280 if ((++i) >= argc) { 405 if ((++i) >= argc) {
281 fprintf(stderr, 406 fprintf(stderr,
282 I18n::instance()->getMessage( 407 I18n::instance()->getMessage(
283#ifdef NLS 408#ifdef NLS
284 mainSet, mainDISPLAYRequiresArg, 409 mainSet, mainDISPLAYRequiresArg,
285#else // !NLS 410#else // !NLS
286 0, 0, 411 0, 0,
287#endif // NLS 412#endif // NLS
288 "error: '-display' requires an argument\n")); 413 "error: '-display' requires an argument\n"));
289 414
290 ::exit(1); 415 ::exit(1);
291 } 416 }
292 417
293 display_name = argv[i]; 418 display_name = argv[i];
294 } 419 }
295 } 420 }
296 421
297 bsetroot app(argc, argv, display_name); 422 bsetroot app(argc, argv, display_name);
298 423
299 return 0; 424 return (0);
300} 425}