<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rayedit.git/line.c, branch master</title>
<subtitle>Text editor for large files
</subtitle>
<id>http://git.dilluti0n.com/rayedit.git/atom?h=master</id>
<link rel='self' href='http://git.dilluti0n.com/rayedit.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/'/>
<updated>2026-07-16T17:24:44Z</updated>
<entry>
<title>Remove obsolated functions and tests about line_get_string</title>
<updated>2026-07-16T17:24:44Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-16T17:24:22Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=76fe957261697ddb2978f2e9fc9a592641388886'/>
<id>urn:sha1:76fe957261697ddb2978f2e9fc9a592641388886</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: double-free of line object in eb_backspace and eb_delete_line</title>
<updated>2025-05-14T09:40:29Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-05-14T06:46:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=502aea93b7e2cae6a17d83e6989109d56c9ec79f'/>
<id>urn:sha1:502aea93b7e2cae6a17d83e6989109d56c9ec79f</id>
<content type='text'>
On eb_backspace, when the upper line was non-null, line_cat followed
by line_free, and eb_delete_line only cleared the line_vec. However,
commit 2441e78 introduced an additional line_free in eb_delete_line to
fix a memory leak, which led to a double-free for that line. This
patch resolves that problem.
</content>
</entry>
<entry>
<title>refactor: replace #ifdef DEBUG printf to log_printf</title>
<updated>2025-05-14T05:45:36Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-05-14T05:44:49Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=1c437616c793c07f0afb78551056052413ba520b'/>
<id>urn:sha1:1c437616c793c07f0afb78551056052413ba520b</id>
<content type='text'>
- fix log_printf to not automatically insert newline
</content>
</entry>
<entry>
<title>refactor: introduce mem.h; wrappers for allocators</title>
<updated>2025-05-10T13:51:23Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-05-10T13:13:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=d6872a59a28c8db551ff0b18c9d9041c5cbaa5a5'/>
<id>urn:sha1:d6872a59a28c8db551ff0b18c9d9041c5cbaa5a5</id>
<content type='text'>
This patch removes the dependency on raylib when allocating memory.
</content>
</entry>
<entry>
<title>fix: Memory Leak in eb_delete_line</title>
<updated>2025-05-10T13:20:29Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-05-10T11:12:49Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=2441e78bffaef89dcea64c547329e541250553e7'/>
<id>urn:sha1:2441e78bffaef89dcea64c547329e541250553e7</id>
<content type='text'>
The function eb_delete_line did not properly free the contents of the
entry when deleting an element from eb-&gt;line_vec. This patch fixes
that issue.
</content>
</entry>
<entry>
<title>refactor: deprecate line-&gt;cursor; simplify vertical cursor movement</title>
<updated>2025-05-01T15:24:36Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-05-01T14:29:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=59bda4a797bcf7cc06f4e3990db8d91448d7604a'/>
<id>urn:sha1:59bda4a797bcf7cc06f4e3990db8d91448d7604a</id>
<content type='text'>
This patch removes the per-line cursor cache (`line-&gt;cursor`),
reducing implementation complexity. Vertical cursor movement (up/down)
now uniformly places the cursor at the beginning of the line, instead
of trying to restore the previous horizontal position. UX
considerations such as column preservation will be revisited after
core stabilization.
</content>
</entry>
<entry>
<title>fix: line_split allocating newline but not initializing correctly</title>
<updated>2025-04-29T13:55:33Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-04-29T13:55:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=892b4124854df788953f7742488bdcf745b95914'/>
<id>urn:sha1:892b4124854df788953f7742488bdcf745b95914</id>
<content type='text'>
The bug caused UB on splited newline. (especially when is_lazy = 1
unluckly)
</content>
</entry>
<entry>
<title>fix: SEGSEGV on line_get_last; NULL check for li should be first.</title>
<updated>2025-04-29T13:38:33Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-04-29T13:38:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=9a741c76e98372f2d492660e08010ce8336b596c'/>
<id>urn:sha1:9a741c76e98372f2d492660e08010ce8336b596c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: add slice-based accessors for line and editor buffer</title>
<updated>2025-04-29T12:56:40Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-04-29T12:53:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=5e4cb3121fd3eaf9ed6b6887e8010f6a80ed0f3d'/>
<id>urn:sha1:5e4cb3121fd3eaf9ed6b6887e8010f6a80ed0f3d</id>
<content type='text'>
This adds `line_get_slice` and `eb_get_line_slice`, enabling
slice-style (pointer + length) access to line contents without
requiring materialization into a null-terminated string.

- `line_get_slice` returns either the original mmap'd buffer (if the
- line is lazy) or the materialized vector contents (if edited).
- `eb_get_line_slice` wraps `line_get_slice` to provide safe access at
- the editor buffer level.  Update `line.h` and `editor.h` headers to
- declare the new functions.  Minor documentation improvements to
- clarify "init", "modify", and "get" function categories.

This prepares the codebase for transitioning away from C-string
dependency where possible, improving efficiency and avoiding
unnecessary memory copies.
</content>
</entry>
<entry>
<title>fix: `line_free` to handle lazy-loaded line appropriately.</title>
<updated>2025-04-29T07:37:24Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-04-29T07:37:24Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=c9273c50f42e2df8aa7a3a754e649e55c1d31445'/>
<id>urn:sha1:c9273c50f42e2df8aa7a3a754e649e55c1d31445</id>
<content type='text'>
fix `line_cat` to handle lazy-loaded `src` line too

[minor]
add const keyword for line_get_last since it is.
</content>
</entry>
</feed>
