From 14144089b51a0ecb55c021a916826b3939b9dc12 Mon Sep 17 00:00:00 2001
From: Jens Nolte <git@queezle.net>
Date: Thu, 16 Sep 2021 00:11:28 +0200
Subject: [PATCH] Padding

---
 src/Quasar/Wayland/Protocol/Core.hs | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/Quasar/Wayland/Protocol/Core.hs b/src/Quasar/Wayland/Protocol/Core.hs
index eca993f..25ca5ca 100644
--- a/src/Quasar/Wayland/Protocol/Core.hs
+++ b/src/Quasar/Wayland/Protocol/Core.hs
@@ -555,13 +555,19 @@ putWaylandBlob blob = do
   putWord32host (fromIntegral (size + 1))
   putByteString blob
   putWord8 0
-  replicateM_ ((4 - (size `mod` 4)) `mod` 4) (putWord8 0)
+  replicateM_ (padding size) (putWord8 0)
 
 
 skipPadding :: Get ()
 skipPadding = do
   bytes <- bytesRead
-  skip $ fromIntegral ((4 - (bytes `mod` 4)) `mod` 4)
+  skip $ fromIntegral (padding bytes)
+
+paddedSize :: Integral a => a -> a
+paddedSize size = size + padding size
+
+padding :: Integral a => a -> a
+padding size = ((4 - (size `mod` 4)) `mod` 4)
 
 
 sendRawMessage :: MonadCatch m => Put -> ProtocolAction s m ()
-- 
GitLab