]> git.ardis.lu - event-hashes/commitdiff
Fix bug where multiline comments were sometimes not handled
authorArdis Lu <ardisglu@gmail.com>
Thu, 12 Jun 2025 03:45:20 +0000 (20:45 -0700)
committerArdis Lu <ardisglu@gmail.com>
Thu, 12 Jun 2025 03:45:20 +0000 (20:45 -0700)
Example test case that was previously handled incorrectly:
```solidity
/*
event InsideAComment()
*/
```

README.md
index.html

index ffd4f9ef38aa093b79be1fd239ac632ec4285617..3004732b710cf7fe719d090b9979ac17f84ecb90 100644 (file)
--- a/README.md
+++ b/README.md
@@ -65,7 +65,7 @@ There is a button to delete all lines in the input code block that do *not* cont
 
 ## Testing
 
-Use [this permalink](https://event-hashes.ardis.lu#H4sIAAAAAAAACq1TwW7bMAy96yt4tA0HRhy0l5yydocAazEsBXYoikKT2FSoRRmSnDUb9u8DFSV2tgC7zBdb7z2Sj6TcNPBBBqOglz4Y2grcIUXYGNt3WEitPYZQH9+DodheXZdLIZoGHvY9AjlvZWd+yGgcnUez+vGpNhRrpME+PuW4r68mYuilQpCkAd+jl4RuCPCG++/Oa4jeWMtuAHJGVgc4GgJDGt9RA0i/ndfAz5GCkWS2rYF9wBmemEUJAMt0Srbuhi6aWWcIoXPubSZfUercUeI+GcK/HBwMiLH+hGgTkcpP0AWIcvln3o20eC8tFmOmevz8RwBXYLWhKPKMb3Gmh74zarqX24xgccr3fyCu+AWt2+F0m6nn5+h6o54rsebTAx+KKTE/De7FO1ufBbUnLrrDGtura9jJbsBcdL0l5xGUsxYpBoYO9tYUjMbVzYGYs8mmusi1RbmEqhFNVQm4LFlwOGsO5Gfppc1UmCwMZA1NA5mB+XH332poqhPccqLMKNYXZS66EmVq6sZ5jyp2ezDcnqEtkKNZEvFUIURvVATrNArlKHqpImwSeOc0ws/xvzmBH3dpDtkq9wMvAym+HXDv4oouCEa8PcMv5m55EuONBSiX4tdvNFCEL18EAAA=) for testing. The output should be:
+Use [this permalink](https://event-hashes.ardis.lu#H4sIAAAAAAAACq2TPW/bMBCGd/6KGyVBhmC5yeLJTToYaIKiDtAhCAKGvDhExKNAUm7Sov+9OJq25NZAl3qx+T738d6Rbhr4KINR0EsfDG0F7pAibIztOyyk1h5DqA/fg6HYXlyWSyGaBu7eewRy3srO/JDRODrN5uj7h9pQrJEGe/+Q8769mIihlwpBkgZ8i14SuiHAK75/d15D9MZadgOQK3J0gIMhMKTxDTWA9Nt5Dfw5IBgh07YG9gEneiKLEgCW6ZRs3QxdNLPOEELn3OtMvqDUeaLEPhvCvxzsDYix/wS0CaT2E3UBolz+WXcjLd5Ki8VYqR5//iOBO3C0oSjyjq9xpoe+M2p6L9dZweJY7/9I3PErWrfD6W2mmR+j6416rMSaT3d8KKZgflzcs3e2Pklqjyy6/TW2F5ewk92Auel6S84jKGctUgws7e2tKRiNq6s9mLPJpjrL2qJcQtWIpqoEnA9ZcPo+RpzjH5hXTWZfpJc2kzC5T5A1NA1kAvPD03iqoamOcst9MlEcX5TZ00qUaeYr5z2q2L2D4ekNbYEczVIQLx1C9EZFsE6jUI6ilyrCJok3TiP8HP9WR/HTLq0pW+Vx4XkgxY8Hbl1c0ZmAUW9P9LO1W97E+KAByqX49RsAL25KfgQAAA==) for testing. The output should be:
 
 > 15 events found (11 unique)
 > 
index 68ed9608f8343c9ffe35d1537c51a06d0155f108..a6e05a73244a04bd82b18b2c402960910d95bea2 100644 (file)
       return text;
     }
 
-    function trimComments(event) {
-      const i1 = event.indexOf('//');
-      event = i1 === -1 ? event : event.substring(0, i1);
-      const i2 = event.indexOf('/*');
-      event = i2 === -1 ? event : event.substring(0, i2);
+    function trimMultiLineComments(event) {
+      let i1, i2;
+      while (i1 !== -1) {
+        i1 = event.indexOf('/*');
+        i2 = event.indexOf('*/', i1);
+        event = i1 === -1 ? event : `${event.substring(0, i1)}${event.substring(i2 + 2)}`;
+        event = event.trim();
+      }
+      return event;
+    }
+
+    function trimSingleLineComments(event) {
+      const i = event.indexOf('//');
+      event = i === -1 ? event : event.substring(0, i);
       event = event.trim();
       return event;
     }
     }
 
     function getEvents(code) {
-      code = code.split('\n').map(trimComments).join('\n');
+      code = trimMultiLineComments(code);
+      code = code.split('\n').map(trimSingleLineComments).join('\n');
       originalEvents.length = 0;
       const events = [];
       let position = 0;
This page took 0.052381 seconds and 4 git commands to generate.