Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.sbin/pkg_install/lib Interface change for strip_txz(): n...
details: https://anonhg.NetBSD.org/src/rev/ddf067e51246
branches: trunk
changeset: 512719:ddf067e51246
user: hubertf <hubertf%NetBSD.org@localhost>
date: Sun Jul 15 00:34:14 2001 +0000
description:
Interface change for strip_txz(): now stores suffix
diffstat:
usr.sbin/pkg_install/lib/ftpio.c | 8 +-
usr.sbin/pkg_install/lib/lib.h | 4 +-
usr.sbin/pkg_install/lib/str.c | 125 ++++++++------------------------------
3 files changed, 33 insertions(+), 104 deletions(-)
diffs (240 lines):
diff -r 2cce562e691d -r ddf067e51246 usr.sbin/pkg_install/lib/ftpio.c
--- a/usr.sbin/pkg_install/lib/ftpio.c Sun Jul 15 00:30:17 2001 +0000
+++ b/usr.sbin/pkg_install/lib/ftpio.c Sun Jul 15 00:34:14 2001 +0000
@@ -1,8 +1,8 @@
-/* $NetBSD: ftpio.c,v 1.31 2001/04/28 20:55:34 hubertf Exp $ */
+/* $NetBSD: ftpio.c,v 1.32 2001/07/15 00:34:14 hubertf Exp $ */
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: ftpio.c,v 1.31 2001/04/28 20:55:34 hubertf Exp $");
+__RCSID("$NetBSD: ftpio.c,v 1.32 2001/07/15 00:34:14 hubertf Exp $");
#endif
/*
@@ -570,8 +570,8 @@
filename[strlen(filename)-1] = '\0';
- strip_txz(s_filename, filename);
- strip_txz(s_pkg, pkg);
+ strip_txz(s_filename, NULL, filename);
+ strip_txz(s_pkg, NULL, pkg);
if (pmatch(s_pkg, s_filename)) {
matches++;
diff -r 2cce562e691d -r ddf067e51246 usr.sbin/pkg_install/lib/lib.h
--- a/usr.sbin/pkg_install/lib/lib.h Sun Jul 15 00:30:17 2001 +0000
+++ b/usr.sbin/pkg_install/lib/lib.h Sun Jul 15 00:34:14 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: lib.h,v 1.35 2001/05/21 09:17:31 agc Exp $ */
+/* $NetBSD: lib.h,v 1.36 2001/07/15 00:34:15 hubertf Exp $ */
/* from FreeBSD Id: lib.h,v 1.25 1997/10/08 07:48:03 charnier Exp */
@@ -187,7 +187,7 @@
char *findbestmatchingname(const char *, const char *); /* neither */
int ispkgpattern(const char *);
char *strnncpy(char *to, size_t tosize, char *from, size_t cc);
-void strip_txz(char *buf, char *fname);
+void strip_txz(char *buf, char *sfx, const char *fname);
/* File */
Boolean fexists(char *);
diff -r 2cce562e691d -r ddf067e51246 usr.sbin/pkg_install/lib/str.c
--- a/usr.sbin/pkg_install/lib/str.c Sun Jul 15 00:30:17 2001 +0000
+++ b/usr.sbin/pkg_install/lib/str.c Sun Jul 15 00:34:14 2001 +0000
@@ -1,11 +1,11 @@
-/* $NetBSD: str.c,v 1.29 2001/04/28 20:55:33 hubertf Exp $ */
+/* $NetBSD: str.c,v 1.30 2001/07/15 00:34:15 hubertf Exp $ */
#include <sys/cdefs.h>
#ifndef lint
#if 0
static const char *rcsid = "Id: str.c,v 1.5 1997/10/08 07:48:21 charnier Exp";
#else
-__RCSID("$NetBSD: str.c,v 1.29 2001/04/28 20:55:33 hubertf Exp $");
+__RCSID("$NetBSD: str.c,v 1.30 2001/07/15 00:34:15 hubertf Exp $");
#endif
#endif
@@ -294,9 +294,6 @@
char tmp_pattern[256];
DIR *dirp;
int found;
- char *pat_tgz, *file_tgz; /* ptr to .tgz */
- char *pat_tbz, *file_tbz; /* ptr to .tbz */
- char *pat_tbgz, *file_tbgz; /* ptr to .t[bg]z */
char pat_sfx[256], file_sfx[256]; /* suffixes */
found = 0;
@@ -308,27 +305,7 @@
/* chop any possible suffix off of 'pattern' and
* store it in pat_sfx
*/
- strcpy(tmp_pattern, pattern);
- pat_sfx[0] = '\0';
- pat_tgz = strstr(tmp_pattern, ".tgz");
- if (pat_tgz) {
- /* strip off any ".tgz" */
- strcpy(pat_sfx, pat_tgz);
- *pat_tgz = '\0';
- }
- pat_tbz = strstr(tmp_pattern, ".tbz");
- if (pat_tbz) {
- /* strip off any ".tbz" */
- strcpy(pat_sfx, pat_tbz);
- *pat_tbz = '\0';
- }
- pat_tbgz = strstr(tmp_pattern, ".t[bg]z");
- if (pat_tbgz) {
- /* strip off any ".t[bg]z" */
- strcpy(pat_sfx, pat_tbgz);
- *pat_tbgz = '\0';
- }
-
+ strip_txz(tmp_pattern, pat_sfx, pattern);
while ((dp = readdir(dirp)) != (struct dirent *) NULL) {
char tmp_file[FILENAME_MAX];
@@ -340,27 +317,8 @@
/* chop any possible suffix off of 'tmp_file' and
* store it in file_sfx
*/
- strcpy(tmp_file, dp->d_name);
- file_sfx[0] = '\0';
- file_tgz = strstr(tmp_file, ".tgz");
- if (file_tgz) {
- /* strip off any ".tgz" */
- strcpy(file_sfx, file_tgz);
- *file_tgz = '\0';
- }
- file_tbz = strstr(tmp_file, ".tbz");
- if (file_tbz) {
- /* strip off any ".tbz" */
- strcpy(file_sfx, file_tbz);
- *file_tbz = '\0';
- }
- file_tbgz = strstr(tmp_file, ".t[bg]z");
- if (file_tbgz) {
- /* strip off any ".t[bg]z" */
- strcpy(file_sfx, file_tbgz);
- *file_tbgz = '\0';
- }
-
+ strip_txz(tmp_file, file_sfx, dp->d_name);
+
/* we need to match pattern and suffix separately, in case
* each is a different pattern class (e.g. dewey and
* character class (.t[bg]z)) */
@@ -395,9 +353,6 @@
findbestmatchingname_fn(const char *found, char *best)
{
char *found_version, *best_version;
- char *found_tgz, *best_tgz;
- char *found_tbz, *best_tbz;
- char *found_tbgz, *best_tbgz;
char found_no_sfx[255];
char best_no_sfx[255];
@@ -409,28 +364,9 @@
/* skip '-', if any version found */
found_version++;
}
- found_tgz = strstr(found, ".tgz");
- if (found_tgz) {
- /* strip off any ".tgz" */
- strncpy(found_no_sfx, found_version, found_tgz-found_version);
- found_no_sfx[found_tgz-found_version] = '\0';
- found_version = found_no_sfx;
- }
- found_tbz = strstr(found, ".tbz");
- if (found_tbz) {
- /* strip off any ".tbz" */
- strncpy(found_no_sfx, found_version, found_tbz-found_version);
- found_no_sfx[found_tbz-found_version] = '\0';
- found_version = found_no_sfx;
- }
- found_tbgz = strstr(found, ".t[bg]z");
- if (found_tbgz) {
- /* strip off any ".t[bg]z" */
- strncpy(found_no_sfx, found_version, found_tbgz-found_version);
- found_no_sfx[found_tbgz-found_version] = '\0';
- found_version = found_no_sfx;
- }
-
+ strip_txz(found_no_sfx, NULL, found_version);
+ found_version = found_no_sfx;
+
best_version=NULL;
if (best && best[0] != '\0') {
best_version = strrchr(best, '-');
@@ -438,27 +374,8 @@
/* skip '-' if any version found */
best_version++;
}
- best_tgz = strstr(best, ".tgz");
- if (best_tgz) {
- /* strip off any ".tgz" */
- strncpy(best_no_sfx, best_version, best_tgz-best_version);
- best_no_sfx[best_tgz-best_version] = '\0';
- best_version = best_no_sfx;
- }
- best_tbz = strstr(best, ".tbz");
- if (best_tbz) {
- /* strip off any ".tbz" */
- strncpy(best_no_sfx, best_version, best_tbz-best_version);
- best_no_sfx[best_tbz-best_version] = '\0';
- best_version = best_no_sfx;
- }
- best_tbgz = strstr(best, ".t[bg]z");
- if (best_tbgz) {
- /* strip off any ".t[bg]z" */
- strncpy(best_no_sfx, best_version, best_tbgz-best_version);
- best_no_sfx[best_tbgz-best_version] = '\0';
- best_version = best_no_sfx;
- }
+ strip_txz(best_no_sfx, NULL, best);
+ best_version = best_no_sfx;
}
if (found_version == NULL) {
@@ -514,21 +431,33 @@
/*
* Strip off any .tgz, .tbz or .t[bg]z suffix from fname,
- * and copy into buffer "buf"
+ * and copy into buffer "buf", the suffix is stored in "sfx"
+ * if "sfx" is not NULL. If no suffix is found, "sfx" is set
+ * to an empty string.
*/
void
-strip_txz(char *buf, char *fname)
+strip_txz(char *buf, char *sfx, const char *fname)
{
char *s;
strcpy(buf, fname);
+ if (sfx) sfx[0] = '\0';
s = strstr(buf, ".tgz");
- if (s) { *s = '\0'; } /* strip off any ".tgz" */
+ if (s) {
+ *s = '\0'; /* strip off any ".tgz" */
+ if (sfx) strcpy(sfx, s - buf + fname);
+ }
s = strstr(buf, ".tbz");
- if (s) { *s = '\0'; } /* strip off any ".tbz" */
+ if (s) {
+ *s = '\0'; /* strip off any ".tbz" */
+ if (sfx) strcpy(sfx, s - buf + fname);
+ }
s = strstr(buf, ".t[bg]z");
- if (s) { *s = '\0'; } /* strip off any ".t[bg]z" */
+ if (s) {
+ *s = '\0'; /* strip off any ".t[bg]z" */
+ if (sfx) strcpy(sfx, s - buf + fname);
+ }
}
Home |
Main Index |
Thread Index |
Old Index