poke-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 2/3] ios: Move file name normalization logic into ios-dev.h


From: Egeyar Bagcioglu
Subject: Re: [PATCH 2/3] ios: Move file name normalization logic into ios-dev.h
Date: Wed, 15 Jul 2020 00:30:41 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0



On 7/14/20 1:50 AM, Jose E. Marchesi wrote:
     On 7/12/20 11:32 AM, Jose E. Marchesi wrote:
     > Hi Ege.
     >
     >      +#define IOS_FILE_HANDLER_NORMALIZE(handler, newhandler)            
     \
     >      +{                                                                  
     \
     >      +  /* File devices are special, in the sense that they accept any   
     \
     >      +     handler. However, we want to ensure that the ios name is      
     \
     >      +     unambiguous from other ios devices, by prepending ./ to 
relative   \
     >      +     names that might otherwise be confusing.  */                  
     \
     >      +  static const char safe[] =                                       
     \
     >      +    "abcdefghijklmnopqrstuvwxyz"                                   
   \
     >      +    "ABCDEFGHIJKLMNOPQRSTUVWXYZ"                                   
   \
     >      +    "0123456789/+_-";                                              
   \
     >      +                                                                   
     \
     >      +  if (handler[0] == '/' || strspn (handler, safe) == strlen 
(handler))  \
     >      +    (newhandler) = strdup ((handler));                             
     \
     >      +                                                                   
     \
     >      +  if (asprintf (&(newhandler), "./%s", (handler)) == -1)          \
     >      +    (newhandler) = NULL;                                           
     \
     >      +}
     >
     > Maybe it would be better to use a static inline function here?
     > Otherwise, please surround the macro body with do..while(0)
     >
     > Other than that, OK for master.
     > Thanks! :)
I am not happy with the implicit declaration warnings due to asprintf,
     with including stdio.h here or adding pragmas.
     I am keeping it as the macro for now. In nearby-future, if
     ios-dev-stream and ios-dev-file end up sharing more code, we can
     consider getting those two a new .h file exclusively.
I added the do-while upon your request and pushed the changes. I just saw that the patch introduces a regression:

FAIL: poke.cmd/file-mode.pk output pattern test

I just pushed the fix below to master, that fixes it:

diff --git a/ChangeLog b/ChangeLog
index a69683a8..f06c088a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2020-07-14  Jose E. Marchesi  <jemarch@gnu.org>
+
+       * libpoke/ios-dev.h (IOS_FILE_HANDLER_NORMALIZE): Fix logic.
+
  2020-07-14  Jose E. Marchesi  <jemarch@gnu.org>
* libpoke/pkl-gen.c (pkl_gen_pr_map): Fix subpassing on the map
diff --git a/libpoke/ios-dev.h b/libpoke/ios-dev.h
index 6689a243..d2f42f0f 100644
--- a/libpoke/ios-dev.h
+++ b/libpoke/ios-dev.h
@@ -100,7 +100,6 @@ do {                                                        
                \
                                                                        \
    if (handler[0] == '/' || strspn (handler, safe) == strlen (handler))        
\
      (newhandler) = strdup ((handler));                                        
\
-                                                                       \
-  if (asprintf (&(newhandler), "./%s", (handler)) == -1)         \
+  else if (asprintf (&(newhandler), "./%s", (handler)) == -1)            \
      (newhandler) = NULL;                                              \
  } while (0)

I see, I suppose the original code was just returning there. My apologies and thanks for fixing that.

Ege




reply via email to

[Prev in Thread] Current Thread [Next in Thread]