Lines Matching refs:ab
502 static void abInit(struct abuf *ab) {
503 ab->b = NULL;
504 ab->len = 0;
507 static void abAppend(struct abuf *ab, const char *s, int len) {
509 char *new = realloc(ab->b,ab->len+len);
512 memcpy(new+ab->len,s,len);
513 ab->b = new;
514 ab->len += len;
517 static void abFree(struct abuf *ab) {
518 free(ab->b);
523 void refreshShowHints(struct abuf *ab, struct linenoiseState *l, int plen) {
535 abAppend(ab,seq,strlen(seq));
536 abAppend(ab,hint,hintlen);
538 abAppend(ab,"\033[0m",4);
556 struct abuf ab;
577 abInit(&ab);
580 abAppend(&ab,seq,strlen(seq));
582 abAppend(&ab,l->prompt,plen);
583 abAppend(&ab,buf,len);
585 refreshShowHints(&ab,l,plen);
588 abAppend(&ab,seq,strlen(seq));
591 abAppend(&ab,seq,strlen(seq));
592 if (write(fd,ab.b,ab.len) == -1) {} /* Can't recover from write error. */
593 abFree(&ab);
609 struct abuf ab;
616 abInit(&ab);
620 abAppend(&ab,seq,strlen(seq));
627 abAppend(&ab,seq,strlen(seq));
633 abAppend(&ab,seq,strlen(seq));
636 abAppend(&ab,l->prompt,strlen(l->prompt));
637 abAppend(&ab,l->buf,l->len);
640 refreshShowHints(&ab,l,plen);
649 abAppend(&ab,"\n",1);
651 abAppend(&ab,seq,strlen(seq));
664 abAppend(&ab,seq,strlen(seq));
674 abAppend(&ab,seq,strlen(seq));
679 if (write(fd,ab.b,ab.len) == -1) {} /* Can't recover from write error. */
680 abFree(&ab);