From e05e18197bd5a6adc6a0d2d780e18a701f47b79b Mon Sep 17 00:00:00 2001 From: "trop[bot]" Date: Fri, 11 Jan 2019 08:14:46 -0800 Subject: [PATCH] fix: beep on Ubuntu (#16357) beeps on Linux are made by writing BEL to /dev/console, which requires elevated permissions on Ubuntu. So if opening /dev/console fails, fall back to /dev/tty. --- atom/common/platform_util_linux.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/atom/common/platform_util_linux.cc b/atom/common/platform_util_linux.cc index 99eabacf19d8d..3b3dde46353c6 100644 --- a/atom/common/platform_util_linux.cc +++ b/atom/common/platform_util_linux.cc @@ -139,11 +139,14 @@ bool MoveItemToTrash(const base::FilePath& full_path) { void Beep() { // echo '\a' > /dev/console - FILE* console = fopen("/dev/console", "r"); - if (console == NULL) - return; - fprintf(console, "\a"); - fclose(console); + FILE* fp = fopen("/dev/console", "a"); + if (fp == nullptr) { + fp = fopen("/dev/tty", "a"); + } + if (fp != nullptr) { + fprintf(fp, "\a"); + fclose(fp); + } } } // namespace platform_util