From 96180fc2d94089a07f3b06c03c0252cfe5d33a0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?kleines=20Filmr=C3=B6llchen?= Date: Thu, 16 Jun 2022 22:53:13 +0200 Subject: [PATCH] LibC: Add printf and scanf format macros for "fast" and "least" types As usual, we just define these based on the given integer size itself. --- Userland/Libraries/LibC/inttypes.h | 100 +++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/Userland/Libraries/LibC/inttypes.h b/Userland/Libraries/LibC/inttypes.h index 43d9f86d01..21d114add9 100644 --- a/Userland/Libraries/LibC/inttypes.h +++ b/Userland/Libraries/LibC/inttypes.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2018-2020, Andreas Kling + * Copyright (c) 2022, the SerenityOS developers. * * SPDX-License-Identifier: BSD-2-Clause */ @@ -26,6 +27,15 @@ __BEGIN_DECLS #define PRIdPTR __PRIPTR_PREFIX "d" #define PRIdMAX __PRI64_PREFIX "d" +#define PRIdLEAST8 PRId8 +#define PRIdLEAST16 PRId16 +#define PRIdLEAST32 PRId32 +#define PRIdLEAST64 PRId64 +#define PRIdFAST8 PRId8 +#define PRIdFAST16 PRId16 +#define PRIdFAST32 PRId32 +#define PRIdFAST64 PRId64 + #define PRIi8 "d" #define PRIi16 "d" #define PRIi32 "d" @@ -33,6 +43,15 @@ __BEGIN_DECLS #define PRIiPTR __PRIPTR_PREFIX "d" #define PRIiMAX __PRI64_PREFIX "d" +#define PRIiLEAST8 PRIi8 +#define PRIiLEAST16 PRIi16 +#define PRIiLEAST32 PRIi32 +#define PRIiLEAST64 PRIi64 +#define PRIiFAST8 PRIi8 +#define PRIiFAST16 PRIi16 +#define PRIiFAST32 PRIi32 +#define PRIiFAST64 PRIi64 + #define PRIo8 "o" #define PRIo16 "o" #define PRIo32 "o" @@ -40,6 +59,15 @@ __BEGIN_DECLS #define PRIoPTR __PRIPTR_PREFIX "o" #define PRIoMAX __PRI64_PREFIX "o" +#define PRIoLEAST8 PRIo8 +#define PRIoLEAST16 PRIo16 +#define PRIoLEAST32 PRIo32 +#define PRIoLEAST64 PRIo64 +#define PRIoFAST8 PRIo8 +#define PRIoFAST16 PRIo16 +#define PRIoFAST32 PRIo32 +#define PRIoFAST64 PRIo64 + #define PRIu8 "u" #define PRIu16 "u" #define PRIu32 "u" @@ -47,6 +75,15 @@ __BEGIN_DECLS #define PRIuPTR __PRIPTR_PREFIX "u" #define PRIuMAX __PRI64_PREFIX "u" +#define PRIuLEAST8 PRIu8 +#define PRIuLEAST16 PRIu16 +#define PRIuLEAST32 PRIu32 +#define PRIuLEAST64 PRIu64 +#define PRIuFAST8 PRIu8 +#define PRIuFAST16 PRIu16 +#define PRIuFAST32 PRIu32 +#define PRIuFAST64 PRIu64 + #define PRIx8 "x" #define PRIx16 "x" #define PRIx32 "x" @@ -54,6 +91,15 @@ __BEGIN_DECLS #define PRIxPTR __PRIPTR_PREFIX "x" #define PRIxMAX __PRI64_PREFIX "x" +#define PRIxLEAST8 PRIx8 +#define PRIxLEAST16 PRIx16 +#define PRIxLEAST32 PRIx32 +#define PRIxLEAST64 PRIx64 +#define PRIxFAST8 PRIx8 +#define PRIxFAST16 PRIx16 +#define PRIxFAST32 PRIx32 +#define PRIxFAST64 PRIx64 + #define PRIX8 "X" #define PRIX16 "X" #define PRIX32 "X" @@ -61,6 +107,15 @@ __BEGIN_DECLS #define PRIXPTR __PRIPTR_PREFIX "X" #define PRIXMAX __PRI64_PREFIX "X" +#define PRIXLEAST8 PRIX8 +#define PRIXLEAST16 PRIX16 +#define PRIXLEAST32 PRIX32 +#define PRIXLEAST64 PRIX64 +#define PRIXFAST8 PRIX8 +#define PRIXFAST16 PRIX16 +#define PRIXFAST32 PRIX32 +#define PRIXFAST64 PRIX64 + #define SCNd8 "hhd" #define SCNd16 "hd" #define SCNd32 "ld" @@ -68,6 +123,15 @@ __BEGIN_DECLS #define SCNdPTR __PRIPTR_PREFIX "d" #define SCNdMAX __PRI64_PREFIX "d" +#define SCNdLEAST8 SCNd8 +#define SCNdLEAST16 SCNd16 +#define SCNdLEAST32 SCNd32 +#define SCNdLEAST64 SCNd64 +#define SCNdFAST8 SCNd8 +#define SCNdFAST16 SCNd16 +#define SCNdFAST32 SCNd32 +#define SCNdFAST64 SCNd64 + #define SCNi8 "hhi" #define SCNi16 "hi" #define SCNi32 "li" @@ -75,6 +139,15 @@ __BEGIN_DECLS #define SCNiPTR __PRIPTR_PREFIX "i" #define SCNiMAX __PRI64_PREFIX "i" +#define SCNiLEAST8 SCNi8 +#define SCNiLEAST16 SCNi16 +#define SCNiLEAST32 SCNi32 +#define SCNiLEAST64 SCNi64 +#define SCNiFAST8 SCNi8 +#define SCNiFAST16 SCNi16 +#define SCNiFAST32 SCNi32 +#define SCNiFAST64 SCNi64 + #define SCNu8 "hhu" #define SCNu16 "hu" #define SCNu32 "lu" @@ -82,6 +155,15 @@ __BEGIN_DECLS #define SCNuPTR __PRIPTR_PREFIX "u" #define SCNuMAX __PRI64_PREFIX "u" +#define SCNuLEAST8 SCNu8 +#define SCNuLEAST16 SCNu16 +#define SCNuLEAST32 SCNu32 +#define SCNuLEAST64 SCNu64 +#define SCNuFAST8 SCNu8 +#define SCNuFAST16 SCNu16 +#define SCNuFAST32 SCNu32 +#define SCNuFAST64 SCNu64 + #define SCNo8 "hho" #define SCNo16 "ho" #define SCNo32 "lo" @@ -89,6 +171,15 @@ __BEGIN_DECLS #define SCNoPTR __PRIPTR_PREFIX "o" #define SCNoMAX __PRI64_PREFIX "o" +#define SCNoLEAST8 SCNo8 +#define SCNoLEAST16 SCNo16 +#define SCNoLEAST32 SCNo32 +#define SCNoLEAST64 SCNo64 +#define SCNoFAST8 SCNo8 +#define SCNoFAST16 SCNo16 +#define SCNoFAST32 SCNo32 +#define SCNoFAST64 SCNo64 + #define SCNx8 "hhx" #define SCNx16 "hx" #define SCNx32 "lx" @@ -96,6 +187,15 @@ __BEGIN_DECLS #define SCNxPTR __PRIPTR_PREFIX "x" #define SCNxMAX __PRI64_PREFIX "x" +#define SCNxLEAST8 SCNx8 +#define SCNxLEAST16 SCNx16 +#define SCNxLEAST32 SCNx32 +#define SCNxLEAST64 SCNx64 +#define SCNxFAST8 SCNx8 +#define SCNxFAST16 SCNx16 +#define SCNxFAST32 SCNx32 +#define SCNxFAST64 SCNx64 + typedef struct imaxdiv_t { intmax_t quot; intmax_t rem;