Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37567228
en ru br
Репозитории ALT
S:2.2.11-alt3
5.1: 2.2.9-alt5
4.1: 2.2.9-alt5
4.0: 2.2.9-alt5
3.0: 2.2.9-alt3
www.altlinux.org/Changes

Группа :: Разработка/C
Пакет: indent

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: indent-2.2.11-rh-Do-not-split-decimal-float-suffix-from-constant.patch
Скачать


From ff47ab3b90333bdfaa40b86cb548e92a01787345 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Thu, 25 Aug 2011 11:26:24 +0200
Subject: [PATCH] Do not split decimal float suffix from constant
N1312 draft of ISO/IEC WDTR24732 defines additional floating types
with given suffixes:
_Decimal32  DF, df
_Decimal64  DD, dd
_Decimal128 DL, dl
These suffixes must stick on numeric part of the constant as classic
float or long float does.
---
 regression/TEST                             |    3 ++-
 regression/input/float-constant-suffix.c    |   13 +++++++++++++
 regression/standard/float-constant-suffix.c |   13 +++++++++++++
 src/lexi.c                                  |    9 +++++++++
 4 files changed, 37 insertions(+), 1 deletions(-)
 create mode 100644 regression/input/float-constant-suffix.c
 create mode 100644 regression/standard/float-constant-suffix.c
diff --git a/regression/TEST b/regression/TEST
index c860ef2..1402ddf 100755
--- a/regression/TEST
+++ b/regression/TEST
@@ -35,7 +35,8 @@ EXAMPLES="do.c else.c for.c func-def.c lshift.c ncs.c \
 
 BUGS="case-label.c one-line-1.c one-line-2.c one-line-3.c \
         one-line-4.c struct-decl.c sizeof-in-while.c line-break-comment.c \
-        macro.c enum.c elif.c nested.c wrapped-string.c minus_predecrement.c"
+        macro.c enum.c elif.c nested.c wrapped-string.c minus_predecrement.c \
+        float-constant-suffix.c"
 
 INDENTSRC="args.c backup.h backup.c dirent_def.h globs.c indent.h \
         indent.c indent_globs.h io.c lexi.c memcpy.c parse.c pr_comment.c \
diff --git a/regression/input/float-constant-suffix.c b/regression/input/float-constant-suffix.c
new file mode 100644
index 0000000..58f5310
--- /dev/null
+++ b/regression/input/float-constant-suffix.c
@@ -0,0 +1,13 @@
+float foo = 1.0F;
+float foo = 1.0f;
+double foo = 1.0;
+double foo = 1.0;
+long double foo = 1.0L;
+long double foo = 1.0l;
+
+_Decimal32 foo = 1.0DF;
+_Decimal32 foo = 1.0df;
+_Decimal64 foo = 1.0DD;
+_Decimal64 foo = 1.0dd;
+_Decimal128 foo = 1.0DL;
+_Decimal128 foo = 1.0dl;
diff --git a/regression/standard/float-constant-suffix.c b/regression/standard/float-constant-suffix.c
new file mode 100644
index 0000000..58f5310
--- /dev/null
+++ b/regression/standard/float-constant-suffix.c
@@ -0,0 +1,13 @@
+float foo = 1.0F;
+float foo = 1.0f;
+double foo = 1.0;
+double foo = 1.0;
+long double foo = 1.0L;
+long double foo = 1.0l;
+
+_Decimal32 foo = 1.0DF;
+_Decimal32 foo = 1.0df;
+_Decimal64 foo = 1.0DD;
+_Decimal64 foo = 1.0dd;
+_Decimal128 foo = 1.0DL;
+_Decimal128 foo = 1.0dl;
diff --git a/src/lexi.c b/src/lexi.c
index abc2bfa..eafb65e 100644
--- a/src/lexi.c
+++ b/src/lexi.c
@@ -330,6 +330,15 @@ extern codes_ty lexi(void)
          {
             buf_ptr++;
          }
+         else if (*buf_ptr == 'D' || *buf_ptr == 'd')
+         {
+           if (buf_ptr[1] == 'F' || buf_ptr[1] == 'f' ||
+               buf_ptr[1] == 'D' || buf_ptr[1] == 'd' ||
+               buf_ptr[1] == 'L' || buf_ptr[1] == 'l')
+           {
+             buf_ptr+=2;
+           }
+         }
          else
          {
             while (*buf_ptr == 'U' || *buf_ptr == 'u' || *buf_ptr == 'L' || *buf_ptr == 'l')
-- 
1.7.6
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin