~ubuntu-branches/ubuntu/utopic/binutils-arm64-cross/utopic

« back to all changes in this revision

Viewing changes to binutils-2.23.52.20130611/gprof/search_list.c

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2013-06-20 17:38:09 UTC
  • Revision ID: package-import@ubuntu.com-20130620173809-app8lzgvymy5fg6c
Tags: 0.7
Build-depend on binutils-source (>= 2.23.52.20130620-1~).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* search-list.c
 
2
 
 
3
   Copyright 2000, 2001, 2002, 2004, 2007 Free Software Foundation, Inc.
 
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
 
9
   the Free Software Foundation; either version 3 of the License, or
 
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
 
19
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
 
20
   02110-1301, USA.  */
 
21
 
 
22
#include "gprof.h"
 
23
#include "libiberty.h"
 
24
#include "search_list.h"
 
25
 
 
26
 
 
27
void
 
28
search_list_append (Search_List *list, const char *paths)
 
29
{
 
30
  Search_List_Elem *new_el;
 
31
  const char *beg, *colon;
 
32
  unsigned int len;
 
33
 
 
34
  colon = paths - 1;
 
35
  do
 
36
    {
 
37
      beg = colon + 1;
 
38
      colon = strchr (beg, PATH_SEP_CHAR);
 
39
 
 
40
      if (colon)
 
41
        len = colon - beg;
 
42
      else
 
43
        len = strlen (beg);
 
44
 
 
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
 
 
49
      /* Append new path at end of list.  */
 
50
      new_el->next = 0;
 
51
 
 
52
      if (list->tail)
 
53
        list->tail->next = new_el;
 
54
      else
 
55
        list->head = new_el;
 
56
 
 
57
      list->tail = new_el;
 
58
    }
 
59
  while (colon);
 
60
}