summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-editors/emacs-cvs/files/emacs-cvs-format-int.patch')
-rw-r--r--app-editors/emacs-cvs/files/emacs-cvs-format-int.patch79
1 files changed, 0 insertions, 79 deletions
diff --git a/app-editors/emacs-cvs/files/emacs-cvs-format-int.patch b/app-editors/emacs-cvs/files/emacs-cvs-format-int.patch
deleted file mode 100644
index 851bcb91f4d9..000000000000
--- a/app-editors/emacs-cvs/files/emacs-cvs-format-int.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-2007-11-15 Andreas Schwab <schwab@suse.de>
-
- * editfns.c (Fformat): Correctly format EMACS_INT values. Also
- take precision into account when formatting an integer.
-
---- src/editfns.c 8 Aug 2007 07:49:19 -0000 1.439.2.3
-+++ src/editfns.c 16 Nov 2007 00:18:55 -0000 1.439.2.8
-@@ -3543,8 +3543,10 @@ usage: (format STRING &rest OBJECTS) */
- precision[n+1] = 10 * precision[n+1] + *format - '0';
- }
-
-- if (format - this_format_start + 1 > longest_format)
-- longest_format = format - this_format_start + 1;
-+ /* Extra +1 for 'l' that we may need to insert into the
-+ format. */
-+ if (format - this_format_start + 2 > longest_format)
-+ longest_format = format - this_format_start + 2;
-
- if (format == end)
- error ("Format string ends in middle of format specifier");
-@@ -3605,7 +3607,7 @@ usage: (format STRING &rest OBJECTS) */
- && *format != 'i' && *format != 'X' && *format != 'c')
- error ("Invalid format operation %%%c", *format);
-
-- thissize = 30;
-+ thissize = 30 + (precision[n] > 0 ? precision[n] : 0);
- if (*format == 'c')
- {
- if (! SINGLE_BYTE_CHAR_P (XINT (args[n]))
-@@ -3803,23 +3805,35 @@ usage: (format STRING &rest OBJECTS) */
- format - this_format_start);
- this_format[format - this_format_start] = 0;
-
-- if (INTEGERP (args[n]))
-+ if (format[-1] == 'e' || format[-1] == 'f' || format[-1] == 'g')
-+ sprintf (p, this_format, XFLOAT_DATA (args[n]));
-+ else
- {
-- if (format[-1] == 'd')
-- sprintf (p, this_format, XINT (args[n]));
-- /* Don't sign-extend for octal or hex printing. */
-+ if (sizeof (EMACS_INT) > sizeof (int))
-+ {
-+ /* Insert 'l' before format spec. */
-+ this_format[format - this_format_start]
-+ = this_format[format - this_format_start - 1];
-+ this_format[format - this_format_start - 1] = 'l';
-+ this_format[format - this_format_start + 1] = 0;
-+ }
-+
-+ if (INTEGERP (args[n]))
-+ {
-+ if (format[-1] == 'd')
-+ sprintf (p, this_format, XINT (args[n]));
-+ /* Don't sign-extend for octal or hex printing. */
-+ else
-+ sprintf (p, this_format, XUINT (args[n]));
-+ }
-+ else if (format[-1] == 'd')
-+ /* Maybe we should use "%1.0f" instead so it also works
-+ for values larger than MAXINT. */
-+ sprintf (p, this_format, (EMACS_INT) XFLOAT_DATA (args[n]));
- else
-- sprintf (p, this_format, XUINT (args[n]));
-+ /* Don't sign-extend for octal or hex printing. */
-+ sprintf (p, this_format, (EMACS_UINT) XFLOAT_DATA (args[n]));
- }
-- else if (format[-1] == 'e' || format[-1] == 'f' || format[-1] == 'g')
-- sprintf (p, this_format, XFLOAT_DATA (args[n]));
-- else if (format[-1] == 'd')
-- /* Maybe we should use "%1.0f" instead so it also works
-- for values larger than MAXINT. */
-- sprintf (p, this_format, (EMACS_INT) XFLOAT_DATA (args[n]));
-- else
-- /* Don't sign-extend for octal or hex printing. */
-- sprintf (p, this_format, (EMACS_UINT) XFLOAT_DATA (args[n]));
-
- if (p > buf
- && multibyte