Initial commit
This commit is contained in:
115
slim/patches/slim-1.3.6-session-chooser.patch
Normal file
115
slim/patches/slim-1.3.6-session-chooser.patch
Normal file
@@ -0,0 +1,115 @@
|
||||
--- a/cfg.cpp 2013-10-01 18:38:05.000000000 -0400
|
||||
+++ b/cfg.cpp 2013-10-24 12:12:20.584103253 -0400
|
||||
@@ -274,14 +274,14 @@
|
||||
while (true) {
|
||||
string::const_iterator begin = s;
|
||||
while (*s != c && s != str.end()) { ++s; }
|
||||
- tmp = string(begin, s);
|
||||
- if (useEmpty || tmp.size() > 0)
|
||||
+ tmp = string(begin, s);
|
||||
+ if (useEmpty || tmp.size() > 0)
|
||||
v.push_back(tmp);
|
||||
if (s == str.end()) {
|
||||
break;
|
||||
}
|
||||
if (++s == str.end()) {
|
||||
- if (useEmpty)
|
||||
+ if (useEmpty)
|
||||
v.push_back("");
|
||||
break;
|
||||
}
|
||||
@@ -289,6 +289,7 @@
|
||||
}
|
||||
|
||||
void Cfg::fillSessionList(){
|
||||
+ string strSessionList = getOption("sessions");
|
||||
string strSessionDir = getOption("sessiondir");
|
||||
|
||||
sessions.clear();
|
||||
@@ -307,29 +308,29 @@
|
||||
struct stat oFileStat;
|
||||
|
||||
if (stat(strFile.c_str(), &oFileStat) == 0) {
|
||||
- if (S_ISREG(oFileStat.st_mode) &&
|
||||
- access(strFile.c_str(), R_OK) == 0){
|
||||
- ifstream desktop_file( strFile.c_str() );
|
||||
- if (desktop_file){
|
||||
- string line, session_name = "", session_exec = "";
|
||||
- while (getline( desktop_file, line )) {
|
||||
- if (line.substr(0, 5) == "Name=") {
|
||||
- session_name = line.substr(5);
|
||||
- if (!session_exec.empty())
|
||||
- break;
|
||||
- } else
|
||||
- if (line.substr(0, 5) == "Exec=") {
|
||||
- session_exec = line.substr(5);
|
||||
- if (!session_name.empty())
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
- desktop_file.close();
|
||||
- pair<string,string> session(session_name,session_exec);
|
||||
- sessions.push_back(session);
|
||||
- cout << session_exec << " - " << session_name << endl;
|
||||
- }
|
||||
-
|
||||
+ if (S_ISREG(oFileStat.st_mode) &&
|
||||
+ access(strFile.c_str(), R_OK) == 0){
|
||||
+ ifstream desktop_file( strFile.c_str() );
|
||||
+ if (desktop_file){
|
||||
+ string line, session_name = "", session_exec = "";
|
||||
+ while (getline( desktop_file, line )) {
|
||||
+ if (line.substr(0, 5) == "Name=") {
|
||||
+ session_name = line.substr(5);
|
||||
+ if (!session_exec.empty()) break;
|
||||
+ } else if (line.substr(0, 5) == "Exec=") {
|
||||
+ session_exec = line.substr(5);
|
||||
+ if (!session_name.empty()) break;
|
||||
+ }
|
||||
+ }
|
||||
+ desktop_file.close();
|
||||
+ if (!session_name.empty() && !session_exec.empty()) {
|
||||
+ pair<string,string> session(session_name,session_exec);
|
||||
+ sessions.push_back(session);
|
||||
+ } else if (access(strFile.c_str(), X_OK) == 0) {
|
||||
+ pair<string,string> session(string(pDirent->d_name),strFile);
|
||||
+ sessions.push_back(session);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -338,8 +339,18 @@
|
||||
}
|
||||
|
||||
if (sessions.empty()){
|
||||
- pair<string,string> session("","");
|
||||
- sessions.push_back(session);
|
||||
+ if (strSessionList.empty()) {
|
||||
+ pair<string,string> session("","");
|
||||
+ sessions.push_back(session);
|
||||
+ } else {
|
||||
+ // iterate through the split of the session list
|
||||
+ vector<string> sessit;
|
||||
+ split(sessit,strSessionList,',',false);
|
||||
+ for (vector<string>::iterator it = sessit.begin(); it != sessit.end(); ++it) {
|
||||
+ pair<string,string> session(*it,*it);
|
||||
+ sessions.push_back(session);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
--- a/app.cpp 2013-10-24 12:16:59.870111072 -0400
|
||||
+++ b/app.cpp 2013-10-24 12:29:59.899132910 -0400
|
||||
@@ -377,10 +377,6 @@
|
||||
LoginPanel->SetName(cfg->getOption("default_user") );
|
||||
}
|
||||
|
||||
- if (firstloop) {
|
||||
- LoginPanel->SwitchSession();
|
||||
- }
|
||||
-
|
||||
if (!AuthenticateUser(focuspass && firstloop)){
|
||||
panelclosed = 0;
|
||||
firstloop = false;
|
||||
Reference in New Issue
Block a user