You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2021/03/04 17:48:53 UTC

[GitHub] [incubator-nuttx] gustavonihei opened a new pull request #2980: include: Add iso646.h for alternative spellings

gustavonihei opened a new pull request #2980:
URL: https://github.com/apache/incubator-nuttx/pull/2980


   ## Summary
   Add <iso646.h> header for supporting alternative spellings as defined in the ISO C Standard:
   
   https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/iso646.h.html
   
   ## Impact
   No impact, new feature.
   
   ## Testing
   Tested locally using a simple example:
   ```
   #define STR_BOOL(OP)  ((OP) ? "TRUE" : "FALSE")
   
   int main(int argc, char *argv[])
   {
     int a = 1;
     int b = 3;
     int x = 5;
     int y = 7;
   
     printf("a = %d\n", a);
     printf("b = %d\n", b);
     printf("x = %d\n", x);
     printf("y = %d\n", y);
   
     printf("\n");
   
     printf("(a < b) = %s\n", STR_BOOL(a < b));
     printf("not (a < b) = %s\n", STR_BOOL(not (a < b)));
     printf("(a < b) or (x > y) = %s\n", STR_BOOL((a < b) or (x > y)));
     printf("(a < b) and (x < y) = %s\n", STR_BOOL((a < b) and (x < y)));
   
     printf("\n");
   
     printf("x bitand y = %d\n", x bitand y);
     printf("b bitor x = %d\n", b bitor x);
     printf("x xor b = %d\n", x xor b);
   
     printf("\n");
   
     printf("compl a = %d (%x)\n", compl a, compl a);
   
     return 0;
   }
   ```
   The result is:
   ```
   nsh> iso646
   a = 1
   b = 3
   x = 5
   y = 7
   
   (a < b) = TRUE
   not (a < b) = FALSE
   (a < b) or (x > y) = TRUE
   (a < b) and (x < y) = TRUE
   
   x bitand y = 5
   b bitor x = 7
   x xor b = 6
   
   compl a = -2 (fffffffe)
   ```


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] xiaoxiang781216 merged pull request #2980: include: Add iso646.h for alternative spellings

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 merged pull request #2980:
URL: https://github.com/apache/incubator-nuttx/pull/2980


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] saramonteiro commented on a change in pull request #2980: include: Add iso646.h for alternative spellings

Posted by GitBox <gi...@apache.org>.
saramonteiro commented on a change in pull request #2980:
URL: https://github.com/apache/incubator-nuttx/pull/2980#discussion_r587927181



##########
File path: include/iso646.h
##########
@@ -0,0 +1,71 @@
+/****************************************************************************
+ * include/iso646.h
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __INCLUDE_ISO646_H
+#define __INCLUDE_ISO646_H
+
+#ifdef __cplusplus
+#define EXTERN extern "C"
+extern "C"
+{
+#else
+#define EXTERN extern
+#endif
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/* The <iso646.h> header shall define the following eleven macros
+ * (on the left) that expand to the corresponding tokens (on the right):
+ *
+ * and          &&
+ * and_eq       &=
+ * bitand       &
+ * bitor        |
+ * compl        ~
+ * not          !
+ * not_eq       !=
+ * or           ||
+ * or_eq        |=
+ * xor          ^
+ * xor_eq       ^=
+ *
+ * Reference: Opengroup.org
+ */
+
+#define and	        &&
+#define and_eq	    &=
+#define bitand	    &
+#define bitor	    |
+#define compl	    ~
+#define not	        !
+#define not_eq	    !=
+#define or	        ||
+#define or_eq	    |=
+#define xor	        ^
+#define xor_eq	    ^=

Review comment:
       Can you please align the tokens?
   Tks




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] gustavonihei commented on a change in pull request #2980: include: Add iso646.h for alternative spellings

Posted by GitBox <gi...@apache.org>.
gustavonihei commented on a change in pull request #2980:
URL: https://github.com/apache/incubator-nuttx/pull/2980#discussion_r587934742



##########
File path: include/iso646.h
##########
@@ -0,0 +1,71 @@
+/****************************************************************************
+ * include/iso646.h
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __INCLUDE_ISO646_H
+#define __INCLUDE_ISO646_H
+
+#ifdef __cplusplus
+#define EXTERN extern "C"
+extern "C"
+{
+#else
+#define EXTERN extern
+#endif
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/* The <iso646.h> header shall define the following eleven macros
+ * (on the left) that expand to the corresponding tokens (on the right):
+ *
+ * and          &&
+ * and_eq       &=
+ * bitand       &
+ * bitor        |
+ * compl        ~
+ * not          !
+ * not_eq       !=
+ * or           ||
+ * or_eq        |=
+ * xor          ^
+ * xor_eq       ^=
+ *
+ * Reference: Opengroup.org
+ */
+
+#define and	        &&
+#define and_eq	    &=
+#define bitand	    &
+#define bitor	    |
+#define compl	    ~
+#define not	        !
+#define not_eq	    !=
+#define or	        ||
+#define or_eq	    |=
+#define xor	        ^
+#define xor_eq	    ^=

Review comment:
       I haven't noticed that the file was committed with tabs instead of whitespaces...
   Thanks for the feedback!




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org