| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
사용자가 Shared와 Static 빌드를 선택할 수 있게
BUILD_SHARED_LIBS 옵션을 추가한다.
ENABLE_EXTERNAL_KEYBOARDS 옵션이 ON 일때에만
expat을 찾아도 되므로 조건 처리한다.
추가로 find_package()를 사용한다. 패키지를 찾을 때에는
include()보다 나을 것 같다.
|
|
|
|
| |
CMake로도 빌드할 수 있으면 좀더 편리하다.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LIBHANGUL_KEYBOARD_PATH 환경 변수를 설정하면 그 위치의
키보드 파일을 로딩하게 한다.
테스트할 때에는 시스템에 설치된 키보드 파일이 아니라
빌드 디렉토리의 키보드 파일을 사용해야 의미가 있다.
빌드 디렉토리의 키보드을 로딩할 수 있는 기능을 제공하기위해서
LIBHANGUL_KEYBOARD_PATH 환경 변수를 도입한다.
소스 디렉토리에는 키보드 파일 템플릿만 있다. 완성된 키보드 파일은
빌드 디렉토리에 생성되므로 빌드 디렉토리에서 키보드 파일을 로딩해야 한다.
그러나 거기에는 combination 파일이 없으므로 제대로된 테스트를
위해서는 combination 파일도 복사해주는 룰이 필요하다.
AC_CONFIG_LINKS()를 사용하여 소스만 고치고도 테스트 가능하게 한다.
|
|
|
|
|
|
|
| |
pedantic 옵션을 추가했을 때 발생하는 워닝을 제거한다.
다른 워닝이 발생하는 곳도 같이 수정한다.
https://github.com/libhangul/libhangul/issues/44
|
|
|
|
|
|
|
|
|
|
| |
hangul_keyboard_list에 사용자가 생성한 HangulKeyboard를
등록할 수 있는 api를 추가한다.
관련하여 unit test 코드도 추가함.
https://github.com/libhangul/libhangul/pull/21
https://github.com/libhangul/libhangul/issues/28
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
기존 방식에서는 사용자 자판이 qwerty 자판이 아닌 경우에도
한글 상태에서는 qwerty 자판으로 동작하게 된다.
사용자가 qwerty 자판이 아닌 것을 사용할때에는 불편할 수 있으므로
한글에 대해서만 처리하고 나머지 키는 그대로 포워딩할 수
있도록 하는 것이다.
이렇게 하면 반대로 사용자가 한글 자판 상태에서 qwerty 기호나 숫자를
입력하고자할때에는 사용할 수가 없게 된다.
또 글자를 commit하는 방식이 아니라 키이벤트를 포워딩하는 방식으로
처리하게 되므로 최근 ibus에서 발생한 space 순서가 바뀌는 문제
같은 것들이 영문자에 대해서 모두 발생할 위험성이 커질 수 있다.
참고: https://github.com/libhangul/ibus-hangul/issues/42
세벌식 자판의 경우는 좀더 생각해볼 시간을 가지기 위해서
일단 적용을 보류하고 두벌식에만 먼저 적용한다.
https://github.com/libhangul/libhangul/issues/27
https://github.com/libhangul/ibus-hangul/issues/15
|
| |
|
|
|
|
|
|
|
| |
대부분의 경우 ULONG_MAX는 SIZE_MAX와 같은 값을 가지겠지만,
size_t 타입에 맞는 최대값을 사용하는 편이 안전할 것이다.
https://github.com/choehwanjin/libhangul/issues/17
|
|
|
|
|
|
|
|
|
|
|
|
| |
hurd에서는 PATH_MAX가 없는 것 같다.
https://buildd.debian.org/status/fetch.php?pkg=libhangul&arch=hurd-i386&ver=0.1.0%2Bgit20170815-1&stamp=1511811053&raw=0
관련 코드는 정확한 PATH_MAX값이 필요한 것이 아니므로
PATH_MAX를 사용하지 않도록 수정하는 편이 좋을 것 같다.
파일 이름에 사용할 버퍼에 필요한 스트링 길이를 계산하고
메모리를 할당하여 처리한다.
https://github.com/choehwanjin/libhangul/issues/24
|
|
|
|
|
|
| |
키보드 파일이 자기자신을 include한 경우에대한 테스트 코드 추가한다.
관련 api hangul_keyboard_new_from_file()도 추가하고
샘플 키보드 파일 recursive.xml을 추가한다.
|
|
|
|
|
| |
자기 자신을 include할 경우에 대한 처리가 필요하다.
include depth를 64개까지만 처리하도록 제한을 두어 해결한다.
|
|
|
|
|
| |
intltool은 ENABLE_NLS를 정의하지 않는 것 같다.
대신 USE_NLS를 설정하므로 이 값으로 ENABLE_NLS 처리를 한다.
|
|
|
|
|
|
| |
External keyboards 로딩 기능 사용 여부를 configure에서 설정할 수
있게 한다. libhangul을 외부 파일 없이 binary만 가지고 사용하고자 할때
이 옵션을 사용하면 좋을 것이다.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
한글 자판 파일의 확장성을 고려하여 자판 파일은
xml로 구성하도록 한다. xml 파서는 expat을 사용한다.
xml 번역을 위해서 intltool을 사용하고 autopoint대신 intltool로
gettext을 초기화 한다.
한글 자판 관리는 HangulKeyboardList를 통해서 한다.
한글 자판을 로딩하고 언로딩하기 위해서 hangul_init()/hangul_fini()와
같은 함수를 추가로 도입한다.
HangulKeyboard는 HangulCombination과 세트로 관리하는 편이
합리적인 것 같다.
|
|
|
|
|
|
|
|
|
|
| |
첫음절에 유니코드 초성에 없는 글자도 조합하는 기능을 설정할 수 있게
한다. libhangul에서는 ㄳ이나 ㄺ등 초성에 없는 글자를 첫음절에서
조합하는 기능을 제공하지 않았다. 그러나 MS IME와 호환성을 높이기
위해서 이 기능을 추가하였으므로, 이 기능을 켜고 끌 수 있도록 옵션으로
처리한다.
관련 유닛테스트 코드도 추가한다.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
두벌식에서 자음을 연속 입력해서 된소리로 조합해주는 기능을 설정으로
조정할 수 있게 한다. (예를 들어 ㄱ+ㄱ을 ㄲ으로 변환해 주는 기능)
이에 따라서 관련 유닛 테스트 코드를 변경하고 이 옵션을 테스트할
코드를 추가한다.
기본값은 MS IME 호환을 위해서 false로 설정한다.
세벌식의 경우에는 이 기능이 자판의 기본적인 동작 방식이므로 이
옵션으로 조정되지 않는다.
두벌식 옛한글 자판의 경우에는 현대 한글 자모의 경우만 조합이 제한되고
옛한글 자모들은 그대로 조합된다.
구현에 필요한 hangul_is_jamo_conjoinable 함수도 추가.
|
|
|
|
|
|
|
|
|
|
| |
hangul_ic_set_option 함수를 통해서 입력 옵션 설정이 가능하다.
처음에는 filter 함수를 이용해서 라이브러리 외부에서 좀더 유연하게
조종할 수 있도록 하려 했었는데, 옵션을 만드는 쪽이 구현과 사용이 더
쉬울 것 같아서 옵션으로 추가한다.
첫번째 구현으로 auto reorder 옵션을 추가하고, 관련 테스트 코드도
추가한다. 기본값은 MS IME 호환을 위해서 false로 설정한다.
|
|
|
|
|
|
| |
ascii 코드를 직접 처리하는 경우 backspace를 예외 처리하기 보다는
hangul_ic_process함수에서 '\b' 코드로 처리하게 하면 여러 테스트
코드들이 훨씬 간결해질 수 있다.
|
|
|
|
|
|
|
|
| |
원래 이 글자들은 유니코드 초성에 없는 글자들이라서 입력 기능을
제공하지 않았지만, MS IME 호환 기능을 요구하는 경우가 많아서
libhangul 수준에서 제공하기로 결정한다.
그래서 ㄳ은 초성이 결합하여 종성이 되도록 combination table을
만든다.
|
|
|
|
|
|
| |
sizeof of pointer variable returns 4 bytes.
Change-Id: Iaf4444ceabff8ccc9a1f2f397e13bbf01b5feb04
|
|
|
|
| |
strdup이 실패할 경우와 malloc이 실패할 경우에 대한 처리를 강화한다.
|
|
|
|
|
|
|
| |
설멍 -> 설명
해댱 -> 해당
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
|
|
|
|
|
|
| |
0xd7c7 ~ 0xd7ca까지 값이 빠져 있었음
patch from: 김지훈 <jihoon48.kim@samsung.com>
|
| |
|
|
|
|
|
|
| |
libhangul이 지원하는 자판에 대한 문서 추가
ref 태그에 띠어 쓰기가 없는 오류 수정
mainpage도 나머지 문서와 어투를 맞춤
|
|
|
|
|
|
|
| |
hangul_choseong_to_jongseong(), hangul_jongseong_to_choseong(),
hangul_jongseong_decompose() 함수들은 두벌식 자판을 구현할때
사용하는 함수들로 일반적인 목적으로 사용하기에 적당하지 않다.
내부에서만 사용하는 함수로 옮기는 것이 적절하겠다.
|
|
|
|
|
| |
잘못 이름지은 함수 hangul_jongseong_dicompose 를 hangul_jongseong_decompose 로 바꿈
hangul_jongseong_dicompose 심볼이 같은 기능을 하도록 보존
|
|
|
|
|
|
|
| |
다음 릴리스에서는 library version을 올릴 것이다.
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@267 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
|
| |
이 함수는 hangul_ic_process()에 키코드를 넘기기 전에
normalize 과정에 필요한지 판단해주는 함수다.
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@264 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
|
| |
Combination table은 keyboard에 종속적인 정보이므로 HangulKeyboard에서
참조하는 것이 바람직하다.
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@263 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
UTF-8로 함
hangul_ic_get_keyboard_name() 함수의 리턴값을 사용하는 곳의 대부분이
UTF-8인 경우에 더 사용하기 편리하다. nabi, ibus, scim, imhangul 등의 경우
결국 스트링을 UTF-8로 변환해야 하므로 여기에서 UTF-8을 리턴하면 코딩이
더 편리해진다. 단 tools/hangul.c 에서는 locale에 따른 변환을 해주어야
하므로 약간 더 불편해지기는 하지만, 나머지에서 수정할 내용이 줄어들므로
이 편이 더 낫다.
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@252 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
| |
순서를 아래로 낮춤
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@250 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
| |
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@249 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
|
|
|
|
|
| |
안마태 자판에서 임의로 추가된 기호 부분을 제거하고, 대신 shift 상태에서도
shift가 아닐때 글자가 나오도록 수정한다.
이전에 빠트렸던, OP의 [] 문자를 추가한다.
자모의 이름이 Unicode와 맞지 않는 부분을 unicode 이름으로 바꾼다.
안마태 자판에서 shift 상태에 배당되어 있지 않은 곳에 어떤 문자를 할당할지는
좀더 토론을 거친후에 처리하는 편이 좋을 것이다.
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@248 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
|
|
| |
옛글 자판에 대해서는 공인된 기준이 없는 만큼 사용자가 많을 것이라 예상되는
아래한글의 세벌식 자판과 같은 자판을 지원하는 것이 사용자에게 편리할 것이라
생각한다.
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@244 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
변환되는 경우 처리
ㅃㅉㄸ은 옛글 자모 글자인데, 이번에 두벌식 옛글자판을 구현하면서
hangul_choseong_to_jongseong() 함수로 초성에서 종성으로 변환이 가능해진
자모 글자다. 그런데 저 글자는 현대 한글에서는 유효하지 않은 종성이므로
현대 한글 자판에서는 위 초성들이 종성으로 변환되어서는 안된다.
그래서 combination_table을 비교하여 conjoinable 자모인지 아닌지에
따라서 종성 변환을 할 것인지 말 것인지 처리한다.
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@242 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
|
|
|
|
| |
hangul_combination_combine() 함수의 비교함수에서 두 key 값을 단순히
뺄셈연산하여 리턴하게 되면 두수의 크기차 signed int를 넘어서는 경우에
음수로 연산될 수 있어서 위험하다. 부등호를 이용하여 비교연산으로 처리한다.
Unicode 5.2에서 추가된 자모들중 U+A960, U+D7B0 영역의 문자들을 조합하지
못하는 문제 수정
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@241 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
|
|
| |
아래한글에서는 ㅏ+ㅏ를 아래아로 조합하는 규칙이 있다.
옛한글 입력 편의성을 위해서 아래한글과 같이 ㅏ+ㅏ를 아래아로 변환하는
규칙을 추가한다.
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@240 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
|
|
| |
모음 U+116A, U+116B, U+1170, U+118B, U+D7B6를 조합하는 룰이 빠져있어서
새로 추가한다. 아마도 스크립트로 생성시에 제대로 처리되지 못한 부분이
있었던 것 같다.
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@239 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
http://www.unicode.org/Public/UNIDATA/NamesList.txt 파일의 내용을
이용해서 자모 조합 테이블을 생성한 결과에 문제가 있다.
위 파일에서는 U+11EC - U+11EF 부분의 이름을 옛이응으로 하지 않고
이응으로 되어 있다. 그래서 이 파일로 부터 생성한 조합테이블에서는
이응 + 이응이 U+11EE가 나오는 문제가 있다.
그래서 이 부분은 손으로 직접 수정했다.
Unicode 5.2에서 정의된 내용에 따르면 U+11EC - U+11EF 부분은 옛이응으로
처리하는 것이 맞다.
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@238 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
| |
236에서 잘못 고친 부분 수정
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@237 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
| |
못하는 문제 수정
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@236 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
자판의 배열을 아래한글의 두벌식 옛글자판과 동일하게 맞추었다.
초성과 종성을 뒤바꾸는 코드에서 UNICODE 5.2 버전의 옛한글을 지원하도록
하였다. 기존 두벌식에서 사용하던 hangul_jongseong_dicompose() 함수로는
옛한글 처리를 할 수가 없으므로 새로이 hangul_jongseong_get_diff() 함수를
구현하고, 이 함수를 이용하여 구현을 변경하였다.
그러나 아직 버그가 있으므로 차츰 수정해 나가도록 한다.
또한 옛한글을 지원하는 과정에서 현대 한글 두벌식 자판에도 영향을 미쳤으므로
이 역시 차츰 수정해 나가도록 한다.
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@235 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
| |
이 파일이 빠지면 make dist에서 에러남
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@234 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
지금까지는 완성 음절로 표현이 불가능한 중성 + 종성 같은 음절의 경우
호환자모 중성과 종성을 나열하여 표현하였는데, 이제는 한글 자모 영역의
글자를 사용하여 초성채움 + 중성 + 종성으로 표현한다.
이렇게 기능을 수정하면, 옛한글 자판의 경우도 hangul_buffer_get_string()
함수를 그대로 사용할 수 있으므로 자판 관리가 좀더 편리해지는 측면이 있다.
그러나 단점으로 세벌식에서 모아치기 기능을 활용하는 중에 한글 자모로 표현한
글자가 나타날 수 있는데, 이때에 이 글자를 제대로 렌더링 하지 못할 가능성이
있다.
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@233 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
|
|
|
|
|
| |
한글 자판이 설정되지 않는 문제 수정
자판 찾기에 실패한 경우 기본자판으로 두벌식 자판을 설정함
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@232 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
| |
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@229 8f00fcd2-89fc-0310-932e-b01be5b65e01
|
|
|
|
| |
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@227 8f00fcd2-89fc-0310-932e-b01be5b65e01
|