brian tipton wrote:
> Hi all,
> 
> Sent this to the list the first time before I subscribed (been reading
> through gmane...) and it got moderated.  Try again.
> 
> With some help from Raster (much appreciated) I've managed to stumble my
> way through my first patch.  As the Subject implies it adds a -get-*
> option for everything there is a -set-* or -del-* option for in
> enlightenment_eapp.
> 
> Fire away with any critisism, I'm expecting it as it's my first
> enlightenment patch and first C code in a while.
> 
> Brian

Ah, and here's the mail WITH the patch (thanks Brian M)...
--- e_eapp_main.c	2005-07-05 17:39:59.000000000 -0500
+++ e_eapp_main_tip.c	2005-07-06 21:09:06.000000000 -0500
@@ -13,6 +13,9 @@
    int valid_args = 0;
    Eet_File *ef = NULL;
    char buf[4096];
+   int write_ops = 0;
+   int size;
+   char *str, *v;
    
    char *lang = NULL;
    int del_name = 0;
@@ -36,6 +39,16 @@
    char *set_win_role = NULL;
    int   set_startup_notify = -1;
    int   set_wait_exit = -1;
+   int   get_name = 0;
+   int   get_generic = 0;
+   int   get_comment = 0;
+   int   get_exe = 0;
+   int   get_win_name = 0;
+   int   get_win_class = 0;
+   int   get_win_title = 0;
+   int   get_win_role = 0;
+   int   get_startup_notify = 0;
+   int   get_wait_exit = 0;
    
    /* handle some command-line parameters */
    for (i = 1; i < argc; i++)
@@ -45,66 +58,77 @@
 	     i++;
 	     lang = argv[i];
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-set-name")) && (i < (argc - 1)))
 	  {
 	     i++;
 	     set_name = argv[i];
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-set-generic")) && (i < (argc - 1)))
 	  {
 	     i++;
 	     set_generic = argv[i];
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-set-comment")) && (i < (argc - 1)))
 	  {
 	     i++;
 	     set_comment = argv[i];
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-set-exe")) && (i < (argc - 1)))
 	  {
 	     i++;
 	     set_exe = argv[i];
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-set-win-name")) && (i < (argc - 1)))
 	  {
 	     i++;
 	     set_win_name = argv[i];
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-set-win-class")) && (i < (argc - 1)))
 	  {
 	     i++;
 	     set_win_class = argv[i];
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-set-win-title")) && (i < (argc - 1)))
 	  {
 	     i++;
 	     set_win_title = argv[i];
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-set-win-role")) && (i < (argc - 1)))
 	  {
 	     i++;
 	     set_win_role = argv[i];
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-set-startup-notify")) && (i < (argc - 1)))
 	  {
 	     i++;
 	     set_startup_notify = atoi(argv[i]);
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-set-wait-exit")) && (i < (argc - 1)))
 	  {
 	     i++;
 	     set_wait_exit = atoi(argv[i]);
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-del-all")))
 	  {
@@ -119,56 +143,67 @@
 	     del_startup_notify = 1;
 	     del_wait_exit = 1;
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-del-name")))
 	  {
 	     del_name = 1;
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-del-generic")))
 	  {
 	     del_generic = 1;
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-del-comment")))
 	  {
 	     del_comment = 1;
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-del-exe")))
 	  {
 	     del_exe = 1;
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-del-win-name")))
 	  {
 	     del_win_name = 1;
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-del-win-class")))
 	  {
 	     del_win_class = 1;
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-del-win-title")))
 	  {
 	     del_win_title = 1;
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-del-win-role")))
 	  {
 	     del_win_role = 1;
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-del-startup-notify")))
 	  {
 	     del_startup_notify = 1;
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-del-wait-exit")))
 	  {
 	     del_wait_exit = 1;
              valid_args++;
+             write_ops++;
 	  }
 	else if ((!strcmp(argv[i], "-h")) ||
 		 (!strcmp(argv[i], "-help")) ||
@@ -178,6 +213,56 @@
 	     _e_help();
 	     exit(0);
 	  }
+	else if ((!strcmp(argv[i], "-get-name")))
+	  {
+	     get_name = 1;
+	        valid_args++;
+	  }
+	else if ((!strcmp(argv[i], "-get-generic")))
+	  {
+	     get_generic = 1;
+	        valid_args++;
+	  }
+	else if ((!strcmp(argv[i], "-get-comment")))
+	  {
+	     get_comment = 1;
+	        valid_args++;
+	  }
+	else if ((!strcmp(argv[i], "-get-exe")))
+	  {
+	     get_exe = 1;
+	        valid_args++;
+	  }
+	else if ((!strcmp(argv[i], "-get-win-name")))
+	  {
+	     get_win_name = 1;
+	        valid_args++;
+	  }
+	else if ((!strcmp(argv[i], "-get-win-class")))
+	  {
+	     get_win_class = 1;
+	        valid_args++;
+	  }
+	else if ((!strcmp(argv[i], "-get-win-title")))
+	  {
+	     get_win_title = 1;
+	        valid_args++;
+	  }
+	else if ((!strcmp(argv[i], "-get-win-role")))
+	  {
+	     get_win_role = 1;
+	        valid_args++;
+	  }
+	else if ((!strcmp(argv[i], "-get-startup-notify")))
+	  {
+	     get_startup_notify = 1;
+	        valid_args++;
+	  }
+	else if ((!strcmp(argv[i], "-get-wait-exit")))
+	  {
+	     get_wait_exit = 1;
+	        valid_args++;
+	  }
 	else
 	  file = argv[i];
      }
@@ -195,7 +280,14 @@
     }
 
    eet_init();
-   ef = eet_open(file, EET_FILE_MODE_READ_WRITE);
+   if (write_ops != 0)
+     {
+        ef = eet_open(file, EET_FILE_MODE_READ_WRITE);
+     }
+   else
+     {
+        ef = eet_open(file, EET_FILE_MODE_READ);
+     }
    if (!ef)
      {
 	printf("ERROR: cannot open file %s for READ/WRITE\n", file);
@@ -299,6 +391,166 @@
      eet_delete(ef, "app/info/startup_notify");
    if (del_wait_exit)
      eet_delete(ef, "app/info/wait_exit");
+   if (get_name)
+     {
+        if (lang)
+          {
+             snprintf(buf, sizeof(buf), "app/info/name[%s]", lang);
+             v = eet_read(ef, buf, &size);
+             if (!v) v = eet_read(ef, "app/info/name", &size);
+          }
+        else
+          v = eet_read(ef, "app/info/name", &size);
+
+        if (v)
+          {
+              str = malloc(size + 1);
+              memcpy(str, v, size);
+              str[size] = 0;
+              free(v);
+              printf("%s\n", str);
+          }
+     }
+   if (get_generic)
+     {
+        if (lang)
+          {
+             snprintf(buf, sizeof(buf), "app/info/generic[%s]", lang);
+             v = eet_read(ef, buf, &size);
+             if (!v) v = eet_read(ef, "app/info/generic", &size);
+          }
+        else
+          v = eet_read(ef, "app/info/generic", &size);
+
+        if (v)
+          {
+              str = malloc(size + 1);
+              memcpy(str, v, size);
+              str[size] = 0;
+              free(v);
+              printf("%s\n", str);
+          }
+     }
+   if (get_comment)
+     {
+        if (lang)
+          {
+             snprintf(buf, sizeof(buf), "app/info/comment[%s]", lang);
+             v = eet_read(ef, buf, &size);
+             if (!v) v = eet_read(ef, "app/info/comment", &size);
+          }
+        else
+          v = eet_read(ef, "app/info/comment", &size);
+
+        if (v)
+          {
+              str = malloc(size + 1);
+              memcpy(str, v, size);
+              str[size] = 0;
+              free(v);
+              printf("%s\n", str);
+          }
+     }
+   if (get_exe)
+     {
+        v = eet_read(ef, "app/info/exe", &size);
+        if (v)
+          {
+             str = malloc(size + 1);
+             memcpy(str, v, size);
+             str[size] = 0;
+             free(v);
+             printf("%s\n", str);
+          }
+     }
+   if (get_win_name)
+     {
+        v = eet_read(ef, "app/window/name", &size);
+        if (v)
+          {
+             str = malloc(size + 1);
+             memcpy(str, v, size);
+             str[size] = 0;
+             free(v);
+             printf("%s\n", str);
+          }
+     }
+   if (get_win_class)
+     {
+        v = eet_read(ef, "app/window/class", &size);
+        if (v)
+          {
+             str = malloc(size + 1);
+             memcpy(str, v, size);
+             str[size] = 0;
+             free(v);
+             printf("%s\n", str);
+          }
+     }
+   if (get_win_title)
+     {
+        v = eet_read(ef, "app/window/title", &size);
+        if (v)
+          {
+             str = malloc(size + 1);
+             memcpy(str, v, size);
+             str[size] = 0;
+             free(v);
+             printf("%s\n", str);
+          }
+     }
+   if (get_win_role)
+     {
+        v = eet_read(ef, "app/window/role", &size);
+        if (v)
+          {
+             str = malloc(size + 1);
+             memcpy(str, v, size);
+             str[size] = 0;
+             free(v);
+             printf("%s\n", str);
+          }
+     }
+   if (get_startup_notify)
+     {
+        v = eet_read(ef, "app/info/startup_notify", &size);
+        if (v)
+          {
+             if ((int) *v == 1)
+               {
+                  printf("1\n");
+               }
+             else
+               {
+                  printf("0\n");
+               }
+             free(v);
+          }
+        else
+          {
+             printf("Not set\n");
+          }
+     }
+   if (get_wait_exit)
+     {
+        v = eet_read(ef, "app/info/wait_exit", &size);
+        if (v)
+          {
+             if ((int) *v == 1)
+               {
+                  printf("1\n");
+               }
+             else
+               {
+                  printf("0\n");
+               }
+             free(v);
+          }
+        else
+          {
+             printf("Not set\n");
+          }
+     }
    
    eet_close(ef);
    eet_shutdown();
@@ -321,6 +573,16 @@
 	  "  -set-win-role WIN_ROLE     Set the application window role glob\n"
 	  "  -set-startup-notify [1/0]  Set the application startup notify flag\n"
 	  "  -set-wait-exit [1/0]       Set the application wait exit flag\n"
+	  "  -get-name                  Get the application name\n"
+	  "  -get-generic               Get the application generic name\n"
+	  "  -get-comment               Get the application comment\n"
+	  "  -get-exe                   Get the application execute line\n"
+	  "  -get-win-name              Get the application window name glob\n"
+	  "  -get-win-class             Get the application window class glob\n"
+	  "  -get-win-title             Get the application window title glob\n"
+	  "  -get-win-role              Get the application window role glob\n"
+	  "  -get-startup-notify        Get the application startup notify flag\n"
+	  "  -get-wait-exit             Get the application wait exit flag\n"
 	  "  -del-name                  Delete the application name\n"
 	  "  -del-generic               Delete the application generic name\n"
 	  "  -del-comment               Delete the application comment\n"

Reply via email to