Develop and Download Open Source Software

Browse CVS Repository

Diff of /shiki/shiki/shiki.c

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.33 by aloha, Thu Nov 16 16:15:34 2006 UTC revision 1.34 by aloha, Fri Nov 17 13:04:08 2006 UTC
# Line 83  struct { Line 83  struct {
83  #define Shiki_CURRENT_TEXT_VIEW      (shiki_editor.current_tabpage_info)->text_view  #define Shiki_CURRENT_TEXT_VIEW      (shiki_editor.current_tabpage_info)->text_view
84  #define Shiki_CURRENT_TEXT_BUFFER    (shiki_editor.current_tabpage_info)->text_buffer  #define Shiki_CURRENT_TEXT_BUFFER    (shiki_editor.current_tabpage_info)->text_buffer
85  #define Shiki_CURRENT_FILENAME       (shiki_editor.current_tabpage_info)->filename  #define Shiki_CURRENT_FILENAME       (shiki_editor.current_tabpage_info)->filename
86  #define Shiki_CURRENT_SCHEME_ENV     (shiki_editor.current_tabpage_info)->env  #define Shiki_CURRENT_BUFFER_ENV     (shiki_editor.current_tabpage_info)->env
87    
88  /* プロトタイプ */  /* プロトタイプ */
89    
# Line 333  static gboolean signal_key_press_handler Line 333  static gboolean signal_key_press_handler
333  static void append_tabpage(gchar *filename) {  static void append_tabpage(gchar *filename) {
334    /*-------------------- 新しいタブを作る ----------------------------------*/    /*-------------------- 新しいタブを作る ----------------------------------*/
335    /* ShikiTabInfo には,タブに関連する情報が全て保持されている */    /* ShikiTabInfo には,タブに関連する情報が全て保持されている */
336    ShikiTabInfo *tabinfo = g_malloc(sizeof(ShikiTabInfo));    ShikiTabInfo *tabinfo  = g_malloc(sizeof(ShikiTabInfo));
337    tabinfo->undoInfoList = NULL;    tabinfo->undoInfoList  = NULL;
338    tabinfo->filename = filename;    tabinfo->filename      = filename;
339    tabinfo->tabpage_label = g_path_get_basename(filename);    tabinfo->tabpage_label = g_path_get_basename(filename);
340      tabinfo->env           = Scm_MakeModule(NULL, FALSE);
341      
342      g_return_if_fail(tabinfo->env != SCM_FALSE);
343    
344    /* スクロールウィンドウ (タブの中身の大外) を作る */    /* スクロールウィンドウ (タブの中身の大外) を作る */
345    tabinfo->tabpage = GTK_SCROLLED_WINDOW(gtk_scrolled_window_new(NULL, NULL));    tabinfo->tabpage = GTK_SCROLLED_WINDOW(gtk_scrolled_window_new(NULL, NULL));
# Line 445  static gchar *load_cstring_by_gauche(gch Line 448  static gchar *load_cstring_by_gauche(gch
448    /* 出力文字列ポート開く */    /* 出力文字列ポート開く */
449    ScmObj os = Scm_MakeOutputStringPort(TRUE);    ScmObj os = Scm_MakeOutputStringPort(TRUE);
450    
451    Scm_Define(Scm_UserModule(), SCM_SYMBOL(SCM_INTERN("*input*")), is);    Scm_Define(SCM_MODULE(Shiki_CURRENT_BUFFER_ENV), SCM_SYMBOL(SCM_INTERN("*input*")), is);
452    Scm_Define(Scm_UserModule(), SCM_SYMBOL(SCM_INTERN("*error*")), SCM_FALSE);    Scm_Define(SCM_MODULE(Shiki_CURRENT_BUFFER_ENV), SCM_SYMBOL(SCM_INTERN("*error*")), SCM_FALSE);
453    /* Scheme のレベルでエラーハンドリングをしつつ,ポートから順番に S 式を読み込み,評価していく.コンパイルエラーなどは *error* に捕捉される */    /* Scheme のレベルでエラーハンドリングをしつつ,ポートから順番に S 式を読み込み,評価していく.コンパイルエラーなどは *error* に捕捉される */
454    result = Scm_EvalCString("(guard (e (else (set! *error* e) #f)) (eval (load-from-port *input*) (current-module)))", SCM_OBJ(Scm_UserModule()));    result = Scm_EvalCString("(guard (e (else (set! *error* e) #f)) (eval (load-from-port *input*) (current-module)))", SCM_OBJ(Shiki_CURRENT_BUFFER_ENV));
455    
456    error = Scm_GlobalVariableRef(Scm_UserModule(), SCM_SYMBOL(SCM_INTERN("*error*")), 0);    error = Scm_GlobalVariableRef(SCM_MODULE(Shiki_CURRENT_BUFFER_ENV), SCM_SYMBOL(SCM_INTERN("*error*")), 0);
457    
458    /* 文字列を評価した結果をポートに書き込む */    /* 文字列を評価した結果をポートに書き込む */
459    if (!SCM_FALSEP(error))    if (!SCM_FALSEP(error))
# Line 699  static gchar *eval_cstring_by_gauche(gch Line 702  static gchar *eval_cstring_by_gauche(gch
702    
703    /* Scheme レベルでエラーハンドリング */    /* Scheme レベルでエラーハンドリング */
704    /* http://alohakun.blog7.fc2.com/blog-entry-517.html */    /* http://alohakun.blog7.fc2.com/blog-entry-517.html */
705    Scm_Define(Scm_UserModule(), SCM_SYMBOL(SCM_INTERN("*input*")), SCM_MAKE_STR(s));    Scm_Define(SCM_MODULE(Shiki_CURRENT_BUFFER_ENV), SCM_SYMBOL(SCM_INTERN("*input*")), SCM_MAKE_STR(s));
706    Scm_Define(Scm_UserModule(), SCM_SYMBOL(SCM_INTERN("*error*")), SCM_FALSE);    Scm_Define(SCM_MODULE(Shiki_CURRENT_BUFFER_ENV), SCM_SYMBOL(SCM_INTERN("*error*")), SCM_FALSE);
707    
708    result = Scm_EvalCString("(guard (e (else (set! *error* e) #f)) (eval (read-from-string *input*) (current-module)))", SCM_OBJ(Scm_UserModule()));    result = Scm_EvalCString("(guard (e (else (set! *error* e) #f)) (eval (read-from-string *input*) (current-module)))", SCM_OBJ(Shiki_CURRENT_BUFFER_ENV));
709    
710    error = Scm_GlobalVariableRef(Scm_UserModule(), SCM_SYMBOL(SCM_INTERN("*error*")), 0);    error = Scm_GlobalVariableRef(SCM_MODULE(Shiki_CURRENT_BUFFER_ENV), SCM_SYMBOL(SCM_INTERN("*error*")), 0);
711    
712    /* 文字列を評価した結果をポートに書き込む */    /* 文字列を評価した結果をポートに書き込む */
713    if (!SCM_FALSEP(error))    if (!SCM_FALSEP(error))

Legend:
Removed from v.1.33  
changed lines
  Added in v.1.34

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26