Курощение nomachine клиента - за шаг до ... ((1С, wine@Etersoft, freenx, NXClient for Windows))

Модераторы: dimbor, Модераторы разделов

dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

masterhide опять вогнал меня в сомнения: господа, скажите, у кого-нить работает cut/paste под связкой - мой вин-клиент, патченный сервер, вайн 1.0.9.?
Сам проверять не хочу, т.к. эксплуатацию 1.0.9. завязал из-за вышеописанных задержек закрытия и "fixme".

P.S.: bsavelev! Спасибо за 3.3.0. Своевременно.
Спасибо сказали:
bsavelev
Сообщения: 231
ОС: Debian

Re: Курощение nomachine клиента - за шаг до ...

Сообщение bsavelev »

у меня не работает. причем даже без вайна-(
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

bsavelev писал(а):
01.12.2008 11:09
у меня не работает. причем даже без вайна-(

Вопрос как-раз про вайн 1.0.9. Без вайна copy не работает (знаки вопроса).
Итальянцы не реализовывали ConvertRequest из ICCCM, поэтому конвертация из/в CompoundText там делается оч оригинально и не всегда. 1.0.8. ведет себя не совсем "по-линуксовски" и позволяет пропихнуть CP1251 через nx без преобразования только из-за недоделанности nx. Если вайн 1.0.9 стал вести себя как лин-приложения, то могут быть косяки. Вот в чем вопрос.
Спасибо сказали:
BlizZz
Сообщения: 104
ОС: OpenSuSE 11.0, Ubuntu 8.10

Re: Курощение nomachine клиента - за шаг до ...

Сообщение BlizZz »

OpenSuse 11.0 + FreeNX 0.7.4 / NX 3.2.0 от Etersoft (т.е. патченный) + Wine 1.0.9 + NXClient 3.2.0.13 (с патченным NXWin.exe r10)

Copy/paste: Windows -> NX (wine) - работает, из NX (wine) обратно в Windows - не работает.
C 1.0.8 к сожалению проверить пока не могу, но полагаю там все должно работать.

Есть ли шанс, что заработает с 1.0.9?
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

BlizZz писал(а):
01.12.2008 19:19
OpenSuse 11.0 + FreeNX 0.7.4 / NX 3.2.0 от Etersoft (т.е. патченный) + Wine 1.0.9 + NXClient 3.2.0.13 (с патченным NXWin.exe r10)
Copy/paste: Windows -> NX (wine) - работает, из NX (wine) обратно в Windows - не работает.

Если неприятность может случится - она случается (С)
BlizZz писал(а):
01.12.2008 19:19
C 1.0.8 к сожалению проверить пока не могу, но полагаю там все должно работать.

Да, там работает. Даже уже и с 3.3.0.
BlizZz писал(а):
01.12.2008 19:19
Есть ли шанс, что заработает с 1.0.9?

Шанс, он не получка, не аванс... (С)
Конечно он есть. В свободное от нетрадиционного секса с пользователями время занимаюсь доделкой клиента 3.3.0. Кое-что уже перенес. Сейчас парюсь с переносом нового метода отрисовки и исправлением ошибок позиционирования рутлеса. Просто пропатчить не выходит. Деятели из номашин там дофига наисправляли таким-же (как у меня) тупым методом заведения глобальных переменных. Пытаюсь унифицировать хотя б свой код .
На 2-ой очереди cut/paste (опять ICCCM читать, бр-р-р...). Что-то мне подсказывает - как только допилю copy из Лин, то и в 1.0.9 станет усе хорошо. На второй очереди потому, что рутлес приоритетнее. Под ним у меня работают. Пока под 1.0.8.
На третее хочется синхронизации нумлока. Именно синхронизации. Кой-какие идейки проблескивают.
На четвертое хочется уяснить, надо ли переносить в клиент 3.3.0 мой "мышиный" код рутлес. Они там свой здорово переписали. К пуговицам претензии есть? Поведение мыши в оригинальном 3.3.0 под вин всех устраивет?

Местные активисты (BaBL, Warlomak, Djelf, bsavelev...), попросите пжалста у Etersoft жалобную книгу и крупными буквами туда запишите про задержки закрытия+"fixme" в 1.0.9. Ас я пол, они не только под nx, но и RDP (non XOrg?). А самое главное, убедите багзилу в значительности этой баги. А заодно и про какашку, описанную здесь, напомнить не мешало бы. Ведь еж - птица гордая.

Получается, что отовсюду выживают - из терминала, из под formex-а. Прямо руки опускаются. Вы уж сделайте хоть что-нибудь, а я тоже напрягусь, заслужу, искуплю... и т.п.

P.S.: Рецепт сборки вин-клиента скачало целых 22 человека. Исходники r10 - 61. Написано же - ДЕЛИТЕСЬ! Али жаба?
Спасибо сказали:
Hoblin
Модератор
Сообщения: 1442
Статус: Etersoft team
ОС: ALT Linux

Re: Курощение nomachine клиента - за шаг до ...

Сообщение Hoblin »

dimbor писал(а):
02.12.2008 02:05
"fixme" в 1.0.9

Если я правильно понял активиста bsavelev'а :) то проблема в том, что лишний мусор сыпется в консоль и тем самым создаёт помехи?
Решаем просто:
1) WINEDEBUG=-all wine ...
и глушим ВСЕ сообщения wine. При этом будет тихо, но не уследим за потенциальным падением.
2) winelog ...
и тем самым переводим вывод потока ошибок в wine.log
Спасибо сказали:
Аватара пользователя
warlomak
Сообщения: 384
ОС: Ubuntu 10.04
Контактная информация:

Re: Курощение nomachine клиента - за шаг до ...

Сообщение warlomak »

По моему там валится:
fixme:event:wait_for_withdrawn_state window 0xa0094/8000d4 wait timed out

чего-то хочет (event:wait_for_withdrawn) , но дождаться не может ;-)
Т.ч. отключение сообщений скорее всего ничего не изменит...
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Hoblin писал(а):
02.12.2008 15:43
Если я правильно понял активиста bsavelev:) то проблема в том, что лишний мусор сыпется в консоль и тем самым создаёт помехи?

Поскольку он отказался признаваться в причастности к Etersoft, то был назначен активистом :)

Upd:
Hoblin писал(а):
02.12.2008 15:43
Решаем просто:
1) WINEDEBUG=-all wine ...
и глушим ВСЕ сообщения wine. При этом будет тихо, но не уследим за потенциальным падением.

Прям организация "Врачи без границ" какая-то.
Чтобы умирающий не мешал никому своими криками, надо заткнуть ему рот.
Спасибо сказали:
Hoblin
Модератор
Сообщения: 1442
Статус: Etersoft team
ОС: ALT Linux

Re: Курощение nomachine клиента - за шаг до ...

Сообщение Hoblin »

dimbor писал(а):
02.12.2008 19:19
Прям организация "Врачи без границ" какая-то.

Ага. Вы мне проблему объясните, кто-нибудь. Я постараюсь важность прочувствовать, честно :)
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Hoblin писал(а):
03.12.2008 08:28
Ага. Вы мне проблему объясните, кто-нибудь. Я постараюсь важность прочувствовать, честно :)

Проблема проявляется в 1с 7.7 под nx любой версии только в режиме rootless. При использовании виндовс-клиента, как патченного, так и оригинального от номашин. Обязательно с вайном 1.0.9. С 1.0.8 - все ОК. Симптомы и сообщения описаны здесь.
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: Курощение nomachine клиента - за шаг до ...

Сообщение Djelf »

dimbor писал(а):
02.12.2008 02:05
Местные активисты (BaBL, Warlomak, Djelf, bsavelev...), попросите пжалста у Etersoft жалобную книгу

Думаю лоббирование бесполезно. "Большой брат" за этим форумом и так следит. Эту их жалобную книгу я уже до дыр зачитал и постоянно туда что то дописываю. А с внешними компонентами к 1С походу все очень плохо и становится все хуже и хуже - пока все заявленные баги фиксились только разработчиками ВК (и кто в багах был виноват?).
Забавно но регресс в работе Wine видимо расценивается как "само потом может как нибудь вылечится". Да и толку то от того что починят вылетание дерева+таблица formex`а в формах справочников (я кстати думаю что это ошибка не wine, а formex) дерево то все равно убито багом 2731, а вот это уже регресс wine.
Да что тут говорить, например у 99 баги вообще скоро борода выростет, а 495 баг пофиксен таким образом, что визуально дерганье стало еще противнее чем было. Вообщем сижу пока на 1.0.8 и похоже еще долго на нем останусь...
Спасибо сказали:
altuser
Сообщения: 36
ОС: ALT Linux 4.1 Desktop Personal

Re: Курощение nomachine клиента - за шаг до ...

Сообщение altuser »

Почти в рамках темы (подобный вопрос в виндовом клиенте, как я понимаю, решен).
Имеется сервер:
ALT linux 4.1 desktop personal
freenx 0.7.3

клиент:
ALT linux 4.1 desktop personal
nxclient от nomachine.com 3.2.0-14

При копировании через буфер от клиента (локальная машина) на сервер (в терминальную сессию) - русский текст отображается по-русски.
При копировании через буфер от сервера на клиент - русский текст отображается вопросиками.

В какую сторону можно поковырять?

Спс.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

altuser писал(а):
03.12.2008 22:25
При копировании через буфер от клиента (локальная машина) на сервер (в терминальную сессию) - русский текст отображается по-русски.
При копировании через буфер от сервера на клиент - русский текст отображается вопросиками.

Это та-же проблема. Один в один. Клиенту, как и под виндой, прет COMPOUND_TEXT (см. материалы по японской диверсии с локализацией X). Непосредственно мы его перекодировать не можем - ну оч много кода надо. Это не CP -> CP, это - жопа с японской улыбкой. Можем только средствами X сделать ConvertSelection чуть раньше. Но ICCCM итальянцам не указ, и стадия ConvertRequest при глобальной асинхронности происходящего просто отсутствует. Надо извращаться как и они, на коленке.
Дополнительные сложности вызывает (во всяком случае для вин-клиента), что половина кода находится на сервере (nx-X11/programs/Xserver/hw/nxagent/Clipboard.c), а вторая половина на клиенте.
altuser писал(а):
03.12.2008 22:25
В какую сторону можно поковырять?
Спс.

Патчить вышеназванный файл. Пальцем показал направление. Или подождать несколько недель, пока сам доберусь. Или попробовать с костылями из первых страниц этой темы. Но оно там все было нестабильно.
ЛДПР. :)
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Djelf писал(а):
03.12.2008 17:39
Да и толку то от того что починят вылетание дерева+таблица formex`а в формах справочников (я кстати думаю что это ошибка не wine, а formex)

Так оно и есть, похоже. В процессе отладки конфы, с которой все началось, под виндой удалось несколько раз уронить 1с таким-же образом. Но т.к. даже ФСБ потерло логи наблюдений над моей деятельностью на том компе (шютка), из доказательств только усы, лапы и хвост. А код ВК добрый дядя Альф мне врядли даст посмотреть, чтобы я его на Черкизовском рынке не продал. Даже просить боюсь.

Upd: Это off, как правильно подмечено. Можно прибить.
Спасибо сказали:
Аватара пользователя
warlomak
Сообщения: 384
ОС: Ubuntu 10.04
Контактная информация:

Re: Курощение nomachine клиента - за шаг до ...

Сообщение warlomak »

Djelf писал(а):
03.12.2008 17:39
противнее чем было. Вообщем сижу пока на 1.0.8 и похоже еще долго на нем останусь...


Ну, наверное, не здесь будем обсуждать баги в сборках ? А то этот форум превратиться в "bugs.etersoft.ru", там можно просто зарегиться и отписываться, а "активистов" там, ИМХО, наверное маловато ? Т.к. тестирование происходит значительно медленнее, чем хотелось бы... Ладно хоть с торг.оборудованием разобрались...
Спасибо сказали:
Ay49Mihas
Сообщения: 54
ОС: OpenSuSE 10.3

Re: Курощение nomachine клиента - за шаг до ...

Сообщение Ay49Mihas »

dimbor писал(а):
04.12.2008 01:26
Так оно и есть, похоже. В процессе отладки конфы, с которой все началось, под виндой удалось несколько раз уронить 1с таким-же образом. Но т.к. даже ФСБ потерло логи наблюдений над моей деятельностью на том компе (шютка), из доказательств только усы, лапы и хвост. А код ВК добрый дядя Альф мне врядли даст посмотреть, чтобы я его на Черкизовском рынке не продал. Даже просить боюсь.

Upd: Это off, как правильно подмечено. Можно прибить.

Ничо, твой off хорош :)

Хорошо, что в своё время не использовал ВК для своих конфигураций (коих было целых 2). Сейчас хорошо крутится 1.0.8, NX пока стандартная. wine@etersoft тестить сил нет :)
Спасибо сказали:
zahvatov
Сообщения: 6
ОС: Linux

Re: Курощение nomachine клиента - за шаг до ...

Сообщение zahvatov »

Приветсвую всех! Вообщем, так же озадачился буфером обмена. Я использую nx в качестве терминального доступа в инет в корпоративной среде (Требования безопасности). Буфер обмена победил быстро для firefox. Выяснил, что есть альтернативные требования к передаче текста, вместо COMPONUD_TEXT - UNICODE. firefox все это дело замечательно передает. Скорректировал nxwin - заработало. Сейчас рою XWindows clipboard, возможно есть способ запрашивать текст в виде UTF-8. Это бы 100% решило бы проблему.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

zahvatov писал(а):
05.12.2008 06:36
Буфер обмена победил быстро для firefox. Выяснил, что есть альтернативные требования к передаче текста, вместо COMPONUD_TEXT - UNICODE. firefox все это дело замечательно передает.

Неудивительно, многоплатформенный лис схавает много чего. (Сабо самой имеется в виду, что виндовый UNICODE и UTF-8 - разные кодировки)
zahvatov писал(а):
05.12.2008 06:36
Скорректировал nxwin - заработало. Сейчас рою XWindows clipboard, возможно есть способ запрашивать текст в виде UTF-8. Это бы 100% решило бы проблему.

Если речь идет о copy (nxwinConvertSelection()), то именно так там и делается. Предпринята такая попытка. Хотя, что гадать. Вашу фразу можно воспринять разными способами. Лучшим выходом будет прицепить сюда код/патч. А если он сырой - мне в личку, чтобы не смущать ерундой остальных тут.
Спасибо сказали:
progserega
Сообщения: 3
ОС: GNU/Linux Gentoo

Re: Курощение nomachine клиента - за шаг до ...

Сообщение progserega »

Доброго времени суток, товарищи!

Можете закидать помидорами, но свершившись, потребность в помощи вам, требует разобраться во всём этом. :-) И, (можете послать в ман - пойду в ман) если не сложно - ответьте на некоторые вопросы, вводные, так сказать, чтобы знать куда копать (помогать).

Итак - если NXWin (NXClient в линуксе) - собирается из GPL кода, то почему в линуксовых дистрибутивах клиентская часть берётся везде с сайта NoMachine и под её лицензией, а не собирается из сырцов?

Или только кусок там свободный? Тогда можно ли собрать линуковую версию клиента таким же образом, как и виндовую? Линуксовая версия в отличии от виндовой идёт практически одним 5-ти метровым бинарником...

Если да - буду копать и патчить линуксовую версию. Просто расковыривать много и, если чуток бы сразу хоть определиться, куда нужно копать...
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

progserega писал(а):
05.12.2008 15:53
Можете закидать помидорами, но свершившись, потребность в помощи вам, требует разобраться во всём этом. :-) И, (можете послать в ман - пойду в ман) если не сложно - ответьте на некоторые вопросы, вводные, так сказать, чтобы знать куда копать (помогать).

Как говорили в рекламе про день жестянщика: Вэлкам!

progserega писал(а):
05.12.2008 15:53
Итак - если NXWin (NXClient в линуксе) - собирается из GPL кода,

NXWin - часть NXClient-а (Х-сервер) в виндовсе и только в нем! Upd: (Ну и криво же написанная, трам-пам-пам! Волосы везде седеют и вылазят. Оптимизировать очень сложно - переписать, похоже проще.)

progserega писал(а):
05.12.2008 15:53
то почему в линуксовых дистрибутивах клиентская часть берётся везде с сайта NoMachine и под её лицензией, а не собирается из сырцов?

С виндовым клиентом ситуация точно такая же, только после установки некоторые файлики (все кроме одного) можно пересобрать и подменить, чем и пользуемся.
progserega писал(а):
05.12.2008 15:53
Или только кусок там свободный? Тогда можно ли собрать линуковую версию клиента таким же образом, как и виндовую?

Да, свободный главный кусок - x-сервер (Xnest?). Менеджмент сессий - точно закрытый. Как не трогать менеджмент, можно посмотреть в qtnx.
Не видел, но сомневаюсь, что все пять метров родного клиента - один бинарник. Вариант - собирать отдельно Xnest и его подменять.
Рассуждения теоретические - до линукс-клиента еще не добрался пока. Но если подменять нечего (слинковано статически) - это пришла... она, потребность дописывать qtnx. :)
Спасибо сказали:
zahvatov
Сообщения: 6
ОС: Linux

Re: Курощение nomachine клиента - за шаг до ...

Сообщение zahvatov »

>> потребность в помощи вам
Хм...зачем нам?! Может себе? Как-то коробит.
>>почему в линуксовых дистрибутивах
Каких, каких ди-тивах?
>> если чуток бы сразу хоть определиться, куда нужно копать...
Чего копать-то собрался?

>Итак - если NXWin (NXClient в линуксе) - собирается из GPL кода, то почему в линуксовых дистрибутивах >клиентская часть берётся везде с сайта NoMachine и под её лицензией, а не собирается из сырцов?
>
>Или только кусок там свободный? Тогда можно ли собрать линуковую версию клиента таким же образом, как и >виндовую? Линуксовая версия в отличии от виндовой идёт практически одним 5-ти метровым бинарником

В ману - http://www.nomachine.com/licensing.html
Спасибо сказали:
progserega
Сообщения: 3
ОС: GNU/Linux Gentoo

Re: Курощение nomachine клиента - за шаг до ...

Сообщение progserega »

zahvatov писал(а):
05.12.2008 20:07
>> потребность в помощи вам
> Хм...зачем нам?! Может себе? Как-то коробит.
Извените, что так неясно выразился :-) В том плане, что необходимость для МЕНЯ, поучавствовать в общем деле.
Хотя какая в конце концов разница? :-)
>>почему в линуксовых дистрибутивах
> Каких, каких ди-тивах?
Gentoo, arch.
>> если чуток бы сразу хоть определиться, куда нужно копать...
> Чего копать-то собрался?
На версиях 3.2.0 есть такие же проблемы с буфером обмена как и в виндовой версии. Вот это и надо поправить, патчи наложить,
только вот проблемы могут быть со сборкой, т.к.:

>>Итак - если NXWin (NXClient в линуксе) - собирается из GPL кода, то почему в линуксовых дистрибутивах >клиентская часть берётся везде с сайта NoMachine и под её лицензией, а не собирается из сырцов?
>>
>>Или только кусок там свободный? Тогда можно ли собрать линуковую версию клиента таким же образом, как и >виндовую? Линуксовая версия в отличии от виндовой идёт практически одним 5-ти метровым бинарником

>В ману - http://www.nomachine.com/licensing.html
Спасибо, как я понимаю, как раз проблемы в том, как они собрали... И, как было сказано dimbor-ом выше - нужно глядеть в сторону qtnx -
как они собирают.
Спасибо сказали:
progserega
Сообщения: 3
ОС: GNU/Linux Gentoo

Re: Курощение nomachine клиента - за шаг до ...

Сообщение progserega »

dimbor писал(а):
05.12.2008 16:27
Не видел, но сомневаюсь, что все пять метров родного клиента - один бинарник. Вариант - собирать отдельно Xnest и его подменять.
Рассуждения теоретические - до линукс-клиента еще не добрался пока. Но если подменять нечего (слинковано статически) - это пришла она..., потребность дописывать qtnx. :)

Вот линуксовый дистрибутив nxclient-а:

equery f nxclient|grep -v icons|grep -v images

/usr
/usr/NX
/usr/NX/bin
/usr/NX/bin/nxclient
/usr/NX/bin/nxesd
/usr/NX/bin/nxkill
/usr/NX/bin/nxprint
/usr/NX/bin/nxservice
/usr/NX/bin/nxssh
/usr/NX/lib
/usr/NX/lib/libXcomp.so
/usr/NX/lib/libXcomp.so.3
/usr/NX/lib/libXcomp.so.3.3.0
/usr/NX/lib/libXcompsh.so
/usr/NX/lib/libXcompsh.so.3
/usr/NX/lib/libXcompsh.so.3.3.0
/usr/NX/share
/usr/NX/share/cups
/usr/NX/share/cups/mime.convs
/usr/NX/share/cups/mime.types
/usr/NX/share/documents
/usr/NX/share/documents/client
/usr/NX/share/documents/client/cups-info
/usr/NX/share/documents/client/license-info
/usr/NX/share/documents/client/readme-info
/usr/NX/share/keyboards
/usr/NX/share/keys
/usr/NX/share/keys/server.id_dsa.key
/usr/NX/share/rgb
/usr/bin
/usr/bin/nxclient
/usr/bin/nxesd
/usr/bin/nxkill
/usr/bin/nxprint
/usr/bin/nxservice
/usr/bin/nxssh
/usr/share
/usr/share/applications
/usr/share/applications/nxclient-nxclient.desktop
/usr/share/applications/nxclient_-admin-nxclient.desktop
/usr/share/applications/nxclient_-wizard-nxclient.desktop

Где:
ls -sh1 /usr/NX/bin/nx*
5,7M /usr/NX/bin/nxclient
56K /usr/NX/bin/nxesd
16K /usr/NX/bin/nxkill
8,0K /usr/NX/bin/nxprint
24K /usr/NX/bin/nxservice
312K /usr/NX/bin/nxssh

Где:
file /usr/NX/bin/nxclient
/usr/NX/bin/nxclient: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), stripped

Тобишь действительно всё одним куском... :-(
Спасибо сказали:
bsavelev
Сообщения: 231
ОС: Debian

Re: Курощение nomachine клиента - за шаг до ...

Сообщение bsavelev »

из этих 5 мб -- ~4 это nxagent, а остальное диалоги-)
Спасибо сказали:
zahvatov
Сообщения: 6
ОС: Linux

Re: Курощение nomachine клиента - за шаг до ...

Сообщение zahvatov »

Удалось заставить nxagent передавать utf-8. Пробовал разные приложения(firefox,oof ...) кроме 1с (в связи с отсутствием) - выдает текст в utf-8 в nxclient. Дальше MultiByteToWideChar и тут я споткнулся. Не понимаю почему, но если встречается символ ascii, то MultiByteToWideChar перестает его обрабатывать.Че к чему? Стандарту Utf-8 это не противоречит. Вообщем, в воскресенье напишу функцию utf-8 -> unicode и выложу на тестирование nxwin.
Должен предупредить, что на си я пишу с учебником :) Так что сильно не пинать за код
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

zahvatov писал(а):
06.12.2008 14:24
Удалось заставить nxagent передавать utf-8. Пробовал разные приложения(firefox,oof ...) кроме 1с (в связи с отсутствием) - выдает текст в utf-8 в nxclient. Дальше MultiByteToWideChar и тут я споткнулся. Не понимаю почему, но если встречается символ ascii, то MultiByteToWideChar перестает его обрабатывать.Че к чему? Стандарту Utf-8 это не противоречит. Вообщем, в воскресенье напишу функцию utf-8 -> unicode и выложу на тестирование nxwin.
Должен предупредить, что на си я пишу с учебником :) Так что сильно не пинать за код

Кде код? Кто тут видит код? Чтобы кого-то напинать за код, нужно посмотреть этот код :)

Прототип того, что нужно, в патченном nxwin уже есть. winmultiwindowwm.c, wchar_t * utf8_to_unicode(char *utf8_string), только нужно убрать ограничения на длину результата. Это просто. Повторно предлагаю выложить патч, хотяб к nxagent, а не мучить обещаниями.

Дело в том, что у меня почти готов к "выпуску" nxwin 3.3.0, где исправлено много ошибок. Если добавим туда буфер, будет всем только лучше.
Спасибо сказали:
zahvatov
Сообщения: 6
ОС: Linux

Re: Курощение nomachine клиента - за шаг до ...

Сообщение zahvatov »

Да черт его знает как сюда постить файлы я здесь укажу:


nxagent Ищем тело функции void nxagentRequestSelection(XEvent *X) в Clipboard.c
там находим строчку x.u.selectionRequest.target = XA_STRING;
и меняем ее :) на x.u.selectionRequest.target = clientUTF8_STRING;

И все. пробовал на разных версиях nxagent - работает.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Оки! Это будет выглядеть так для nxagent 3.3.0-?:

cat zahvatov_utf8_copy.c.patch

Код: Выделить всё

--- Clipboard.c.orig    2008-11-26 22:56:51 +0300
+++ Clipboard.c 2008-12-06 15:23:06 +0300
@@ -428,7 +428,7 @@
          * x.u.selectionRequest.target = X->xselectionrequest.target;
          */

-        x.u.selectionRequest.target = XA_STRING;
+        x.u.selectionRequest.target = clientUTF8_STRING;
         x.u.selectionRequest.property = clientCutProperty;

         (void) TryClientEvents(lastSelectionOwner[i].client, &x, 1,


Накладывается на то, что там уже было пропатчено ранее.

А теперь будем пробовать. В течении max суток дожму одну маленькую бячку с отрисовкой nxwin 3.3.0 и выложу сборку с Вашей помощью. А сегодня, если интересует, пришлю свои "сырые" патчи личкой.
Спасибо сказали:
zahvatov
Сообщения: 6
ОС: Linux

Re: Курощение nomachine клиента - за шаг до ...

Сообщение zahvatov »

Хорошо. Я завтра все таки добью nxwin и так же выложу чего там написал. Сейчас не могу,все это дело на работе лежит. Но суть - в wincutepaste.c в функции nxwinSetWindowClipboard почти все выкидываем и свою обработку utf8 -> unicode

меняем SetClipboardData (CF_TEXT, hGlobal);
SetClipboardData (CF_UNICODE, hGlobal);

Можно сейчас проверить у кого есть 1с собрав nxwin с отладкой в nxwinSetWindowClipboard ErrorF("clipboard: %s\n",pszTemp);

Открыть к примеру TotalCommander'ом по f3 winlog и кодировку выставить utf-8.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

zahvatov писал(а):
06.12.2008 15:47
Хорошо. Я завтра все таки добью nxwin и так же выложу чего там написал. Сейчас не могу,все это дело на работе лежит. Но суть - в wincutepaste.c в функции nxwinSetWindowClipboard почти все выкидываем и свою обработку utf8 -> unicode

меняем SetClipboardData (CF_TEXT, hGlobal);
SetClipboardData (CF_UNICODE, hGlobal);

Это приведет к тому, что по клипборде курощенный клиент не будет работать ни с чем, кроме патченого сервера.
Ломать что есть, мне кажется, не надо. Лучше родить еще nxwinSetWindowClipboardUTF8, а в nxwinSendNotify() анализировать atomReturnType и запускать одну или другую. ОК?
zahvatov писал(а):
06.12.2008 15:47
Можно сейчас проверить у кого есть 1с собрав nxwin с отладкой в nxwinSetWindowClipboard ErrorF("clipboard: %s\n",pszTemp);
Открыть к примеру TotalCommander'ом по f3 winlog и кодировку выставить utf-8.

Попробую ночкой.
Спасибо сказали:
Закрыто