void send_reload_signal() { #ifdef USE_DBUS DBusMessage *message; message = dbus_message_new_signal("/","org.metascape.emerald.dbus.Signal","Reload"); dbus_connection_send(dbcon,message,NULL); dbus_message_unref(message); #else Atom wmAtom = 0; Display *dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); char buffer[128]; char *part = display_part(getenv("DISPLAY")); sprintf(buffer, "_COMPIZ_DM_S%s", part); free(part); if (dpy) wmAtom = XInternAtom(dpy,buffer,0); if (wmAtom) { XEvent clientEvent; Status missed; Window w = XGetSelectionOwner(dpy,wmAtom); Atom ReloadIt = XInternAtom(dpy, "emerald-sigusr1", 0); clientEvent.xclient.type = ClientMessage; clientEvent.xclient.window = w; clientEvent.xclient.message_type = ReloadIt; clientEvent.xclient.format = 32; clientEvent.xclient.display = dpy; clientEvent.xclient.data.l[0] = 0; clientEvent.xclient.data.l[1] = 0; clientEvent.xclient.data.l[2] = 0; clientEvent.xclient.data.l[3] = 0; clientEvent.xclient.data.l[4] = 0; missed = XSendEvent(dpy,w, False, NoEventMask, &clientEvent); XSync (dpy, False); } else { /* The old way */ gchar * args[]= {"killall","-u",(gchar *)g_get_user_name(),"-SIGUSR1","emerald",NULL}; gchar * ret=NULL; if (!g_spawn_sync(NULL,args,NULL,G_SPAWN_STDERR_TO_DEV_NULL | G_SPAWN_SEARCH_PATH, NULL,NULL,&ret,NULL,NULL,NULL) || !ret) g_warning("Couldn't find running emerald, no reload signal sent."); } #endif }
static void write_part(GMimeObject *part) { GList *l; const GMimeContentType *ct; ct = g_mime_object_get_content_type(GMIME_OBJECT(part)); if (GMIME_IS_MULTIPART(part)) { if (g_mime_content_type_is_type(ct, "multipart", "alternative")) { choose_alternative(part); level += g_list_length(GMIME_MULTIPART(part)->subparts); } else { l = GMIME_MULTIPART(part)->subparts; while (l != NULL) { write_part(l->data); l = l->next; level++; } } } else if (GMIME_IS_MESSAGE_PART(part)) { } else if (GMIME_IS_PART(part)) { display_part(part, ct); } }
int main() { struct student s; struct student s1[10]; int n,d,ch2,ch1; printf("enter the number of records to be entered"); scanf("%d",&n); printf("choose the way to operate:\n 1.with pointer\n 2. without pointer"); scanf("%d",&ch1); switch(ch1) { case 1: { input_p(&s,n); do { printf("choose the operation to perform:\n 1.display all\n 2.display particular\n 3.delete\n 4.insert\n 5.bubble sort\n 6.selection sort\n 7.binary seach"); scanf("%d",&ch2); switch(ch2) { case 1: display_all_p(&s,n); break; case 2: printf("enter the record to be displayed"); scanf("%d",&d); display_part_p(&s,d); break; case 3: printf("\n enter the record to be deleted"); scanf("%d",&d); del_p(&s,d,n); break; case 4: printf("\n enter the position at which record is to be inserted"); scanf("%d",&d); ins_p(&s,d,n); break; case 5: printf("you chose to sort the records by their roll no using bubble sort"); bubblesort(&s,n); break; case 6: printf("you chose to sort the records by their roll no using selection sort"); selection_sort(&s,n); break; case 7: printf("you chose to search a record using binary search by their roll no"); bin_search(&s,n); break; default: break; } }while(ch2!=8); } break; case 2: { input(s1,n); do { printf("choose the operation to perform:\n 1.display all\n 2.display particular\n 3.delete\n 4.insert\n 5. exit"); scanf("%d",&ch2); switch(ch2) { case 1: display_all(s1,n); break; case 2: printf("enter the record to be displayed"); scanf("%d",&d); display_part(s1,d); break; case 3: printf("\n enter the record to be deleted"); scanf("%d",&d); del(s1,d,n); break; case 4: printf("\n enter the position at which record is to be inserted"); scanf("%d",&d); ins(s1,d,n); break; default: printf("please enter a valid input"); break; } }while(ch2!=5); } break; default: break; } getchar(); return 0; }