aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhillip Lord2016-01-15 22:20:34 +0000
committerPhillip Lord2016-01-15 22:20:34 +0000
commitbb0cd3193912032ae11a27016271d4587f876f98 (patch)
treed07e7bade1a79bec532447af64c9a5e1e63fc7ee
parent549a765efeca2748e68a5c6ce6c9238784e82535 (diff)
parent9e5452f7166e3634f2d8e943815ed722e1672714 (diff)
downloademacs-bb0cd3193912032ae11a27016271d4587f876f98.tar.gz
emacs-bb0cd3193912032ae11a27016271d4587f876f98.zip
Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25
-rw-r--r--configure.ac16
-rw-r--r--doc/lispref/numbers.texi4
-rw-r--r--doc/man/etags.112
-rw-r--r--etc/NEWS10
-rw-r--r--lib-src/etags.c3
-rw-r--r--lisp/gnus/gnus-start.el10
-rw-r--r--lisp/newcomment.el12
-rw-r--r--lisp/progmodes/cc-engine.el6
-rw-r--r--lisp/progmodes/cc-langs.el8
-rw-r--r--lisp/textmodes/picture.el6
-rw-r--r--src/dispnew.c4
-rw-r--r--src/fns.c3
-rw-r--r--src/sysdep.c31
-rw-r--r--src/w32.c32
-rw-r--r--src/w32.h3
-rw-r--r--src/window.c10
16 files changed, 146 insertions, 24 deletions
diff --git a/configure.ac b/configure.ac
index 8c01abac9c6..6c9b621dd82 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4153,6 +4153,22 @@ fi
4153 4153
4154AC_TYPE_MBSTATE_T 4154AC_TYPE_MBSTATE_T
4155 4155
4156AC_MSG_CHECKING([whether "/dev/urandom" is available])
4157dev_urandom=no
4158dnl MSYS, being a Cygwin fork, thinks "/dev/urandom" does exist, so
4159dnl don't check this for the MinGW builds.
4160if test "${opsys}" != "mingw32"; then
4161 if test -r "/dev/urandom"; then
4162 AC_DEFINE(HAVE_DEV_URANDOM, 1, [Define if the system supports the "/dev/urandom" device.])
4163 dev_urandom=yes
4164 fi
4165fi
4166if test $dev_urandom = yes; then
4167 AC_MSG_RESULT(yes)
4168else
4169 AC_MSG_RESULT(no)
4170fi
4171
4156dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear 4172dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear
4157dnl how the tty code is related to POSIX and/or other versions of termios. 4173dnl how the tty code is related to POSIX and/or other versions of termios.
4158dnl The following looks like a useful start. 4174dnl The following looks like a useful start.
diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi
index 20d3c4290f3..3a9483af967 100644
--- a/doc/lispref/numbers.texi
+++ b/doc/lispref/numbers.texi
@@ -1252,7 +1252,9 @@ any integer representable in Lisp, i.e., an integer between
1252(@pxref{Integer Basics}). 1252(@pxref{Integer Basics}).
1253 1253
1254If @var{limit} is @code{t}, it means to choose a new seed as if Emacs 1254If @var{limit} is @code{t}, it means to choose a new seed as if Emacs
1255were restarting. 1255were restarting. The new seed will be set from the system entropy, if
1256that is available, or from the current time and Emacs process's PID
1257(@pxref{System Environment, emacs-pid}) if not.
1256 1258
1257If @var{limit} is a string, it means to choose a new seed based on the 1259If @var{limit} is a string, it means to choose a new seed based on the
1258string's contents. 1260string's contents.
diff --git a/doc/man/etags.1 b/doc/man/etags.1
index 7d5d374f99a..d34063f23cd 100644
--- a/doc/man/etags.1
+++ b/doc/man/etags.1
@@ -17,7 +17,7 @@ etags, ctags \- generate tag file for Emacs, vi
17[\|\-\-parse\-stdin=\fIfile\fP\|] 17[\|\-\-parse\-stdin=\fIfile\fP\|]
18.br 18.br
19[\|\-\-append\|] [\|\-\-no\-defines\|] [\|\-\-globals\|] 19[\|\-\-append\|] [\|\-\-no\-defines\|] [\|\-\-globals\|]
20[\|\-\-no\-globals\|] [\|\-\-include=\fIfile\fP\|] 20[\|\-\-no\-globals\|] [\|\-\-no\-line\-directive\|] [\|\-\-include=\fIfile\fP\|]
21[\|\-\-ignore\-indentation\|] [\|\-\-language=\fIlanguage\fP\|] 21[\|\-\-ignore\-indentation\|] [\|\-\-language=\fIlanguage\fP\|]
22[\|\-\-members\|] [\|\-\-no\-members\|] [\|\-\-output=\fItagfile\fP\|] 22[\|\-\-members\|] [\|\-\-no\-members\|] [\|\-\-output=\fItagfile\fP\|]
23[\|\-\-class\-qualify\|] 23[\|\-\-class\-qualify\|]
@@ -31,8 +31,8 @@ etags, ctags \- generate tag file for Emacs, vi
31[\|\-\-parse\-stdin=\fIfile\fP\|] 31[\|\-\-parse\-stdin=\fIfile\fP\|]
32.br 32.br
33[\|\-\-append\|] [\|\-\-backward\-search\|] 33[\|\-\-append\|] [\|\-\-backward\-search\|]
34[\|\-\-cxref\|] [\|\-\-no\-defines\|] 34[\|\-\-cxref\|] [\|\-\-no\-defines\|] [\|\-\-globals\|]
35[\|\-\-globals\|] [\|\-\-no\-globals\|] [\|\-\-ignore\-indentation\|] 35[\|\-\-no\-globals\|] [\|\-\-no\-line\-directive\|] [\|\-\-ignore\-indentation\|]
36[\|\-\-language=\fIlanguage\fP\|] [\|\-\-members\|] [\|\-\-no\-members\|] 36[\|\-\-language=\fIlanguage\fP\|] [\|\-\-members\|] [\|\-\-no\-members\|]
37[\|\-\-class\-qualify\|] 37[\|\-\-class\-qualify\|]
38[\|\-\-output=\fItagfile\fP\|] [\|\-\-regex=\fIregexp\fP\|] 38[\|\-\-output=\fItagfile\fP\|] [\|\-\-regex=\fIregexp\fP\|]
@@ -105,6 +105,12 @@ the default in C and derived languages.
105Do not tag global variables in C and derived languages. Typically this 105Do not tag global variables in C and derived languages. Typically this
106reduces the file size by one fourth. 106reduces the file size by one fourth.
107.TP 107.TP
108.B \-\-no\-line\-directive
109Ignore \fB#line\fP preprocessor directives in C and derived languages. The
110default is to honor those directives, and record the tags as if the
111file scanned was the one named in the \fB#line\fP directive. This switch is
112useful when the original file named by \fB#line\fP is no longer available.
113.TP
108\fB\-i\fP \fIfile\fP, \fB\-\-include=\fIfile\fP 114\fB\-i\fP \fIfile\fP, \fB\-\-include=\fIfile\fP
109Include a note in the tag file indicating that, when searching for a 115Include a note in the tag file indicating that, when searching for a
110tag, one should also consult the tags file \fIfile\fP after checking the 116tag, one should also consult the tags file \fIfile\fP after checking the
diff --git a/etc/NEWS b/etc/NEWS
index ef72d457ca7..9e635798c58 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -214,6 +214,14 @@ for use in Emacs bug reports.
214hiding character but the default `.' can be used by let-binding the 214hiding character but the default `.' can be used by let-binding the
215variable `read-hide-char'. 215variable `read-hide-char'.
216 216
217+++
218** The Emacs pseudo-random number generator can be securely seeded.
219On system where Emacs can access the system entropy or some other
220cryptographically secure random stream, it now uses that when `random'
221is called with its argument `t'. This allows cryptographically strong
222random values; in particular, the Emacs server now uses this facility
223to produce its authentication key.
224
217--- 225---
218** New input methods: `tamil-dvorak' and `programmer-dvorak'. 226** New input methods: `tamil-dvorak' and `programmer-dvorak'.
219 227
@@ -726,8 +734,6 @@ to produce a neat summary.
726 734
727--- 735---
728** New js.el option `js-indent-first-init'. 736** New js.el option `js-indent-first-init'.
729It was renamed from `js-indent-first-initialiser', to avoid issues
730with American vs British spelling.
731 737
732** Info 738** Info
733 739
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 2192627c7e0..54ed1b428e9 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -951,8 +951,7 @@ Relative ones are stored relative to the output file's directory.\n");
951 Do not create tag entries for global variables in some\n\ 951 Do not create tag entries for global variables in some\n\
952 languages. This makes the tags file smaller."); 952 languages. This makes the tags file smaller.");
953 953
954 if (PRINT_UNDOCUMENTED_OPTIONS_HELP) 954 puts ("--no-line-directive\n\
955 puts ("--no-line-directive\n\
956 Ignore #line preprocessor directives in C and derived languages."); 955 Ignore #line preprocessor directives in C and derived languages.");
957 956
958 if (CTAGS) 957 if (CTAGS)
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 4efec86f6e0..10f93d8e526 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -122,7 +122,6 @@ This variable can be a list of select methods which Gnus will query with
122the `ask-server' method in addition to the primary, secondary, and archive 122the `ask-server' method in addition to the primary, secondary, and archive
123servers. 123servers.
124 124
125
126E.g.: 125E.g.:
127 (setq gnus-check-new-newsgroups 126 (setq gnus-check-new-newsgroups
128 \\='((nntp \"some.server\") (nntp \"other.server\"))) 127 \\='((nntp \"some.server\") (nntp \"other.server\")))
@@ -1673,10 +1672,11 @@ backend check whether the group actually exists."
1673 (push (setq method-group-list (list method method-type nil nil)) 1672 (push (setq method-group-list (list method method-type nil nil))
1674 type-cache)) 1673 type-cache))
1675 ;; Only add groups that need updating. 1674 ;; Only add groups that need updating.
1676 (if (funcall (if one-level #'= #'<=) (gnus-info-level info) 1675 (if (or (and foreign-level (null (numberp foreign-level)))
1677 (if (eq (cadr method-group-list) 'foreign) 1676 (funcall (if one-level #'= #'<=) (gnus-info-level info)
1678 foreign-level 1677 (if (eq (cadr method-group-list) 'foreign)
1679 alevel)) 1678 foreign-level
1679 alevel)))
1680 (setcar (nthcdr 2 method-group-list) 1680 (setcar (nthcdr 2 method-group-list)
1681 (cons info (nth 2 method-group-list))) 1681 (cons info (nth 2 method-group-list)))
1682 ;; The group is inactive, so we nix out the number of unread articles. 1682 ;; The group is inactive, so we nix out the number of unread articles.
diff --git a/lisp/newcomment.el b/lisp/newcomment.el
index 88ed08d4429..80b52ed9561 100644
--- a/lisp/newcomment.el
+++ b/lisp/newcomment.el
@@ -990,6 +990,14 @@ comment markers."
990 (goto-char (point-max)))))) 990 (goto-char (point-max))))))
991 (set-marker end nil)) 991 (set-marker end nil))
992 992
993(defun comment-make-bol-ws (len)
994 "Make a white-space string of width LEN for use at BOL.
995When `indent-tabs-mode' is non-nil, tab characters will be used."
996 (if (and indent-tabs-mode (> tab-width 0))
997 (concat (make-string (/ len tab-width) ?\t)
998 (make-string (% len tab-width) ? ))
999 (make-string len ? )))
1000
993(defun comment-make-extra-lines (cs ce ccs cce min-indent max-indent &optional block) 1001(defun comment-make-extra-lines (cs ce ccs cce min-indent max-indent &optional block)
994 "Make the leading and trailing extra lines. 1002 "Make the leading and trailing extra lines.
995This is used for `extra-line' style (or `box' style if BLOCK is specified)." 1003This is used for `extra-line' style (or `box' style if BLOCK is specified)."
@@ -1025,8 +1033,8 @@ This is used for `extra-line' style (or `box' style if BLOCK is specified)."
1025 (setq cs (replace-match fill t t s))) 1033 (setq cs (replace-match fill t t s)))
1026 (string-match re e) 1034 (string-match re e)
1027 (setq ce (replace-match fill t t e)))) 1035 (setq ce (replace-match fill t t e))))
1028 (cons (concat cs "\n" (make-string min-indent ? ) ccs) 1036 (cons (concat cs "\n" (comment-make-bol-ws min-indent) ccs)
1029 (concat cce "\n" (make-string (+ min-indent eindent) ? ) ce)))) 1037 (concat cce "\n" (comment-make-bol-ws (+ min-indent eindent)) ce))))
1030 1038
1031(defmacro comment-with-narrowing (beg end &rest body) 1039(defmacro comment-with-narrowing (beg end &rest body)
1032 "Execute BODY with BEG..END narrowing. 1040 "Execute BODY with BEG..END narrowing.
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index b08c555e34f..63f01829845 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -6739,6 +6739,9 @@ comment at the start of cc-engine.el for more info."
6739 (c-backward-syntactic-ws)) 6739 (c-backward-syntactic-ws))
6740 (c-back-over-list-of-member-inits) 6740 (c-back-over-list-of-member-inits)
6741 (and (eq (char-before) ?:) 6741 (and (eq (char-before) ?:)
6742 (save-excursion
6743 (c-backward-token-2)
6744 (not (looking-at c-:$-multichar-token-regexp)))
6742 (c-just-after-func-arglist-p)))) 6745 (c-just-after-func-arglist-p))))
6743 6746
6744 (while (and (not (and level-plausible 6747 (while (and (not (and level-plausible
@@ -6753,6 +6756,9 @@ comment at the start of cc-engine.el for more info."
6753 (c-backward-syntactic-ws) 6756 (c-backward-syntactic-ws)
6754 (c-back-over-list-of-member-inits) 6757 (c-back-over-list-of-member-inits)
6755 (and (eq (char-before) ?:) 6758 (and (eq (char-before) ?:)
6759 (save-excursion
6760 (c-backward-token-2)
6761 (not (looking-at c-:$-multichar-token-regexp)))
6756 (c-just-after-func-arglist-p))))) 6762 (c-just-after-func-arglist-p)))))
6757 6763
6758 (and at-top-level level-plausible))) 6764 (and at-top-level level-plausible)))
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index b52da3f662d..48dd9960886 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -1219,6 +1219,14 @@ operators."
1219(c-lang-defvar c-assignment-op-regexp 1219(c-lang-defvar c-assignment-op-regexp
1220 (c-lang-const c-assignment-op-regexp)) 1220 (c-lang-const c-assignment-op-regexp))
1221 1221
1222(c-lang-defconst c-:$-multichar-token-regexp
1223 ;; Regexp matching all tokens ending in ":" which are longer than one char.
1224 ;; Currently (2016-01-07) only used in C++ Mode.
1225 t (c-make-keywords-re nil
1226 (c-filter-ops (c-lang-const c-operators) t ".+:$")))
1227(c-lang-defvar c-:$-multichar-token-regexp
1228 (c-lang-const c-:$-multichar-token-regexp))
1229
1222(c-lang-defconst c-<>-multichar-token-regexp 1230(c-lang-defconst c-<>-multichar-token-regexp
1223 ;; Regexp matching all tokens containing "<" or ">" which are longer 1231 ;; Regexp matching all tokens containing "<" or ">" which are longer
1224 ;; than one char. 1232 ;; than one char.
diff --git a/lisp/textmodes/picture.el b/lisp/textmodes/picture.el
index 4aee2734158..b77f8e9717c 100644
--- a/lisp/textmodes/picture.el
+++ b/lisp/textmodes/picture.el
@@ -272,7 +272,11 @@ Use \"\\[command-apropos] picture-movement\" to see commands which control motio
272 (or (eolp) 272 (or (eolp)
273 (let ((pos (point))) 273 (let ((pos (point)))
274 (move-to-column col t) 274 (move-to-column col t)
275 (delete-region pos (point))))) 275 (let ((old-width (string-width (buffer-substring pos (point)))))
276 (delete-region pos (point))
277 (when (> old-width width)
278 (insert-char ? (- old-width width))
279 (goto-char pos))))))
276 (insert ch) 280 (insert ch)
277 (forward-char -1) 281 (forward-char -1)
278 (picture-move)))) 282 (picture-move))))
diff --git a/src/dispnew.c b/src/dispnew.c
index 8d671f82e47..3e1557fa3b9 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -320,7 +320,9 @@ margin_glyphs_to_reserve (struct window *w, int total_glyphs, int margin)
320 int width = w->total_cols; 320 int width = w->total_cols;
321 double d = max (0, margin); 321 double d = max (0, margin);
322 d = min (width / 2 - 1, d); 322 d = min (width / 2 - 1, d);
323 return (int) ((double) total_glyphs / width * d); 323 /* Since MARGIN is positive, we cannot possibly have less than
324 one glyph for the marginal area. */
325 return max (1, (int) ((double) total_glyphs / width * d));
324 } 326 }
325 return 0; 327 return 0;
326} 328}
diff --git a/src/fns.c b/src/fns.c
index 977229b97b7..19fa44086c9 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -50,7 +50,8 @@ All integers representable in Lisp, i.e. between `most-negative-fixnum'
50and `most-positive-fixnum', inclusive, are equally likely. 50and `most-positive-fixnum', inclusive, are equally likely.
51 51
52With positive integer LIMIT, return random number in interval [0,LIMIT). 52With positive integer LIMIT, return random number in interval [0,LIMIT).
53With argument t, set the random number seed from the current time and pid. 53With argument t, set the random number seed from the system's entropy
54pool, or from the current time and pid if entropy is unavailable.
54With a string argument, set the seed based on the string's contents. 55With a string argument, set the seed based on the string's contents.
55Other values of LIMIT are ignored. 56Other values of LIMIT are ignored.
56 57
diff --git a/src/sysdep.c b/src/sysdep.c
index a78c4c64c81..1fa422947ed 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -2095,8 +2095,35 @@ seed_random (void *seed, ptrdiff_t seed_size)
2095void 2095void
2096init_random (void) 2096init_random (void)
2097{ 2097{
2098 struct timespec t = current_timespec (); 2098 uintmax_t v;
2099 uintmax_t v = getpid () ^ t.tv_sec ^ t.tv_nsec; 2099 struct timespec t;
2100 bool success = false;
2101
2102#if HAVE_DEV_URANDOM
2103 FILE *fp = fopen ("/dev/urandom", "rb");
2104
2105 if (fp)
2106 {
2107 int i;
2108
2109 for (i = 0, v = 0; i < sizeof (uintmax_t); i++)
2110 {
2111 v <<= 8;
2112 v |= fgetc (fp);
2113 }
2114 fclose (fp);
2115 success = true;
2116 }
2117#elif defined WINDOWSNT
2118 if (w32_init_random (&v, sizeof v) == 0)
2119 success = true;
2120#endif /* HAVE_DEV_URANDOM || WINDOWSNT */
2121 if (!success)
2122 {
2123 /* Fall back to current time value + PID. */
2124 t = current_timespec ();
2125 v = getpid () ^ t.tv_sec ^ t.tv_nsec;
2126 }
2100 seed_random (&v, sizeof v); 2127 seed_random (&v, sizeof v);
2101} 2128}
2102 2129
diff --git a/src/w32.c b/src/w32.c
index ea3a9dafad5..7884bad619c 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -224,6 +224,8 @@ typedef struct _REPARSE_DATA_BUFFER {
224 224
225#include <iphlpapi.h> /* should be after winsock2.h */ 225#include <iphlpapi.h> /* should be after winsock2.h */
226 226
227#include <wincrypt.h>
228
227#include <c-strcase.h> 229#include <c-strcase.h>
228 230
229#include "w32.h" 231#include "w32.h"
@@ -2093,6 +2095,34 @@ init_user_info (void)
2093 CloseHandle (token); 2095 CloseHandle (token);
2094} 2096}
2095 2097
2098static HCRYPTPROV w32_crypto_hprov;
2099static int
2100w32_init_crypt_random (void)
2101{
2102 if (!CryptAcquireContext (&w32_crypto_hprov, NULL, NULL, PROV_RSA_FULL,
2103 CRYPT_VERIFYCONTEXT | CRYPT_SILENT))
2104 {
2105 DebPrint (("CryptAcquireContext failed with error %x\n",
2106 GetLastError ()));
2107 w32_crypto_hprov = 0;
2108 return -1;
2109 }
2110 return 0;
2111}
2112
2113int
2114w32_init_random (void *buf, ptrdiff_t buflen)
2115{
2116 if (!w32_crypto_hprov)
2117 w32_init_crypt_random ();
2118 if (w32_crypto_hprov)
2119 {
2120 if (CryptGenRandom (w32_crypto_hprov, buflen, (BYTE *)buf))
2121 return 0;
2122 }
2123 return -1;
2124}
2125
2096int 2126int
2097random (void) 2127random (void)
2098{ 2128{
@@ -9410,6 +9440,8 @@ globals_of_w32 (void)
9410 extern void dynlib_reset_last_error (void); 9440 extern void dynlib_reset_last_error (void);
9411 dynlib_reset_last_error (); 9441 dynlib_reset_last_error ();
9412#endif 9442#endif
9443
9444 w32_crypto_hprov = (HCRYPTPROV)0;
9413} 9445}
9414 9446
9415/* For make-serial-process */ 9447/* For make-serial-process */
diff --git a/src/w32.h b/src/w32.h
index 501056d38c6..ba3fec8b7e6 100644
--- a/src/w32.h
+++ b/src/w32.h
@@ -222,6 +222,9 @@ extern int w32_memory_info (unsigned long long *, unsigned long long *,
222/* Compare 2 UTF-8 strings in locale-dependent fashion. */ 222/* Compare 2 UTF-8 strings in locale-dependent fashion. */
223extern int w32_compare_strings (const char *, const char *, char *, int); 223extern int w32_compare_strings (const char *, const char *, char *, int);
224 224
225/* Return a cryptographically secure seed for PRNG. */
226extern int w32_init_random (void *, ptrdiff_t);
227
225#ifdef HAVE_GNUTLS 228#ifdef HAVE_GNUTLS
226#include <gnutls/gnutls.h> 229#include <gnutls/gnutls.h>
227 230
diff --git a/src/window.c b/src/window.c
index bb414e7d311..bbe47c7255a 100644
--- a/src/window.c
+++ b/src/window.c
@@ -3970,9 +3970,11 @@ values. */)
3970} 3970}
3971 3971
3972 3972
3973/* Resize frame F's windows when number of lines of F is set to SIZE. 3973/* Resize frame F's windows when F's width or height is set to SIZE.
3974 HORFLAG means resize windows when number of columns of F is set to 3974 If HORFLAG is zero, F's width was set to SIZE, otherwise its height
3975 SIZE. PIXELWISE means to interpret SIZE as pixels. */ 3975 was set. SIZE is interpreted in F's canonical character units
3976 (a.k.a. "columns" or "lines"), unless PIXELWISE is non-zero, which
3977 means to interpret SIZE in pixel units. */
3976void 3978void
3977resize_frame_windows (struct frame *f, int size, bool horflag, bool pixelwise) 3979resize_frame_windows (struct frame *f, int size, bool horflag, bool pixelwise)
3978{ 3980{
@@ -4073,7 +4075,7 @@ resize_frame_windows (struct frame *f, int size, bool horflag, bool pixelwise)
4073 m = XWINDOW (mini); 4075 m = XWINDOW (mini);
4074 if (horflag) 4076 if (horflag)
4075 { 4077 {
4076 m->total_cols = size; 4078 m->total_cols = new_size;
4077 m->pixel_width = new_pixel_size; 4079 m->pixel_width = new_pixel_size;
4078 } 4080 }
4079 else 4081 else