Bug 24251 - False positive "Unterminated quoted string" error
Summary: False positive "Unterminated quoted string" error
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: checkbashisms (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-09 15:58 MSD by Sergey Kurakin
Modified: 2010-10-12 20:10 MSD (History)
0 users

See Also:


Attachments
checkbashisms fails on this script (49 bytes, application/octet-stream)
2010-10-12 20:06 MSD, Sergey Kurakin
no flags Details
checkbashisms processes this script successfully (49 bytes, application/octet-stream)
2010-10-12 20:08 MSD, Sergey Kurakin
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Kurakin 2010-10-09 15:58:25 MSD
Скрипт i2myspell из одноименного пакета:

$ checkbashisms /usr/bin/i2myspell
possible bashism in /usr/bin/i2myspell line 61 ([^] should be [!]):
s/\([^ ]*\).>.\([^,]*\)$/0 \2 \1/
possible bashism in /usr/bin/i2myspell line 62 ([^] should be [!]):
s/\([^ ]*\).>.-\([^,]*\),\(\-\)$/\2 0 \1/
possible bashism in /usr/bin/i2myspell line 63 ([^] should be [!]):
s/\([^ ]*\).>.-\([^,]*\),\(.*\)$/\2 \3 \1/' |
error: /usr/bin/i2myspell: Unterminated quoted string found, EOF reached. Wanted: <'>

Удалось выяснить, что ошибка с определением закрывающей кавычки происходит на строке 46 проверяемого скрипта, а всё остальное -- это уже последствия.

Ошибочно распознаваемая конструкция выглядит так:

sed 's#/# #g
s# #/#'

Запись конструкции в одну строку (sed 's#/# #g;s# #/#') проблемы не решает. Зато проблема решается заменой "#" на любой другой разделитель. Причем, достаточно заменить "#" только во втором шаблоне:

sed 's#/# #g
s| |/|'

Такая конструкция проблем не вызывает и проверяется успешно.
Comment 1 Vitaly Lipatov 2010-10-12 17:38:19 MSD
Если вы оформите предложение по исправлению checkbashisms в виде патча сюда и/или в mainstream, то я смогу его применить в новой сборке пакета.
Comment 2 Sergey Kurakin 2010-10-12 20:06:41 MSD
Created attachment 4607 [details]
checkbashisms fails on this script
Comment 3 Sergey Kurakin 2010-10-12 20:08:32 MSD
Created attachment 4608 [details]
checkbashisms processes this script successfully
Comment 4 Sergey Kurakin 2010-10-12 20:10:13 MSD
Был бы патч -- не было бы вопросов. Пока могу предоставить только testcase.