aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2021-04-05 23:48:03 +0200
committerMattias Andrée <maandree@kth.se>2021-04-05 23:48:03 +0200
commit21e71d1951192259502681df0f63e6de7254eca9 (patch)
treee9f2e75be70cdbc86540f99f2d2ff9b573ac4d29
parentm + add set-contact-addresses + use -n instead of -l for country (diff)
downloadcontacts-21e71d1951192259502681df0f63e6de7254eca9.tar.gz
contacts-21e71d1951192259502681df0f63e6de7254eca9.tar.bz2
contacts-21e71d1951192259502681df0f63e6de7254eca9.tar.xz
m
Signed-off-by: Mattias Andrée <maandree@kth.se>
-rw-r--r--TODO1
-rw-r--r--find-contact-by-number.c18
-rw-r--r--get-contact-emails.c2
-rw-r--r--get-contact-numbers.c54
-rw-r--r--get-contact-organisations.c2
-rw-r--r--get-contact-pgpkeys.c2
-rw-r--r--get-contact-sites.c2
7 files changed, 60 insertions, 21 deletions
diff --git a/TODO b/TODO
index 72da3fc..90e03e9 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,3 @@
-Add tools for checking context for contact info
Add tools for .blocks
Test find-contact-by-chat
diff --git a/find-contact-by-number.c b/find-contact-by-number.c
index e426c57..54827f4 100644
--- a/find-contact-by-number.c
+++ b/find-contact-by-number.c
@@ -1,7 +1,7 @@
/* See LICENSE file for copyright and license details. */
#include "common.h"
-USAGE("[-c context] [-C local-country-calling-code] [-D address-book-country-calling-code] [-F | -f] [-M | -m] [-t] (-L | number)");
+USAGE("[-a address-book-country-calling-code] [-l local-country-calling-code] [-c context] [-F | -f] [-M | -m] [-t] (-L | number)");
int
@@ -11,24 +11,24 @@ main(int argc, char *argv[])
struct passwd *user;
struct libcontacts_contact **contacts;
struct libcontacts_number **numbers, *number;
- char *context = NULL, *cc_contacts = NULL, *cc_location = NULL;
+ const char *context = NULL, *cc_contacts = NULL, *cc_location = NULL;
size_t i;
ARGBEGIN {
- case 'c':
- if (context)
+ case 'a':
+ if (cc_contacts)
usage();
- context = ARG();
+ cc_contacts = ARG();
break;
- case 'C':
+ case 'l':
if (cc_location)
usage();
cc_location = ARG();
break;
- case 'D':
- if (cc_contacts)
+ case 'c':
+ if (context)
usage();
- cc_contacts = ARG();
+ context = ARG();
break;
case 'F':
if (require_fax >= 0)
diff --git a/get-contact-emails.c b/get-contact-emails.c
index 257326e..1e688f6 100644
--- a/get-contact-emails.c
+++ b/get-contact-emails.c
@@ -71,7 +71,7 @@ main(int argc, char *argv[])
}
if (argc > 1)
printf("%s: ", *argv);
- if (display_ctx && display_addr)
+ if (!display_ctx == !display_addr)
printf("%s: %s\n", email->context, email->address);
else if (display_addr)
printf("%s\n", email->address);
diff --git a/get-contact-numbers.c b/get-contact-numbers.c
index 0d9c02b..3b032ce 100644
--- a/get-contact-numbers.c
+++ b/get-contact-numbers.c
@@ -1,26 +1,44 @@
/* See LICENSE file for copyright and license details. */
#include "common.h"
-USAGE("[-c context] [-F | -f] [-M | -m] contact-id ...");
+USAGE("[-a address-book-country-calling-code] [-l local-country-calling-code] "
+ "[-c context] [-n number] [-F | -f] [-M | -m] [-CNT] contact-id ...");
int
main(int argc, char *argv[])
{
+ int display_ctx = 0, display_num = 0, display_type = 0;
int require_mobile = -1, require_fax = -1;
struct passwd *user;
struct libcontacts_contact contact;
struct libcontacts_number **numbers, *number;
- const char *lookup_ctx = NULL;
+ const char *lookup_ctx = NULL, *lookup_num = NULL;
+ const char *cc_contacts = NULL, *cc_location = NULL;
int ret = 0;
size_t i;
ARGBEGIN {
+ case 'a':
+ if (cc_contacts)
+ usage();
+ cc_contacts = ARG();
+ break;
+ case 'l':
+ if (cc_location)
+ usage();
+ cc_location = ARG();
+ break;
case 'c':
if (lookup_ctx)
usage();
lookup_ctx = ARG();
break;
+ case 'n':
+ if (lookup_num)
+ usage();
+ lookup_num = ARG();
+ break;
case 'F':
if (require_fax >= 0)
usage();
@@ -41,6 +59,15 @@ main(int argc, char *argv[])
usage();
require_mobile = 1;
break;
+ case 'C':
+ display_ctx = 1;
+ break;
+ case 'N':
+ display_num = 1;
+ break;
+ case 'T':
+ display_type = 1;
+ break;
default:
usage();
} ARGEND;
@@ -48,6 +75,12 @@ main(int argc, char *argv[])
if (!argc)
usage();
+ if (!display_ctx && !display_num && !display_type) {
+ display_ctx = !lookup_ctx;
+ display_num = !lookup_num;
+ display_type = (require_mobile < 0 || require_fax < 0);
+ }
+
for (i = 0; argv[i]; i++)
if (!*argv[i] || strchr(argv[i], '/'))
usage();
@@ -73,13 +106,20 @@ main(int argc, char *argv[])
continue;
if (lookup_ctx && strcmpnul(number->context, lookup_ctx))
continue;
+ if (lookup_num && !libcontacts_same_number(number->number, cc_contacts, lookup_num, cc_location))
+ continue;
if (argc > 1)
printf("%s: ", *argv);
- printf("%c%c", "-m"[number->is_mobile], "-f"[number->is_facsimile]);
- if (!lookup_ctx)
- printf(" %s (%s)\n", number->number, number->context);
- else
- printf(" %s\n", number->number);
+ if (display_type) {
+ printf("%c%c", "-m"[number->is_mobile], "-f"[number->is_facsimile]);
+ if (display_ctx || display_num)
+ printf(" ");
+ }
+ if (display_ctx)
+ printf("%s%s", number->context, display_num ? ": " : "");
+ if (display_num)
+ printf("%s", number->number);
+ printf("\n");
}
}
libcontacts_contact_destroy(&contact);
diff --git a/get-contact-organisations.c b/get-contact-organisations.c
index 70feea5..ae236db 100644
--- a/get-contact-organisations.c
+++ b/get-contact-organisations.c
@@ -71,7 +71,7 @@ main(int argc, char *argv[])
}
if (argc > 1)
printf("%s: ", *argv);
- if (display_org && display_title)
+ if (!display_org == !display_title)
printf("%s: %s\n", org->organisation, org->title);
else if (display_title)
printf("%s\n", org->title);
diff --git a/get-contact-pgpkeys.c b/get-contact-pgpkeys.c
index 7935d17..97e32c7 100644
--- a/get-contact-pgpkeys.c
+++ b/get-contact-pgpkeys.c
@@ -71,7 +71,7 @@ main(int argc, char *argv[])
}
if (argc > 1)
printf("%s: ", *argv);
- if (display_ctx && display_id)
+ if (!display_ctx == !display_id)
printf("%s: %s\n", key->context, key->id);
else if (display_id)
printf("%s\n", key->id);
diff --git a/get-contact-sites.c b/get-contact-sites.c
index dcc1d17..a46eadc 100644
--- a/get-contact-sites.c
+++ b/get-contact-sites.c
@@ -71,7 +71,7 @@ main(int argc, char *argv[])
}
if (argc > 1)
printf("%s: ", *argv);
- if (display_ctx && display_addr)
+ if (!display_ctx == !display_addr)
printf("%s: %s\n", site->context, site->address);
else if (display_addr)
printf("%s\n", site->address);