int main(int argc, char **argv) { char *temp, *s; commands = (CommandChain*)safemalloc(sizeof(CommandChain)); commands->first = commands->last = NULL; /* Save the program name for error messages and config parsing */ temp = argv[0]; s = strrchr(argv[0], '/'); if (s != NULL) { temp = s + 1; } Module = temp; configPrefix = CatString2("*", Module); if ((argc != 6) && (argc != 7)) { fprintf(stderr, "%s Version %s should only be executed by fvwm!\n", Module, VERSION); exit(1); } fvwm_fd[0] = atoi(argv[1]); fvwm_fd[1] = atoi(argv[2]); /* Grab the X display information now. */ dpy = XOpenDisplay(displayName); if (!dpy) { fprintf(stderr, "%s: unable to open display '%s'\n", Module, XDisplayName (displayName)); exit (2); } screen = DefaultScreen(dpy); root = RootWindow(dpy, screen); MyDisplayHeight = DisplayHeight(dpy, screen); MyDisplayWidth = DisplayWidth(dpy, screen); XSetErrorHandler(ErrorHandler); flib_init_graphics(dpy); XA_XSETROOT_ID = XInternAtom(dpy, "_XSETROOT_ID", False); XA_ESETROOT_PMAP_ID = XInternAtom(dpy, "ESETROOT_PMAP_ID", False); XA_XROOTPMAP_ID = XInternAtom(dpy, "_XROOTPMAP_ID", False); signal (SIGPIPE, DeadPipe); /* Parse the config file */ ParseConfig(); SetMessageMask(fvwm_fd, M_NEW_PAGE | M_NEW_DESK | M_CONFIG_INFO | M_END_CONFIG_INFO | M_SENDCONFIG); /* ** we really only want the current desk/page, and window list sends it */ SendInfo(fvwm_fd, "Send_WindowList", 0); /* tell fvwm we're running */ SendFinishedStartupNotification(fvwm_fd); /* Recieve all messages from fvwm */ EndLessLoop(); /* Should never get here! */ return 1; }
int main (int argc, char **argv) { char *temp; int i; char *global_config_file = NULL; char tmp[128]; FILE *fp = NULL; /* Save our program name - for error messages */ temp = strrchr (argv[0], '/'); MyName = temp ? temp + 1 : argv[0]; for (i = 1; i < argc && *argv[i] == '-'; i++) { if (!strcmp (argv[i], "-h") || !strcmp (argv[i], "--help")) usage (); else if (!strcmp (argv[i], "-v") || !strcmp (argv[i], "--version")) version (); else if (!strcmp (argv[i], "-w") || !strcmp (argv[i], "--window")) i++; else if (!strcmp (argv[i], "-c") || !strcmp (argv[i], "--context")) i++; else if (!strcmp (argv[i], "-f") && i + 1 < argc) global_config_file = argv[++i]; } /* Dead pipe == dead AfterStep */ signal (SIGPIPE, DeadPipe); signal (SIGSEGV, DeadPipe); signal (SIGINT, DeadPipe); if ((dpy = XOpenDisplay ("")) == NULL) { fprintf (stderr, "%s: couldn't open display %s\n", MyName, XDisplayName ("")); exit (1); } set_current_X_display (dpy); screen = DefaultScreen (dpy); /* connect to AfterStep */ temp = module_get_socket_property (RootWindow (dpy, screen)); fd[0] = fd[1] = module_connect (temp); XFree (temp); if (fd[0] < 0) { fprintf (stderr, "%s: unable to establish connection to AfterStep\n", MyName); exit (1); } temp = safemalloc (9 + strlen (MyName) + 1); sprintf (temp, "SET_NAME %s", MyName); SendInfo (fd, temp, None); free (temp); x_fd = XConnectionNumber (dpy); fd_width = GetFdWidth (); XSetErrorHandler (error_handler); if (global_config_file != NULL) temp = PutHome (global_config_file); else { memset (tmp, 128, '\0'); sprintf (tmp, "%s/Gnome", AFTER_DIR); temp = PutHome (tmp); if ((fp = fopen (temp, "r")) == NULL) { sprintf (tmp, "%s/Gnome", AFTER_SHAREDIR); free (temp); temp = PutHome (tmp); } } if (fp) fclose (fp); parse_config (temp); free (temp); gnome_compliance_init (); window_list = s_list_new (); set_as_mask ((long unsigned) mask_reg); SendInfo (fd, "Send_WindowList\n", 0); XSelectInput (dpy, root_win, PropertyChangeMask | SubstructureNotifyMask); XSelectInput (dpy, gnome_win, PropertyChangeMask); EndLessLoop (); return 0; }
/****************************************************************************** Main - Setup the XConnection,request the window list and loop forever Based on main() from FvwmIdent: Copyright 1994, Robert Nation and Nobutaka Suzuki. ******************************************************************************/ int main(int argc, char **argv) { char *temp, *s; /* Save the program name for error messages and config parsing */ temp = argv[0]; s=strrchr(argv[0], '/'); if (s != NULL) temp = s + 1; /* Setup my name */ Module = safemalloc(strlen(temp)+2); strcpy(Module,"*"); strcat(Module, temp); Clength = strlen(Module); /* Open the console for messages */ OpenConsole(); if((argc != 6)&&(argc != 7)) { fprintf(stderr,"%s Version %s should only be executed by fvwm!\n",Module, VERSION); ConsoleMessage("%s Version %s should only be executed by fvwm!\n",Module, VERSION); exit(1); } if ((argc==7)&&(!strcasecmp(argv[6],"Transient"))) Transient=1; Fvwm_fd[0] = atoi(argv[1]); Fvwm_fd[1] = atoi(argv[2]); signal (SIGPIPE, DeadPipe); /* Parse the config file */ ParseConfig(); /* Setup the XConnection */ StartMeUp(); XSetErrorHandler((XErrorHandler) ErrorHandler); InitPictureCMap(dpy, Root); InitArray(&buttons,0,0,win_width, fontheight+6); InitList(&windows); fd_width = GetFdWidth(); /* Request a list of all windows, * wait for ConfigureWindow packets */ SendFvwmPipe("Send_WindowList",0); /* SetMessageMask(Fvwm_fd,M_ADD_WINDOW|M_CONFIGURE_WINDOW| M_DESTROY_WINDOW| M_WINDOW_NAME|M_ICON_NAME|M_DEICONIFY|M_ICONIFY|M_END_WINDOWLIST| M_NEW_DESK| M_NEW_PAGE);*/ /* Recieve all messages from Fvwm */ EndLessLoop(); return 0; }
int main(int argc, char **argv) { char *temp, *s; char* displayName = NULL; commands=NULL; /* Save the program name for error messages and config parsing */ temp = argv[0]; s=strrchr(argv[0], '/'); if (s != NULL) temp = s + 1; Module=temp; if((argc != 6)&&(argc != 7)) { fprintf(stderr,"%s Version %s should only be executed by fvwm!\n",Module, VERSION); exit(1); } Fvwm_fd[0] = atoi(argv[1]); Fvwm_fd[1] = atoi(argv[2]); /* Grab the X display information now. */ dpy = XOpenDisplay(displayName); if (!dpy) { fprintf(stderr, "%s: unable to open display '%s'\n", Module, XDisplayName (displayName)); exit (2); } screen = DefaultScreen(dpy); root = RootWindow(dpy, screen); /* Open a log file if necessary */ # ifdef LOGFILE logFile = fopen(LOGFILE,"a"); fprintf(logFile,"Initialising FvwmBacker\n"); # endif signal (SIGPIPE, DeadPipe); /* Parse the config file */ ParseConfig(); fd_width = GetFdWidth(); SetMessageMask(Fvwm_fd,M_NEW_DESK|M_CONFIG_INFO|M_END_CONFIG_INFO); /* ** we really only want the current desk, and window list sends it */ SendInfo(Fvwm_fd,"Send_WindowList",0); /* Recieve all messages from Fvwm */ EndLessLoop(); /* Should never get here! */ return 1; }