@@ -59,30 +59,32 @@ FF_MAYBE_UNUSED static bool detectArmbianVersion(FFOSResult* result)
59
59
return true;
60
60
}
61
61
62
- FF_MAYBE_UNUSED static void getUbuntuFlavour (FFOSResult * result )
62
+ // Returns false if PrettyName should be updated by caller
63
+ FF_MAYBE_UNUSED static bool getUbuntuFlavour (FFOSResult * result )
63
64
{
64
65
if (detectArmbianVersion (result ))
65
- return ;
66
+ return true ;
66
67
else if (ffStrbufStartsWithS (& result -> prettyName , "Linux Lite " ))
67
68
{
68
69
ffStrbufSetStatic (& result -> name , "Linux Lite" );
69
70
ffStrbufSetStatic (& result -> id , "linuxlite" );
70
71
ffStrbufSetStatic (& result -> idLike , "ubuntu" );
71
72
ffStrbufSetS (& result -> versionID , result -> prettyName .chars + strlen ("Linux Lite " ));
72
- return ;
73
+ return true ;
73
74
}
74
75
else if (ffStrbufStartsWithS (& result -> prettyName , "Rhino Linux " ))
75
76
{
76
77
ffStrbufSetStatic (& result -> name , "Rhino Linux" );
77
78
ffStrbufSetStatic (& result -> id , "rhinolinux" );
78
79
ffStrbufSetStatic (& result -> idLike , "ubuntu" );
79
80
ffStrbufSetS (& result -> versionID , result -> prettyName .chars + strlen ("Rhino Linux " ));
80
- return ;
81
+ return true ;
81
82
}
82
83
else if (ffStrbufStartsWithS (& result -> prettyName , "VanillaOS " ))
83
84
{
84
85
ffStrbufSetStatic (& result -> id , "vanilla" );
85
86
ffStrbufSetStatic (& result -> idLike , "ubuntu" );
87
+ return true;
86
88
}
87
89
88
90
if (ffPathExists ("/usr/bin/lliurex-version" , FF_PATHTYPE_FILE ))
@@ -97,93 +99,86 @@ FF_MAYBE_UNUSED static void getUbuntuFlavour(FFOSResult* result)
97
99
ffStrbufTrimRightSpace (& result -> version );
98
100
ffStrbufSetF (& result -> prettyName , "LliureX %s" , result -> version .chars );
99
101
ffStrbufSetStatic (& result -> idLike , "ubuntu" );
100
- return ;
102
+ return true ;
101
103
}
102
104
103
105
const char * xdgConfigDirs = getenv ("XDG_CONFIG_DIRS" );
104
106
if (!ffStrSet (xdgConfigDirs ))
105
- return ;
107
+ return false ;
106
108
107
109
if (ffStrContains (xdgConfigDirs , "kde" ) || ffStrContains (xdgConfigDirs , "plasma" ) || ffStrContains (xdgConfigDirs , "kubuntu" ))
108
110
{
109
111
ffStrbufSetStatic (& result -> name , "Kubuntu" );
110
- ffStrbufSetF (& result -> prettyName , "Kubuntu %s" , result -> version .chars );
111
112
ffStrbufSetStatic (& result -> id , "kubuntu" );
112
113
ffStrbufSetStatic (& result -> idLike , "ubuntu" );
113
- return ;
114
+ return false ;
114
115
}
115
116
116
117
if (ffStrContains (xdgConfigDirs , "xfce" ) || ffStrContains (xdgConfigDirs , "xubuntu" ))
117
118
{
118
119
ffStrbufSetStatic (& result -> name , "Xubuntu" );
119
- ffStrbufSetF (& result -> prettyName , "Xubuntu %s" , result -> version .chars );
120
120
ffStrbufSetStatic (& result -> id , "xubuntu" );
121
121
ffStrbufSetStatic (& result -> idLike , "ubuntu" );
122
- return ;
122
+ return false ;
123
123
}
124
124
125
125
if (ffStrContains (xdgConfigDirs , "lxqt" ) || ffStrContains (xdgConfigDirs , "lubuntu" ))
126
126
{
127
127
ffStrbufSetStatic (& result -> name , "Lubuntu" );
128
- ffStrbufSetF (& result -> prettyName , "Lubuntu %s" , result -> version .chars );
129
128
ffStrbufSetStatic (& result -> id , "lubuntu" );
130
129
ffStrbufSetStatic (& result -> idLike , "ubuntu" );
131
- return ;
130
+ return false ;
132
131
}
133
132
134
133
if (ffStrContains (xdgConfigDirs , "budgie" ))
135
134
{
136
135
ffStrbufSetStatic (& result -> name , "Ubuntu Budgie" );
137
- ffStrbufSetF (& result -> prettyName , "Ubuntu Budgie %s" , result -> version .chars );
138
136
ffStrbufSetStatic (& result -> id , "ubuntu-budgie" );
139
137
ffStrbufSetStatic (& result -> idLike , "ubuntu" );
140
- return ;
138
+ return false ;
141
139
}
142
140
143
141
if (ffStrContains (xdgConfigDirs , "cinnamon" ))
144
142
{
145
143
ffStrbufSetStatic (& result -> name , "Ubuntu Cinnamon" );
146
- ffStrbufSetF (& result -> prettyName , "Ubuntu Cinnamon %s" , result -> version .chars );
147
144
ffStrbufSetStatic (& result -> id , "ubuntu-cinnamon" );
148
145
ffStrbufSetStatic (& result -> idLike , "ubuntu" );
149
- return ;
146
+ return false ;
150
147
}
151
148
152
149
if (ffStrContains (xdgConfigDirs , "mate" ))
153
150
{
154
151
ffStrbufSetStatic (& result -> name , "Ubuntu MATE" );
155
- ffStrbufSetF (& result -> prettyName , "Ubuntu MATE %s" , result -> version .chars );
156
152
ffStrbufSetStatic (& result -> id , "ubuntu-mate" );
157
153
ffStrbufSetStatic (& result -> idLike , "ubuntu" );
158
- return ;
154
+ return false ;
159
155
}
160
156
161
157
if (ffStrContains (xdgConfigDirs , "studio" ))
162
158
{
163
159
ffStrbufSetStatic (& result -> name , "Ubuntu Studio" );
164
- ffStrbufSetF (& result -> prettyName , "Ubuntu Studio %s" , result -> version .chars );
165
160
ffStrbufSetStatic (& result -> id , "ubuntu-studio" );
166
161
ffStrbufSetStatic (& result -> idLike , "ubuntu" );
167
- return ;
162
+ return false ;
168
163
}
169
164
170
165
if (ffStrContains (xdgConfigDirs , "sway" ))
171
166
{
172
167
ffStrbufSetStatic (& result -> name , "Ubuntu Sway" );
173
- ffStrbufSetF (& result -> prettyName , "Ubuntu Sway %s" , result -> version .chars );
174
168
ffStrbufSetStatic (& result -> id , "ubuntu-sway" );
175
169
ffStrbufSetStatic (& result -> idLike , "ubuntu" );
176
- return ;
170
+ return false ;
177
171
}
178
172
179
173
if (ffStrContains (xdgConfigDirs , "touch" ))
180
174
{
181
175
ffStrbufSetStatic (& result -> name , "Ubuntu Touch" );
182
- ffStrbufSetF (& result -> prettyName , "Ubuntu Touch %s" , result -> version .chars );
183
176
ffStrbufSetStatic (& result -> id , "ubuntu-touch" );
184
177
ffStrbufSetStatic (& result -> idLike , "ubuntu" );
185
- return ;
178
+ return false ;
186
179
}
180
+
181
+ return false;
187
182
}
188
183
189
184
FF_MAYBE_UNUSED static void getDebianVersion (FFOSResult * result )
@@ -374,7 +369,10 @@ void ffDetectOSImpl(FFOSResult* os)
374
369
375
370
#if __linux__ || __GNU__
376
371
if (ffStrbufEqualS (& os -> id , "ubuntu" ))
377
- getUbuntuFlavour (os );
372
+ {
373
+ if (!getUbuntuFlavour (os ))
374
+ ffStrbufSetF (& os -> prettyName , "%s %s" , os -> name .chars , os -> version .chars ); // os->version contains code name
375
+ }
378
376
else if (ffStrbufEqualS (& os -> id , "debian" ))
379
377
{
380
378
if (!detectDebianDerived (os ))
0 commit comments