Fix save-invert printout (David Zambonini, me)
diff --git a/extensions/libipt_mac.c b/extensions/libipt_mac.c
index b9d3b36..d1079a5 100644
--- a/extensions/libipt_mac.c
+++ b/extensions/libipt_mac.c
@@ -86,11 +86,11 @@
 	return 1;
 }
 
-static void print_mac(unsigned char macaddress[ETH_ALEN], int invert)
+static void print_mac(unsigned char macaddress[ETH_ALEN])
 {
 	unsigned int i;
 
-	printf("%s%02X", invert ? "! " : "", macaddress[0]);
+	printf("%02X", macaddress[0]);
 	for (i = 1; i < ETH_ALEN; i++)
 		printf(":%02X", macaddress[i]);
 	printf(" ");
@@ -111,16 +111,21 @@
       int numeric)
 {
 	printf("MAC ");
-	print_mac(((struct ipt_mac_info *)match->data)->srcaddr,
-		  ((struct ipt_mac_info *)match->data)->invert);
+
+	if (((struct ipt_mac_info *)match->data)->invert)
+		printf("! ");
+	
+	print_mac(((struct ipt_mac_info *)match->data)->srcaddr);
 }
 
 /* Saves the union ipt_matchinfo in parsable form to stdout. */
 static void save(const struct ipt_ip *ip, const struct ipt_entry_match *match)
 {
+	if (((struct ipt_mac_info *)match->data)->invert)
+		printf("! ");
+
 	printf("--mac-source ");
-	print_mac(((struct ipt_mac_info *)match->data)->srcaddr,
-		  ((struct ipt_mac_info *)match->data)->invert);
+	print_mac(((struct ipt_mac_info *)match->data)->srcaddr);
 }
 
 static