commit b68fefc0121d0e9da9b75826d8d9f4d8812bb1b1
parent dccbbcfc59d6dab34e7fca011a3782ce08a10d31
Auteur: Loïc Daignault-Pichette <loic@asteride.xyz>
Date: Fri, 10 Apr 2026 14:46:47 -0400
Rendre ecrire_16() et ecrire_32() plus générales
Diffstat:
| M | tfd.c | | | 38 | +++++++++++++++++++++++--------------- |
1 fichier modifié, 23 insertions(+), 15 suppressions(-)
diff --git a/tfd.c b/tfd.c
@@ -13,11 +13,11 @@
/* Renvoie le maximum de deux nombres. */
#define MAX(n1, n2) ((n1) > (n2) ? (n1) : (n2))
-/* Écrire la valeur val dans le tampon te, en préservant le boutisme de
+/* Écrire la valeur val dans le tampon tp, en préservant le boutisme de
* l’hôte. ecrire_16() écrit deux octets et ecrire_32() en écrit 4.
* Renvoie un pointer vers l’octet suivant le dernier écrit. */
-static uint8_t *ecrire_16(uint8_t *tp, uint16_t val);
-static uint8_t *ecrire_32(uint8_t *tp, uint32_t val);
+static void *ecrire_16(void *tp, uint16_t val);
+static void *ecrire_32(void *tp, uint32_t val);
/* Créer le segmenteur de symboles.
* Renvoie un pointeur vers un tampex, ou NULL en cas d’erreur. */
@@ -127,28 +127,36 @@ tfd_ecrire(FILE *f, struct tfm *tfm)
return 0;
}
-static uint8_t *
-ecrire_16(uint8_t *tp, uint16_t val)
+static void *
+ecrire_16(void *tp, uint16_t val)
{
+ uint8_t *inter;
+
assert(tp);
- *tp++ = ((unsigned char *)(&val))[0];
- *tp++ = ((unsigned char *)(&val))[1];
+ inter = tp;
+
+ *inter++ = ((unsigned char *)(&val))[0];
+ *inter++ = ((unsigned char *)(&val))[1];
- return tp;
+ return inter;
}
-static uint8_t *
-ecrire_32(uint8_t *tp, uint32_t val)
+static void *
+ecrire_32(void *tp, uint32_t val)
{
+ uint8_t *inter;
+
assert(tp);
- *tp++ = ((unsigned char *)(&val))[0];
- *tp++ = ((unsigned char *)(&val))[1];
- *tp++ = ((unsigned char *)(&val))[2];
- *tp++ = ((unsigned char *)(&val))[3];
+ inter = tp;
+
+ *inter++ = ((unsigned char *)(&val))[0];
+ *inter++ = ((unsigned char *)(&val))[1];
+ *inter++ = ((unsigned char *)(&val))[2];
+ *inter++ = ((unsigned char *)(&val))[3];
- return tp;
+ return inter;
}
static void *