(Fnew_fontset): Call font_unparse_xlfd with 256-byte
[bpt/emacs.git] / src / fontset.c
index 80d4ea7..82e5b4e 100644 (file)
  
 This file is part of GNU Emacs.
 
-GNU Emacs is free software; you can redistribute it and/or modify
+GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,9 +22,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* #define FONTSET_DEBUG */
 
@@ -1559,7 +1557,7 @@ FONT-SPEC is a vector, a cons, or a string.  See the documentation of
     {
       Lisp_Object font_spec = Ffont_spec (0, NULL);
       Lisp_Object short_name;
-      char *xlfd;
+      char xlfd[256];
       int len;
 
       if (font_parse_xlfd (SDATA (name), font_spec) < 0)
@@ -1572,8 +1570,9 @@ FONT-SPEC is a vector, a cons, or a string.  See the documentation of
                                    Vfontset_alias_alist);
       ASET (font_spec, FONT_REGISTRY_INDEX, Qiso8859_1);
       fontset = make_fontset (Qnil, name, Qnil);
-      xlfd = alloca (SBYTES (name) + 1);
-      len = font_unparse_xlfd (font_spec, 0, xlfd, SBYTES (name) + 1);
+      len = font_unparse_xlfd (font_spec, 0, xlfd, 256);
+      if (len < 0)
+       error ("Invalid fontset name (perhaps too long): %s", SDATA (name));
       FONTSET_ASCII (fontset) = make_unibyte_string (xlfd, len);
     }
   else