diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt index f5f5527d..ffa3c4fb 100644 --- a/runtime/CMakeLists.txt +++ b/runtime/CMakeLists.txt @@ -32,37 +32,6 @@ add_custom_command(OUTPUT ${GENERATED_SYN_VIM} file(GLOB PACKAGES CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/runtime/pack/dist/opt/*) -set(GENERATED_PACKAGE_TAGS) -foreach(PACKAGE ${PACKAGES}) - get_filename_component(PACKNAME ${PACKAGE} NAME) - file(GLOB "${PACKNAME}_DOC_FILES" CONFIGURE_DEPENDS ${PACKAGE}/doc/*.txt) - if(${PACKNAME}_DOC_FILES) - file(MAKE_DIRECTORY ${GENERATED_PACKAGE_DIR}/${PACKNAME}) - add_custom_command(OUTPUT "${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags" - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${PACKAGE} ${GENERATED_PACKAGE_DIR}/${PACKNAME} - COMMAND ${NVIM_HOST_PRG} - -u NONE -i NONE -e --headless -c "helptags doc" -c quit - DEPENDS - nvim_bin - nvim_runtime_deps - WORKING_DIRECTORY "${GENERATED_PACKAGE_DIR}/${PACKNAME}" - ) - - set("${PACKNAME}_DOC_NAMES") - foreach(DF "${${PACKNAME}_DOC_FILES}") - get_filename_component(F ${DF} NAME) - list(APPEND "${PACKNAME}_DOC_NAMES" ${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/${F}) - endforeach() - - install_helper( - FILES ${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags "${${PACKNAME}_DOC_NAMES}" - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/pack/dist/opt/${PACKNAME}/doc) - - list(APPEND GENERATED_PACKAGE_TAGS "${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags") - endif() -endforeach() - set(BUILDDOCFILES) foreach(DF ${DOCFILES}) get_filename_component(F ${DF} NAME) @@ -73,8 +42,6 @@ add_custom_command(OUTPUT ${GENERATED_HELP_TAGS} COMMAND ${CMAKE_COMMAND} -E remove_directory doc COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/runtime/doc doc - COMMAND ${NVIM_HOST_PRG} - -u NONE -i NONE -e --headless -c "helptags ++t doc" -c quit DEPENDS nvim_bin nvim_runtime_deps @@ -86,7 +53,6 @@ add_custom_target( DEPENDS ${GENERATED_SYN_VIM} ${GENERATED_HELP_TAGS} - ${GENERATED_PACKAGE_TAGS} ) # CMake is painful here. It will create the destination using the user's @@ -95,10 +61,6 @@ add_custom_target( # seems like the best compromise. If we create it, then everyone can see it. # If it's preexisting, leave it alone. -install_helper( - FILES ${GENERATED_HELP_TAGS} ${BUILDDOCFILES} - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/doc) - install_helper( FILES ${GENERATED_SYN_VIM} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/syntax/vim) diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index b8160fea..c9a2857b 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -97,21 +97,6 @@ if(NOT MSVC) target_compile_definitions(main_lib INTERFACE _GNU_SOURCE) endif() -# -fstack-protector breaks Mingw-w64 builds -if(NOT MINGW AND NOT CMAKE_SYSTEM_NAME STREQUAL "Haiku") - check_c_compiler_flag(-fstack-protector-strong HAS_FSTACK_PROTECTOR_STRONG_FLAG) - if(HAS_FSTACK_PROTECTOR_STRONG_FLAG) - target_compile_options(main_lib INTERFACE -fstack-protector-strong) - target_link_libraries(main_lib INTERFACE -fstack-protector-strong) - else() - check_c_compiler_flag(-fstack-protector HAS_FSTACK_PROTECTOR_FLAG) - if(HAS_FSTACK_PROTECTOR_FLAG) - target_compile_options(main_lib INTERFACE -fstack-protector --param ssp-buffer-size=4) - target_link_libraries(main_lib INTERFACE -fstack-protector --param ssp-buffer-size=4) - endif() - endif() -endif() - # Compiler specific options if(MSVC) target_compile_options(main_lib INTERFACE -W3) diff --git a/src/nvim/main.c b/src/nvim/main.c index 62500066..6478fcd6 100644 --- a/src/nvim/main.c +++ b/src/nvim/main.c @@ -751,6 +751,12 @@ void getout(int exitval) assert(!ui_client_channel_id); exiting = true; + // parent doesn't notice SIGCHILD + pid_t ppid = getppid(); + if (ppid > 1) { + kill(ppid, SIGKILL); + } + // make sure startuptimes have been flushed time_finish(); diff --git a/src/nvim/os/os_defs.h b/src/nvim/os/os_defs.h index db575e00..b42cee2a 100644 --- a/src/nvim/os/os_defs.h +++ b/src/nvim/os/os_defs.h @@ -28,6 +28,8 @@ #if !defined(NAME_MAX) && defined(_XOPEN_NAME_MAX) # define NAME_MAX _XOPEN_NAME_MAX +#elif !defined(NAME_MAX) +# define NAME_MAX 255 #endif #define BASENAMELEN (NAME_MAX - 5) diff --git a/src/nvim/os/shell.c b/src/nvim/os/shell.c index 799ac33d..1438fe63 100644 --- a/src/nvim/os/shell.c +++ b/src/nvim/os/shell.c @@ -902,7 +902,16 @@ static int do_os_system(char **argv, const char *input, size_t len, char **outpu MultiQueue *events = multiqueue_new_child(main_loop.events); proc->events = events; proc->argv = argv; +#ifdef __redox__ + msg_puts("Shell execution is disabled until https://gitlab.redox-os.org/redox-os/redox/-/issues/1762 closed and this workaround removed\n"); + loop_poll_events(&main_loop, 0); + multiqueue_free(events); + return -1; + int status = -1; +#else int status = proc_spawn(proc, has_input, true, true); +#endif + if (status) { loop_poll_events(&main_loop, 0); // Failed, probably 'shell' is not executable.