Blender  V3.3
Enumerations | Functions | Variables
BKE_text.h File Reference
#include "BLI_compiler_attrs.h"

Go to the source code of this file.

Enumerations

enum  { TXT_MOVE_LINE_UP = -1 , TXT_MOVE_LINE_DOWN = 1 }
 

Functions

void BKE_text_free_lines (struct Text *text)
 
struct TextBKE_text_add (struct Main *bmain, const char *name)
 
int txt_extended_ascii_as_utf8 (char **str)
 
bool BKE_text_reload (struct Text *text)
 
struct TextBKE_text_load_ex (struct Main *bmain, const char *filepath, const char *relbase, bool is_internal) ATTR_NONNULL(1
 
struct Text struct TextBKE_text_load (struct Main *bmain, const char *filepath, const char *relbase) ATTR_NONNULL(1
 
struct Text struct Text void BKE_text_clear (struct Text *text) ATTR_NONNULL(1)
 
void BKE_text_write (struct Text *text, const char *str, int str_len) ATTR_NONNULL(1
 
void int BKE_text_file_modified_check (struct Text *text)
 
void BKE_text_file_modified_ignore (struct Text *text)
 
char * txt_to_buf (struct Text *text, size_t *r_buf_strlen) ATTR_NONNULL(1
 
void txt_clean_text (struct Text *text)
 
void txt_order_cursors (struct Text *text, bool reverse)
 
int txt_find_string (struct Text *text, const char *findstr, int wrap, int match_case)
 
bool txt_has_sel (const struct Text *text)
 
int txt_get_span (struct TextLine *from, struct TextLine *to)
 
void txt_move_up (struct Text *text, bool sel)
 
void txt_move_down (struct Text *text, bool sel)
 
void txt_move_left (struct Text *text, bool sel)
 
void txt_move_right (struct Text *text, bool sel)
 
void txt_jump_left (struct Text *text, bool sel, bool use_init_step)
 
void txt_jump_right (struct Text *text, bool sel, bool use_init_step)
 
void txt_move_bof (struct Text *text, bool sel)
 
void txt_move_eof (struct Text *text, bool sel)
 
void txt_move_bol (struct Text *text, bool sel)
 
void txt_move_eol (struct Text *text, bool sel)
 
void txt_move_toline (struct Text *text, unsigned int line, bool sel)
 
void txt_move_to (struct Text *text, unsigned int line, unsigned int ch, bool sel)
 
void txt_pop_sel (struct Text *text)
 
void txt_delete_char (struct Text *text)
 
void txt_delete_word (struct Text *text)
 
void txt_delete_selected (struct Text *text)
 
void txt_sel_all (struct Text *text)
 
void txt_sel_clear (struct Text *text)
 
void txt_sel_line (struct Text *text)
 
void txt_sel_set (struct Text *text, int startl, int startc, int endl, int endc)
 
char * txt_sel_to_buf (struct Text *text, size_t *r_buf_strlen)
 
void txt_insert_buf (struct Text *text, const char *in_buffer, int in_buffer_len) ATTR_NONNULL(1
 
void void txt_split_curline (struct Text *text)
 
void txt_backspace_char (struct Text *text)
 
void txt_backspace_word (struct Text *text)
 
bool txt_add_char (struct Text *text, unsigned int add)
 
bool txt_add_raw_char (struct Text *text, unsigned int add)
 
bool txt_replace_char (struct Text *text, unsigned int add)
 
bool txt_unindent (struct Text *text)
 
void txt_comment (struct Text *text)
 
void txt_indent (struct Text *text)
 
bool txt_uncomment (struct Text *text)
 
void txt_move_lines (struct Text *text, int direction)
 
void txt_duplicate_line (struct Text *text)
 
int txt_setcurr_tab_spaces (struct Text *text, int space)
 
bool txt_cursor_is_line_start (const struct Text *text)
 
bool txt_cursor_is_line_end (const struct Text *text)
 
int txt_calc_tab_left (struct TextLine *tl, int ch)
 
int txt_calc_tab_right (struct TextLine *tl, int ch)
 
int text_check_bracket (char ch)
 
bool text_check_delim (char ch)
 
bool text_check_digit (char ch)
 
bool text_check_identifier (char ch)
 
bool text_check_identifier_nodigit (char ch)
 
bool text_check_whitespace (char ch)
 
int text_find_identifier_start (const char *str, int i)
 
int text_check_identifier_unicode (unsigned int ch)
 
int text_check_identifier_nodigit_unicode (unsigned int ch)
 
char * txt_to_buf_for_undo (struct Text *text, size_t *r_buf_len) ATTR_NONNULL(1
 
void txt_from_buf_for_undo (struct Text *text, const char *buf, size_t buf_len) ATTR_NONNULL(1
 

Variables

char ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
TXT_MOVE_LINE_UP 
TXT_MOVE_LINE_DOWN 

Definition at line 133 of file BKE_text.h.

Function Documentation

◆ BKE_text_add()

struct Text* BKE_text_add ( struct Main bmain,
const char *  name 
)

Definition at line 282 of file text.c.

References BKE_id_new(), Text::id, id_fake_user_set(), ID_TXT, and id_us_min().

Referenced by text_new_exec().

◆ BKE_text_clear()

struct Text struct Text void BKE_text_clear ( struct Text text)

Definition at line 516 of file text.c.

References txt_delete_sel(), txt_make_dirty(), and txt_sel_all().

◆ BKE_text_file_modified_check()

void int BKE_text_file_modified_check ( struct Text text)
Returns
codes:
  • 0 if filepath on disk is the same or Text is in memory only.
  • 1 if filepath has been modified on disk since last local edit.
  • 2 if filepath on disk has been deleted.
  • -1 is returned if an error occurs.

Definition at line 530 of file text.c.

References BLI_exists(), BLI_path_abs(), BLI_stat(), BLI_strncpy(), FILE_MAX, Text::filepath, Text::id, ID_BLEND_PATH_FROM_GLOBAL, Text::mtime, result, and usdtokens::st().

Referenced by text_resolve_conflict_invoke().

◆ BKE_text_file_modified_ignore()

void BKE_text_file_modified_ignore ( struct Text text)

◆ BKE_text_free_lines()

void BKE_text_free_lines ( struct Text text)
Note
caller must handle compiled member.

Definition at line 266 of file text.c.

References BLI_listbase_clear(), Text::curl, ListBase::first, Text::lines, MEM_freeN, NULL, and Text::sell.

Referenced by BKE_text_reload(), and text_free_data().

◆ BKE_text_load()

struct Text struct Text* BKE_text_load ( struct Main bmain,
const char *  filepath,
const char *  relbase 
)

Load a text file.

Note
Text data-blocks have no user by default, only the 'real user' flag.

Referenced by Freestyle::PythonInterpreter::interpretFile().

◆ BKE_text_load_ex()

struct Text* BKE_text_load_ex ( struct Main bmain,
const char *  filepath,
const char *  relbase,
bool  is_internal 
)

Load a text file.

Parameters
is_internalIf true, this text data-block only exists in memory, not as a file on disk.
Note
text data-blocks have no real user but have 'fake user' enabled by default

Referenced by text_open_exec().

◆ BKE_text_reload()

bool BKE_text_reload ( struct Text text)

◆ BKE_text_write()

void BKE_text_write ( struct Text text,
const char *  str,
int  str_len 
)

◆ text_check_bracket()

int text_check_bracket ( char  ch)

Utility functions, could be moved somewhere more generic but are python/text related.

Definition at line 2276 of file text.c.

References Freestyle::a.

◆ text_check_delim()

bool text_check_delim ( char  ch)

◆ text_check_digit()

bool text_check_digit ( char  ch)

◆ text_check_identifier()

bool text_check_identifier ( char  ch)

◆ text_check_identifier_nodigit()

bool text_check_identifier_nodigit ( char  ch)

Definition at line 2343 of file text.c.

Referenced by text_check_identifier_nodigit_unicode().

◆ text_check_identifier_nodigit_unicode()

int text_check_identifier_nodigit_unicode ( unsigned int  ch)

Definition at line 2369 of file text.c.

References text_check_identifier_nodigit().

Referenced by text_autocomplete_build().

◆ text_check_identifier_unicode()

int text_check_identifier_unicode ( unsigned int  ch)

Definition at line 2364 of file text.c.

References text_check_identifier().

Referenced by text_autocomplete_build().

◆ text_check_whitespace()

bool text_check_whitespace ( char  ch)

Definition at line 2375 of file text.c.

References ELEM.

Referenced by text_autocomplete_modal(), txtfmt_osl_find_preprocessor(), and txtfmt_py_find_decorator().

◆ text_find_identifier_start()

int text_find_identifier_start ( const char *  str,
int  i 
)

Definition at line 2383 of file text.c.

References str, text_check_identifier(), and UNLIKELY.

Referenced by confirm_suggestion(), get_suggest_prefix(), and text_autocomplete_build().

◆ txt_add_char()

bool txt_add_char ( struct Text text,
unsigned int  add 
)

◆ txt_add_raw_char()

bool txt_add_raw_char ( struct Text text,
unsigned int  add 
)

Definition at line 1924 of file text.c.

References blender::bke::attribute_accessor_functions::add(), and txt_add_char_intern().

Referenced by txt_insert_buf().

◆ txt_backspace_char()

void txt_backspace_char ( struct Text text)

◆ txt_backspace_word()

void txt_backspace_word ( struct Text text)

Definition at line 1854 of file text.c.

References txt_delete_sel(), txt_jump_left(), and txt_make_dirty().

Referenced by text_delete_exec().

◆ txt_calc_tab_left()

int txt_calc_tab_left ( struct TextLine tl,
int  ch 
)

Definition at line 824 of file text.c.

References TextLine::line, and TXT_TABSIZE.

Referenced by text_delete_exec(), and txt_move_left().

◆ txt_calc_tab_right()

int txt_calc_tab_right ( struct TextLine tl,
int  ch 
)

Definition at line 844 of file text.c.

References TextLine::line, and TXT_TABSIZE.

Referenced by text_delete_exec(), and txt_move_right().

◆ txt_clean_text()

void txt_clean_text ( struct Text text)

◆ txt_comment()

void txt_comment ( struct Text text)

Definition at line 2137 of file text.c.

References Text::curl, ELEM, NULL, Text::sell, txt_has_sel(), and txt_select_prefix().

Referenced by text_comment_exec().

◆ txt_cursor_is_line_end()

bool txt_cursor_is_line_end ( const struct Text text)

◆ txt_cursor_is_line_start()

bool txt_cursor_is_line_start ( const struct Text text)

◆ txt_delete_char()

void txt_delete_char ( struct Text text)

◆ txt_delete_selected()

void txt_delete_selected ( struct Text text)

Definition at line 1929 of file text.c.

References txt_delete_sel(), and txt_make_dirty().

Referenced by text_cut_exec().

◆ txt_delete_word()

void txt_delete_word ( struct Text text)

Definition at line 1799 of file text.c.

References txt_delete_sel(), txt_jump_right(), and txt_make_dirty().

Referenced by text_delete_exec().

◆ txt_duplicate_line()

void txt_duplicate_line ( struct Text text)

◆ txt_extended_ascii_as_utf8()

int txt_extended_ascii_as_utf8 ( char **  str)

Use to a valid UTF-8 sequences. this function replaces extended ascii characters.

Definition at line 295 of file text.c.

References BLI_str_utf8_from_unicode(), BLI_str_utf8_invalid_byte(), blender::math::length(), MEM_freeN, MEM_mallocN, and str.

Referenced by blo_do_versions_260(), cleanup_textline(), and txt_insert_buf().

◆ txt_find_string()

int txt_find_string ( struct Text text,
const char *  findstr,
int  wrap,
int  match_case 
)

◆ txt_from_buf_for_undo()

void txt_from_buf_for_undo ( struct Text text,
const char *  buf,
size_t  buf_len 
)

Decode a buffer from txt_to_buf_for_undo.

Referenced by text_state_decode().

◆ txt_get_span()

int txt_get_span ( struct TextLine from,
struct TextLine to 
)

◆ txt_has_sel()

bool txt_has_sel ( const struct Text text)

◆ txt_indent()

void txt_indent ( struct Text text)

Definition at line 2160 of file text.c.

References Text::curl, ELEM, Text::flags, NULL, Text::sell, tab_to_spaces, txt_select_prefix(), and TXT_TABSTOSPACES.

Referenced by text_indent_exec().

◆ txt_insert_buf()

void txt_insert_buf ( struct Text text,
const char *  in_buffer,
int  in_buffer_len 
)

◆ txt_jump_left()

void txt_jump_left ( struct Text text,
bool  sel,
bool  use_init_step 
)

◆ txt_jump_right()

void txt_jump_right ( struct Text text,
bool  sel,
bool  use_init_step 
)

◆ txt_move_bof()

void txt_move_bof ( struct Text text,
bool  sel 
)

Definition at line 1045 of file text.c.

References ListBase::first, Text::lines, txt_curs_cur(), txt_curs_sel(), and txt_pop_sel().

Referenced by text_move_cursor().

◆ txt_move_bol()

void txt_move_bol ( struct Text text,
bool  sel 
)

Definition at line 1001 of file text.c.

References txt_curs_cur(), txt_curs_sel(), and txt_pop_sel().

Referenced by text_move_cursor(), and txt_move_up().

◆ txt_move_down()

void txt_move_down ( struct Text text,
bool  sel 
)

◆ txt_move_eof()

void txt_move_eof ( struct Text text,
bool  sel 
)

Definition at line 1068 of file text.c.

References ListBase::last, Text::lines, txt_curs_cur(), txt_curs_sel(), and txt_pop_sel().

Referenced by BKE_text_write(), and text_move_cursor().

◆ txt_move_eol()

void txt_move_eol ( struct Text text,
bool  sel 
)

Definition at line 1023 of file text.c.

References txt_curs_cur(), txt_curs_sel(), and txt_pop_sel().

Referenced by text_move_cursor(), and txt_move_down().

◆ txt_move_left()

void txt_move_left ( struct Text text,
bool  sel 
)

◆ txt_move_lines()

void txt_move_lines ( struct Text text,
int  direction 
)

◆ txt_move_right()

void txt_move_right ( struct Text text,
bool  sel 
)

◆ txt_move_to()

void txt_move_to ( struct Text text,
unsigned int  line,
unsigned int  ch,
bool  sel 
)

Moves to a certain byte in a line, not a certain utf8-character.

Definition at line 1096 of file text.c.

References ListBase::first, Text::lines, TextLine::next, txt_curs_cur(), txt_curs_sel(), and txt_pop_sel().

Referenced by python_script_error_jump_text(), text_reload_exec(), text_replace_all(), text_state_decode(), txt_find_string(), and txt_move_toline().

◆ txt_move_toline()

void txt_move_toline ( struct Text text,
unsigned int  line,
bool  sel 
)

Definition at line 1091 of file text.c.

References txt_move_to().

Referenced by text_find_and_replace(), text_jump_exec(), text_line_number_invoke(), and text_replace_all().

◆ txt_move_up()

void txt_move_up ( struct Text text,
bool  sel 
)

◆ txt_order_cursors()

void txt_order_cursors ( struct Text text,
bool  reverse 
)

◆ txt_pop_sel()

void txt_pop_sel ( struct Text text)

◆ txt_replace_char()

bool txt_replace_char ( struct Text text,
unsigned int  add 
)

◆ txt_sel_all()

void txt_sel_all ( struct Text text)

◆ txt_sel_clear()

void txt_sel_clear ( struct Text text)

Reverse of txt_pop_sel Clears the selection and ensures the cursor is located at the selection (where the cursor is visually while editing).

Definition at line 1255 of file text.c.

References Text::curc, Text::curl, Text::selc, and Text::sell.

Referenced by text_move_cursor().

◆ txt_sel_line()

void txt_sel_line ( struct Text text)

Definition at line 1263 of file text.c.

References Text::curc, Text::curl, TextLine::len, Text::selc, and Text::sell.

Referenced by text_select_line_exec().

◆ txt_sel_set()

void txt_sel_set ( struct Text text,
int  startl,
int  startc,
int  endl,
int  endc 
)

◆ txt_sel_to_buf()

char* txt_sel_to_buf ( struct Text text,
size_t *  r_buf_strlen 
)

◆ txt_setcurr_tab_spaces()

int txt_setcurr_tab_spaces ( struct Text text,
int  space 
)

Definition at line 2213 of file text.c.

References Freestyle::a, Text::curc, Text::curl, ELEM, Text::flags, TextLine::line, NULL, and TXT_TABSTOSPACES.

Referenced by text_line_break_exec().

◆ txt_split_curline()

void void txt_split_curline ( struct Text text)

◆ txt_to_buf()

char* txt_to_buf ( struct Text text,
size_t *  r_buf_strlen 
)

Referenced by python_script_exec().

◆ txt_to_buf_for_undo()

char* txt_to_buf_for_undo ( struct Text text,
size_t *  r_buf_len 
)

Create a buffer, the only requirement is txt_from_buf_for_undo can decode it.

Referenced by text_state_encode().

◆ txt_uncomment()

bool txt_uncomment ( struct Text text)

Definition at line 2149 of file text.c.

References Text::curl, ELEM, NULL, Text::sell, and txt_select_unprefix().

Referenced by text_comment_exec().

◆ txt_unindent()

bool txt_unindent ( struct Text text)

Variable Documentation

◆ ATTR_RETURNS_NONNULL

char ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL

Definition at line 62 of file BKE_text.h.