static void
shuffle(spritz_ctx *ctx)
{
  whip(ctx);
  crush(ctx);
  whip(ctx);
  crush(ctx);
  whip(ctx);
  ctx->a = 0;
}
Example #2
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;
}
Example #4
0
File: buffer.c Project: ec429/quIRC
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);
	}
Example #5
0
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;
}