aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChong Yidong2012-09-21 11:03:48 +0800
committerChong Yidong2012-09-21 11:03:48 +0800
commitacfa068f4a1a4652b784af1d7aaac92929399249 (patch)
tree4d5aef916164ae9862e4c94f50a5e53bbe274e53
parenteb2deaffd17e760b3ec945c58d43080e8a44767a (diff)
parentd3fa327c47570a1767324d23d710504e90b083f9 (diff)
downloademacs-acfa068f4a1a4652b784af1d7aaac92929399249.tar.gz
emacs-acfa068f4a1a4652b784af1d7aaac92929399249.zip
Merge from emacs-24; up to 2012-05-07T14:57:18Z!michael.albinus@gmx.de
-rw-r--r--doc/lispref/ChangeLog4
-rw-r--r--doc/lispref/debugging.texi2
-rw-r--r--lisp/ChangeLog28
-rw-r--r--lisp/emacs-lisp/shadow.el8
-rw-r--r--lisp/ido.el23
-rw-r--r--lisp/mail/emacsbug.el11
-rw-r--r--lisp/pcmpl-gnu.el3
-rw-r--r--lisp/progmodes/idlw-shell.el2
-rw-r--r--lisp/subr.el4
-rw-r--r--src/ChangeLog27
-rw-r--r--src/eval.c7
-rw-r--r--src/fileio.c7
-rw-r--r--src/unexmacosx.c21
-rw-r--r--src/xdisp.c43
14 files changed, 151 insertions, 39 deletions
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 329c194f45a..6e4ffff3df6 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,7 @@
12012-09-12 Glenn Morris <rgm@gnu.org>
2
3 * debugging.texi (Using Debugger): Fix typo.
4
12012-09-18 Chong Yidong <cyd@gnu.org> 52012-09-18 Chong Yidong <cyd@gnu.org>
2 6
3 * display.texi (Faces): Discuss anonymous faces. 7 * display.texi (Faces): Discuss anonymous faces.
diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi
index 5aeff576d09..2226db942d1 100644
--- a/doc/lispref/debugging.texi
+++ b/doc/lispref/debugging.texi
@@ -331,7 +331,7 @@ variable is temporarily set according to
331non-@code{nil}, @code{debug-on-error} will temporarily be set to 331non-@code{nil}, @code{debug-on-error} will temporarily be set to
332@code{t}. This means that any further errors that occur while doing a 332@code{t}. This means that any further errors that occur while doing a
333debugging session will (by default) trigger another backtrace. If 333debugging session will (by default) trigger another backtrace. If
334this is not want you want, you can either set 334this is not what you want, you can either set
335@code{eval-expression-debug-on-error} to @code{nil}, or set 335@code{eval-expression-debug-on-error} to @code{nil}, or set
336@code{debug-on-error} to @code{nil} in @code{debugger-mode-hook}. 336@code{debug-on-error} to @code{nil} in @code{debugger-mode-hook}.
337 337
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index f7f4193e777..e6fa549e867 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,31 @@
12012-09-21 Leo Liu <sdl.web@gmail.com>
2
3 IDO: Disable match re-ordering for buffer switching.
4 * ido.el (ido-buffer-disable-smart-matches): New variable.
5 (ido-set-matches-1): Use it. (Bug#2042)
6
72012-09-21 Jose Marino <marinoj@nso.edu> (tiny change)
8
9 * progmodes/idlw-shell.el (idlwave-shell-complete-filename):
10 Fix 2011-05-17 change. (Bug#12418)
11
122012-09-21 Leo Liu <sdl.web@gmail.com>
13
14 * subr.el (ignore-errors): Mention with-demoted-errors in doc-string.
15
162012-09-21 Glenn Morris <rgm@gnu.org>
17
18 * emacs-lisp/shadow.el (load-path-shadows-font-lock-keywords):
19 Be more robust about locating simple.el.
20
212012-09-21 Glenn Morris <rgm@gnu.org>
22
23 * mail/emacsbug.el (report-emacs-bug): Trap load-path-shadows errors.
24
252012-09-21 Joel Bion <jpbion@westvi.com> (tiny change)
26
27 * pcmpl-gnu.el (pcmpl-gnu-tarfile-regexp): Add tar.xz. (Bug#12382)
28
12012-09-20 Juri Linkov <juri@jurta.org> 292012-09-20 Juri Linkov <juri@jurta.org>
2 30
3 * replace.el (query-replace-read-from): Use `read-regexp' instead 31 * replace.el (query-replace-read-from): Use `read-regexp' instead
diff --git a/lisp/emacs-lisp/shadow.el b/lisp/emacs-lisp/shadow.el
index 286c4937b5b..bceec296ad8 100644
--- a/lisp/emacs-lisp/shadow.el
+++ b/lisp/emacs-lisp/shadow.el
@@ -158,8 +158,14 @@ See the documentation for `list-load-path-shadows' for further information."
158 (eq 0 (call-process "cmp" nil nil nil "-s" f1 f2)))))))) 158 (eq 0 (call-process "cmp" nil nil nil "-s" f1 f2))))))))
159 159
160(defvar load-path-shadows-font-lock-keywords 160(defvar load-path-shadows-font-lock-keywords
161 ;; The idea is that shadows of files supplied with Emacs are more
162 ;; serious than various versions of external packages shadowing each
163 ;; other.
161 `((,(format "hides \\(%s.*\\)" 164 `((,(format "hides \\(%s.*\\)"
162 (file-name-directory (locate-library "simple.el"))) 165 (file-name-directory
166 (or (locate-library "simple")
167 (file-name-as-directory
168 (expand-file-name "../lisp" data-directory)))))
163 . (1 font-lock-warning-face))) 169 . (1 font-lock-warning-face)))
164 "Keywords to highlight in `load-path-shadows-mode'.") 170 "Keywords to highlight in `load-path-shadows-mode'.")
165 171
diff --git a/lisp/ido.el b/lisp/ido.el
index 2100def1992..d48e7ba858b 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -493,6 +493,18 @@ as first char even if `ido-enable-prefix' is nil."
493 :type 'boolean 493 :type 'boolean
494 :group 'ido) 494 :group 'ido)
495 495
496;; See http://debbugs.gnu.org/2042 for more info.
497(defcustom ido-buffer-disable-smart-matches t
498 "Non-nil means not to re-order matches for buffer switching.
499By default, ido aranges matches in the following order:
500
501 full-matches > suffix matches > prefix matches > remaining matches
502
503which can get in the way for buffer switching."
504 :version "24.3"
505 :type 'boolean
506 :group 'ido)
507
496(defcustom ido-confirm-unique-completion nil 508(defcustom ido-confirm-unique-completion nil
497 "Non-nil means that even a unique completion must be confirmed. 509 "Non-nil means that even a unique completion must be confirmed.
498This means that \\[ido-complete] must always be followed by \\[ido-exit-minibuffer] 510This means that \\[ido-complete] must always be followed by \\[ido-exit-minibuffer]
@@ -3688,10 +3700,17 @@ This is to make them appear as if they were \"virtual buffers\"."
3688 (rex0 (if ido-enable-regexp text (regexp-quote text))) 3700 (rex0 (if ido-enable-regexp text (regexp-quote text)))
3689 (rexq (concat rex0 (if slash ".*/" ""))) 3701 (rexq (concat rex0 (if slash ".*/" "")))
3690 (re (if ido-enable-prefix (concat "\\`" rexq) rexq)) 3702 (re (if ido-enable-prefix (concat "\\`" rexq) rexq))
3691 (full-re (and do-full (not ido-enable-regexp) (not (string-match "\$\\'" rex0)) 3703 (full-re (and do-full
3704 (and (eq ido-cur-item 'buffer)
3705 (not ido-buffer-disable-smart-matches))
3706 (not ido-enable-regexp)
3707 (not (string-match "\$\\'" rex0))
3692 (concat "\\`" rex0 (if slash "/" "") "\\'"))) 3708 (concat "\\`" rex0 (if slash "/" "") "\\'")))
3693 (suffix-re (and do-full slash 3709 (suffix-re (and do-full slash
3694 (not ido-enable-regexp) (not (string-match "\$\\'" rex0)) 3710 (and (eq ido-cur-item 'buffer)
3711 (not ido-buffer-disable-smart-matches))
3712 (not ido-enable-regexp)
3713 (not (string-match "\$\\'" rex0))
3695 (concat rex0 "/\\'"))) 3714 (concat rex0 "/\\'")))
3696 (prefix-re (and full-re (not ido-enable-prefix) 3715 (prefix-re (and full-re (not ido-enable-prefix)
3697 (concat "\\`" rexq))) 3716 (concat "\\`" rexq)))
diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index 6ee3c7898c5..ca9bc6b8676 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -308,9 +308,14 @@ usually do not have translators for other languages.\n\n")))
308 (insert "\n")) 308 (insert "\n"))
309 (insert "\n") 309 (insert "\n")
310 (insert "Load-path shadows:\n") 310 (insert "Load-path shadows:\n")
311 (message "Checking for load-path shadows...") 311 (let* ((msg "Checking for load-path shadows...")
312 (let ((shadows (list-load-path-shadows t))) 312 (result "done")
313 (message "Checking for load-path shadows...done") 313 (shadows (progn (message "%s" msg)
314 (condition-case nil (list-load-path-shadows t)
315 (error
316 (setq result "error")
317 "Error during checking")))))
318 (message "%s%s" msg result)
314 (insert (if (zerop (length shadows)) 319 (insert (if (zerop (length shadows))
315 "None found.\n" 320 "None found.\n"
316 shadows))) 321 shadows)))
diff --git a/lisp/pcmpl-gnu.el b/lisp/pcmpl-gnu.el
index da72c81c44a..be389e9c25a 100644
--- a/lisp/pcmpl-gnu.el
+++ b/lisp/pcmpl-gnu.el
@@ -128,8 +128,9 @@
128 (pcomplete-uniqify-list rules)))) 128 (pcomplete-uniqify-list rules))))
129 129
130(defcustom pcmpl-gnu-tarfile-regexp 130(defcustom pcmpl-gnu-tarfile-regexp
131 "\\.t\\(ar\\(\\.\\(gz\\|bz2\\|Z\\)\\)?\\|gz\\|a[zZ]\\|z2\\)\\'" 131 "\\.t\\(ar\\(\\.\\(gz\\|bz2\\|Z\\|xz\\)\\)?\\|gz\\|a[zZ]\\|z2\\)\\'"
132 "A regexp which matches any tar archive." 132 "A regexp which matches any tar archive."
133 :version "24.3" ; added xz
133 :type 'regexp 134 :type 'regexp
134 :group 'pcmpl-gnu) 135 :group 'pcmpl-gnu)
135 136
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
index 08d1461c008..0abd4daf61b 100644
--- a/lisp/progmodes/idlw-shell.el
+++ b/lisp/progmodes/idlw-shell.el
@@ -2170,7 +2170,7 @@ args of an executive .run, .rnew or .compile."
2170 ;; CWD might have changed, resync, to set default directory 2170 ;; CWD might have changed, resync, to set default directory
2171 (idlwave-shell-resync-dirs) 2171 (idlwave-shell-resync-dirs)
2172 (let ((comint-file-name-chars idlwave-shell-file-name-chars)) 2172 (let ((comint-file-name-chars idlwave-shell-file-name-chars))
2173 (comint-filename-completion))) 2173 (comint-dynamic-complete-filename)))
2174 2174
2175(defun idlwave-shell-executive-command () 2175(defun idlwave-shell-executive-command ()
2176 "Return the name of the current executive command, if any." 2176 "Return the name of the current executive command, if any."
diff --git a/lisp/subr.el b/lisp/subr.el
index e9b85ff1f38..13516419b6f 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -280,7 +280,9 @@ Treated as a declaration when used at the right place in a
280 280
281(defmacro ignore-errors (&rest body) 281(defmacro ignore-errors (&rest body)
282 "Execute BODY; if an error occurs, return nil. 282 "Execute BODY; if an error occurs, return nil.
283Otherwise, return result of last form in BODY." 283Otherwise, return result of last form in BODY.
284See also `with-demoted-errors' that does something similar
285without silencing all errors."
284 (declare (debug t) (indent 0)) 286 (declare (debug t) (indent 0))
285 `(condition-case nil (progn ,@body) (error nil))) 287 `(condition-case nil (progn ,@body) (error nil)))
286 288
diff --git a/src/ChangeLog b/src/ChangeLog
index c3ce1ee1b0b..f3b8b2108e1 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,30 @@
12012-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
4 (print_load_command_name): Add case LC_DATA_IN_CODE.
5 (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
6
72012-09-21 Glenn Morris <rgm@gnu.org>
8
9 * eval.c (Frun_hook_with_args_until_success)
10 (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393)
11
122012-09-21 Andreas Schwab <schwab@linux-m68k.org>
13
14 * fileio.c (Ffile_selinux_context): Only call freecon when
15 lgetfilecon succeeded.
16 (Fset_file_selinux_context): Likewise. (Bug#12444)
17
182012-09-21 Eli Zaretskii <eliz@gnu.org>
19
20 * xdisp.c (try_window_reusing_current_matrix): Under bidi
21 reordering, locate the cursor by calling set_cursor_from_row; if
22 that fails, clear the desired glyph matrix before returning a
23 failure indication to the caller. Fixes leaving garbled display
24 when fast scrolling with a down-key. (Bug#12403)
25 (compute_stop_pos_backwards): Fix a typo that caused crashes while
26 scrolling through multibyte text.
27
12012-09-20 Stefan Monnier <monnier@iro.umontreal.ca> 282012-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
2 29
3 * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after* 30 * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
diff --git a/src/eval.c b/src/eval.c
index 1c565e233c6..e47478bb1f1 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2399,6 +2399,7 @@ If it is a list of functions, those functions are called, in order,
2399with the given arguments ARGS, until one of them 2399with the given arguments ARGS, until one of them
2400returns a non-nil value. Then we return that value. 2400returns a non-nil value. Then we return that value.
2401However, if they all return nil, we return nil. 2401However, if they all return nil, we return nil.
2402If the value of HOOK is nil, this function returns nil.
2402 2403
2403Do not use `make-local-variable' to make a hook variable buffer-local. 2404Do not use `make-local-variable' to make a hook variable buffer-local.
2404Instead, use `add-hook' and specify t for the LOCAL argument. 2405Instead, use `add-hook' and specify t for the LOCAL argument.
@@ -2420,10 +2421,12 @@ DEFUN ("run-hook-with-args-until-failure", Frun_hook_with_args_until_failure,
2420HOOK should be a symbol, a hook variable. If HOOK has a non-nil 2421HOOK should be a symbol, a hook variable. If HOOK has a non-nil
2421value, that value may be a function or a list of functions to be 2422value, that value may be a function or a list of functions to be
2422called to run the hook. If the value is a function, it is called with 2423called to run the hook. If the value is a function, it is called with
2423the given arguments and its return value is returned. 2424the given arguments. Then we return nil if the function returns nil,
2425and t if it returns non-nil.
2424If it is a list of functions, those functions are called, in order, 2426If it is a list of functions, those functions are called, in order,
2425with the given arguments ARGS, until one of them returns nil. 2427with the given arguments ARGS, until one of them returns nil.
2426Then we return nil. However, if they all return non-nil, we return non-nil. 2428Then we return nil. However, if they all return non-nil, we return t.
2429If the value of HOOK is nil, this function returns t.
2427 2430
2428Do not use `make-local-variable' to make a hook variable buffer-local. 2431Do not use `make-local-variable' to make a hook variable buffer-local.
2429Instead, use `add-hook' and specify t for the LOCAL argument. 2432Instead, use `add-hook' and specify t for the LOCAL argument.
diff --git a/src/fileio.c b/src/fileio.c
index ca71af7ed95..6c4e34d7312 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -2833,9 +2833,8 @@ or if SELinux is disabled, or if Emacs lacks SELinux support. */)
2833 if (context_range_get (context)) 2833 if (context_range_get (context))
2834 values[3] = build_string (context_range_get (context)); 2834 values[3] = build_string (context_range_get (context));
2835 context_free (context); 2835 context_free (context);
2836 freecon (con);
2836 } 2837 }
2837 if (con)
2838 freecon (con);
2839 } 2838 }
2840#endif 2839#endif
2841 2840
@@ -2914,12 +2913,10 @@ compiled with SELinux support. */)
2914 report_file_error ("Doing lsetfilecon", Fcons (absname, Qnil)); 2913 report_file_error ("Doing lsetfilecon", Fcons (absname, Qnil));
2915 2914
2916 context_free (parsed_con); 2915 context_free (parsed_con);
2916 freecon (con);
2917 } 2917 }
2918 else 2918 else
2919 report_file_error ("Doing lgetfilecon", Fcons (absname, Qnil)); 2919 report_file_error ("Doing lgetfilecon", Fcons (absname, Qnil));
2920
2921 if (con)
2922 freecon (con);
2923 } 2920 }
2924#endif 2921#endif
2925 2922
diff --git a/src/unexmacosx.c b/src/unexmacosx.c
index 05a16466dfb..d38b91e955a 100644
--- a/src/unexmacosx.c
+++ b/src/unexmacosx.c
@@ -117,6 +117,13 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
117 117
118#include <assert.h> 118#include <assert.h>
119 119
120/* LC_DATA_IN_CODE is not defined in mach-o/loader.h on OS X 10.7.
121 But it is used if we build with "Command Line Tools for Xcode 4.5
122 (OS X Lion) - Septemper 2012". */
123#ifndef LC_DATA_IN_CODE
124#define LC_DATA_IN_CODE 0x29 /* table of non-instructions in __text */
125#endif
126
120#ifdef _LP64 127#ifdef _LP64
121#define mach_header mach_header_64 128#define mach_header mach_header_64
122#define segment_command segment_command_64 129#define segment_command segment_command_64
@@ -612,6 +619,11 @@ print_load_command_name (int lc)
612 printf ("LC_MAIN "); 619 printf ("LC_MAIN ");
613 break; 620 break;
614#endif 621#endif
622#ifdef LC_DATA_IN_CODE
623 case LC_DATA_IN_CODE:
624 printf ("LC_DATA_IN_CODE ");
625 break;
626#endif
615#ifdef LC_SOURCE_VERSION 627#ifdef LC_SOURCE_VERSION
616 case LC_SOURCE_VERSION: 628 case LC_SOURCE_VERSION:
617 printf ("LC_SOURCE_VERSION"); 629 printf ("LC_SOURCE_VERSION");
@@ -1178,9 +1190,9 @@ copy_dyld_info (struct load_command *lc, long delta)
1178#endif 1190#endif
1179 1191
1180#ifdef LC_FUNCTION_STARTS 1192#ifdef LC_FUNCTION_STARTS
1181/* Copy a LC_FUNCTION_STARTS/LC_DYLIB_CODE_SIGN_DRS load command from 1193/* Copy a LC_FUNCTION_STARTS/LC_DATA_IN_CODE/LC_DYLIB_CODE_SIGN_DRS
1182 the input file to the output file, adjusting the data offset 1194 load command from the input file to the output file, adjusting the
1183 field. */ 1195 data offset field. */
1184static void 1196static void
1185copy_linkedit_data (struct load_command *lc, long delta) 1197copy_linkedit_data (struct load_command *lc, long delta)
1186{ 1198{
@@ -1274,6 +1286,9 @@ dump_it (void)
1274#endif 1286#endif
1275#ifdef LC_FUNCTION_STARTS 1287#ifdef LC_FUNCTION_STARTS
1276 case LC_FUNCTION_STARTS: 1288 case LC_FUNCTION_STARTS:
1289#ifdef LC_DATA_IN_CODE
1290 case LC_DATA_IN_CODE:
1291#endif
1277#ifdef LC_DYLIB_CODE_SIGN_DRS 1292#ifdef LC_DYLIB_CODE_SIGN_DRS
1278 case LC_DYLIB_CODE_SIGN_DRS: 1293 case LC_DYLIB_CODE_SIGN_DRS:
1279#endif 1294#endif
diff --git a/src/xdisp.c b/src/xdisp.c
index 5ee5a46601c..f00719be37a 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -7755,7 +7755,7 @@ compute_stop_pos_backwards (struct it *it)
7755 { 7755 {
7756 it->end_charpos = min (charpos + 1, ZV); 7756 it->end_charpos = min (charpos + 1, ZV);
7757 charpos = max (charpos - SCAN_BACK_LIMIT, BEGV); 7757 charpos = max (charpos - SCAN_BACK_LIMIT, BEGV);
7758 SET_TEXT_POS (pos, charpos, BYTE_TO_CHAR (charpos)); 7758 SET_TEXT_POS (pos, charpos, CHAR_TO_BYTE (charpos));
7759 reseat_1 (it, pos, 0); 7759 reseat_1 (it, pos, 0);
7760 compute_stop_pos (it); 7760 compute_stop_pos (it);
7761 /* We must advance forward, right? */ 7761 /* We must advance forward, right? */
@@ -16744,28 +16744,33 @@ try_window_reusing_current_matrix (struct window *w)
16744 } 16744 }
16745 if (row < bottom_row) 16745 if (row < bottom_row)
16746 { 16746 {
16747 struct glyph *glyph = row->glyphs[TEXT_AREA] + w->cursor.hpos; 16747 /* Can't simply scan the row for point with
16748 struct glyph *end = row->glyphs[TEXT_AREA] + row->used[TEXT_AREA]; 16748 bidi-reordered glyph rows. Let set_cursor_from_row
16749 16749 figure out where to put the cursor, and if it fails,
16750 /* Can't use this optimization with bidi-reordered glyph 16750 give up. */
16751 rows, unless cursor is already at point. */
16752 if (!NILP (BVAR (XBUFFER (w->buffer), bidi_display_reordering))) 16751 if (!NILP (BVAR (XBUFFER (w->buffer), bidi_display_reordering)))
16753 { 16752 {
16754 if (!(w->cursor.hpos >= 0 16753 if (!set_cursor_from_row (w, row, w->current_matrix,
16755 && w->cursor.hpos < row->used[TEXT_AREA] 16754 0, 0, 0, 0))
16756 && BUFFERP (glyph->object) 16755 {
16757 && glyph->charpos == PT)) 16756 clear_glyph_matrix (w->desired_matrix);
16758 return 0; 16757 return 0;
16758 }
16759 } 16759 }
16760 else 16760 else
16761 for (; glyph < end 16761 {
16762 && (!BUFFERP (glyph->object) 16762 struct glyph *glyph = row->glyphs[TEXT_AREA] + w->cursor.hpos;
16763 || glyph->charpos < PT); 16763 struct glyph *end = row->glyphs[TEXT_AREA] + row->used[TEXT_AREA];
16764 glyph++) 16764
16765 { 16765 for (; glyph < end
16766 w->cursor.hpos++; 16766 && (!BUFFERP (glyph->object)
16767 w->cursor.x += glyph->pixel_width; 16767 || glyph->charpos < PT);
16768 } 16768 glyph++)
16769 {
16770 w->cursor.hpos++;
16771 w->cursor.x += glyph->pixel_width;
16772 }
16773 }
16769 } 16774 }
16770 } 16775 }
16771 16776