void CKLBUpdate::execute(u32 deltaT) { switch(m_eStep) { case S_INIT_DL: exec_init_download(deltaT); break; case S_DOWNLOAD: exec_download(deltaT); break; case S_INIT_UNZIP: exec_init_unzip(deltaT); break; case S_UNZIP: /* Now multithreaded */ break; case S_COMPLETE: exec_complete(deltaT); break; case S_FINISHED: exec_finish(deltaT); break; } }
void show_photos(const struct user_attribute *attrs, int count,PKT_public_key *pk,PKT_secret_key *sk, PKT_user_id *uid) { #ifndef DISABLE_PHOTO_VIEWER int i; struct expando_args args; u32 len; u32 kid[2]={0,0}; memset(&args,0,sizeof(args)); args.pk=pk; args.sk=sk; args.validity_info=get_validity_info(pk,uid); args.validity_string=get_validity_string(pk,uid); if(pk) keyid_from_pk(pk,kid); else if(sk) keyid_from_sk(sk,kid); for(i=0;i<count;i++) if(attrs[i].type==ATTRIB_IMAGE && parse_image_header(&attrs[i],&args.imagetype,&len)) { char *command,*name; struct exec_info *spawn; int offset=attrs[i].len-len; #ifdef FIXED_PHOTO_VIEWER opt.photo_viewer=FIXED_PHOTO_VIEWER; #else if(!opt.photo_viewer) opt.photo_viewer=get_default_photo_command(); #endif /* make command grow */ command=pct_expando(opt.photo_viewer,&args); if(!command) goto fail; name=xmalloc(16+strlen(EXTSEP_S)+ strlen(image_type_to_string(args.imagetype,0))+1); /* Make the filename. Notice we are not using the image encoding type for more than cosmetics. Most external image viewers can handle a multitude of types, and even if one cannot understand a particular type, we have no way to know which. The spec permits this, by the way. -dms */ #ifdef USE_ONLY_8DOT3 sprintf(name,"%08lX" EXTSEP_S "%s",(ulong)kid[1], image_type_to_string(args.imagetype,0)); #else sprintf(name,"%08lX%08lX" EXTSEP_S "%s",(ulong)kid[0],(ulong)kid[1], image_type_to_string(args.imagetype,0)); #endif if(exec_write(&spawn,NULL,command,name,1,1)!=0) { xfree(name); goto fail; } #ifdef __riscos__ riscos_set_filetype_by_mimetype(spawn->tempfile_in, image_type_to_string(args.imagetype,2)); #endif xfree(name); fwrite(&attrs[i].data[offset],attrs[i].len-offset,1,spawn->tochild); if(exec_read(spawn)!=0) { exec_finish(spawn); goto fail; } if(exec_finish(spawn)!=0) goto fail; } return; fail: log_error(_("unable to display photo ID!\n")); #endif }