From 2c8cc1a444c9c2b84f69f5d4bfbdf3f97a1b5479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= Date: Tue, 6 Nov 2012 19:43:04 +0100 Subject: [PATCH 1/4] Fixed bug - '()' is not recognized as empty array --- src/cdm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cdm b/src/cdm index 2f13095..a17cfe8 100755 --- a/src/cdm +++ b/src/cdm @@ -85,7 +85,7 @@ cktimeout=${cktimeout:-30} # Offer all available sessions in /etc/X11/Sessions, # if binlist if not explicitly set in cdmrc. -if [[ "${#binlist[@]}" == 0 ]]; then +if [[ "$binlist" == "()" ]]; then binlist=($(ls /etc/X11/Sessions)) flaglist=($(sed 's/[[:digit:]]\+/X/g' <<< ${!flaglist[*]})) namelist=(${binlist[@]^}) From ef8fe99bc9f7cd79fd2ef084c9e5021b09f21141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= Date: Tue, 6 Nov 2012 21:00:04 +0100 Subject: [PATCH 2/4] fixed bug: flaglist not initialized properly --- src/cdm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cdm b/src/cdm index a17cfe8..b617080 100755 --- a/src/cdm +++ b/src/cdm @@ -87,7 +87,9 @@ cktimeout=${cktimeout:-30} if [[ "$binlist" == "()" ]]; then binlist=($(ls /etc/X11/Sessions)) - flaglist=($(sed 's/[[:digit:]]\+/X/g' <<< ${!flaglist[*]})) + for ((i=0; i<${#binlist[@]}; i++)); do + declare flaglist[$i]="X" + done namelist=(${binlist[@]^}) fi From 26f157d868b6e5a4dbfa9f1633463af560d00a94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= Date: Tue, 6 Nov 2012 22:44:36 +0100 Subject: [PATCH 3/4] fixed bug: binlist should contain full path because startx expects it --- src/cdm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cdm b/src/cdm index b617080..18c7148 100755 --- a/src/cdm +++ b/src/cdm @@ -86,7 +86,7 @@ cktimeout=${cktimeout:-30} # if binlist if not explicitly set in cdmrc. if [[ "$binlist" == "()" ]]; then - binlist=($(ls /etc/X11/Sessions)) + binlist=($(find /etc/X11/Sessions -maxdepth 1 -type f)) for ((i=0; i<${#binlist[@]}; i++)); do declare flaglist[$i]="X" done From 0931bb698f8f120599c176c9bcd518a534f3fd19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= Date: Tue, 6 Nov 2012 23:02:52 +0100 Subject: [PATCH 4/4] but namelist should really contain only the basename --- src/cdm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cdm b/src/cdm index 18c7148..3663685 100755 --- a/src/cdm +++ b/src/cdm @@ -89,8 +89,8 @@ if [[ "$binlist" == "()" ]]; then binlist=($(find /etc/X11/Sessions -maxdepth 1 -type f)) for ((i=0; i<${#binlist[@]}; i++)); do declare flaglist[$i]="X" + declare namelist[$i]=$(basename ${binlist[$i]}) done - namelist=(${binlist[@]^}) fi # Generate the main menu.