1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | CUSTOM_COMMAND_SIG( jason_enter_normal_mode )
{
jason_set_current_keymap( app, mapid_command);
Theme_Color colors[] = {
{ Stag_Cursor, 0xffff5533 },
{ Stag_At_Cursor, 0xff00aacc },
{ Stag_Margin_Active, 0xffff5533 },
};
set_theme_colors( app, colors, ArrayCount( colors ) );
};
void SwitchModeTo(struct Application_Links* app, Custom_Command_Function* SwitchModeTo)
{
SwitchModeTo(app);
};
CUSTOM_COMMAND_SIG(jason_seek_beginning_line_and_switch_to_insert_mode)
{
exec_command(app, seek_beginning_of_line);
View_Summary view = get_active_view(app, AccessAll);
Buffer_Summary buffer = get_buffer(app, view.buffer_id, AccessProtected);
char *ParsingRegion = (char *)malloc(sizeof(buffer.size));
buffer_read_range(app, &buffer, 0, buffer.size, ParsingRegion);
for(int charIndex{view.cursor.pos}; charIndex < buffer.size; ++charIndex)
{
if(ParsingRegion[charIndex] == '\t' || ParsingRegion[charIndex] == ' ')
{
//Do nothing
}
else
{
Buffer_Seek bufferSeek{};
bufferSeek.type = buffer_seek_pos;
bufferSeek.pos = charIndex;
view_set_cursor(app, &view, bufferSeek, true);
break;
}
};
free(ParsingRegion);
ParsingRegion = nullptr;
SwitchModeTo(app, jason_enter_insert_mode);
};
|
This code does 'work' in a sense as my cursor will move to correct spot and I can sometimes even type a couple letters but eventually the program will just crash. Anyone able to see where my issue is? Am I misusing the API?