To remove the const qualifier from a pointer to an object - either
authorschwarze <schwarze@openbsd.org>
Fri, 15 Jul 2016 19:31:53 +0000 (19:31 +0000)
committerschwarze <schwarze@openbsd.org>
Fri, 15 Jul 2016 19:31:53 +0000 (19:31 +0000)
because we know it is actually mutable or because we are passing
it to a function that doesn't accept a const object but won't
actually attempt to modify it - simply casting from (const type *)
to (type *) is legal C and clearly expresses the intent.
So get rid of the obfuscating UNCONST macro.
Basic idea discussed with guenther@.

usr.bin/mandoc/main.c
usr.bin/mandoc/main.h

index 34d1ed8..2bc4902 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: main.c,v 1.175 2016/07/15 18:49:53 schwarze Exp $ */
+/*     $OpenBSD: main.c,v 1.176 2016/07/15 19:31:53 schwarze Exp $ */
 /*
  * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2012, 2014-2016 Ingo Schwarze <schwarze@openbsd.org>
@@ -927,7 +927,7 @@ woptions(struct curparse *curp, char *arg)
 
        while (*arg) {
                o = arg;
-               switch (getsubopt(&arg, UNCONST(toks), &v)) {
+               switch (getsubopt(&arg, (char * const *)toks, &v)) {
                case 0:
                        curp->wstop = 1;
                        break;
index ee2cbf1..54fb32d 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: main.h,v 1.20 2016/07/08 22:27:58 schwarze Exp $ */
+/*     $OpenBSD: main.h,v 1.21 2016/07/15 19:31:53 schwarze Exp $ */
 /*
  * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2014, 2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -16,8 +16,6 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define        UNCONST(a)      ((void *)(uintptr_t)(const void *)(a))
-
 struct roff_man;
 struct manoutput;