# [PATCH] coccinelle: combine two rules from qsort.cocci

1 messages from 2019-11-12 to 2019-11-12. Participants: Markus Elfring.
Thread: https://gitlist.dev/t/52249

## Markus Elfring, 2019-11-12 19:23

Subject: [PATCH] coccinelle: combine two rules from qsort.cocci
Message-ID: <c19a6e52-3c13-1ff1-a313-d0d951328e29@web.de>
URL: https://gitlist.dev/e/c19a6e52-3c13-1ff1-a313-d0d951328e29%40web.de

```
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 12 Nov 2019 20:20:13 +0100

This script contained two transformation rules for the semantic patch language
which used duplicate code.

* Reduce duplication by merging common code from these rules.

* Use a SmPL disjunction for the pointer determination according to
  a sizeof operator.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 contrib/coccinelle/qsort.cocci | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/contrib/coccinelle/qsort.cocci b/contrib/coccinelle/qsort.cocci
index 22b93a9966..1c9a12c7c0 100644
--- a/contrib/coccinelle/qsort.cocci
+++ b/contrib/coccinelle/qsort.cocci
@@ -1,14 +1,11 @@
 @@
 expression base, nmemb, compar;
 @@
-- qsort(base, nmemb, sizeof(*base), compar);
-+ QSORT(base, nmemb, compar);
-
-@@
-expression base, nmemb, compar;
-@@
-- qsort(base, nmemb, sizeof(base[0]), compar);
-+ QSORT(base, nmemb, compar);
+-qsort
++QSORT
+      (base, nmemb,
+-      sizeof( \( *base \| base[0] \) ),
+       compar);

 @@
 type T;
--
2.24.0


```
