[Openvpn-devel] [M] Change in openvpn[master]: buffer: add documentation for string_mod and extend related UT

2023-12-11 Thread cron2 (Code Review)
cron2 has submitted this change. ( 
http://gerrit.openvpn.net/c/openvpn/+/472?usp=email )

Change subject: buffer: add documentation for string_mod and extend related UT
..

buffer: add documentation for string_mod and extend related UT

Since I was confused what exactly string_mod does, I
added documentation and additional UTs to make it
clearer.

Change-Id: I911fb5c5fa4b41f1fc1a30c6bf8b314245f64a6e
Signed-off-by: Frank Lichtenheld 
Acked-by: Arne Schwabe 
Message-Id: <20231211170214.85417-1-fr...@lichtenheld.com>
URL: 
https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg27761.html
Signed-off-by: Gert Doering 
---
M src/openvpn/buffer.h
M tests/unit_tests/openvpn/test_buffer.c
2 files changed, 74 insertions(+), 38 deletions(-)




diff --git a/src/openvpn/buffer.h b/src/openvpn/buffer.h
index 0456b27..61fc3a5 100644
--- a/src/openvpn/buffer.h
+++ b/src/openvpn/buffer.h
@@ -898,51 +898,78 @@

 /* character classes */

-#define CC_ANY(1<<0)
-#define CC_NULL   (1<<1)
+#define CC_ANY(1<<0) /**< any character */
+#define CC_NULL   (1<<1) /**< null character \0 */

-#define CC_ALNUM  (1<<2)
-#define CC_ALPHA  (1<<3)
-#define CC_ASCII  (1<<4)
-#define CC_CNTRL  (1<<5)
-#define CC_DIGIT  (1<<6)
-#define CC_PRINT  (1<<7)
-#define CC_PUNCT  (1<<8)
-#define CC_SPACE  (1<<9)
-#define CC_XDIGIT (1<<10)
+#define CC_ALNUM  (1<<2) /**< alphanumeric isalnum() */
+#define CC_ALPHA  (1<<3) /**< alphabetic isalpha() */
+#define CC_ASCII  (1<<4) /**< ASCII character */
+#define CC_CNTRL  (1<<5) /**< control character iscntrl() */
+#define CC_DIGIT  (1<<6) /**< digit isdigit() */
+#define CC_PRINT  (1<<7) /**< printable (>= 32, != 127) */
+#define CC_PUNCT  (1<<8) /**< punctuation ispunct() */
+#define CC_SPACE  (1<<9) /**< whitespace isspace() */
+#define CC_XDIGIT (1<<10) /**< hex digit isxdigit() */

-#define CC_BLANK  (1<<11)
-#define CC_NEWLINE(1<<12)
-#define CC_CR (1<<13)
+#define CC_BLANK  (1<<11) /**< space or tab */
+#define CC_NEWLINE(1<<12) /**< newline */
+#define CC_CR (1<<13) /**< carriage return */

-#define CC_BACKSLASH  (1<<14)
-#define CC_UNDERBAR   (1<<15)
-#define CC_DASH   (1<<16)
-#define CC_DOT(1<<17)
-#define CC_COMMA  (1<<18)
-#define CC_COLON  (1<<19)
-#define CC_SLASH  (1<<20)
-#define CC_SINGLE_QUOTE   (1<<21)
-#define CC_DOUBLE_QUOTE   (1<<22)
-#define CC_REVERSE_QUOTE  (1<<23)
-#define CC_AT (1<<24)
-#define CC_EQUAL  (1<<25)
-#define CC_LESS_THAN  (1<<26)
-#define CC_GREATER_THAN   (1<<27)
-#define CC_PIPE   (1<<28)
-#define CC_QUESTION_MARK  (1<<29)
-#define CC_ASTERISK   (1<<30)
+#define CC_BACKSLASH  (1<<14) /**< backslash */
+#define CC_UNDERBAR   (1<<15) /**< underscore */
+#define CC_DASH   (1<<16) /**< dash */
+#define CC_DOT(1<<17) /**< dot */
+#define CC_COMMA  (1<<18) /**< comma */
+#define CC_COLON  (1<<19) /**< colon */
+#define CC_SLASH  (1<<20) /**< slash */
+#define CC_SINGLE_QUOTE   (1<<21) /**< single quote */
+#define CC_DOUBLE_QUOTE   (1<<22) /**< double quote */
+#define CC_REVERSE_QUOTE  (1<<23) /**< reverse quote */
+#define CC_AT (1<<24) /**< at sign */
+#define CC_EQUAL  (1<<25) /**< equal sign */
+#define CC_LESS_THAN  (1<<26) /**< less than sign */
+#define CC_GREATER_THAN   (1<<27) /**< greater than sign */
+#define CC_PIPE   (1<<28) /**< pipe */
+#define CC_QUESTION_MARK  (1<<29) /**< question mark */
+#define CC_ASTERISK   (1<<30) /**< asterisk */

 /* macro classes */
-#define CC_NAME   (CC_ALNUM|CC_UNDERBAR)
-#define CC_CRLF   (CC_CR|CC_NEWLINE)
+#define CC_NAME   (CC_ALNUM|CC_UNDERBAR) /**< alphanumeric plus 
underscore */
+#define CC_CRLF   (CC_CR|CC_NEWLINE) /**< carriage return or 
newline */

 bool char_class(const unsigned char c, const unsigned int flags);

 bool string_class(const char *str, const unsigned int inclusive, const 
unsigned int exclusive);

+/**
+ * Modifies a string in place by replacing certain classes of characters of it 
with a specified
+ * character.
+ *
+ * Guaranteed to not increase the length of the string.
+ * If replace is 0, characters are skipped instead of replaced.
+ *
+ * @param str The string to be modified.
+ * @param inclusive The character classes not to be replaced.
+ * @param exclusive Character classes to be replaced even if they are also 

[Openvpn-devel] [M] Change in openvpn[master]: buffer: add documentation for string_mod and extend related UT

2023-12-11 Thread cron2 (Code Review)
cron2 has uploaded a new patch set (#2) to the change originally created by 
flichtenheld. ( http://gerrit.openvpn.net/c/openvpn/+/472?usp=email )

The following approvals got outdated and were removed:
Code-Review+2 by plaisthos


Change subject: buffer: add documentation for string_mod and extend related UT
..

buffer: add documentation for string_mod and extend related UT

Since I was confused what exactly string_mod does, I
added documentation and additional UTs to make it
clearer.

Change-Id: I911fb5c5fa4b41f1fc1a30c6bf8b314245f64a6e
Signed-off-by: Frank Lichtenheld 
Acked-by: Arne Schwabe 
Message-Id: <20231211170214.85417-1-fr...@lichtenheld.com>
URL: 
https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg27761.html
Signed-off-by: Gert Doering 
---
M src/openvpn/buffer.h
M tests/unit_tests/openvpn/test_buffer.c
2 files changed, 74 insertions(+), 38 deletions(-)


  git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/72/472/2

diff --git a/src/openvpn/buffer.h b/src/openvpn/buffer.h
index 0456b27..61fc3a5 100644
--- a/src/openvpn/buffer.h
+++ b/src/openvpn/buffer.h
@@ -898,51 +898,78 @@

 /* character classes */

-#define CC_ANY(1<<0)
-#define CC_NULL   (1<<1)
+#define CC_ANY(1<<0) /**< any character */
+#define CC_NULL   (1<<1) /**< null character \0 */

-#define CC_ALNUM  (1<<2)
-#define CC_ALPHA  (1<<3)
-#define CC_ASCII  (1<<4)
-#define CC_CNTRL  (1<<5)
-#define CC_DIGIT  (1<<6)
-#define CC_PRINT  (1<<7)
-#define CC_PUNCT  (1<<8)
-#define CC_SPACE  (1<<9)
-#define CC_XDIGIT (1<<10)
+#define CC_ALNUM  (1<<2) /**< alphanumeric isalnum() */
+#define CC_ALPHA  (1<<3) /**< alphabetic isalpha() */
+#define CC_ASCII  (1<<4) /**< ASCII character */
+#define CC_CNTRL  (1<<5) /**< control character iscntrl() */
+#define CC_DIGIT  (1<<6) /**< digit isdigit() */
+#define CC_PRINT  (1<<7) /**< printable (>= 32, != 127) */
+#define CC_PUNCT  (1<<8) /**< punctuation ispunct() */
+#define CC_SPACE  (1<<9) /**< whitespace isspace() */
+#define CC_XDIGIT (1<<10) /**< hex digit isxdigit() */

-#define CC_BLANK  (1<<11)
-#define CC_NEWLINE(1<<12)
-#define CC_CR (1<<13)
+#define CC_BLANK  (1<<11) /**< space or tab */
+#define CC_NEWLINE(1<<12) /**< newline */
+#define CC_CR (1<<13) /**< carriage return */

-#define CC_BACKSLASH  (1<<14)
-#define CC_UNDERBAR   (1<<15)
-#define CC_DASH   (1<<16)
-#define CC_DOT(1<<17)
-#define CC_COMMA  (1<<18)
-#define CC_COLON  (1<<19)
-#define CC_SLASH  (1<<20)
-#define CC_SINGLE_QUOTE   (1<<21)
-#define CC_DOUBLE_QUOTE   (1<<22)
-#define CC_REVERSE_QUOTE  (1<<23)
-#define CC_AT (1<<24)
-#define CC_EQUAL  (1<<25)
-#define CC_LESS_THAN  (1<<26)
-#define CC_GREATER_THAN   (1<<27)
-#define CC_PIPE   (1<<28)
-#define CC_QUESTION_MARK  (1<<29)
-#define CC_ASTERISK   (1<<30)
+#define CC_BACKSLASH  (1<<14) /**< backslash */
+#define CC_UNDERBAR   (1<<15) /**< underscore */
+#define CC_DASH   (1<<16) /**< dash */
+#define CC_DOT(1<<17) /**< dot */
+#define CC_COMMA  (1<<18) /**< comma */
+#define CC_COLON  (1<<19) /**< colon */
+#define CC_SLASH  (1<<20) /**< slash */
+#define CC_SINGLE_QUOTE   (1<<21) /**< single quote */
+#define CC_DOUBLE_QUOTE   (1<<22) /**< double quote */
+#define CC_REVERSE_QUOTE  (1<<23) /**< reverse quote */
+#define CC_AT (1<<24) /**< at sign */
+#define CC_EQUAL  (1<<25) /**< equal sign */
+#define CC_LESS_THAN  (1<<26) /**< less than sign */
+#define CC_GREATER_THAN   (1<<27) /**< greater than sign */
+#define CC_PIPE   (1<<28) /**< pipe */
+#define CC_QUESTION_MARK  (1<<29) /**< question mark */
+#define CC_ASTERISK   (1<<30) /**< asterisk */

 /* macro classes */
-#define CC_NAME   (CC_ALNUM|CC_UNDERBAR)
-#define CC_CRLF   (CC_CR|CC_NEWLINE)
+#define CC_NAME   (CC_ALNUM|CC_UNDERBAR) /**< alphanumeric plus 
underscore */
+#define CC_CRLF   (CC_CR|CC_NEWLINE) /**< carriage return or 
newline */

 bool char_class(const unsigned char c, const unsigned int flags);
 
 bool string_class(const char *str, const unsigned int inclusive, const 
unsigned int exclusive);

+/**
+ * Modifies a string in place by replacing certain classes of characters of it 
with a specified
+ * character.
+ *
+ * Guaranteed to not increase the length of the string.
+ * If replace is 0, characters are 

[Openvpn-devel] [M] Change in openvpn[master]: buffer: add documentation for string_mod and extend related UT

2023-12-11 Thread plaisthos (Code Review)
Attention is currently required from: flichtenheld.

plaisthos has posted comments on this change. ( 
http://gerrit.openvpn.net/c/openvpn/+/472?usp=email )

Change subject: buffer: add documentation for string_mod and extend related UT
..


Patch Set 1: Code-Review+2


--
To view, visit http://gerrit.openvpn.net/c/openvpn/+/472?usp=email
To unsubscribe, or for help writing mail filters, visit 
http://gerrit.openvpn.net/settings

Gerrit-Project: openvpn
Gerrit-Branch: master
Gerrit-Change-Id: I911fb5c5fa4b41f1fc1a30c6bf8b314245f64a6e
Gerrit-Change-Number: 472
Gerrit-PatchSet: 1
Gerrit-Owner: flichtenheld 
Gerrit-Reviewer: plaisthos 
Gerrit-CC: openvpn-devel 
Gerrit-Attention: flichtenheld 
Gerrit-Comment-Date: Mon, 11 Dec 2023 14:56:05 +
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
___
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel


[Openvpn-devel] [M] Change in openvpn[master]: buffer: add documentation for string_mod and extend related UT

2023-12-08 Thread flichtenheld (Code Review)
Attention is currently required from: plaisthos.

Hello plaisthos,

I'd like you to do a code review.
Please visit

http://gerrit.openvpn.net/c/openvpn/+/472?usp=email

to review the following change.


Change subject: buffer: add documentation for string_mod and extend related UT
..

buffer: add documentation for string_mod and extend related UT

Since I was confused what exactly string_mod does, I
added documentation and additional UTs to make it
clearer.

Change-Id: I911fb5c5fa4b41f1fc1a30c6bf8b314245f64a6e
Signed-off-by: Frank Lichtenheld 
---
M src/openvpn/buffer.h
M tests/unit_tests/openvpn/test_buffer.c
2 files changed, 74 insertions(+), 38 deletions(-)



  git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/72/472/1

diff --git a/src/openvpn/buffer.h b/src/openvpn/buffer.h
index 0456b27..61fc3a5 100644
--- a/src/openvpn/buffer.h
+++ b/src/openvpn/buffer.h
@@ -898,51 +898,78 @@

 /* character classes */

-#define CC_ANY(1<<0)
-#define CC_NULL   (1<<1)
+#define CC_ANY(1<<0) /**< any character */
+#define CC_NULL   (1<<1) /**< null character \0 */

-#define CC_ALNUM  (1<<2)
-#define CC_ALPHA  (1<<3)
-#define CC_ASCII  (1<<4)
-#define CC_CNTRL  (1<<5)
-#define CC_DIGIT  (1<<6)
-#define CC_PRINT  (1<<7)
-#define CC_PUNCT  (1<<8)
-#define CC_SPACE  (1<<9)
-#define CC_XDIGIT (1<<10)
+#define CC_ALNUM  (1<<2) /**< alphanumeric isalnum() */
+#define CC_ALPHA  (1<<3) /**< alphabetic isalpha() */
+#define CC_ASCII  (1<<4) /**< ASCII character */
+#define CC_CNTRL  (1<<5) /**< control character iscntrl() */
+#define CC_DIGIT  (1<<6) /**< digit isdigit() */
+#define CC_PRINT  (1<<7) /**< printable (>= 32, != 127) */
+#define CC_PUNCT  (1<<8) /**< punctuation ispunct() */
+#define CC_SPACE  (1<<9) /**< whitespace isspace() */
+#define CC_XDIGIT (1<<10) /**< hex digit isxdigit() */

-#define CC_BLANK  (1<<11)
-#define CC_NEWLINE(1<<12)
-#define CC_CR (1<<13)
+#define CC_BLANK  (1<<11) /**< space or tab */
+#define CC_NEWLINE(1<<12) /**< newline */
+#define CC_CR (1<<13) /**< carriage return */

-#define CC_BACKSLASH  (1<<14)
-#define CC_UNDERBAR   (1<<15)
-#define CC_DASH   (1<<16)
-#define CC_DOT(1<<17)
-#define CC_COMMA  (1<<18)
-#define CC_COLON  (1<<19)
-#define CC_SLASH  (1<<20)
-#define CC_SINGLE_QUOTE   (1<<21)
-#define CC_DOUBLE_QUOTE   (1<<22)
-#define CC_REVERSE_QUOTE  (1<<23)
-#define CC_AT (1<<24)
-#define CC_EQUAL  (1<<25)
-#define CC_LESS_THAN  (1<<26)
-#define CC_GREATER_THAN   (1<<27)
-#define CC_PIPE   (1<<28)
-#define CC_QUESTION_MARK  (1<<29)
-#define CC_ASTERISK   (1<<30)
+#define CC_BACKSLASH  (1<<14) /**< backslash */
+#define CC_UNDERBAR   (1<<15) /**< underscore */
+#define CC_DASH   (1<<16) /**< dash */
+#define CC_DOT(1<<17) /**< dot */
+#define CC_COMMA  (1<<18) /**< comma */
+#define CC_COLON  (1<<19) /**< colon */
+#define CC_SLASH  (1<<20) /**< slash */
+#define CC_SINGLE_QUOTE   (1<<21) /**< single quote */
+#define CC_DOUBLE_QUOTE   (1<<22) /**< double quote */
+#define CC_REVERSE_QUOTE  (1<<23) /**< reverse quote */
+#define CC_AT (1<<24) /**< at sign */
+#define CC_EQUAL  (1<<25) /**< equal sign */
+#define CC_LESS_THAN  (1<<26) /**< less than sign */
+#define CC_GREATER_THAN   (1<<27) /**< greater than sign */
+#define CC_PIPE   (1<<28) /**< pipe */
+#define CC_QUESTION_MARK  (1<<29) /**< question mark */
+#define CC_ASTERISK   (1<<30) /**< asterisk */

 /* macro classes */
-#define CC_NAME   (CC_ALNUM|CC_UNDERBAR)
-#define CC_CRLF   (CC_CR|CC_NEWLINE)
+#define CC_NAME   (CC_ALNUM|CC_UNDERBAR) /**< alphanumeric plus 
underscore */
+#define CC_CRLF   (CC_CR|CC_NEWLINE) /**< carriage return or 
newline */

 bool char_class(const unsigned char c, const unsigned int flags);

 bool string_class(const char *str, const unsigned int inclusive, const 
unsigned int exclusive);

+/**
+ * Modifies a string in place by replacing certain classes of characters of it 
with a specified
+ * character.
+ *
+ * Guaranteed to not increase the length of the string.
+ * If replace is 0, characters are skipped instead of replaced.
+ *
+ * @param str The string to be modified.
+ * @param inclusive The character classes not to be replaced.
+ * @param exclusive Character classes to be replaced even if they are also in