@@ -17,38 +17,41 @@ const char* ffDetectInitSystem(FFInitSystemResult* result)
1717 ffStrbufSetS (& result -> exe , buf );
1818 }
1919
20- if (ffStrbufEqualS ( & result -> name , "systemd" ) )
20+ if (instance . config . general . detectVersion )
2121 {
22- if (ffProcessAppendStdOut (& result -> version , (char * const []) {
23- ffStrbufEndsWithS (& result -> exe , "/systemd" ) ? result -> exe .chars : "systemctl" , // use exe path in case users have another systemd installed
24- "--version" ,
25- NULL ,
26- }) == NULL && result -> version .length )
22+ if (ffStrbufEqualS (& result -> name , "systemd" ))
2723 {
28- uint32_t iStart = ffStrbufFirstIndexC (& result -> version , '(' );
29- if (iStart < result -> version .length )
24+ if (ffProcessAppendStdOut (& result -> version , (char * const []) {
25+ ffStrbufEndsWithS (& result -> exe , "/systemd" ) ? result -> exe .chars : "systemctl" , // use exe path in case users have another systemd installed
26+ "--version" ,
27+ NULL ,
28+ }) == NULL && result -> version .length )
3029 {
31- uint32_t iEnd = ffStrbufNextIndexC (& result -> version , iStart + 1 , ')' );
32- ffStrbufSubstrBefore (& result -> version , iEnd );
33- ffStrbufSubstrAfter (& result -> version , iStart );
30+ uint32_t iStart = ffStrbufFirstIndexC (& result -> version , '(' );
31+ if (iStart < result -> version .length )
32+ {
33+ uint32_t iEnd = ffStrbufNextIndexC (& result -> version , iStart + 1 , ')' );
34+ ffStrbufSubstrBefore (& result -> version , iEnd );
35+ ffStrbufSubstrAfter (& result -> version , iStart );
36+ }
3437 }
3538 }
36- }
37- else if (ffStrbufEqualS (& result -> name , "launchd" ))
38- {
39- if (ffProcessAppendStdOut (& result -> version , (char * const []) {
40- "/bin/launchctl" ,
41- "version" ,
42- NULL ,
43- }) == NULL && result -> version .length )
39+ else if (ffStrbufEqualS (& result -> name , "launchd" ))
4440 {
45- uint32_t iStart = ffStrbufFirstIndexS (& result -> version , "Version " );
46- if (iStart < result -> version .length )
41+ if (ffProcessAppendStdOut (& result -> version , (char * const []) {
42+ "/bin/launchctl" ,
43+ "version" ,
44+ NULL ,
45+ }) == NULL && result -> version .length )
4746 {
48- iStart += (uint32_t ) strlen ("Version" );
49- uint32_t iEnd = ffStrbufNextIndexC (& result -> version , iStart + 1 , ':' );
50- ffStrbufSubstrBefore (& result -> version , iEnd );
51- ffStrbufSubstrAfter (& result -> version , iStart );
47+ uint32_t iStart = ffStrbufFirstIndexS (& result -> version , "Version " );
48+ if (iStart < result -> version .length )
49+ {
50+ iStart += (uint32_t ) strlen ("Version" );
51+ uint32_t iEnd = ffStrbufNextIndexC (& result -> version , iStart + 1 , ':' );
52+ ffStrbufSubstrBefore (& result -> version , iEnd );
53+ ffStrbufSubstrAfter (& result -> version , iStart );
54+ }
5255 }
5356 }
5457 }
0 commit comments