Lines Matching refs:fd
116 static int enableRawMode(int fd) {
124 if (tcgetattr(fd,&orig_termios) == -1) goto fatal;
142 if (tcsetattr(fd,TCSADRAIN,&raw) < 0) goto fatal;
151 static void disableRawMode(int fd) {
153 if (rawmode && tcsetattr(fd,TCSADRAIN,&orig_termios) != -1)
187 static void refreshLine(int fd, const char *prompt, char *buf, size_t len, size_t pos, size_t cols) {
202 if (write(fd,seq,strlen(seq)) == -1) return;
204 if (write(fd,prompt,strlen(prompt)) == -1) return;
205 if (write(fd,buf,len) == -1) return;
208 if (write(fd,seq,strlen(seq)) == -1) return;
211 if (write(fd,seq,strlen(seq)) == -1) return;
214 static int linenoisePrompt(int fd, char *buf, size_t buflen, const char *prompt) {
228 if (write(fd,prompt,plen) == -1) return -1;
234 nread = read(fd,&c,1);
254 refreshLine(fd,prompt,buf,len,pos,cols);
263 refreshLine(fd,prompt,buf,len,pos,cols);
278 if (read(fd,seq,2) == -1) break;
284 refreshLine(fd,prompt,buf,len,pos,cols);
291 refreshLine(fd,prompt,buf,len,pos,cols);
313 refreshLine(fd,prompt,buf,len,pos,cols);
327 if (write(fd,&c,1) == -1) return -1;
329 refreshLine(fd,prompt,buf,len,pos,cols);
337 refreshLine(fd,prompt,buf,len,pos,cols);
344 refreshLine(fd,prompt,buf,len,pos,cols);
349 refreshLine(fd,prompt,buf,len,pos,cols);
353 refreshLine(fd,prompt,buf,len,pos,cols);
357 refreshLine(fd,prompt,buf,len,pos,cols);
365 int fd = STDIN_FILENO;
380 if (enableRawMode(fd) == -1) return -1;
381 count = linenoisePrompt(fd, buf, buflen, prompt);
382 disableRawMode(fd);