chiark / gitweb /
fix invocation lengths
[version-charset-test.git] / 0001-provide-dpkg-filter-valid-versions.patch
1 From fc2314965332d9f9efb3f79f500f4ddbf76e91f8 Mon Sep 17 00:00:00 2001
2 From: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 Date: Fri, 4 Nov 2016 13:55:19 +0000
4 Subject: [PATCH] provide dpkg --filter-valid-versions
5
6 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
7 ---
8  src/enquiry.c | 20 ++++++++++++++++++++
9  src/main.c    |  1 +
10  src/main.h    |  2 ++
11  3 files changed, 23 insertions(+)
12
13 diff --git a/src/enquiry.c b/src/enquiry.c
14 index 9f71863..b5010ad 100644
15 --- a/src/enquiry.c
16 +++ b/src/enquiry.c
17 @@ -694,3 +694,23 @@ cmpversions(const char *const *argv)
18    else
19      return rip->if_equal;
20  }
21 +
22 +int
23 +filterversions(const char *const *argv)
24 +{
25 +  char buf[100];
26 +  char *newline;
27 +  struct dpkg_error err;
28 +  struct dpkg_version vp;
29 +
30 +  while (fgets(buf,sizeof(buf),stdin)) {
31 +    newline = strchr(buf,'\n');
32 +    assert(newline);
33 +    *newline = 0;
34 +    if (parseversion(&vp, buf, &err))
35 +      continue;
36 +    puts(buf);
37 +  }
38 +  assert(feof(stdin));
39 +  return 0;
40 +}
41 diff --git a/src/main.c b/src/main.c
42 index 122a28f..5d03cee 100644
43 --- a/src/main.c
44 +++ b/src/main.c
45 @@ -694,6 +694,7 @@ static const struct cmdinfo cmdinfos[]= {
46    ACTION( "print-foreign-architectures",     0,  act_printforeignarches,   print_foreign_arches ),
47    ACTION( "predep-package",                  0,  act_predeppackage,        predeppackage   ),
48    ACTION( "compare-versions",                0,  act_cmpversions,          cmpversions     ),
49 +  ACTION( "filter-valid-versions",           0,  act_filterversions,       filterversions     ),
50  /*
51    ACTION( "command-fd",                   'c', act_commandfd,   commandfd     ),
52  */
53 diff --git a/src/main.h b/src/main.h
54 index cddf45e..f4fad13 100644
55 --- a/src/main.h
56 +++ b/src/main.h
57 @@ -97,6 +97,7 @@ enum action {
58         act_controlshow,
59  
60         act_cmpversions,
61 +       act_filterversions,
62  
63         act_arch_add,
64         act_arch_remove,
65 @@ -183,6 +184,7 @@ int printarch(const char *const *argv);
66  int printinstarch(const char *const *argv);
67  int print_foreign_arches(const char *const *argv);
68  int cmpversions(const char *const *argv);
69 +int filterversions(const char *const *argv);
70  
71  /* from verify.c */
72  
73 -- 
74 2.10.1
75