chiark / gitweb /
use new git-check-ref-format
[version-charset-test.git] / 0001-provide-dpkg-filter-valid-versions.patch
1 From 175235bdb5cf01714bb8f4b99d1d787a81a3d2ce 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 | 23 +++++++++++++++++++++++
9  src/main.c    |  1 +
10  src/main.h    |  2 ++
11  3 files changed, 26 insertions(+)
12
13 diff --git a/src/enquiry.c b/src/enquiry.c
14 index 9f71863..09b5748 100644
15 --- a/src/enquiry.c
16 +++ b/src/enquiry.c
17 @@ -694,3 +694,26 @@ 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 = DPKG_ERROR_INIT;
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 +      dpkg_error_destroy(&err);
36 +      continue;
37 +    }
38 +    puts(buf);
39 +    nffreeall();
40 +  }
41 +  assert(feof(stdin));
42 +  return 0;
43 +}
44 diff --git a/src/main.c b/src/main.c
45 index 122a28f..5d03cee 100644
46 --- a/src/main.c
47 +++ b/src/main.c
48 @@ -694,6 +694,7 @@ static const struct cmdinfo cmdinfos[]= {
49    ACTION( "print-foreign-architectures",     0,  act_printforeignarches,   print_foreign_arches ),
50    ACTION( "predep-package",                  0,  act_predeppackage,        predeppackage   ),
51    ACTION( "compare-versions",                0,  act_cmpversions,          cmpversions     ),
52 +  ACTION( "filter-valid-versions",           0,  act_filterversions,       filterversions     ),
53  /*
54    ACTION( "command-fd",                   'c', act_commandfd,   commandfd     ),
55  */
56 diff --git a/src/main.h b/src/main.h
57 index cddf45e..f4fad13 100644
58 --- a/src/main.h
59 +++ b/src/main.h
60 @@ -97,6 +97,7 @@ enum action {
61         act_controlshow,
62  
63         act_cmpversions,
64 +       act_filterversions,
65  
66         act_arch_add,
67         act_arch_remove,
68 @@ -183,6 +184,7 @@ int printarch(const char *const *argv);
69  int printinstarch(const char *const *argv);
70  int print_foreign_arches(const char *const *argv);
71  int cmpversions(const char *const *argv);
72 +int filterversions(const char *const *argv);
73  
74  /* from verify.c */
75  
76 -- 
77 2.10.1
78