// spatch.opt -j 44 ~/linux-next stracpy.cocci --recursive-includes --very-quiet > stracpy.out @r@ identifier f,i1,i2; struct i1 e1; expression e2; position p; @@ \(strscpy\|strlcpy\)(e1.f, e2, i2)@p @ok@ identifier r.i1,r.i2,r.f; type T; @@ struct i1 { ... T f[i2]; ... } @depends on ok@ identifier f,i2,i1; struct i1 e1; expression e2; local idexpression x; position r.p; assignment operator aop; @@ ( -x aop strlcpy +stracpy (e1.f, e2 - , i2 )@p; ... when != x | -strlcpy +stracpy (e1.f, e2 - , i2 )@p; | -strscpy +stracpy (e1.f, e2 - , i2 )@p ... when any )