]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Move verify_vc_kbmode() to terminal-util.c as vt_verify_kbmode()
authorBalint Reczey <balint.reczey@canonical.com>
Wed, 24 Apr 2019 14:35:32 +0000 (16:35 +0200)
committerBalint Reczey <balint.reczey@canonical.com>
Wed, 24 Apr 2019 16:01:40 +0000 (18:01 +0200)
src/basic/terminal-util.c
src/basic/terminal-util.h
src/vconsole/vconsole-setup.c

index b692c52e590f0829b04e8b6bdf501552043b3da0..3a9c85e5a09db32e5f05863560c8ea6bfef96703 100644 (file)
@@ -1249,6 +1249,23 @@ int vt_default_utf8(void) {
         return parse_boolean(b);
 }
 
+int vt_verify_kbmode(int fd) {
+        int curr_mode;
+
+        /*
+         * Make sure we only adjust consoles in K_XLATE or K_UNICODE mode.
+         * Otherwise we would (likely) interfere with X11's processing of the
+         * key events.
+         *
+         * http://lists.freedesktop.org/archives/systemd-devel/2013-February/008573.html
+         */
+
+        if (ioctl(fd, KDGKBMODE, &curr_mode) < 0)
+                return -errno;
+
+        return IN_SET(curr_mode, K_XLATE, K_UNICODE) ? 0 : -EBUSY;
+}
+
 int vt_reset_keyboard(int fd) {
         int kb;
 
index c885e0a2d1a014dea069f46cf5e5e1d1537999e4..b32528f1d006a5a122b4bbcc3c5e9b7219e13d6a 100644 (file)
@@ -155,6 +155,7 @@ int openpt_in_namespace(pid_t pid, int flags);
 int open_terminal_in_namespace(pid_t pid, const char *name, int mode);
 
 int vt_default_utf8(void);
+int vt_verify_kbmode(int fd);
 int vt_reset_keyboard(int fd);
 int vt_restore(int fd);
 int vt_release(int fd, bool restore_vt);
index 67dc2e49f994af5b39cacab9c90ea1c4ccfa8b6d..1feb8d937052fd8c677ddb139033b9fec4aca855 100644 (file)
@@ -70,23 +70,6 @@ static int verify_vc_allocation_byfd(int fd) {
         return verify_vc_allocation(vcs.v_active);
 }
 
-static int verify_vc_kbmode(int fd) {
-        int curr_mode;
-
-        /*
-         * Make sure we only adjust consoles in K_XLATE or K_UNICODE mode.
-         * Otherwise we would (likely) interfere with X11's processing of the
-         * key events.
-         *
-         * http://lists.freedesktop.org/archives/systemd-devel/2013-February/008573.html
-         */
-
-        if (ioctl(fd, KDGKBMODE, &curr_mode) < 0)
-                return -errno;
-
-        return IN_SET(curr_mode, K_XLATE, K_UNICODE) ? 0 : -EBUSY;
-}
-
 static int toggle_utf8(const char *name, int fd, bool utf8) {
         int r;
         struct termios tc = {};
@@ -290,7 +273,7 @@ static void setup_remaining_vcs(int src_fd, unsigned src_idx, bool utf8) {
                         continue;
                 }
 
-                if (verify_vc_kbmode(fd_d) < 0)
+                if (vt_verify_kbmode(fd_d) < 0)
                         continue;
 
                 toggle_utf8(ttyname, fd_d, utf8);
@@ -365,7 +348,7 @@ static int find_source_vc(char **ret_path, unsigned *ret_idx) {
                                 err = -fd;
                         continue;
                 }
-                r = verify_vc_kbmode(fd);
+                r = vt_verify_kbmode(fd);
                 if (r < 0) {
                         if (!err)
                                 err = -r;
@@ -398,7 +381,7 @@ static int verify_source_vc(char **ret_path, const char *src_vc) {
         if (r < 0)
                 return log_error_errno(r, "Virtual console %s is not allocated: %m", src_vc);
 
-        r = verify_vc_kbmode(fd);
+        r = vt_verify_kbmode(fd);
         if (r < 0)
                 return log_error_errno(r, "Virtual console %s is not in K_XLATE or K_UNICODE: %m", src_vc);