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.49 by aloha, Wed Nov 22 05:23:29 2006 UTC revision 1.50 by aloha, Thu Nov 23 05:27:13 2006 UTC
# Line 649  static gchar *load_cstring_by_gauche(gch Line 649  static gchar *load_cstring_by_gauche(gch
649    
650    ScmObj result, error;    ScmObj result, error;
651    /* 入力文字列ポートを開く */    /* 入力文字列ポートを開く */
652    ScmObj is = Scm_MakeInputStringPort(SCM_STRING(SCM_MAKE_STR(s)), TRUE);    ScmObj is = Scm_MakeInputStringPort(SCM_STRING(SCM_MAKE_STR_COPYING(s)), TRUE);
653    /* 出力文字列ポート開く */    /* 出力文字列ポート開く */
654    ScmObj os = Scm_MakeOutputStringPort(TRUE);    ScmObj os = Scm_MakeOutputStringPort(TRUE);
655    
# Line 843  static void open_file(gchar *filename) { Line 843  static void open_file(gchar *filename) {
843    gchar *text;    gchar *text;
844    gchar *utf8filename = g_locale_to_utf8(filename, -1, NULL, NULL, NULL);    gchar *utf8filename = g_locale_to_utf8(filename, -1, NULL, NULL, NULL);
845    GtkTextIter p;    GtkTextIter p;
846    ScmObj s, ces;    ScmObj s;
847      
848      /* g_file_get_contents(filename, &contents, &len, NULL); */
849    
850    /* 新しいバッファを開く */    /* 新しいバッファを開く */
851    append_tabpage(g_strdup(filename));    append_tabpage(g_strdup(filename));
852      gtk_window_set_title (GTK_WINDOW (Shiki_EDITOR_WINDOW), filename);
853      g_free(filename);
854    
855      Scm_Define(SCM_MODULE(Shiki_CURRENT_BUFFER_ENV), SCM_SYMBOL(SCM_INTERN("*filename*")), SCM_MAKE_STR_COPYING(utf8filename));
856      g_free(utf8filename);
857    
   Scm_Define(SCM_MODULE(Shiki_CURRENT_BUFFER_ENV), SCM_SYMBOL(SCM_INTERN("*filename*")), SCM_MAKE_STR(utf8filename));  
   Scm_Load("gauche-init.scm", 0);  
   Scm_EvalCString("(use gauche.interactive)", Shiki_CURRENT_BUFFER_ENV);  
858    Scm_EvalCString("(use gauche.charconv)", Shiki_CURRENT_BUFFER_ENV);    Scm_EvalCString("(use gauche.charconv)", Shiki_CURRENT_BUFFER_ENV);
859      /*
860    Scm_EvalCString("(define contents (call-with-input-file *filename* port->string))", Shiki_CURRENT_BUFFER_ENV);    Scm_EvalCString("(define contents (call-with-input-file *filename* port->string))", Shiki_CURRENT_BUFFER_ENV);
861    Scm_EvalCString("(define ces (ces-guess-from-string contents \"*JP\"))", Shiki_CURRENT_BUFFER_ENV);    Scm_EvalCString("(define ces (ces-guess-from-string contents \"*JP\"))", Shiki_CURRENT_BUFFER_ENV);
862    ces = Scm_EvalCString("ces", Shiki_CURRENT_BUFFER_ENV);    ces = Scm_EvalCString("ces", Shiki_CURRENT_BUFFER_ENV);
863    Shiki_CURRENT_CES = Scm_GetString(SCM_STRING(ces));    Shiki_CURRENT_CES = Scm_GetString(SCM_STRING(ces));
864    s = Scm_EvalCString("(ces-convert contents ces)", Shiki_CURRENT_BUFFER_ENV);    //s = Scm_EvalCString("(ces-convert contents ces)", Shiki_CURRENT_BUFFER_ENV);
865      s = Scm_EvalCString("(ces-convert contents `utf8)", Shiki_CURRENT_BUFFER_ENV);
866      */
867      
868      /* ファイルから文字列を取り出し,変換後にバッファに格納 */
869      s = Scm_EvalCString("(port->string (open-input-conversion-port (open-input-file *filename*) \"*jp\" :owner? #t))", Shiki_CURRENT_BUFFER_ENV);
870    text = Scm_GetString(SCM_STRING(s));    text = Scm_GetString(SCM_STRING(s));
871    gtk_text_buffer_set_text(Shiki_CURRENT_TEXT_BUFFER, text, -1);    gtk_text_buffer_set_text(Shiki_CURRENT_TEXT_BUFFER, text, -1);
872    
873    /* バッファ未変更に */    /* バッファ未変更に */
874    gtk_text_buffer_set_modified(Shiki_CURRENT_TEXT_BUFFER, FALSE);    gtk_text_buffer_set_modified(Shiki_CURRENT_TEXT_BUFFER, FALSE);
875    /* カーソル位置を先頭に */    /* カーソル位置を先頭に */
876    gtk_text_buffer_get_start_iter(Shiki_CURRENT_TEXT_BUFFER, &p);    gtk_text_buffer_get_start_iter(Shiki_CURRENT_TEXT_BUFFER, &p);
877    gtk_text_buffer_place_cursor(Shiki_CURRENT_TEXT_BUFFER, &p);    gtk_text_buffer_place_cursor(Shiki_CURRENT_TEXT_BUFFER, &p);
878    update_modeline_label();    update_modeline_label();
   gtk_window_set_title (GTK_WINDOW (Shiki_EDITOR_WINDOW), filename);  
   gtk_widget_show_all(GTK_WIDGET(Shiki_EDITOR_NOTEBOOK));  
   
   g_free(utf8filename);  
   g_free(filename);  
   
879    /* キーワードを色分けする */    /* キーワードを色分けする */
880    scheme_keyword_highlighting_current_buffer();    scheme_keyword_highlighting_current_buffer();
881      gtk_widget_show_all(GTK_WIDGET(Shiki_EDITOR_NOTEBOOK));
882  }  }
883    
884  /* ファイルをダイアログで指定して開く */  /* ファイルをダイアログで指定して開く */
# Line 893  static gchar *eval_cstring_by_gauche(gch Line 899  static gchar *eval_cstring_by_gauche(gch
899    
900    /* Scheme レベルでエラーハンドリング */    /* Scheme レベルでエラーハンドリング */
901    /* http://alohakun.blog7.fc2.com/blog-entry-517.html */    /* http://alohakun.blog7.fc2.com/blog-entry-517.html */
902    Scm_Define(SCM_MODULE(Shiki_CURRENT_BUFFER_ENV), 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_COPYING(s));
903    Scm_Define(SCM_MODULE(Shiki_CURRENT_BUFFER_ENV), SCM_SYMBOL(SCM_INTERN("*error*")), SCM_FALSE);    Scm_Define(SCM_MODULE(Shiki_CURRENT_BUFFER_ENV), SCM_SYMBOL(SCM_INTERN("*error*")), SCM_FALSE);
904    
905    result = Scm_EvalCString("(guard (e (else (set! *error* e) #f)) (eval (read-from-string *input*) (current-module)))", SCM_OBJ(Shiki_CURRENT_BUFFER_ENV));    result = Scm_EvalCString("(guard (e (else (set! *error* e) #f)) (eval (read-from-string *input*) (current-module)))", SCM_OBJ(Shiki_CURRENT_BUFFER_ENV));
# Line 1408  int main(int argc, char *argv[]) { Line 1414  int main(int argc, char *argv[]) {
1414    Shiki_EDITOR_DEFAULT_LOCALE = g_locale_to_utf8(gtk_set_locale(), -1, NULL, NULL, NULL);    Shiki_EDITOR_DEFAULT_LOCALE = g_locale_to_utf8(gtk_set_locale(), -1, NULL, NULL, NULL);
1415    gtk_init(&argc, &argv);    gtk_init(&argc, &argv);
1416    GC_INIT(); Scm_Init(GAUCHE_SIGNATURE);    GC_INIT(); Scm_Init(GAUCHE_SIGNATURE);
1417      Scm_Load("gauche-init.scm", 0);
1418    shiki_editor_window_init(argc, argv);    shiki_editor_window_init(argc, argv);
1419    gtk_main();    gtk_main();
1420    Scm_Exit(0);    Scm_Exit(0);

Legend:
Removed from v.1.49  
changed lines
  Added in v.1.50

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