]>
cygwin.com Git - cygwin-apps/setup.git/blob - package_source.cc
2 * Copyright (c) 2001, Robert Collins.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * A copy of the GNU General Public License can be found at
12 * Written by Robert Collins <rbtcollins@hotmail.com>
16 /* this is the parent class for all package source (not source code - installation
17 * source as in http/ftp/disk file) operations.
21 static const char *cvsid
=
27 #include "package_source.h"
29 site::site (String
const &newkey
) : key(newkey
)
34 packagesource::set_canonical (char const *fn
)
38 canonical
= new char[strlen (fn
) + 1];
39 strcpy (canonical
, fn
);
41 /* The base is from the last '/' to the first '.' following the last - */
42 char const *bstart
= strchr (fn
, '/');
44 while (bstart
&& (tmp
= strchr (bstart
+ 1, '/')))
49 char const *bend
= strchr (bstart
, '-');
50 while (bend
&& (tmp
= strchr (bend
+ 1, '-')))
53 bend
= strchr (bend
, '.');
55 bend
= strchr (bstart
, '.');
58 bend
= strchr (bstart
, '\0');
59 char const *end
= strchr (fn
, '\0');
62 base
= new char[bend
- bstart
];
63 memcpy (base
, bstart
+ 1, bend
- bstart
- 1);
64 base
[bend
- bstart
- 1] = '\0';
68 filename
= new char[end
- bstart
];
69 memcpy (filename
, bstart
+ 1, end
- bstart
- 1);
70 filename
[end
- bstart
- 1] = '\0';
76 packagesource::set_cached (String
const &fp
)
This page took 0.038396 seconds and 5 git commands to generate.