diff options
Diffstat (limited to 'abs/extra-testing/mc')
-rw-r--r-- | abs/extra-testing/mc/PKGBUILD | 55 | ||||
-rw-r--r-- | abs/extra-testing/mc/mc-4.6.1-bash-all.patch | 33 | ||||
-rw-r--r-- | abs/extra-testing/mc/mc-4.6.1-find.patch | 155 | ||||
-rw-r--r-- | abs/extra-testing/mc/mc-4.6.1-invalid-mtime.patch | 30 | ||||
-rw-r--r-- | abs/extra-testing/mc/mc-4.6.1-largefile.patch | 194 | ||||
-rw-r--r-- | abs/extra-testing/mc/mc-4.6.1-nonblock.patch | 11 |
6 files changed, 0 insertions, 478 deletions
diff --git a/abs/extra-testing/mc/PKGBUILD b/abs/extra-testing/mc/PKGBUILD deleted file mode 100644 index e8b6b2f..0000000 --- a/abs/extra-testing/mc/PKGBUILD +++ /dev/null @@ -1,55 +0,0 @@ -# $Id: PKGBUILD 3023 2008-06-18 02:32:22Z eric $ -# Maintainer: dorphell <dorphell@archlinux.org> -# Committer: Judd Vinet <jvinet@zeroflux.org> -# Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl> -pkgname=mc -pkgver=4.6.1 -pkgrel=5 -pkgdesc="A filemanager/shell that emulates Norton Commander" -arch=('i686' 'x86_64') -url="http://www.ibiblio.org/mc/" -license=('GPL') -depends=('e2fsprogs' 'glib2' 'pcre' 'gpm>=1.20.4' 'slang') -makedepends=('libxt' 'libx11') -conflicts=('mc-utf8') -replaces=('mc-utf8') -options=('!emptydirs' '!makeflags') -source=(http://www.ibiblio.org/pub/Linux/utils/file/managers/mc/${pkgname}-${pkgver}.tar.gz \ - ftp://ftp.archlinux.org/other/mc/mc-4.6.1-utf8-r2.patch.bz2 \ - mc-4.6.1-bash-all.patch mc-4.6.1-find.patch mc-4.6.1-invalid-mtime.patch \ - mc-4.6.1-largefile.patch mc-4.6.1-nonblock.patch) -md5sums=('18b20db6e40480a53bac2870c56fc3c4' 'f90bffe7f51883e818143dc2077eb98f'\ - 'd0c5d1f7258daf2a86b41b185524dced' '3c950491cdf44091df216cfa709d133a'\ - '81930cce827fe93639dcd6bff630a1a4' '80b45ecf38d9b5df6d368c83d14fd89d'\ - '00e89cfc43fe6026b61f52b218a65907') - -build() { - cd ${srcdir}/${pkgname}-${pkgver} - patch -p1 < ../mc-4.6.1-find.patch || return 1 - patch -p1 < ../mc-4.6.1-largefile.patch || return 1 - patch -p1 < ../mc-4.6.1-invalid-mtime.patch || return 1 - patch -p1 < ../mc-4.6.1-utf8-r2.patch || return 1 - patch -p1 < ../mc-4.6.1-nonblock.patch || return 1 - patch -p1 < ../mc-4.6.1-bash-all.patch || return 1 - -# Prevent lazy bindings in cons.saver binary. -# - not using bindnow-flags() because cons.saver is only built on GNU/Linux - sed -i -e "s:^\(cons_saver_LDADD = .*\):\1 -Wl,-z,now:" src/Makefile.in - - ./configure --prefix=/usr --mandir=/usr/share/man \ - --without-gnome --without-debug --with-screen=slang --without-included-gettext \ - -enable-largefile --with-subshell --with-edit --with-vfs --with-samba --with-mmap \ - --with-x --with-gpm-mouse --enable-charset - make || return 1 - make DESTDIR=${pkgdir} install - - iconv -f koi8-r -t utf8 ${pkgdir}/usr/share/mc/mc.hint.ru > ${pkgdir}/usr/share/mc/mc.hint.ru.tmp || return 1 - mv ${pkgdir}/usr/share/mc/mc.hint.ru.tmp ${pkgdir}/usr/share/mc/mc.hint.ru - - iconv -f koi8-r -t utf8 ${pkgdir}/usr/share/mc/mc.hlp.ru > ${pkgdir}/usr/share/mc/mc.hlp.ru.tmp || return 1 - mv ${pkgdir}/usr/share/mc/mc.hlp.ru.tmp ${pkgdir}/usr/share/mc/mc.hlp.ru - - # convert man pages to utf8 - cd ${pkgdir}/usr/share/man/ru - find -type f | xargs -i123 -- sh -c "mv 123 123.old && iconv -f koi8-r -t utf8 123.old >123 && rm 123.old" || return 1 -} diff --git a/abs/extra-testing/mc/mc-4.6.1-bash-all.patch b/abs/extra-testing/mc/mc-4.6.1-bash-all.patch deleted file mode 100644 index e3e2afc..0000000 --- a/abs/extra-testing/mc/mc-4.6.1-bash-all.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- /src/subshell.c.000 2006-05-08 23:11:48.000000000 +0200 -+++ /src/subshell.c 2006-10-28 15:40:46.000000000 +0200 -@@ -745,29 +745,13 @@ subshell_name_quote (const char *s) - memcpy (d, cmd_start, len); - d += len; - -- /* -- * Print every character in octal format with the leading backslash. -- * tcsh and zsh may require 4-digit octals, bash < 2.05b doesn't like them. -- */ -- if (subshell_type == BASH) { - for (; *s; s++) { -- /* Must quote numbers, so that they are not glued to octals */ - if (isalpha ((unsigned char) *s)) { - *d++ = (unsigned char) *s; - } else { -- sprintf (d, "\\%03o", (unsigned char) *s); -- d += 4; -- } -- } -- } else { -- for (; *s; s++) { -- if (isalnum ((unsigned char) *s)) { -- *d++ = (unsigned char) *s; -- } else { - sprintf (d, "\\0%03o", (unsigned char) *s); - d += 5; - } -- } - } - - memcpy (d, common_end, sizeof (common_end)); - diff --git a/abs/extra-testing/mc/mc-4.6.1-find.patch b/abs/extra-testing/mc/mc-4.6.1-find.patch deleted file mode 100644 index f44a6ac..0000000 --- a/abs/extra-testing/mc/mc-4.6.1-find.patch +++ /dev/null @@ -1,155 +0,0 @@ -diff -Naur mc-4.6.1.orig/src/cmd.c mc-4.6.1/src/cmd.c ---- mc-4.6.1.orig/src/cmd.c 2005-05-27 16:19:18.000000000 +0200 -+++ mc-4.6.1/src/cmd.c 2006-03-19 12:57:00.000000000 +0100 -@@ -510,7 +510,7 @@ - continue; - } - c = regexp_match (reg_exp_t, current_panel->dir.list[i].fname, -- match_file); -+ match_file, 0); - if (c == -1) { - message (1, MSG_ERROR, _(" Malformed regular expression ")); - g_free (reg_exp); -diff -Naur mc-4.6.1.orig/src/dir.c mc-4.6.1/src/dir.c ---- mc-4.6.1.orig/src/dir.c 2005-05-27 16:19:18.000000000 +0200 -+++ mc-4.6.1/src/dir.c 2006-03-19 12:58:56.000000000 +0100 -@@ -405,7 +405,7 @@ - *stale_link = 1; - } - if (!(S_ISDIR (buf1->st_mode) || *link_to_dir) && filter -- && !regexp_match (filter, dp->d_name, match_file)) -+ && !regexp_match (filter, dp->d_name, match_file, 0)) - return 0; - - /* Need to grow the *list? */ -diff -Naur mc-4.6.1.orig/src/ext.c mc-4.6.1/src/ext.c ---- mc-4.6.1.orig/src/ext.c 2005-05-27 16:19:18.000000000 +0200 -+++ mc-4.6.1/src/ext.c 2006-03-19 13:00:43.000000000 +0100 -@@ -394,7 +394,7 @@ - } - - if (content_string[0] -- && regexp_match (ptr, content_string + content_shift, match_regex)) { -+ && regexp_match (ptr, content_string + content_shift, match_regex, 0)) { - found = 1; - } - -@@ -534,11 +534,11 @@ - /* Do not transform shell patterns, you can use shell/ for - * that - */ -- if (regexp_match (p, filename, match_regex)) -+ if (regexp_match (p, filename, match_regex, 0)) - found = 1; - } else if (!strncmp (p, "directory/", 10)) { - if (S_ISDIR (mystat.st_mode) -- && regexp_match (p + 10, filename, match_regex)) -+ && regexp_match (p + 10, filename, match_regex, 0)) - found = 1; - } else if (!strncmp (p, "shell/", 6)) { - p += 6; -diff -Naur mc-4.6.1.orig/src/find.c mc-4.6.1/src/find.c ---- mc-4.6.1.orig/src/find.c 2005-05-27 16:19:18.000000000 +0200 -+++ mc-4.6.1/src/find.c 2006-03-19 13:04:10.000000000 +0100 -@@ -575,6 +575,7 @@ - struct stat tmp_stat; - static int pos; - static int subdirs_left = 0; -+ int flags = 0; - - if (!h) { /* someone forces me to close dirp */ - if (dirp) { -@@ -586,6 +587,10 @@ - dp = 0; - return 1; - } -+ -+ if (!(case_sense->state & C_BOOL)) -+ flags |= REG_ICASE; -+ - do_search_begin: - while (!dp){ - -@@ -662,7 +667,7 @@ - g_free (tmp_name); - } - -- if (regexp_match (find_pattern, dp->d_name, match_file)){ -+ if (regexp_match (find_pattern, dp->d_name, match_file, flags)){ - if (content_pattern) { - if (search_content (h, directory, dp->d_name)) { - return 1; -diff -Naur mc-4.6.1.orig/src/user.c mc-4.6.1/src/user.c ---- mc-4.6.1.orig/src/user.c 2005-07-01 17:47:07.000000000 +0200 -+++ mc-4.6.1/src/user.c 2006-03-19 13:05:00.000000000 +0100 -@@ -412,18 +412,18 @@ - break; - case 'f': /* file name pattern */ - p = extract_arg (p, arg, sizeof (arg)); -- *condition = panel && regexp_match (arg, panel->dir.list [panel->selected].fname, match_file); -+ *condition = panel && regexp_match (arg, panel->dir.list [panel->selected].fname, match_file, 0); - break; - case 'y': /* syntax pattern */ - if (edit_widget && edit_widget->syntax_type) { - p = extract_arg (p, arg, sizeof (arg)); - *condition = panel && -- regexp_match (arg, edit_widget->syntax_type, match_normal); -+ regexp_match (arg, edit_widget->syntax_type, match_normal, 0); - } - break; - case 'd': - p = extract_arg (p, arg, sizeof (arg)); -- *condition = panel && regexp_match (arg, panel->cwd, match_file); -+ *condition = panel && regexp_match (arg, panel->cwd, match_file, 0); - break; - case 't': - p = extract_arg (p, arg, sizeof (arg)); -diff -Naur mc-4.6.1.orig/src/util.c mc-4.6.1/src/util.c ---- mc-4.6.1.orig/src/util.c 2005-05-27 16:19:18.000000000 +0200 -+++ mc-4.6.1/src/util.c 2006-03-19 13:06:58.000000000 +0100 -@@ -563,27 +563,30 @@ - return g_strdup (pattern); - } - --int regexp_match (const char *pattern, const char *string, int match_type) -+int regexp_match (const char *pattern, const char *string, int match_type, int flags) - { - static regex_t r; - static char *old_pattern = NULL; - static int old_type; -+ static int old_flags; - int rval; - char *my_pattern; - -- if (!old_pattern || STRCOMP (old_pattern, pattern) || old_type != match_type){ -+ if (!old_pattern || STRCOMP (old_pattern, pattern) || old_type != match_type || old_flags != flags){ - if (old_pattern){ - regfree (&r); - g_free (old_pattern); - old_pattern = NULL; - } - my_pattern = convert_pattern (pattern, match_type, 0); -- if (regcomp (&r, my_pattern, REG_EXTENDED|REG_NOSUB|MC_ARCH_FLAGS)) { -+ -+ if (regcomp (&r, my_pattern, REG_EXTENDED|REG_NOSUB|MC_ARCH_FLAGS|flags)) { - g_free (my_pattern); - return -1; - } - old_pattern = my_pattern; - old_type = match_type; -+ old_flags = flags; - } - rval = !regexec (&r, string, 0, NULL, 0); - return rval; -diff -Naur mc-4.6.1.orig/src/util.h mc-4.6.1/src/util.h ---- mc-4.6.1.orig/src/util.h 2005-01-13 20:20:47.000000000 +0100 -+++ mc-4.6.1/src/util.h 2006-03-19 13:07:16.000000000 +0100 -@@ -116,7 +116,7 @@ - - extern int easy_patterns; - char *convert_pattern (const char *pattern, int match_type, int do_group); --int regexp_match (const char *pattern, const char *string, int match_type); -+int regexp_match (const char *pattern, const char *string, int match_type, int flags); - - /* Error pipes */ - void open_error_pipe (void); diff --git a/abs/extra-testing/mc/mc-4.6.1-invalid-mtime.patch b/abs/extra-testing/mc/mc-4.6.1-invalid-mtime.patch deleted file mode 100644 index 07b1f6d..0000000 --- a/abs/extra-testing/mc/mc-4.6.1-invalid-mtime.patch +++ /dev/null @@ -1,30 +0,0 @@ - - Invalid timestamps on files caused mc to segfault by passing a null - pointer to strftime. Avoid trying to print the time in this case. - - Reported by Maxim Britov <maxim@office.modum.by> - at http://bugs.gentoo.org/184296 - ---- mc-4.6.1/src/util.c -+++ mc-4.6.1/src/util.c -@@ -717,6 +717,7 @@ - static size_t i18n_timelength = 0; - static const char *fmtyear, *fmttime; - const char *fmt; -+ struct tm *whentm; - - if (i18n_timelength == 0){ - i18n_timelength = i18n_checktimelength() + 1; -@@ -740,7 +741,11 @@ - else - fmt = fmttime; - -- strftime (timebuf, i18n_timelength, fmt, localtime(&when)); -+ whentm = localtime(&when); -+ if (whentm == NULL) -+ return "(invalid)"; -+ -+ strftime (timebuf, i18n_timelength, fmt, whentm); - return timebuf; - } - diff --git a/abs/extra-testing/mc/mc-4.6.1-largefile.patch b/abs/extra-testing/mc/mc-4.6.1-largefile.patch deleted file mode 100644 index de30715..0000000 --- a/abs/extra-testing/mc/mc-4.6.1-largefile.patch +++ /dev/null @@ -1,194 +0,0 @@ -diff -Naur mc-4.6.1.orig/intl/loadmsgcat.c mc-4.6.1/intl/loadmsgcat.c ---- mc-4.6.1.orig/intl/loadmsgcat.c 2005-07-23 18:52:57.000000000 +0200 -+++ mc-4.6.1/intl/loadmsgcat.c 2006-03-19 17:11:14.000000000 +0100 -@@ -1002,7 +1002,7 @@ - /* The magic number is wrong: not a message catalog file. */ - #ifdef HAVE_MMAP - if (use_mmap) -- munmap ((caddr_t) data, size); -+ munmap ((void *) data, size); - else - #endif - free (data); -@@ -1271,7 +1271,7 @@ - free (domain->malloced); - #ifdef HAVE_MMAP - if (use_mmap) -- munmap ((caddr_t) data, size); -+ munmap ((void *) data, size); - else - #endif - free (data); -@@ -1306,7 +1306,7 @@ - - # ifdef _POSIX_MAPPED_FILES - if (domain->use_mmap) -- munmap ((caddr_t) domain->data, domain->mmap_size); -+ munmap ((void *) domain->data, domain->mmap_size); - else - # endif /* _POSIX_MAPPED_FILES */ - free ((void *) domain->data); -diff -Naur mc-4.6.1.orig/src/view.c mc-4.6.1/src/view.c ---- mc-4.6.1.orig/src/view.c 2005-05-27 16:19:18.000000000 +0200 -+++ mc-4.6.1/src/view.c 2006-03-19 17:10:34.000000000 +0100 -@@ -76,6 +76,12 @@ - #define vwidth (view->widget.cols - (view->have_frame ? 2 : 0)) - #define vheight (view->widget.lines - (view->have_frame ? 2 : 0)) - -+#if GLIB_MAJOR_VERSION >= 2 -+# define my_g_malloc g_try_malloc -+#else -+# define my_g_malloc g_malloc -+#endif -+ - /* Offset in bytes into a file */ - typedef unsigned long offset_type; - #define INVALID_OFFSET ((offset_type) -1) -@@ -560,8 +566,8 @@ - view->data = mc_mmap (0, view->s.st_size, PROT_READ, - MAP_FILE | MAP_SHARED, view->file, 0); - else -- view->data = (caddr_t) -1; -- if ((caddr_t) view->data != (caddr_t) - 1) { -+ view->data = (void *) -1; -+ if (view->data != (void *)-1) { - /* mmap worked */ - view->first = 0; - view->bytes_read = view->s.st_size; -@@ -573,6 +579,9 @@ - /* For the OSes that don't provide mmap call, try to load all the - * file into memory (alex@bcs.zaporizhzhe.ua). Also, mmap can fail - * for any reason, so we use this as fallback (pavel@ucw.cz) */ -+ -+ /* If large file support is enabled, st_size is a 64 bit value and -+ * will thus on 32 bit platforms possibly be beyond the range of gulong */ - - /* Make sure view->s.st_size is not truncated when passed to g_malloc */ - if ((gulong) view->s.st_size == view->s.st_size) -diff -Naur mc-4.6.1.orig/vfs/local.c mc-4.6.1/vfs/local.c ---- mc-4.6.1.orig/vfs/local.c 2004-09-25 01:00:18.000000000 +0200 -+++ mc-4.6.1/vfs/local.c 2006-03-19 17:00:45.000000000 +0100 -@@ -243,8 +243,8 @@ - } - - #ifdef HAVE_MMAP --caddr_t --local_mmap (struct vfs_class *me, caddr_t addr, size_t len, int prot, int flags, void *data, off_t offset) -+void * -+local_mmap (struct vfs_class *me, void *addr, size_t len, int prot, int flags, void *data, off_t offset) - { - int fd = * (int *)data; - -@@ -252,7 +252,7 @@ - } - - int --local_munmap (struct vfs_class *me, caddr_t addr, size_t len, void *data) -+local_munmap (struct vfs_class *me, void *addr, size_t len, void *data) - { - return munmap (addr, len); - } -diff -Naur mc-4.6.1.orig/vfs/local.h mc-4.6.1/vfs/local.h ---- mc-4.6.1.orig/vfs/local.h 2004-08-17 11:17:43.000000000 +0200 -+++ mc-4.6.1/vfs/local.h 2006-03-19 17:01:35.000000000 +0100 -@@ -13,9 +13,9 @@ - extern int local_errno (struct vfs_class *me); - extern int local_lseek (void *data, off_t offset, int whence); - #ifdef HAVE_MMAP --extern caddr_t local_mmap (struct vfs_class *me, caddr_t addr, size_t len, -+extern void *local_mmap (struct vfs_class *me, void *addr, size_t len, - int prot, int flags, void *data, off_t offset); --extern int local_munmap (struct vfs_class *me, caddr_t addr, size_t len, void *data); -+extern int local_munmap (struct vfs_class *me, void *addr, size_t len, void *data); - #endif - - #endif -diff -Naur mc-4.6.1.orig/vfs/samba/lib/util.c mc-4.6.1/vfs/samba/lib/util.c ---- mc-4.6.1.orig/vfs/samba/lib/util.c 2005-05-27 16:19:19.000000000 +0200 -+++ mc-4.6.1/vfs/samba/lib/util.c 2006-03-19 17:06:39.000000000 +0100 -@@ -1836,7 +1836,7 @@ - - /* Look up the host address in the address list we just got. */ - for (i = 0; hp->h_addr_list[i]; i++) { -- if (memcmp(hp->h_addr_list[i], (caddr_t) & addr, sizeof(addr)) == 0) -+ if (memcmp(hp->h_addr_list[i], &addr, sizeof(addr)) == 0) - return True; - } - -diff -Naur mc-4.6.1.orig/vfs/vfs.c mc-4.6.1/vfs/vfs.c ---- mc-4.6.1.orig/vfs/vfs.c 2005-05-27 16:19:19.000000000 +0200 -+++ mc-4.6.1/vfs/vfs.c 2006-03-19 17:03:48.000000000 +0100 -@@ -740,27 +740,27 @@ - - #ifdef HAVE_MMAP - static struct mc_mmapping { -- caddr_t addr; -+ void *addr; - void *vfs_info; - struct vfs_class *vfs; - struct mc_mmapping *next; - } *mc_mmaparray = NULL; - --caddr_t --mc_mmap (caddr_t addr, size_t len, int prot, int flags, int fd, off_t offset) -+void * -+mc_mmap (void *addr, size_t len, int prot, int flags, int fd, off_t offset) - { - struct vfs_class *vfs; -- caddr_t result; -+ void *result; - struct mc_mmapping *mcm; - - if (fd == -1) -- return (caddr_t) -1; -+ return (void *) -1; - - vfs = vfs_op (fd); -- result = vfs->mmap ? (*vfs->mmap)(vfs, addr, len, prot, flags, vfs_info (fd), offset) : (caddr_t)-1; -- if (result == (caddr_t)-1){ -+ result = vfs->mmap ? (*vfs->mmap)(vfs, addr, len, prot, flags, vfs_info (fd), offset) : (void *)-1; -+ if (result == (void *)-1){ - errno = ferrno (vfs); -- return (caddr_t)-1; -+ return (void *)-1; - } - mcm =g_new (struct mc_mmapping, 1); - mcm->addr = result; -@@ -772,7 +772,7 @@ - } - - int --mc_munmap (caddr_t addr, size_t len) -+mc_munmap (void *addr, size_t len) - { - struct mc_mmapping *mcm, *mcm2 = NULL; - -diff -Naur mc-4.6.1.orig/vfs/vfs.h mc-4.6.1/vfs/vfs.h ---- mc-4.6.1.orig/vfs/vfs.h 2004-11-16 17:16:08.000000000 +0100 -+++ mc-4.6.1/vfs/vfs.h 2006-03-19 17:05:57.000000000 +0100 -@@ -49,8 +49,8 @@ - int mc_ctl (int fd, int ctlop, void *arg); - int mc_setctl (const char *path, int ctlop, void *arg); - #ifdef HAVE_MMAP --caddr_t mc_mmap (caddr_t, size_t, int, int, int, off_t); --int mc_munmap (caddr_t addr, size_t len); -+void *mc_mmap (void *, size_t, int, int, int, off_t); -+int mc_munmap (void *addr, size_t len); - #endif /* HAVE_MMAP */ - - /* Operations for mc_ctl - on open file */ -diff -Naur mc-4.6.1.orig/vfs/vfs-impl.h mc-4.6.1/vfs/vfs-impl.h ---- mc-4.6.1.orig/vfs/vfs-impl.h 2004-09-02 15:57:59.000000000 +0200 -+++ mc-4.6.1/vfs/vfs-impl.h 2006-03-19 17:12:01.000000000 +0100 -@@ -72,9 +72,9 @@ - int (*setctl) (struct vfs_class *me, const char *path, int ctlop, - void *arg); - #ifdef HAVE_MMAP -- caddr_t (*mmap) (struct vfs_class *me, caddr_t addr, size_t len, -+ void *(*mmap) (struct vfs_class *me, void *addr, size_t len, - int prot, int flags, void *vfs_info, off_t offset); -- int (*munmap) (struct vfs_class *me, caddr_t addr, size_t len, -+ int (*munmap) (struct vfs_class *me, void *addr, size_t len, - void *vfs_info); - #endif - }; diff --git a/abs/extra-testing/mc/mc-4.6.1-nonblock.patch b/abs/extra-testing/mc/mc-4.6.1-nonblock.patch deleted file mode 100644 index eca34aa..0000000 --- a/abs/extra-testing/mc/mc-4.6.1-nonblock.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- mc-4.6.1/src/cons.saver.c.old 2006-04-30 20:45:11.725128977 +0200 -+++ mc-4.6.1/src/cons.saver.c 2006-04-30 20:45:55.545063247 +0200 -@@ -134,7 +134,7 @@ - - if (seteuid (uid) < 0) - die (); -- console_fd = open (tty_name, O_RDONLY); -+ console_fd = open (tty_name, O_RDONLY | O_NONBLOCK); - if (console_fd < 0) - die (); - if (fstat (console_fd, &st) < 0 || ! S_ISCHR (st.st_mode)) |