38 lines
767 B
C
38 lines
767 B
C
#ifndef LINE_SOURCE_H_
|
|
#define LINE_SOURCE_H_
|
|
|
|
#include "status.h"
|
|
|
|
#include <fx/stringstream.h>
|
|
#include <stddef.h>
|
|
|
|
struct line_source {
|
|
enum bshell_status (
|
|
*s_get_name)(struct line_source *, char *, size_t, size_t *);
|
|
enum bshell_status (
|
|
*s_readline)(struct line_source *, fx_stringstream *);
|
|
enum bshell_status (*s_get_row)(
|
|
struct line_source *,
|
|
size_t,
|
|
char *,
|
|
size_t,
|
|
size_t *);
|
|
};
|
|
|
|
extern enum bshell_status line_source_get_name(
|
|
struct line_source *src,
|
|
char *buf,
|
|
size_t count,
|
|
size_t *nr_read);
|
|
extern enum bshell_status line_source_readline(
|
|
struct line_source *src,
|
|
fx_stringstream *out);
|
|
extern enum bshell_status line_source_get_row(
|
|
struct line_source *src,
|
|
size_t row,
|
|
char *buf,
|
|
size_t count,
|
|
size_t *nr_read);
|
|
|
|
#endif
|