Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 3684 - Не экранируется символ "\" в имени переменной при экспорте из реестра   Make a simular bug
Summary: Не экранируется символ "\" в имени переменной при экспорте из реестра
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Общее (show other bugs)
Version: 2.0
Hardware: PC All
: P3 major
Target Milestone: ---
Assignee: Andrey Vusik
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 5157
Blocks: 42 5618
  Show dependency treegraph
 
In work:
Reported: 2009-03-18 20:52 MSK by Денис Баранов
Modified: 2011-01-14 16:08 MSK (History)
4 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Денис Баранов 2009-03-18 20:52:36 MSK
Если в значении ключа есть символ "\", то при импорте в реестр этот символ стирается, а в консоли вообщение:
Warning! Unrecognized escape sequence: \a'

Увидеть можно в бутылке rt/9790, там сформирован 123.reg файл которые нужно только импортировать в реестре.
Comment 1 Vitaly Lipatov 2009-03-18 21:40:02 MSK
Извольте пожалуйста минимальный пример reg-файла прикладывать к баге.
Comment 2 Andrey Vusik 2009-03-18 21:49:35 MSK
(In reply to comment #1)
> Извольте пожалуйста минимальный пример
> reg-файла прикладывать к баге.
> 

В примере в бутылке:

REGEDIT4

[HKEY_CLASSES_ROOT\.avi]
@="mplayer.etersoft"
"Content Type's123"="video\avi"
Comment 3 Константин Кондратюк 2009-03-19 12:30:13 MSK
Мне кажется, что правильное написание ключа должно быть: video/avi
У вас в примере слеш в обратную сторону.
Comment 4 Константин Кондратюк 2009-03-19 12:35:11 MSK
А в ключах, где присутствуют '\', они должны экранироваться. Например:


REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Classes\calc.etersoft\DefaultIcon]
@="c:\\windows\\icons\\scalc.ico"
Comment 5 Константин Кондратюк 2009-03-19 12:36:10 MSK
Считаю, что ошибки не существует.
Comment 6 Денис Баранов 2009-03-19 15:34:03 MSK
(In reply to comment #5)
> Считаю, что ошибки не существует.
> 

Согласен, просто клиент сбил с толку. В Windows при экспорте "\" тоже экранируется "\\".
Comment 7 Денис Баранов 2009-03-19 18:04:06 MSK
В общем проблема в том что при экспорте символ "\" у нас не экранируется.
Comment 8 Константин Кондратюк 2009-03-19 18:05:30 MSK
Не верю
Comment 9 Константин Кондратюк 2009-03-19 18:06:40 MSK
При экспорте или при импорте?

Строку 
@="c:\\windows\\icons\\scalc.ico"
я получил экспортом из regedit
Comment 10 Денис Баранов 2009-03-19 19:55:37 MSK
(In reply to comment #9)
> При экспорте или при импорте?
> 
> Строку 
> @="c:\\windows\\icons\\scalc.ico"
> я получил экспортом из regedit
> 
Выяснилось что при экспорте из [HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles] проявляется эта ошибка.
Comment 11 Константин Кондратюк 2009-03-20 13:02:46 MSK
Не экранируются '\' в имени переменной. Например:

В wine:
[HKEY_CLASSES_ROOT\.aaa\1]
"test\123"="c:\\program files"

В windows:
[HKEY_CLASSES_ROOT\.aaa\1]
"test\\123"="c:\\program files"

Comment 12 Константин Кондратюк 2009-03-20 18:14:30 MSK
Ошибка - в функции export_hkey().

Именем ключа может быть строка, содержащая '\', а в export_hkey() имя ключа записывается обычным копированием. Экранирование спецсимволов реализовано только для значения ключа формата REG_SZ
Comment 13 Константин Кондратюк 2009-03-23 10:52:50 MSK
commit aff530ecbd1e0b0c0b5a569da0bbf4f960742d0b
Author: Konstantin Kondratyuk <kondratyuk@etersoft.ru>
Date:   Mon Mar 23 10:43:55 2009 +0300

    regedit: backslash escaping
Comment 14 Денис Баранов 2009-03-29 19:45:03 MSD
wine-etersoft-1.0.10-alt15
wine-etersoft-sql-1.0.10-alt10
Принято.
Comment 15 Виталий Перов 2010-06-15 17:26:41 MSD
Откатил патч:
commit e3bfff0a6233dd7fac5931a3ad55ddd0b8144b62
Author: Konstantin Kondratyuk <kondratyuk@etersoft.ru>
Date:   Mon Mar 23 10:43:55 2009 +0300

    regedit: backslash escaping


В wine-pure появился очень похожий патч. Возможно он исправляет проблему.
Author: Andrew Eikum <aeikum@codeweavers.com>
Date:   Mon Jun 7 16:07:48 2010 -0500

    regedit: Escape the value name portion during export.


Требуется проверить.
Comment 16 Andrey Vusik 2011-01-13 21:12:36 MSK
1.0.12-eter7.42/15

Проблемы нет.
Comment 17 Денис Баранов 2011-01-13 21:41:47 MSK
(В ответ на comment #16)
> 1.0.12-eter7.42/15
> 
> Проблемы нет.
В 1.0.12 естественно работает.

Еще раз, для тех кто в танке: "Все баги которые блокируют багу 5618 нужно проверять на WINE@Etersoft eterhack".
Comment 18 Andrey Vusik 2011-01-14 14:38:53 MSK
В школьном все в порядке
School 1.7.0-eter1/4
Comment 19 Денис Баранов 2011-01-14 16:08:48 MSK
Закрываю.