annotate libsrc/strdup.c @ 2620:ec80df7c37b2

added NetCDF and HDF5 building macros
author Vladimir S. FONOV <vladimir.fonov@gmail.com>
date Thu, 01 Mar 2012 15:04:47 -0500
parents 0e93a7d6edd4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
204
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
1 #include <stdlib.h>
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
2 #include <string.h>
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
3 /* ----------------------------- MNI Header -----------------------------------
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
4 @NAME : strdup
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
5 @INPUT : string - string to duplicate
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
6 @OUTPUT : (none)
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
7 @RETURNS : Pointer to duplicate string or NULL if an error occurs
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
8 @DESCRIPTION: Makes a duplicate of a string and returns a pointer to it.
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
9 @METHOD : VAX CC rtl does not have strdup, so we provide it here to
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
10 be included in minc.olb.
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
11 @GLOBALS :
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
12 @CALLS :
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
13 @CREATED : June 18, 1993 (Peter Neelin)
1232
0e93a7d6edd4 Fixed Log subsitutions for CVS
neelin <neelin>
parents: 1112
diff changeset
14 @MODIFIED :
0e93a7d6edd4 Fixed Log subsitutions for CVS
neelin <neelin>
parents: 1112
diff changeset
15 * $Log: strdup.c,v $
0e93a7d6edd4 Fixed Log subsitutions for CVS
neelin <neelin>
parents: 1112
diff changeset
16 * Revision 6.1 1999-10-19 14:45:11 neelin
0e93a7d6edd4 Fixed Log subsitutions for CVS
neelin <neelin>
parents: 1112
diff changeset
17 * Fixed Log subsitutions for CVS
0e93a7d6edd4 Fixed Log subsitutions for CVS
neelin <neelin>
parents: 1112
diff changeset
18 *
0e93a7d6edd4 Fixed Log subsitutions for CVS
neelin <neelin>
parents: 1112
diff changeset
19 * Revision 6.0 1997/09/12 13:24:54 neelin
0e93a7d6edd4 Fixed Log subsitutions for CVS
neelin <neelin>
parents: 1112
diff changeset
20 * Release of minc version 0.6
0e93a7d6edd4 Fixed Log subsitutions for CVS
neelin <neelin>
parents: 1112
diff changeset
21 *
1112
e4f09594b751 Release of minc version 0.6
neelin <neelin>
parents: 1094
diff changeset
22 * Revision 5.0 1997/08/21 13:25:53 neelin
e4f09594b751 Release of minc version 0.6
neelin <neelin>
parents: 1094
diff changeset
23 * Release of minc version 0.5
e4f09594b751 Release of minc version 0.6
neelin <neelin>
parents: 1094
diff changeset
24 *
1094
c59a8e32ffd3 Release of minc version 0.5
neelin <neelin>
parents: 1062
diff changeset
25 * Revision 4.0 1997/05/07 20:07:52 neelin
c59a8e32ffd3 Release of minc version 0.5
neelin <neelin>
parents: 1062
diff changeset
26 * Release of minc version 0.4
c59a8e32ffd3 Release of minc version 0.5
neelin <neelin>
parents: 1062
diff changeset
27 *
1062
8bdf69dc4681 Release of minc version 0.4
neelin <neelin>
parents: 870
diff changeset
28 * Revision 3.0 1995/05/15 19:33:12 neelin
8bdf69dc4681 Release of minc version 0.4
neelin <neelin>
parents: 870
diff changeset
29 * Release of minc version 0.3
8bdf69dc4681 Release of minc version 0.4
neelin <neelin>
parents: 870
diff changeset
30 *
870
5f8f02f6f168 Release of minc version 0.3
neelin <neelin>
parents: 619
diff changeset
31 * Revision 2.0 1994/09/28 10:38:18 neelin
5f8f02f6f168 Release of minc version 0.3
neelin <neelin>
parents: 619
diff changeset
32 * Release of minc version 0.2
5f8f02f6f168 Release of minc version 0.3
neelin <neelin>
parents: 619
diff changeset
33 *
619
96821ec9dfac Release of minc version 0.2
neelin <neelin>
parents: 618
diff changeset
34 * Revision 1.3 94/09/28 10:37:36 neelin
96821ec9dfac Release of minc version 0.2
neelin <neelin>
parents: 618
diff changeset
35 * Pre-release
96821ec9dfac Release of minc version 0.2
neelin <neelin>
parents: 618
diff changeset
36 *
618
9de05be4c965 Pre-release
neelin <neelin>
parents: 298
diff changeset
37 * Revision 1.2 93/08/11 12:06:30 neelin
9de05be4c965 Pre-release
neelin <neelin>
parents: 298
diff changeset
38 * Added RCS logging in source.
9de05be4c965 Pre-release
neelin <neelin>
parents: 298
diff changeset
39 *
204
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
40 ---------------------------------------------------------------------------- */
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
41 char *strdup(const char *string)
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
42 {
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
43 int length;
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
44 char *new_string;
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
45
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
46 /* Get the string length */
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
47 length = strlen(string);
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
48
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
49 /* Allocate space */
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
50 new_string = malloc((size_t) length+1);
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
51 if (new_string == NULL) {
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
52 return NULL;
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
53 }
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
54
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
55 /* Copy the string */
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
56 return strcpy(new_string, string);
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
57
be27eff677d5 Initial revision
neelin <neelin>
parents:
diff changeset
58 }