Kaynağa Gözat

js: Convert `s_history_path` to String and propagate errors

Evan Smal 2 yıl önce
ebeveyn
işleme
698bcf4b4e
1 değiştirilmiş dosya ile 6 ekleme ve 4 silme
  1. 6 4
      Userland/Utilities/js.cpp

+ 6 - 4
Userland/Utilities/js.cpp

@@ -77,7 +77,7 @@ static bool s_print_last_result = false;
 static bool s_strip_ansi = false;
 static bool s_disable_source_location_hints = false;
 static RefPtr<Line::Editor> s_editor;
-static DeprecatedString s_history_path = DeprecatedString::formatted("{}/.js-history", Core::StandardPaths::home_directory());
+static String s_history_path = String {};
 static int s_repl_line_level = 0;
 static bool s_fail_repl = false;
 
@@ -614,6 +614,8 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
 
     bool syntax_highlight = !disable_syntax_highlight;
 
+    s_history_path = TRY(String::formatted("{}/.js-history", Core::StandardPaths::home_directory()));
+
     g_vm = JS::VM::create();
     g_vm->enable_default_host_import_module_dynamically_hook();
 
@@ -648,12 +650,12 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
         auto& global_environment = interpreter->realm().global_environment();
 
         s_editor = Line::Editor::construct();
-        s_editor->load_history(s_history_path);
+        s_editor->load_history(s_history_path.to_deprecated_string());
 
         signal(SIGINT, [](int) {
             if (!s_editor->is_editing())
                 sigint_handler();
-            s_editor->save_history(s_history_path);
+            s_editor->save_history(s_history_path.to_deprecated_string());
         });
 
         s_editor->on_display_refresh = [syntax_highlight](Line::Editor& editor) {
@@ -848,7 +850,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
         };
         s_editor->on_tab_complete = move(complete);
         TRY(repl(*interpreter));
-        s_editor->save_history(s_history_path);
+        s_editor->save_history(s_history_path.to_deprecated_string());
     } else {
         interpreter = JS::Interpreter::create<ScriptObject>(*g_vm);
         auto& console_object = *interpreter->realm().intrinsics().console_object();