diff options
Diffstat (limited to '')
| -rw-r--r-- | TODO | 1 | ||||
| -rw-r--r-- | find-contact-by-number.c | 18 | ||||
| -rw-r--r-- | get-contact-emails.c | 2 | ||||
| -rw-r--r-- | get-contact-numbers.c | 54 | ||||
| -rw-r--r-- | get-contact-organisations.c | 2 | ||||
| -rw-r--r-- | get-contact-pgpkeys.c | 2 | ||||
| -rw-r--r-- | get-contact-sites.c | 2 | 
7 files changed, 60 insertions, 21 deletions
| @@ -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); | 
