2024-11-18 09:53:55 +00:00
|
|
|
#include "buffer.h"
|
|
|
|
|
#include "line-ed.h"
|
|
|
|
|
|
2024-12-13 17:20:45 +00:00
|
|
|
const char *line_start(struct line_ed *ed, size_t y)
|
2024-11-18 09:53:55 +00:00
|
|
|
{
|
|
|
|
|
const char *line = ed->l_buf;
|
|
|
|
|
|
2024-12-13 17:20:45 +00:00
|
|
|
for (size_t i = 0; i < y; i++) {
|
2024-11-18 09:53:55 +00:00
|
|
|
line += strcspn(line, "\n");
|
|
|
|
|
|
|
|
|
|
if (*line == '\n') {
|
|
|
|
|
line++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return line;
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-13 17:20:45 +00:00
|
|
|
size_t line_length(struct line_ed *ed, size_t y)
|
2024-11-18 09:53:55 +00:00
|
|
|
{
|
|
|
|
|
const char *line = ed->l_buf;
|
|
|
|
|
|
2024-12-13 17:20:45 +00:00
|
|
|
for (size_t i = 0; i < y; i++) {
|
2024-11-18 09:53:55 +00:00
|
|
|
line += strcspn(line, "\n");
|
|
|
|
|
if (*line == '\n') {
|
|
|
|
|
line++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (*line == '\0') {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-13 17:20:45 +00:00
|
|
|
size_t len = strcspn(line, "\n");
|
2024-11-18 09:53:55 +00:00
|
|
|
if (line[len] == '\n') {
|
|
|
|
|
len++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return len;
|
|
|
|
|
}
|