static void shuffle(spritz_ctx *ctx) { whip(ctx); crush(ctx); whip(ctx); crush(ctx); whip(ctx); ctx->a = 0; }
static void shuffle(State *state) { whip(state); crush(state); whip(state); crush(state); whip(state); state->a = 0; }
int main(int argc, char **argv) { char *cmd_name = argv[0]; if(argc == 1) usage(); char optflag; while((optflag = getopt(argc, argv, "hcd")) != -1) { switch(optflag) { case 'c': willcrush = 1; break; case 'd': willcrush = 0; break; case 'h': default: usage(); } } argc = argc - optind; argv = argv + optind; int i; for(i = 0; i < argc; i++) { if(willcrush == 1 && iscrushed(argv[i]) == 0) { crush(argv[i],NULL); } else if(willcrush == 0 && iscrushed(argv[i]) == 1) { decrush(argv[i],NULL); } else if(willcrush == -1 && iscrushed(argv[i]) != -1){//crush untouched.crush uncrush png, decrush crush png. if(!iscrushed(argv[i])) crush(argv[i],NULL); else decrush(argv[i],NULL); } else continue; } return 0; }
int render_line(int buf, int uline) { if(bufs[buf].lpt[uline]) { int pline; for(pline=0;pline<bufs[buf].lpl[uline];pline++) free(bufs[buf].lpt[uline][pline]); free(bufs[buf].lpt[uline]); } if( // this is quite a complicated conditional, so I've split it up. It handles conference mode, quiet mode and debug mode (bufs[buf].conf&&( (bufs[buf].lm[uline]==JOIN) ||(bufs[buf].lm[uline]==PART) ||(bufs[buf].lm[uline]==NICK) ||(bufs[buf].lm[uline]==MODE) ||(bufs[buf].lm[uline]==QUIT) ) ) || (quiet&&(bufs[buf].lq[uline]==QUIET)) || (!debug&&(bufs[buf].lq[uline]==DEBUG)) ) { bufs[buf].lpt[uline]=NULL; bufs[buf].lpl[uline]=0; return(0); } char *tag=strdup(bufs[buf].ltag[uline]?bufs[buf].ltag[uline]:""); bool mergetype=((bufs[buf].lm[uline]==JOIN)&&*tag)||(bufs[buf].lm[uline]==PART)||(bufs[buf].lm[uline]==QUIT); bool merged=false; if(merge&&(bufs[buf].type==CHANNEL)&&mergetype) { int prevline=uline; while(1) { if(--prevline<0) { prevline+=bufs[buf].nlines; if(!bufs[buf].filled) break; } if(fabs(difftime(bufs[buf].ts[prevline], bufs[buf].ts[uline]))>5) break; if(bufs[buf].lm[prevline]==bufs[buf].lm[uline]) { if((bufs[buf].lm[uline]==QUIT)&&strcmp(bufs[buf].lt[uline], bufs[buf].lt[prevline])) break; const char *ltag=bufs[buf].ltag[prevline]; if(!ltag) ltag=""; if((bufs[buf].lm[uline]==JOIN)&&!*ltag) break; size_t nlen=strlen(tag)+strlen(ltag)+2; char *ntag=malloc(nlen); snprintf(ntag, nlen, "%s=%s", ltag, tag); free(tag); tag=ntag; int pline; for(pline=0;pline<bufs[buf].lpl[prevline];pline++) free(bufs[buf].lpt[prevline][pline]); free(bufs[buf].lpt[prevline]); bufs[buf].lpt[prevline]=NULL; bufs[buf].lpl[prevline]=0; merged=true; continue; } break; } } char *message=strdup(bufs[buf].lt[uline]); char *proc;size_t l,i; init_char(&proc, &l, &i); char stamp[STAMP_LEN]; timestamp(stamp, bufs[buf].ts[uline]); colour c={.fore=7, .back=0, .hi=false, .ul=false}; switch(bufs[buf].lm[uline]) { case MSG: { c=c_msg[bufs[buf].ls[uline]?0:1]; char mk[6]="<%s> "; if(show_prefix&&bufs[buf].lp[uline]) { mk[0]=mk[3]=bufs[buf].lp[uline]; } crush(&tag, maxnlen); char *ntag=mktag(mk, tag); free(tag); tag=ntag; } break; case NOTICE: { c=c_notice[bufs[buf].ls[uline]?0:1]; if(*tag) { crush(&tag, maxnlen); char *ntag=mktag("(%s) ", tag); free(tag); tag=ntag; } } break; case PREFORMAT: c=c_notice[bufs[buf].ls[uline]?0:1]; break; case ACT: { c=c_actn[bufs[buf].ls[uline]?0:1]; crush(&tag, maxnlen); char *ntag=mktag("* %s ", tag); free(tag); tag=ntag; } break; case JOIN: c=c_join[bufs[buf].ls[uline]?0:1]; if(tag&&*tag) { free(message); const char *bn=bufs[buf].bname; if(!bn) bn="the channel"; size_t l=16+strlen(bn); message=malloc(l); if(merged) snprintf(message, l, "have joined %s", bufs[buf].bname); else snprintf(message, l, "has joined %s", bufs[buf].bname); } goto eqtag; case PART: c=c_part[bufs[buf].ls[uline]?0:1]; if(tag&&*tag) { free(message); const char *bn=bufs[buf].bname; if(!bn) bn="the channel"; size_t l=16+strlen(bn); message=malloc(l); if(merged) snprintf(message, l, "have left %s", bufs[buf].bname); else snprintf(message, l, "has left %s", bufs[buf].bname); } goto eqtag; case QUIT: c=c_quit[bufs[buf].ls[uline]?0:1]; if(tag&&*tag) { const char *bn=bufs[buf].bname; if(!bn) bn="the channel"; size_t l=16+strlen(bn)+strlen(message); char *nmessage=malloc(l); if(merged) snprintf(nmessage, l, "have left %s (%s)", bufs[buf].bname, message); else snprintf(nmessage, l, "has left %s (%s)", bufs[buf].bname, message); free(message); message=nmessage; } goto eqtag; case QUIT_PREFORMAT: c=c_quit[bufs[buf].ls[uline]?0:1]; break; case NICK: { c=c_nick[bufs[buf].ls[uline]?0:1]; eqtag: if(!merge) crush(&tag, maxnlen); char *ntag=mktag("=%s= ", tag); free(tag); tag=ntag; } break; case MODE: c=c_nick[bufs[buf].ls[uline]?0:1]; break; case STA: c=c_status; break; case ERR: c=c_err; break; case UNK: c=c_unk; break; case UNK_NOTICE: c=c_unk; if(*tag) { crush(&tag, maxnlen); char *ntag=mktag("(%s) ", tag); free(tag); tag=ntag; } break; case UNN: c=c_unn; break; default: break; } int x=wordline(stamp, 0, &proc, &l, &i, c); x=wordline(tag, indent?x:0, &proc, &l, &i, c); free(tag); wordline(message, indent?x:0, &proc, &l, &i, c); free(message); bufs[buf].lpl[uline]=0; bufs[buf].lpt[uline]=NULL; bufs[buf].lpc[uline]=c; char *curr=strtok(proc, "\n"); while(curr) { int pline=bufs[buf].lpl[uline]++; char **nlpt=realloc(bufs[buf].lpt[uline], bufs[buf].lpl[uline]*sizeof(char *)); if(!nlpt) { add_to_buffer(0, ERR, NORMAL, 0, false, "realloc failed; buffer may be corrupted", "render_buffer: "); free(proc); return(1); } (bufs[buf].lpt[uline]=nlpt)[pline]=strdup(curr); curr=strtok(NULL, "\n"); } free(proc); return(0); } void in_update(iline inp) { height=max(height, 5); // anything less than this is /silly/ width=max(width, 30); // widths less than 30 break things, and are /also silly/ resetcol(); locate(height-1, 1); // tab strip int mbw = (width-1)/nbufs; if(mbw>1) { int b; for(b=0;b<nbufs;b++) { colour c={7, hilite_tabstrip?5:0, false, false}; setcolour(c); putchar(' '); // (status) {server} [channel] <user> char brack[2]={'!', '!'}; switch(bufs[b].type) { case STATUS: brack[0]='(';brack[1]=')'; break; case SERVER: brack[0]='{';brack[1]='}'; break; case CHANNEL: brack[0]='[';brack[1]=']'; break; case PRIVATE: brack[0]='<';brack[1]='>'; break; } if(b==cbuf) { c.back=2; // green c.hi=true; } else if(b==bufs[cbuf].server) { c.back=4; // blue c.ul=true; } if(bufs[b].hi_alert%2) { c.fore=6; // cyan c.hi=true; } else if(bufs[b].alert) { c.fore=1; // red c.hi=true; } if((!LIVE(b)) && (c.fore!=6)) { c.fore=3; // yellow c.hi=true; } setcolour(c); putchar(brack[0]); if(mbw>3) { char *tab=strdup(bufs[b].bname); if(bufs[b].type==SERVER) { scrush(&tab, mbw-3); } else { crush(&tab, mbw-3); } printf("%s", tab); free(tab); } if(mbw>2) putchar(brack[1]); c.fore=7; c.back=hilite_tabstrip?5:0; c.hi=c.ul=false; setcolour(c); } } else { setcolour((colour){.fore=0, .back=1, .hi=true, .ul=false}); printf("buf %u [0 to %u]", cbuf, nbufs-1); }
void spritz::cipher::shuffle() { whip(512); crush(); whip(512); crush(); whip(512); a = 0; }
bool tactileGrasp_IDLServer::read(yarp::os::ConnectionReader& connection) { yarp::os::idl::WireReader reader(connection); reader.expectAccept(); if (!reader.readListHeader()) { reader.fail(); return false; } yarp::os::ConstString tag = reader.readTag(); while (!reader.isError()) { // TODO: use quick lookup, this is just a test if (tag == "open") { bool _return; _return = open(); yarp::os::idl::WireWriter writer(reader); if (!writer.isNull()) { if (!writer.writeListHeader(1)) return false; if (!writer.writeBool(_return)) return false; } reader.accept(); return true; } if (tag == "grasp") { bool _return; _return = grasp(); yarp::os::idl::WireWriter writer(reader); if (!writer.isNull()) { if (!writer.writeListHeader(1)) return false; if (!writer.writeBool(_return)) return false; } reader.accept(); return true; } if (tag == "crush") { bool _return; _return = crush(); yarp::os::idl::WireWriter writer(reader); if (!writer.isNull()) { if (!writer.writeListHeader(1)) return false; if (!writer.writeBool(_return)) return false; } reader.accept(); return true; } if (tag == "quit") { bool _return; _return = quit(); yarp::os::idl::WireWriter writer(reader); if (!writer.isNull()) { if (!writer.writeListHeader(1)) return false; if (!writer.writeBool(_return)) return false; } reader.accept(); return true; } if (tag == "setThreshold") { int32_t aFinger; double aThreshold; if (!reader.readI32(aFinger)) { reader.fail(); return false; } if (!reader.readDouble(aThreshold)) { reader.fail(); return false; } bool _return; _return = setThreshold(aFinger,aThreshold); yarp::os::idl::WireWriter writer(reader); if (!writer.isNull()) { if (!writer.writeListHeader(1)) return false; if (!writer.writeBool(_return)) return false; } reader.accept(); return true; } if (tag == "help") { std::string functionName; if (!reader.readString(functionName)) { functionName = "--all"; } std::vector<std::string> _return=help(functionName); yarp::os::idl::WireWriter writer(reader); if (!writer.isNull()) { if (!writer.writeListHeader(2)) return false; if (!writer.writeTag("many",1, 0)) return false; if (!writer.writeListBegin(BOTTLE_TAG_INT, static_cast<uint32_t>(_return.size()))) return false; std::vector<std::string> ::iterator _iterHelp; for (_iterHelp = _return.begin(); _iterHelp != _return.end(); ++_iterHelp) { if (!writer.writeString(*_iterHelp)) return false; } if (!writer.writeListEnd()) return false; } reader.accept(); return true; } if (reader.noMore()) { reader.fail(); return false; } yarp::os::ConstString next_tag = reader.readTag(); if (next_tag=="") break; tag = tag + "_" + next_tag; } return false; }