Enlightenment CVS committal

Author  : azundris
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src


Modified Files:
      Tag: SPLIT
        desktops.c 


Log Message:
PROBLEM

e_desktop_file_event_handler() pointlessly tried to printf a NULL to a
buffer that would then be discarded without ever being used, anyway.

MEASURES

a) more debug in e_desktop_file_event_handler()

b) desk-names are initialized to "Desk N", where N is the index of the
   desktop

c) nonetheless, e_desktop_file_event_handler() will no longer crash when
   a lambda-desk is to be processed


===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/desktops.c,v
retrieving revision 1.46.2.10
retrieving revision 1.46.2.11
diff -u -3 -r1.46.2.10 -r1.46.2.11
--- desktops.c  11 Jan 2003 13:38:47 -0000      1.46.2.10
+++ desktops.c  11 Jan 2003 14:15:07 -0000      1.46.2.11
@@ -245,27 +245,28 @@
 e_desktop_file_event_handler(E_Observer *obs, E_Observee *o, E_Event_Type event, void 
*data)
 {
    E_Desktop_Adaptor *a = (E_Desktop_Adaptor *) obs;
-   char buf[PATH_MAX]; 
 
    D_ENTER;
 
-   if(a&&a->desktop&&a->desktop->name) {
+   if(a&&a->desktop) {
+     char *mn=a->desktop->name?a->desktop->name:"";
      if (event & E_EVENT_BG_CHANGED) {
-       snprintf(buf, PATH_MAX, "background_reload:%s", a->desktop->name);
+       D("background_reload: %s\n",mn);
        e_desktop_bg_reload(a->desktop); }
      else if (event & E_EVENT_ICB_CHANGED) {
-       snprintf(buf, PATH_MAX, "iconbar_reload:%s", a->desktop->name);
+       D("iconbar_reload: %s\n",mn);
        e_desktop_ib_reload(a->desktop); }
      else if (event & E_EVENT_LAYOUT_CHANGED) {
-       snprintf(buf, PATH_MAX, "layout_reload:%s", a->desktop->name);
+       D("layout_reload: %s\n",mn);
        e_desktop_layout_reload(a->desktop); }}
 #ifdef DEBUG
-   else {
+   else {  /* add'l debug foo. technically, a, a->desktop should always be
+              set, it's only a->desktop->name that we really worry about.
+              Azundris 2003/01/11 */
      if(a) {
-       if(a->desktop) {
-         D("e_desktop_file_event_handler: E_Desktop_Adaptor->desktop->name not set, 
"); }
-       else { D("e_desktop_file_event_handler: E_Desktop_Adaptor->desktop not set, 
"); }}
-     else { D("e_desktop_file_event_handler: E_Desktop_Adaptor not set, "); }
+       D("e_desktop_file_event_handler: E_Desktop_Adaptor->desktop not set, "); }
+     else {
+       D("e_desktop_file_event_handler: E_Desktop_Adaptor not set, "); }
 
      if (event & E_EVENT_BG_CHANGED) {
        D("BG_CHANGED\n"); }
@@ -293,8 +294,6 @@
  * <[EMAIL PROTECTED]> and Michael Jennings <[EMAIL PROTECTED]>).  raster
  * intensely dislikes the pseudo-transparency hacks, so don't go to him
  * if you need to discuss them. : )
- *
- * THIS CODE IS CONSIDERED EXPERIMENTAL (alpha).  
  * */
 
 static void
@@ -547,12 +546,23 @@
 
    e_view_look_set_dir(desk->look, buf);
 
+   /* experimental, Azundris 2003/01/11 */
+   if(!desk->name) {
+     size_t l=0;
+     int j=10,k=1;
+     while(i>=j) {
+       j*=10;
+       k++; }
+#define DESK_DFLT_NAME "Desk "
+     if((desk->name=malloc(l=sizeof(DESK_DFLT_NAME)+k)))
+       snprintf(desk->name,l,"%s%d",DESK_DFLT_NAME,i); }
+
    /* The adaptor allows us to watch the look for events, while keeping the
     * desktop an observable object */
    desk->adaptor = NEW(E_Desktop_Adaptor, 1);
-   e_observer_init(E_OBSERVER(desk->adaptor), E_EVENT_BG_CHANGED | 
E_EVENT_ICB_CHANGED |
-                  E_EVENT_LAYOUT_CHANGED, e_desktop_file_event_handler,
-                  e_desktop_adaptor_cleanup);
+   e_observer_init(E_OBSERVER(desk->adaptor),
+                  E_EVENT_BG_CHANGED | E_EVENT_ICB_CHANGED | E_EVENT_LAYOUT_CHANGED,
+                  e_desktop_file_event_handler, e_desktop_adaptor_cleanup);
    desk->adaptor->desktop = desk;
    e_observer_register_observee(E_OBSERVER(desk->adaptor), 
E_OBSERVEE(desk->look->obj));
 




-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to