| 183 |
/* エディタの初期化 */ |
/* エディタの初期化 */ |
| 184 |
static void shiki_editor_window_init(int argc, char **argv); |
static void shiki_editor_window_init(int argc, char **argv); |
| 185 |
|
|
| 186 |
|
|
| 187 |
|
static ScmObj Shiki_buffer_substring(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_) |
| 188 |
|
{ |
| 189 |
|
ScmObj start, end, result; |
| 190 |
|
GtkTextIter s, e; |
| 191 |
|
gchar *substring; |
| 192 |
|
SCM_ENTER_SUBR("buffer-substring"); |
| 193 |
|
start = SCM_ARGREF(0); |
| 194 |
|
end = SCM_ARGREF(1); |
| 195 |
|
if(Scm_NumCmp(start, end) >= 0) |
| 196 |
|
return SCM_FALSE; |
| 197 |
|
gtk_text_buffer_get_iter_at_offset(Shiki_CURRENT_TEXT_BUFFER, &s, SCM_INT_VALUE(start)); |
| 198 |
|
gtk_text_buffer_get_iter_at_offset(Shiki_CURRENT_TEXT_BUFFER, &e, SCM_INT_VALUE(end)); |
| 199 |
|
|
| 200 |
|
substring = gtk_text_buffer_get_text(Shiki_CURRENT_TEXT_BUFFER, &s, &e, FALSE); |
| 201 |
|
result = SCM_MAKE_STR_COPYING(substring); |
| 202 |
|
g_free(substring); |
| 203 |
|
SCM_RETURN(result); |
| 204 |
|
} |
| 205 |
|
|
| 206 |
|
static SCM_DEFINE_STRING_CONST(buffer_substring__NAME, "buffer-substring", 16, 16); |
| 207 |
|
static SCM_DEFINE_SUBR(buffer_substring__STUB, 2, 0, SCM_OBJ(&buffer_substring__NAME), Shiki_buffer_substring, NULL, NULL); |
| 208 |
|
|
| 209 |
/* バッファの内容を消去 */ |
/* バッファの内容を消去 */ |
| 210 |
static void clear_current_buffer() { |
static void clear_current_buffer() { |
| 211 |
GtkTextIter start, end; |
GtkTextIter start, end; |
| 518 |
|
|
| 519 |
gtk_text_buffer_get_iter_at_mark(Shiki_CURRENT_TEXT_BUFFER, &end, gtk_text_buffer_get_insert(Shiki_CURRENT_TEXT_BUFFER)); |
gtk_text_buffer_get_iter_at_mark(Shiki_CURRENT_TEXT_BUFFER, &end, gtk_text_buffer_get_insert(Shiki_CURRENT_TEXT_BUFFER)); |
| 520 |
|
|
| 521 |
gtk_text_buffer_insert(Shiki_CURRENT_TEXT_BUFFER, &end, "\n\n", -1); |
gtk_text_buffer_insert(Shiki_CURRENT_TEXT_BUFFER, &end, "\n", -1); |
| 522 |
gtk_text_buffer_insert(Shiki_CURRENT_TEXT_BUFFER, &end, result, -1); |
gtk_text_buffer_insert(Shiki_CURRENT_TEXT_BUFFER, &end, result, -1); |
| 523 |
|
gtk_text_buffer_insert(Shiki_CURRENT_TEXT_BUFFER, &end, "\n", -1); |
| 524 |
} |
} |
| 525 |
break; |
break; |
| 526 |
|
|
| 537 |
|
|
| 538 |
gtk_text_buffer_get_iter_at_mark(Shiki_CURRENT_TEXT_BUFFER, &end, gtk_text_buffer_get_insert(Shiki_CURRENT_TEXT_BUFFER)); |
gtk_text_buffer_get_iter_at_mark(Shiki_CURRENT_TEXT_BUFFER, &end, gtk_text_buffer_get_insert(Shiki_CURRENT_TEXT_BUFFER)); |
| 539 |
|
|
| 540 |
gtk_text_buffer_insert(Shiki_CURRENT_TEXT_BUFFER, &end, "\n\n", -1); |
gtk_text_buffer_insert(Shiki_CURRENT_TEXT_BUFFER, &end, "\n", -1); |
| 541 |
gtk_text_buffer_insert(Shiki_CURRENT_TEXT_BUFFER, &end, result, -1); |
gtk_text_buffer_insert(Shiki_CURRENT_TEXT_BUFFER, &end, result, -1); |
| 542 |
|
gtk_text_buffer_insert(Shiki_CURRENT_TEXT_BUFFER, &end, "\n", -1); |
| 543 |
} |
} |
| 544 |
break; |
break; |
| 545 |
|
|
| 584 |
tabinfo->env = Scm_MakeModule(NULL, FALSE); |
tabinfo->env = Scm_MakeModule(NULL, FALSE); |
| 585 |
|
|
| 586 |
SCM_DEFINE(tabinfo->env, "clear-current-buffer", SCM_OBJ(&clear_current_buffer__STUB)); |
SCM_DEFINE(tabinfo->env, "clear-current-buffer", SCM_OBJ(&clear_current_buffer__STUB)); |
| 587 |
|
SCM_DEFINE(tabinfo->env, "buffer-substring", SCM_OBJ(&buffer_substring__STUB)); |
| 588 |
|
|
| 589 |
g_return_if_fail(tabinfo->env != SCM_FALSE); |
g_return_if_fail(tabinfo->env != SCM_FALSE); |
| 590 |
|
|