void textedit_replace_text(t_textedit *te, char const *str) { t_ui len; t_ui new_size; if (str_buf_size(&te->buffer) == 0) return ; len = str_buf_size(&te->buffer) - te->prompt.size; str_buf_erase(&te->buffer, te->prompt.size, len); str_buf_insert_str(&te->buffer, te->prompt.size, str); new_size = str_buf_size(&te->buffer); te->cursor.buffer_pos = new_size; te->modified = true; }
void cursor_next_char(t_textedit *te) { t_cursor *cursor; cursor = &te->cursor; if (cursor->buffer_pos + 1 > str_buf_size(&te->buffer)) return ; cursor->buffer_pos += 1; te->modified = true; }
bool str_buf_put_str(str_buf * buf, const char * str){ int i; int j; if(str_buf_size(buf)< str_buf_len(buf)+strlen(str)) /* check if the buf size is big enough append str to buf1*/ return false; for (i=str_buf_len(buf),j=0; j<strlen(str); i++,j++){ buf->buffer[i] = str[j]; /* append str to buf */ buf->length++; } return true; }
bool str_buf_put_buf(str_buf * buf1, str_buf * buf2){ int i; int j; if(str_buf_size(buf1)< str_buf_len(buf1)+str_buf_len(buf2)) /* check if the buf1 size is big enough append buf2 to buf1*/ return false; for (i=str_buf_len(buf1),j=0; j<str_buf_len(buf2); i++,j++){ buf1->buffer[i] = buf2->buffer[j]; /* append buf2 to buf1 */ buf1->length++; } return true; }