Thanks for the pointers, I have resubmitted the patch taking these into account.
Index: dlls/msi/msipriv.h
RCS file: /home/wine/wine/dlls/msi/msipriv.h,v retrieving revision 1.52 diff -u -r1.52 msipriv.h --- dlls/msi/msipriv.h 11 Apr 2005 12:47:20 -0000 1.52 +++ dlls/msi/msipriv.h 18 Apr 2005 18:57:52 -0000 @@ -357,6 +357,7 @@ extern UINT MSIREG_OpenFeatures(HKEY* key); extern UINT MSIREG_OpenFeaturesKey(LPCWSTR szProduct, HKEY* key, BOOL create); extern UINT MSIREG_OpenComponents(HKEY* key); +extern UINT MSIREG_OpenUserComponentsKey(LPCWSTR szComponent, HKEY* key, BOOL create); extern UINT MSIREG_OpenComponentsKey(LPCWSTR szComponent, HKEY* key, BOOL create); extern UINT MSIREG_OpenProductsKey(LPCWSTR szProduct, HKEY* key, BOOL create); extern UINT MSIREG_OpenUserFeaturesKey(LPCWSTR szProduct, HKEY* key, BOOL create);
Can't we have one or two functions that do the same thing as all the above to avoid the duplication of similar code?
These functions are pretty small, and there is not really any substantial duplicated code. I think it is just a coding preference. My natural tendency is to make a larger range of smaller functions with fewer parameters instead of one more general function with obscure parameters and added complexity.
-aric