Add very old versions (for history).
[opsoft_archive.git] / silentbob / silentbob-1.4.1 / gclib / gclib_c / buf.c
blob90c88d4c153568bff8eda9401d361ddaeaf4f62a
1 /*
2 * (c) Oleg Puchinin 2006
3 * graycardinalster@gmail.com
5 */
7 #include <gclib_c.h>
8 #define __export
10 __export void buf_W8 (char ** pkt, unsigned char data)
12 unsigned char *ptr = (unsigned char *) *pkt;
13 *ptr = data;
14 (*pkt)++;
17 __export void buf_W16 (char ** pkt, uint16_t data)
19 uint16_t *ptr = (uint16_t *) *pkt;
20 *ptr = data;
21 (*pkt)+=2;
24 __export void buf_W32 (char ** pkt, unsigned int data)
26 unsigned int *ptr = (unsigned int *) *pkt;
27 *ptr = data;
28 (*pkt)+=4;
31 __export void buf_WS (char ** pkt, char *S)
33 char * ptr = *pkt;
34 memcpy (ptr, S, strlen (S));
35 (*pkt) += strlen (S);
38 __export void buf_WSZ (char ** pkt, char *S)
40 char * ptr = *pkt;
41 strcpy (ptr, S);
42 (*pkt) += strlen (S) + 1;
45 __export void buf_WD (char ** pkt, char *S, int size)
47 char * ptr = *pkt;
48 memcpy (ptr, S, size);
49 (*pkt) += size;
52 __export unsigned char buf_R8 (char ** pkt)
54 unsigned char ch = 0;
55 ch = *((unsigned char *) *pkt);
56 ++(*pkt);
57 return ch;
60 __export uint16_t buf_R16 (char ** pkt)
62 uint16_t ret = 0;
63 ret = *((uint16_t *) *pkt);
64 (*pkt) += 2;
65 return ret;
68 __export uint32_t buf_R32 (char ** pkt)
70 uint32_t ret = 0;
71 ret = *((uint32_t *) *pkt);
72 (*pkt) += 4;
73 return ret;
76 __export char * buf_RD (char ** pkt, int len)
78 char * ret = NULL;
79 ret = (char *) memdup (*pkt, len);
80 (*pkt) += len;
81 return ret;