From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Antipov Newsgroups: gmane.emacs.devel Subject: Function attributes for make-docfile Date: Mon, 12 Jan 2015 07:09:12 +0300 Message-ID: <54B348E8.7080203@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030508080306000700010203" X-Trace: ger.gmane.org 1421035790 7490 80.91.229.3 (12 Jan 2015 04:09:50 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 12 Jan 2015 04:09:50 +0000 (UTC) Cc: Paul Eggert To: Emacs development discussions Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jan 12 05:09:44 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YAWJz-0000FJ-TR for ged-emacs-devel@m.gmane.org; Mon, 12 Jan 2015 05:09:44 +0100 Original-Received: from localhost ([::1]:60288 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YAWJz-0000Ol-6b for ged-emacs-devel@m.gmane.org; Sun, 11 Jan 2015 23:09:43 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60530) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YAWJg-0000Nn-8c for emacs-devel@gnu.org; Sun, 11 Jan 2015 23:09:26 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YAWJb-0007ay-4Y for emacs-devel@gnu.org; Sun, 11 Jan 2015 23:09:24 -0500 Original-Received: from forward22m.cmail.yandex.net ([5.255.216.16]:45939) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YAWJa-0007aa-ME for emacs-devel@gnu.org; Sun, 11 Jan 2015 23:09:19 -0500 Original-Received: from smtp2m.mail.yandex.net (smtp2m.mail.yandex.net [77.88.61.129]) by forward22m.cmail.yandex.net (Yandex) with ESMTP id 1E47680BF8; Mon, 12 Jan 2015 07:09:14 +0300 (MSK) Original-Received: from smtp2m.mail.yandex.net (localhost [127.0.0.1]) by smtp2m.mail.yandex.net (Yandex) with ESMTP id DC47A420DBB; Mon, 12 Jan 2015 07:09:13 +0300 (MSK) Original-Received: from unknown (unknown [37.139.80.10]) by smtp2m.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id OWkBZY5cst-9DLmQTL7; Mon, 12 Jan 2015 07:09:13 +0300 (using TLSv1.2 with cipher AES128-SHA (128/128 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1421035753; bh=q2a+TqUbJ6sm9YF0egUKisfnn6neXyr/tkNuTst9XE4=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: Content-Type; b=fzWtCH1V5fytwzqpYZbaYkuyNEpdnZKbrQDiP1FPVck0hojeMYgXqLqEul2+noTk5 0Ags+Hp/VDe5Bid0y+i8XLY57cpQ6zpCQXQ2HNzEJMRed9QxOm86MlKogIPr5Eb1ax tO3jKY5jcT986t/I8TUJrg3wT/Kr01RsMIpNpJZE= Authentication-Results: smtp2m.mail.yandex.net; dkim=pass header.i=@yandex.ru User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 5.255.216.16 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:181165 Archived-At: This is a multi-part message in MIME format. --------------030508080306000700010203 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit The following patch helps make-docfile to generate _Noreturn and ATTRIBUTE_CONST by looking at special comments found immediately after DEFUN declaration. This code works only for regular-form docstrings (doc: /* xxx */), so Flookup_image is also fixed (the latter should be done anyway, IMO). Any thoughts? Dmitry --------------030508080306000700010203 Content-Type: text/x-diff; name="function_attributes.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="function_attributes.patch" diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index bc5420e..dcc08ea 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -562,6 +562,7 @@ struct global { enum global_type type; char *name; + int flags; union { int value; @@ -569,13 +570,16 @@ struct global } v; }; =20 +/* Bit values for FLAGS field from the above. */ +enum { NORETURN =3D 1, CONST =3D 2 }; + /* All the variable names we saw while scanning C sources in `-g' mode. */ int num_globals; int num_globals_allocated; struct global *globals; =20 -static void +static struct global * add_global (enum global_type type, char *name, int value, char const *sv= alue) { /* Ignore the one non-symbol that can occur. */ @@ -601,7 +605,10 @@ add_global (enum global_type type, char *name, int v= alue, char const *svalue) globals[num_globals - 1].v.svalue =3D svalue; else globals[num_globals - 1].v.value =3D value; + globals[num_globals - 1].flags =3D 0; + return globals + num_globals - 1; } + return NULL; } =20 static int @@ -708,13 +715,7 @@ write_globals (void) globals[i].name, globals[i].name, globals[i].name); else { - /* It would be nice to have a cleaner way to deal with these - special hacks. */ - if (strcmp (globals[i].name, "Fthrow") =3D=3D 0 - || strcmp (globals[i].name, "Ftop_level") =3D=3D 0 - || strcmp (globals[i].name, "Fkill_emacs") =3D=3D 0 - || strcmp (globals[i].name, "Fexit_recursive_edit") =3D=3D 0 - || strcmp (globals[i].name, "Fabort_recursive_edit") =3D=3D 0) + if (globals[i].flags & NORETURN) fputs ("_Noreturn ", stdout); =20 printf ("EXFUN (%s, ", globals[i].name); @@ -726,36 +727,7 @@ write_globals (void) printf ("%d", globals[i].v.value); putchar (')'); =20 - /* It would be nice to have a cleaner way to deal with these - special hacks, too. */ - if (strcmp (globals[i].name, "Fatom") =3D=3D 0 - || strcmp (globals[i].name, "Fbyteorder") =3D=3D 0 - || strcmp (globals[i].name, "Fcharacterp") =3D=3D 0 - || strcmp (globals[i].name, "Fchar_or_string_p") =3D=3D 0 - || strcmp (globals[i].name, "Fconsp") =3D=3D 0 - || strcmp (globals[i].name, "Feq") =3D=3D 0 - || strcmp (globals[i].name, "Fface_attribute_relative_p") =3D=3D = 0 - || strcmp (globals[i].name, "Fframe_windows_min_size") =3D=3D 0 - || strcmp (globals[i].name, "Fgnutls_errorp") =3D=3D 0 - || strcmp (globals[i].name, "Fidentity") =3D=3D 0 - || strcmp (globals[i].name, "Fintegerp") =3D=3D 0 - || strcmp (globals[i].name, "Finteractive") =3D=3D 0 - || strcmp (globals[i].name, "Ffloatp") =3D=3D 0 - || strcmp (globals[i].name, "Flistp") =3D=3D 0 - || strcmp (globals[i].name, "Fmax_char") =3D=3D 0 - || strcmp (globals[i].name, "Fnatnump") =3D=3D 0 - || strcmp (globals[i].name, "Fnlistp") =3D=3D 0 - || strcmp (globals[i].name, "Fnull") =3D=3D 0 - || strcmp (globals[i].name, "Fnumberp") =3D=3D 0 - || strcmp (globals[i].name, "Fstringp") =3D=3D 0 - || strcmp (globals[i].name, "Fsymbolp") =3D=3D 0 - || strcmp (globals[i].name, "Ftool_bar_height") =3D=3D 0 - || strcmp (globals[i].name, "Fwindow__sanitize_window_sizes") =3D= =3D 0 -#ifndef WINDOWSNT - || strcmp (globals[i].name, "Fgnutls_available_p") =3D=3D 0 - || strcmp (globals[i].name, "Fzlib_available_p") =3D=3D 0 -#endif - || 0) + if (globals[i].flags & CONST) fputs (" ATTRIBUTE_CONST", stdout); =20 puts (";"); @@ -1033,7 +1005,70 @@ scan_c_stream (FILE *infile) =20 if (generate_globals) { - add_global (FUNCTION, name, maxargs, 0); + struct global *g =3D add_global (FUNCTION, name, maxargs, 0); + /* The following code tries to recognize SPECIAL-COMMENT in: + + DEFUN ("foo", Ffoo, Sfoo, X, Y, Z, + doc: [docstring]) [SPECIAL-COMMENT] + (Lisp_Object arg...) + + and use the latter to specify special attributes. + Currently they are _Noreturn and ATTRIBUTE_CONST. */ + c =3D getc (infile); + if (c =3D=3D EOF) + goto eof; + int d =3D getc (infile); + if (d =3D=3D EOF) + goto eof; + int e =3D getc (infile); + if (e =3D=3D EOF) + goto eof; + while (1) + { + if (c =3D=3D '*' && d =3D=3D '/' && e =3D=3D ')') + break; + c =3D d, d =3D e, e =3D getc (infile); + if (e =3D=3D EOF) + goto eof; + } + /* Found '*' '/' ')'. */ + do + { + c =3D getc (infile); + if (c =3D=3D EOF) + goto eof; + } + while (c =3D=3D ' ' || c =3D=3D '\n' || c =3D=3D '\r' || c =3D=3D '\t= '); + /* Spaces are skipped. */ + if (c =3D=3D '/') + { + int d =3D getc (infile); + if (d =3D=3D EOF) + goto eof; + if (d =3D=3D '*') + { + /* Found start of the comment. */ + char *p =3D input_buffer; + *p++ =3D '/', *p++ =3D '*'; + while (1) + { + if (c =3D=3D '*' && d =3D=3D '/') + break; + c =3D d, d =3D getc (infile); + if (d =3D=3D EOF) + goto eof; + *p++ =3D d; + if (p - input_buffer > sizeof (input_buffer)) + abort (); + } + *p++ =3D '\0'; + /* The comment is a string in an input buffer. */ + if (strstr (input_buffer, "NORETURN")) + g->flags |=3D NORETURN; + if (strstr (input_buffer, "CONST")) + g->flags |=3D CONST; + } + } continue; } =20 diff --git a/src/callint.c b/src/callint.c index 2595503..b6514df 100644 --- a/src/callint.c +++ b/src/callint.c @@ -101,7 +101,7 @@ If the string begins with `^' and `shift-select-mode'= is non-nil, Emacs first calls the function `handle-shift-selection'. You may use `@', `*', and `^' together. They are processed in the order that they appear, before reading any arguments. -usage: (interactive &optional ARGS) */) +usage: (interactive &optional ARGS) */) /* CONST */ (Lisp_Object args) { return Qnil; diff --git a/src/character.c b/src/character.c index 4a5c7ec..f4c9ea4 100644 --- a/src/character.c +++ b/src/character.c @@ -232,14 +232,14 @@ DEFUN ("characterp", Fcharacterp, Scharacterp, 1, 2= , 0, In Emacs Lisp, characters are represented by character codes, which are non-negative integers. The function `max-char' returns the maximum character code. -usage: (characterp OBJECT) */) +usage: (characterp OBJECT) */) /* CONST */ (Lisp_Object object, Lisp_Object ignore) { return (CHARACTERP (object) ? Qt : Qnil); } =20 DEFUN ("max-char", Fmax_char, Smax_char, 0, 0, 0, - doc: /* Return the character of the maximum code. */) + doc: /* Return the character of the maximum code. */) /* CONST *= / (void) { return make_number (MAX_CHAR); diff --git a/src/data.c b/src/data.c index 820c3ce..2f35b56 100644 --- a/src/data.c +++ b/src/data.c @@ -177,6 +177,7 @@ args_out_of_range_3 (Lisp_Object a1, Lisp_Object a2, = Lisp_Object a3) =20 DEFUN ("eq", Feq, Seq, 2, 2, 0, doc: /* Return t if the two args are the same Lisp object. */) +/* CONST */ (Lisp_Object obj1, Lisp_Object obj2) { if (EQ (obj1, obj2)) @@ -185,7 +186,7 @@ DEFUN ("eq", Feq, Seq, 2, 2, 0, } =20 DEFUN ("null", Fnull, Snull, 1, 1, 0, - doc: /* Return t if OBJECT is nil. */) + doc: /* Return t if OBJECT is nil. */) /* CONST */ (Lisp_Object object) { if (NILP (object)) @@ -263,7 +264,7 @@ for example, (type-of 1) returns `integer'. */) } =20 DEFUN ("consp", Fconsp, Sconsp, 1, 1, 0, - doc: /* Return t if OBJECT is a cons cell. */) + doc: /* Return t if OBJECT is a cons cell. */) /* CONST */ (Lisp_Object object) { if (CONSP (object)) @@ -273,6 +274,7 @@ DEFUN ("consp", Fconsp, Sconsp, 1, 1, 0, =20 DEFUN ("atom", Fatom, Satom, 1, 1, 0, doc: /* Return t if OBJECT is not a cons cell. This includes nil= =2E */) +/* CONST */ (Lisp_Object object) { if (CONSP (object)) @@ -282,7 +284,7 @@ DEFUN ("atom", Fatom, Satom, 1, 1, 0, =20 DEFUN ("listp", Flistp, Slistp, 1, 1, 0, doc: /* Return t if OBJECT is a list, that is, a cons cell or nil= =2E -Otherwise, return nil. */) +Otherwise, return nil. */) /* CONST */ (Lisp_Object object) { if (CONSP (object) || NILP (object)) @@ -292,6 +294,7 @@ Otherwise, return nil. */) =20 DEFUN ("nlistp", Fnlistp, Snlistp, 1, 1, 0, doc: /* Return t if OBJECT is not a list. Lists include nil. */= ) +/* CONST */ (Lisp_Object object) { if (CONSP (object) || NILP (object)) @@ -300,7 +303,7 @@ DEFUN ("nlistp", Fnlistp, Snlistp, 1, 1, 0, } =0C DEFUN ("symbolp", Fsymbolp, Ssymbolp, 1, 1, 0, - doc: /* Return t if OBJECT is a symbol. */) + doc: /* Return t if OBJECT is a symbol. */) /* CONST */ (Lisp_Object object) { if (SYMBOLP (object)) @@ -333,7 +336,7 @@ DEFUN ("vectorp", Fvectorp, Svectorp, 1, 1, 0, } =20 DEFUN ("stringp", Fstringp, Sstringp, 1, 1, 0, - doc: /* Return t if OBJECT is a string. */) + doc: /* Return t if OBJECT is a string. */) /* CONST */ (Lisp_Object object) { if (STRINGP (object)) @@ -436,7 +439,7 @@ DEFUN ("byte-code-function-p", Fbyte_code_function_p,= Sbyte_code_function_p, } =20 DEFUN ("char-or-string-p", Fchar_or_string_p, Schar_or_string_p, 1, 1, 0= , - doc: /* Return t if OBJECT is a character or a string. */) + doc: /* Return t if OBJECT is a character or a string. */) /* CO= NST */ (register Lisp_Object object) { if (CHARACTERP (object) || STRINGP (object)) @@ -445,7 +448,7 @@ DEFUN ("char-or-string-p", Fchar_or_string_p, Schar_o= r_string_p, 1, 1, 0, } =0C DEFUN ("integerp", Fintegerp, Sintegerp, 1, 1, 0, - doc: /* Return t if OBJECT is an integer. */) + doc: /* Return t if OBJECT is an integer. */) /* CONST */ (Lisp_Object object) { if (INTEGERP (object)) @@ -463,7 +466,7 @@ DEFUN ("integer-or-marker-p", Finteger_or_marker_p, S= integer_or_marker_p, 1, 1, } =20 DEFUN ("natnump", Fnatnump, Snatnump, 1, 1, 0, - doc: /* Return t if OBJECT is a nonnegative integer. */) + doc: /* Return t if OBJECT is a nonnegative integer. */) /* CONS= T */ (Lisp_Object object) { if (NATNUMP (object)) @@ -473,6 +476,7 @@ DEFUN ("natnump", Fnatnump, Snatnump, 1, 1, 0, =20 DEFUN ("numberp", Fnumberp, Snumberp, 1, 1, 0, doc: /* Return t if OBJECT is a number (floating point or integer= ). */) +/* CONST */ (Lisp_Object object) { if (NUMBERP (object)) @@ -493,6 +497,7 @@ DEFUN ("number-or-marker-p", Fnumber_or_marker_p, =20 DEFUN ("floatp", Ffloatp, Sfloatp, 1, 1, 0, doc: /* Return t if OBJECT is a floating point number. */) +/* CONST */ (Lisp_Object object) { if (FLOATP (object)) @@ -2954,7 +2959,7 @@ DEFUN ("lognot", Flognot, Slognot, 1, 1, 0, DEFUN ("byteorder", Fbyteorder, Sbyteorder, 0, 0, 0, doc: /* Return the byteorder for the machine. Returns 66 (ASCII uppercase B) for big endian machines or 108 (ASCII -lowercase l) for small endian machines. */) +lowercase l) for small endian machines. */) /* CONST */ (void) { unsigned i =3D 0x04030201; diff --git a/src/decompress.c b/src/decompress.c index b14f0a2..1dfd815 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -89,6 +89,7 @@ unwind_decompress (void *ddata) =20 DEFUN ("zlib-available-p", Fzlib_available_p, Szlib_available_p, 0, 0, 0= , doc: /* Return t if zlib decompression is available in this insta= nce of Emacs. */) +/* CONST */ (void) { #ifdef WINDOWSNT diff --git a/src/emacs.c b/src/emacs.c index d09c3c3..cef3632 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -1892,7 +1892,7 @@ or SIGHUP, and upon SIGINT in batch mode. =20 The value of `kill-emacs-hook', if not void, is a list of functions (of no args), -all of which are called before Emacs is actually killed. */) +all of which are called before Emacs is actually killed. */) /* NORETUR= N */ (Lisp_Object arg) { struct gcpro gcpro1; diff --git a/src/eval.c b/src/eval.c index 7e4b016..02964e3 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1162,7 +1162,7 @@ unwind_to_catch (struct handler *catch, Lisp_Object= value) =20 DEFUN ("throw", Fthrow, Sthrow, 2, 2, 0, doc: /* Throw to the catch for TAG and return VALUE from it. -Both TAG and VALUE are evalled. */) +Both TAG and VALUE are evalled. */) /* NORETURN */ (register Lisp_Object tag, Lisp_Object value) { struct handler *c; diff --git a/src/fns.c b/src/fns.c index 7739663..94538d8 100644 --- a/src/fns.c +++ b/src/fns.c @@ -46,7 +46,7 @@ static void sort_vector_copy (Lisp_Object, ptrdiff_t, static bool internal_equal (Lisp_Object, Lisp_Object, int, bool, Lisp_Ob= ject); =20 DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0, - doc: /* Return the argument unchanged. */) + doc: /* Return the argument unchanged. */) /* CONST */ (Lisp_Object arg) { return arg; diff --git a/src/frame.c b/src/frame.c index 3d2ffbf..69aa096 100644 --- a/src/frame.c +++ b/src/frame.c @@ -267,7 +267,7 @@ predicates which report frame's specific UI-related c= apabilities. */) /* Placeholder used by temacs -nw before window.el is loaded. */ DEFUN ("frame-windows-min-size", Fframe_windows_min_size, Sframe_windows_min_size, 4, 4, 0, - doc: /* */) + doc: /* */) /* CONST */ (Lisp_Object frame, Lisp_Object horizontal, Lisp_Object ignore, Lisp_Object pixelwise) { diff --git a/src/gnutls.c b/src/gnutls.c index 75fe614..b385bca 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -695,7 +695,7 @@ See also `gnutls-boot'. */) DEFUN ("gnutls-errorp", Fgnutls_errorp, Sgnutls_errorp, 1, 1, 0, doc: /* Return t if ERROR indicates a GnuTLS problem. ERROR is an integer or a symbol with an integer `gnutls-code' property. -usage: (gnutls-errorp ERROR) */) +usage: (gnutls-errorp ERROR) */) /* CONST */ (Lisp_Object err) { if (EQ (err, Qt)) return Qnil; @@ -1604,6 +1604,7 @@ This function may also return `gnutls-e-again', or =20 DEFUN ("gnutls-available-p", Fgnutls_available_p, Sgnutls_available_p, 0= , 0, 0, doc: /* Return t if GnuTLS is available in this instance of Emacs= =2E */) +/* CONST */ (void) { #ifdef HAVE_GNUTLS diff --git a/src/image.c b/src/image.c index 5d08a89..9c09c55 100644 --- a/src/image.c +++ b/src/image.c @@ -9288,7 +9288,8 @@ DEFUN ("imagep", Fimagep, Simagep, 1, 1, 0, } =20 =20 -DEFUN ("lookup-image", Flookup_image, Slookup_image, 1, 1, 0, "") +DEFUN ("lookup-image", Flookup_image, Slookup_image, 1, 1, 0, + doc: /* */) (Lisp_Object spec) { ptrdiff_t id =3D -1; diff --git a/src/keyboard.c b/src/keyboard.c index 5411aff..c04bbda 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -1163,7 +1163,7 @@ top_level_1 (Lisp_Object ignore) =20 DEFUN ("top-level", Ftop_level, Stop_level, 0, 0, "", doc: /* Exit all recursive editing levels. -This also exits all active minibuffers. */) +This also exits all active minibuffers. */) /* NORETURN */ (void) { #ifdef HAVE_WINDOW_SYSTEM @@ -1187,6 +1187,7 @@ user_error (const char *msg) /* _Noreturn will be added to prototype by make-docfile. */ DEFUN ("exit-recursive-edit", Fexit_recursive_edit, Sexit_recursive_edit= , 0, 0, "", doc: /* Exit from the innermost recursive edit or minibuffer. */= ) +/* NORETURN */ (void) { if (command_loop_level > 0 || minibuf_level > 0) @@ -1198,6 +1199,7 @@ DEFUN ("exit-recursive-edit", Fexit_recursive_edit,= Sexit_recursive_edit, 0, 0, /* _Noreturn will be added to prototype by make-docfile. */ DEFUN ("abort-recursive-edit", Fabort_recursive_edit, Sabort_recursive_e= dit, 0, 0, "", doc: /* Abort the command that requested this recursive edit or m= inibuffer input. */) +/* NORETURN */ (void) { if (command_loop_level > 0 || minibuf_level > 0) diff --git a/src/window.c b/src/window.c index 1d2221f..af03300 100644 --- a/src/window.c +++ b/src/window.c @@ -3000,7 +3000,7 @@ resize_root_window (Lisp_Object window, Lisp_Object= delta, Lisp_Object horizonta /* Placeholder used by temacs -nw before window.el is loaded. */ DEFUN ("window--sanitize-window-sizes", Fwindow__sanitize_window_sizes, Swindow__sanitize_window_sizes, 2, 2, 0, - doc: /* */) + doc: /* */) /* CONST */ (Lisp_Object frame, Lisp_Object horizontal) { return Qnil; diff --git a/src/xdisp.c b/src/xdisp.c index 31702ed..7373501 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -12277,6 +12277,7 @@ DEFUN ("tool-bar-height", Ftool_bar_height, Stool= _bar_height, doc: /* Return the number of lines occupied by the tool bar of FR= AME. If FRAME is nil or omitted, use the selected frame. Optional argument PIXELWISE non-nil means return the height of the tool bar in pixels. */= ) +/* CONST */ (Lisp_Object frame, Lisp_Object pixelwise) { int height =3D 0; diff --git a/src/xfaces.c b/src/xfaces.c index 6ecd857..4077702 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -3547,6 +3547,7 @@ A relative value is one that doesn't entirely overr= ide whatever is inherited from another face. For most possible attributes, the only relative value that users see is `unspecified'. However, for :height, floating point values are also relative. */) +/* CONST */ (Lisp_Object attribute, Lisp_Object value) { if (EQ (value, Qunspecified) || (EQ (value, QCignore_defface))) --------------030508080306000700010203--