rem: if (sscanf(argv[i], "%d", &wVisualID)!=1) {
add: if (sscanf(argv[i], "%i", &wVisualID)!=1) {
context: main(int argc, char **argv){    int i, restart=0;    Bool multiHead = True;    char *str;    int d, s;    ArgCount = argc;    Arguments = argv;    WMInitializeApplication("WindowMaker", &argc, argv);    ProgName = strrchr(argv[0],'/');    if (!ProgName)      ProgName = argv[0];    else      ProgName++;        /* check existence of Defaults DB directory */    check_defaults();        restart = 0;        memset(&wPreferences, 0, sizeof(WPreferences));        if (argc>1) {	for (i=1; i<argc; i++) {#ifdef USECPP	    if (strcmp(argv[i], "-nocpp")==0) {		wPreferences.flags.nocpp=1;	    } else#endif	    if (strcmp(argv[i], "-nodock")==0) {		wPreferences.flags.nodock=1;	    } else if (strcmp(argv[i], "-noclip")==0) {		wPreferences.flags.noclip=1;	    } else if (strcmp(argv[i], "-version")==0) {		printf("WindowMaker %s\n", VERSION);		exit(0);	    } else if (strcmp(argv[i], "-global_defaults_path")==0) {		printf("%s/Defaults/WindowMaker", PKGDATADIR);		exit(0);	    } else if (strcmp(argv[i], "-locale")==0) {		i++;		if (i>=argc) {		    wwarning(_("too few arguments for %s"), argv[i-1]);		    exit(0);		}		Locale = argv[i];	    } else if (strcmp(argv[i], "-display")==0) {		i++;		if (i>=argc) {		    wwarning(_("too few arguments for %s"), argv[i-1]);		    exit(0);		}		DisplayName = argv[i];	    } else if (strcmp(argv[i], "-visualid")==0) {		i++;		if (i>=argc) {		    wwarning(_("too few arguments for %s"), argv[i-1]);		    exit(0);		}		if (sscanf(argv[i], "%d", &wVisualID)!=1) {		    wwarning(_("bad value for visualid: \"%s\""), argv[i]);		    exit(0);		}	    } else {		print_help();		exit(0);	    }	}    }#if 0    tmp = getenv("LANG");    if (tmp) {    	if (setlocale(LC_ALL,"") == NULL) {	    wwarning("cannot set locale %s", tmp);	    wwarning("falling back to C locale");	    setlocale(LC_ALL,"C");	    Locale = NULL;	} else {	    if (strcmp(tmp, "C")==0 || strcmp(tmp, "POSIX")==0)	      Locale = NULL;	    else	      Locale = tmp;	}    } else {	Locale = NULL;    }#endif    if (!Locale) {    	Locale = getenv("LANG");    }    setlocale(LC_ALL, Locale);    if (!Locale || strcmp(Locale, "C")==0 || strcmp(Locale, "POSIX")==0)       Locale = NULL;#ifdef I18N    if (getenv("NLSPATH"))      bindtextdomain("WindowMaker", getenv("NLSPATH"));    else      bindtextdomain("WindowMaker", NLSDIR);    textdomain("WindowMaker");    if (!XSupportsLocale()) {	wwarning(_("X server does not support locale"));    }    if (XSetLocaleModifiers("") == NULL) { 	wwarning(_("cannot set locale modifiers"));    }#endif    /* open display */    dpy = XOpenDisplay(DisplayName);    if (dpy == NULL) {	wfatal(_("could not open display \"%s\""), XDisplayName(DisplayName));	exit(1);    }    /* check if the user specified a complete display name (with screen).     * If so, only manage the specified screen */    if (DisplayName)	str = strchr(DisplayName, ':');    else	str = NULL;    if (!str)	str = "";    if (sscanf(str, "%i.%i", &d, &s)==2)	multiHead = False;    DisplayName = XDisplayName(DisplayName);    str = wmalloc(strlen(DisplayName)+64);    sprintf(str, "DISPLAY=%s", DisplayName);    putenv(str);#ifdef DEBUG    XSynchronize(dpy, True);#endif    wXModifierInitialize();#ifdef SOUNDS    wSoundInitialize();#endif    StartUp(!multiHead);    execInitScript();    EventLoop();    return -1;}