@@ -52,37 +52,46 @@ uint64_t ReadUint64File(const char *Dir, const char *File)
5252}
5353
5454
55- char * LookupDevNode (char * RetStr , const char * Path , const char * SubDir )
55+ char * LookupDevNode (char * RetStr , const char * Path , const char * SubDir , const char * PostFix )
5656{
57- char * Tempstr = NULL ;
58- glob_t Glob ;
57+ char * Tempstr = NULL ;
58+ glob_t Glob ;
5959
60- RetStr = CopyStr (RetStr , "" );
61- Tempstr = MCopyStr (Tempstr , Path , "/" , SubDir , "/*" , NULL );
60+ RetStr = CopyStr (RetStr , "" );
61+ Tempstr = MCopyStr (Tempstr , Path , "/" , SubDir , "/" , PostFix , NULL );
6262 glob (Tempstr , 0 , 0 , & Glob );
6363 if (Glob .gl_pathc > 0 )
6464 {
65- RetStr = CopyStr (RetStr , GetBasename (Glob .gl_pathv [0 ]));
66- StripTrailingWhitespace (RetStr );
67- globfree (& Glob );
65+ RetStr = CopyStr (RetStr , GetBasename (Glob .gl_pathv [0 ]));
66+ StripTrailingWhitespace (RetStr );
67+ globfree (& Glob );
6868 }
6969
70- Destroy (Tempstr );
70+ Destroy (Tempstr );
7171
72- return (RetStr );
72+ return (RetStr );
7373}
7474
7575
7676void LookupAnyDevNode (TDevice * dev , const char * Path )
7777{
78- if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "block" );
79- if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "net" );
80- if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "bluetooth" );
81- if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "tty" );
82- if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "input" );
83- if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "sound" );
84- if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "graphics" );
85- if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "hwmon" );
78+ char * Tempstr = NULL ;
79+
80+ if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "block" ,"*" );
81+ if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "net" ,"*" );
82+ if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "bluetooth" ,"*" );
83+ if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "tty" ,"*" );
84+ if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "sound" ,"*" );
85+ if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "graphics" ,"*" );
86+ if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "hwmon" ,"*" );
87+ if (! StrValid (dev -> DevNode )) dev -> DevNode = LookupDevNode (dev -> DevNode , Path , "input" , "*/event*" );
88+ if (! StrValid (dev -> DevNode ))
89+ {
90+ Tempstr = MCopyStr (Tempstr , Path , "/*/*/" , NULL );
91+ dev -> DevNode = LookupDevNode (dev -> DevNode , Tempstr , "input" , "*/event*" );
92+ }
93+
94+ Destroy (Tempstr );
8695}
8796
8897
0 commit comments