# HG changeset patch # User Pantxo Diribarne # Date 1661719489 -7200 # Node ID 9ad55d2e1bbf35d9aacda4dd493c8c297124413a # Parent 1c40fc2344f4ec1537b79ce0a74d777cf4f12a39 Make sure we don't pass short 8.3 path to latex on Windows (bug #62779). * latex-text-renderer.cc (latex_renderer::write_tex_file): On Windows, use canonicalized path of temporary directory. diff -r 1c40fc2344f4 -r 9ad55d2e1bbf libinterp/corefcn/latex-text-renderer.cc --- a/libinterp/corefcn/latex-text-renderer.cc Sun Aug 28 14:19:43 2022 -0700 +++ b/libinterp/corefcn/latex-text-renderer.cc Sun Aug 28 22:44:49 2022 +0200 @@ -215,7 +215,24 @@ if (m_tmp_dir.empty ()) { //Create the temporary directory +#if defined (OCTAVE_USE_WINDOWS_API) + static std::string base_tmp_dir; + + if (base_tmp_dir.empty ()) + { + base_tmp_dir = sys::env::get_temp_directory (); + + // Make sure we don't get short 8.3 path on Windows since some + // versions of latex on that platform don't support them + // (see bug #62779) + if (base_tmp_dir.find ('~') != std::string::npos) + base_tmp_dir = sys::canonicalize_file_name (base_tmp_dir); + } + + m_tmp_dir = sys::tempnam (base_tmp_dir, "latex"); +#else m_tmp_dir = sys::tempnam ("", "latex"); +#endif if (sys::mkdir (m_tmp_dir, 0700) != 0) {