Little stuff.

Add a missing DECREF in an obscure corner.  If the str() or repr() of
an object passed to a string interpolation -- e.g. "%s" % obj --
returns a non-string, the returned object was leaked.

Repair an indentation glitch.

Replace a bunch of PyString_AsString() calls (and their ilk) with
macros.
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 86e0ea7..cb0e20b 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -3146,15 +3146,15 @@
 		return NULL;
 	}
 	orig_args = args;
-	fmt = PyString_AsString(format);
-	fmtcnt = PyString_Size(format);
+	fmt = PyString_AS_STRING(format);
+	fmtcnt = PyString_GET_SIZE(format);
 	reslen = rescnt = fmtcnt + 100;
 	result = PyString_FromStringAndSize((char *)NULL, reslen);
 	if (result == NULL)
 		return NULL;
 	res = PyString_AsString(result);
 	if (PyTuple_Check(args)) {
-		arglen = PyTuple_Size(args);
+		arglen = PyTuple_GET_SIZE(args);
 		argidx = 0;
 	}
 	else {
@@ -3170,7 +3170,7 @@
 				reslen += rescnt;
 				if (_PyString_Resize(&result, reslen) < 0)
 					return NULL;
-				res = PyString_AsString(result)
+				res = PyString_AS_STRING(result)
 					+ reslen - rescnt;
 				--rescnt;
 			}
@@ -3351,7 +3351,7 @@
 				}
 #endif
 				if (c == 's')
-				temp = PyObject_Str(v);
+					temp = PyObject_Str(v);
 				else
 					temp = PyObject_Repr(v);
 				if (temp == NULL)
@@ -3359,10 +3359,11 @@
 				if (!PyString_Check(temp)) {
 					PyErr_SetString(PyExc_TypeError,
 					  "%s argument has non-string str()");
+					Py_DECREF(temp);
 					goto error;
 				}
-				pbuf = PyString_AsString(temp);
-				len = PyString_Size(temp);
+				pbuf = PyString_AS_STRING(temp);
+				len = PyString_GET_SIZE(temp);
 				if (prec >= 0 && len > prec)
 					len = prec;
 				break;
@@ -3441,7 +3442,7 @@
 				reslen += rescnt;
 				if (_PyString_Resize(&result, reslen) < 0)
 					return NULL;
-				res = PyString_AsString(result)
+				res = PyString_AS_STRING(result)
 					+ reslen - rescnt;
 			}
 			if (sign) {