0054-wcsncpy.c - scc - simple c99 compiler
 (HTM) git clone git://git.simple-cc.org/scc
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
 (DIR) README
 (DIR) LICENSE
       ---
       0054-wcsncpy.c (724B)
       ---
            1 #include <assert.h>
            2 #include <stdio.h>
            3 #include <wchar.h>
            4 
            5 #define SIZ 6
            6 
            7 /*
            8 output:
            9 testing
           10 test1
           11 test2
           12 test3
           13 done
           14 end:
           15 */
           16 
           17 int
           18 main()
           19 {
           20         wchar_t *s, buf[SIZ];
           21         wchar_t abc[] = {'a', 'b', 'c'};
           22 
           23         puts("testing");
           24 
           25         puts("test1");
           26         wmemset(buf, '0', SIZ);
           27         s = wcsncpy(buf, abc, SIZ);
           28         assert(s == buf);
           29         assert(!wmemcmp(s, abc, SIZ));
           30 
           31         puts("test2");
           32         wmemset(buf, '0', SIZ);
           33         s = wcsncpy(buf, (wchar_t[]) {0}, SIZ);
           34         assert(s == buf);
           35         assert(!wmemcmp(s, (wchar_t[SIZ]) {0}, SIZ));
           36 
           37         puts("test3");
           38         wmemset(buf, '0', SIZ);
           39         s = wcsncpy(buf, (wchar_t[]) {0}, 1);
           40         assert(s == buf);
           41         assert(!wmemcmp(s,
           42                         (wchar_t[SIZ]) {'\0', '0', '0', '0', '0', '0'},
           43                         SIZ));
           44 
           45         puts("done");
           46 
           47         return 0;
           48 }