]>
Commit | Line | Data |
---|---|---|
ef368dac NC |
1 | /* search-list.c |
2 | ||
651dbc76 | 3 | Copyright 2000, 2001, 2002, 2004, 2007 Free Software Foundation, Inc. |
ef368dac NC |
4 | |
5 | This file is part of GNU Binutils. | |
6 | ||
7 | This program is free software; you can redistribute it and/or modify | |
8 | it under the terms of the GNU General Public License as published by | |
651dbc76 | 9 | the Free Software Foundation; either version 3 of the License, or |
ef368dac NC |
10 | (at your option) any later version. |
11 | ||
12 | This program is distributed in the hope that it will be useful, | |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | GNU General Public License for more details. | |
16 | ||
17 | You should have received a copy of the GNU General Public License | |
18 | along with this program; if not, write to the Free Software | |
44eb1801 NC |
19 | Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA |
20 | 02110-1301, USA. */ | |
ef368dac | 21 | \f |
252b5132 | 22 | #include "gprof.h" |
ecba005f | 23 | #include "libiberty.h" |
252b5132 RH |
24 | #include "search_list.h" |
25 | ||
26 | ||
27 | void | |
3e8f6abf | 28 | search_list_append (Search_List *list, const char *paths) |
252b5132 RH |
29 | { |
30 | Search_List_Elem *new_el; | |
31 | const char *beg, *colon; | |
1355568a | 32 | unsigned int len; |
252b5132 RH |
33 | |
34 | colon = paths - 1; | |
35 | do | |
36 | { | |
37 | beg = colon + 1; | |
5af11cab | 38 | colon = strchr (beg, PATH_SEP_CHAR); |
0eee5820 | 39 | |
252b5132 | 40 | if (colon) |
ef368dac | 41 | len = colon - beg; |
252b5132 | 42 | else |
ef368dac NC |
43 | len = strlen (beg); |
44 | ||
252b5132 RH |
45 | new_el = (Search_List_Elem *) xmalloc (sizeof (*new_el) + len); |
46 | memcpy (new_el->path, beg, len); | |
47 | new_el->path[len] = '\0'; | |
48 | ||
ef368dac | 49 | /* Append new path at end of list. */ |
252b5132 | 50 | new_el->next = 0; |
0eee5820 | 51 | |
252b5132 | 52 | if (list->tail) |
ef368dac | 53 | list->tail->next = new_el; |
252b5132 | 54 | else |
ef368dac NC |
55 | list->head = new_el; |
56 | ||
252b5132 RH |
57 | list->tail = new_el; |
58 | } | |
59 | while (colon); | |
60 | } |