LINUX.ORG.RU

[Lenny][Code::Blocks] Криво работает UTF-8 в системе с локалью UTF-8. А у вас?

 


0

0

Здравствуйте!

Имею Code::Blocks сборки 6130. Установлен из репозитария CB сообщества:

deb http://apt.jenslody.de/ any main
deb http://apt.wxwidgets.org/ lenny-wx main

Про все глюки рассказывать не буду. Расскажу про самый главный глюк, с которым вообще нормально работать невозможно.

Исходное:

Локаль в системе LANG=ru_RU.UTF-8.

Исходники в кодировке UTF-8.

В Code::Blocks в опциях редактора установлено, что основная кодировка UTF-8.

Глюк:

При выделении текста и копировании его в буфер обмена, в буфер попадает не весь текст, а только до какого-нибудь символа.

Пример:

Создаем файл test.cpp в кодировке UTF-8 следующего содержания:

#include <stdio.h>

// Это такая пробная программа
// Исходник написан в кодировке UTF-8
// Его нужно открыть в code::blocks и проверить, как копируется текст

int main(void)
{
 printf("Hello from CPP language\n");
 return 0;
}

Открываем его в Code::Blocks, нажимаем «Выделить все» (Ctrl+A) и Копировать (Ctrl+C). Вставляем полученное в любой текстовый редактор, и видим:

#include <stdio.h>

// Это такая пробная программа
// Исходник написан в кодировке UTF-8
// Его нужно открыть в code::blocks и проверить, как копи

Я перерыл пол-интернета, никто про этот галлюн не говорит. Только китайцы жалуются что вообще текста в UTF-8 не видят.

Хочу выяснить, это только у меня так или действительно C::B криво работает с UTF-8 в редакторе исходников?

У кого есть возможность, проверьте плиз есть такой глюк, или мне так повезло?


Попробуйте собрать 6157, если это возможно.

У меня таких глюков с ru_RU.UTF8 нет. Также при переходе на svn наконец-то убрался глюк с Backspace и русскими буквами:

edigaryev ★★★★★
()
Ответ на: комментарий от edigaryev

Если что-то стереть используя Backspace, то потом нельзя печатать с русской раскладкой, нужно переключаться на US, а потом обратно на RU.

edigaryev ★★★★★
()
Ответ на: комментарий от edigaryev

> Попробуйте собрать 6157, если это возможно.

У меня таких глюков с ru_RU.UTF8 нет. Также при переходе на svn наконец-то убрался глюк с Backspace и русскими буквами


То есть, вышеприведенный файл у вас открывается и копируется нормально?


Щас выкачиваю 6178 с репозитария, может в нем действительно этого галлюна нет.

xintrea
() автор топика
Ответ на: комментарий от edigaryev

Поставил версию 6178. Глюк остался.

Возможно, дело не в Code::Blocks, а в версии GTK или wxWidgets.

Какой у дистрибутив? Скорее всего не Debian Lenny?

xintrea
() автор топика
Ответ на: комментарий от krivedko-kun

> нормально

Какой у дистрибутив линуха?

Откуда ставили Code::Blocks?

Какая версия Code::Blocks?

Откуда ставили wxWidgets?


xintrea
() автор топика
Ответ на: комментарий от annulen

> Use Geany, Luke

Да я бы с удовольствием, все что угодно, только не кодеблокс. Проблема в том что это внутренний корпоративный стандарт. Разработка и обмен исходниками происходит только в формате CB проектов.

xintrea
() автор топика

это все руки и карма ))

$wajig version codeblocks
codeblocks 8.02 installed: No available version in archive
Lenny 5.04 i386 - и ничего подобного не наблюдаю.

elipse ★★★
()
Ответ на: комментарий от xintrea

> Проблема в том что это внутренний корпоративный стандарт.

Как обновить ядро или инсталлятор - низзя, корпоративный стандарт мешает.
Как что-то левое засунуть в дистр - дык корпоративный стандарт НЕ мешает.
Определились бы там уже ))

elipse ★★★
()
Ответ на: комментарий от elipse

> Как обновить ядро или инсталлятор - низзя, корпоративный стандарт мешает.
Как что-то левое засунуть в дистр - дык корпоративный стандарт НЕ мешает.
Определились бы там уже ))

Именно так. Дистр - стандарт, Дебиан Ленни.
IDE - кодеблокс, всем брать с

deb http://apt.jenslody.de/ any main

deb http://apt.wxwidgets.org/ lenny-wx main


xintrea
() автор топика
Ответ на: комментарий от elipse

$wajig version codeblocks

codeblocks 8.02 installed: No available version in archive

Lenny 5.04 i386 - и ничего подобного не наблюдаю.

http://packages.debian.org/search?keywords=codeblocks&searchon=names&suite=stable&section=all

Вы искали пакеты, в именах которых есть codeblocks. Были просмотрены комплект(ы) stable, все секции и все архитектуры. Ничего не найдено.

Какой репозитарий подключен? Откуда у вас установлен CodeBlocks?

xintrea
() автор топика
Ответ на: комментарий от xintrea

из дистра стоит:

$ wajig version libwxgtk2.8-0
libwxgtk2.8-0/lenny uptodate 2.8.7.1-1.1+lenny1
$ wajig version libwxgtk2.6-0
libwxgtk2.6-0/lenny uptodate 2.6.3.2.2-3+lenny1
$ wajig version libwxbase2.8-0
libwxbase2.8-0/lenny uptodate 2.8.7.1-1.1+lenny1
$ wajig version libwxbase2.6-0
libwxbase2.6-0/lenny uptodate 2.6.3.2.2-3+lenny1
xvit10@debian:~$

elipse ★★★
()
Ответ на: комментарий от elipse

Хорошо, а wxWidgets для него откуда брали?

из дистра стоит

Все, понял. Системный wxWidgets у вас не используется.

The provided downloads contain a Universal Binary (that means: ppc and i386), built for Mac OS X 10.4 (and later), bundling a copy of wxWidgets 2.8.7 Unicode and all Code::Blocks plugins.

Насколько я понимаю, у вас версия 8.02 весьма древней сборки.

Для _актуального_ кодаблокса решение проблемы следующее.

Актуальные *.deb-пакеты кодеблокса находятся на единственном живом репозитарии «deb http://apt.jenslody.de/ any main». Для их установки, по зависимостями, требуются пакеты:

libwxbase2.8-0 (2.8.10.1-0)
libwxgtk2.8-0 (2.8.10.1-0)

Этих пакетов в Debian Lenny нет. Их предлагается брать из офицального репозитария wxWidgets «deb http://apt.wxwidgets.org/ lenny-wx main»

Именно в этих пакетах имеем баг.

Мне пришлось собрать wxwidgets2.8.0.1-0 из исходников http://prdownloads.sourceforge.net/wxwindows/wxWidgets-2.8.10.tar.gz и проинсталлировать. Естественно, после инсталляции, пакетов libwxbase2.8-0 и libwxgtk2.8-0 в системе не появилось. Пришлось создать эти два пакета-пустышки, чтобы пакетный менеджер смог установить codeblocks.

С самосборным wxWidgets глюк, описываемый в этом топике, исчез.

xintrea
() автор топика
Ответ на: комментарий от xintrea

> Насколько я понимаю, у вас версия 8.02 весьма древней сборки.

А это у них релизом называлось в 2008 году.
И пока новых релизов небыло.
Да, а зачем устраивать мусорник из версий либ в стабильном дистре ?
И чем рабочая версия Code::Blocks не угодила уже ? ))

elipse ★★★
()
Ответ на: комментарий от elipse

> А это у них релизом называлось в 2008 году.

И пока новых релизов небыло.

Да, а зачем устраивать мусорник из версий либ в стабильном дистре ?


И чем рабочая версия Code::Blocks не угодила уже ? ))



Количеством глюков. Кривым поиском по файлам внутри проекта, постоянном исчезновением части функций/методов в навигации, исчезащим окном stdout в дебаге, залипающими кнопками в панели управления дебагом, эпичным глюком, когда набираемый текст в окне поиска впечатывается в текст исходника, хотя окно поиска модальное и курсор мигает в окне поиска, переодическим самопроизвольным копированием текста в окнах ввода в буфер обмена. Это только часть, щас уже не помню весь список, он слишком большой. И таки да, в 8.02 невозможно скопировать текст из протокола компиляции/сборки, так что при возникновении проблем приходится вручную перепечатывать сообщения об ошибках.

Я и раньше уже перелезал с 8.02 сборки 2008 года. Тогда у меня получилось собрать CB в Ubuntu из исходников http://www.linux.org.ru/forum/development/3996161. А щас в Debian не получилось http://www.linux.org.ru/forum/general/4588526?lastmod=1267071585713, пришлось извратиться с фальшивыми пакетами.

xintrea
() автор топика

Билд 6164. Таже фигня. проблема в русских комментариях. Локаль en_EN.UTF8.
Но проблема скорее всего не у C::B, а у wxWidgets.

andreyu ★★★★★
()
Ответ на: комментарий от elipse

> И чем рабочая версия Code::Blocks не угодила уже ? ))

8.02 использовать сложно - она устарела еще при выпуске. А в версии из репозитория очень много полезных плюшек. Их так много, что я не возьмусь даже за опись.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

> x11-libs/wxGTK-2.8.10.1-r5

Хитрость тут не только в версии, но и в опциях, с которыми была собрана либа. Коль у вас глюки в UTF, видать wxwidgets у вас собран без опции --enable-unicode.

xintrea
() автор топика
Ответ на: комментарий от xintrea

> > x11-libs/wxGTK-2.8.10.1-r5

Хитрость тут не только в версии, но и в опциях, с которыми была собрана либа. Коль у вас глюки в UTF, видать wxwidgets у вас собран без опции --enable-unicode.


Посмотрел, что указано в ebuild'е - вне зависимости от USE-флагов, используются опции:
--enable-compat26
--enable-shared
--enable-unicode
--with-regex=builtin
--with-zlib=sys
--with-expat=sys

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.