1 /*DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64
4 for INTEL64(R), AMD64(R)
6 Copyright(C) 2007-2009 Koine Yuusuke(koinec). All rights reserved.
8 Redistribution and use in source and binary forms, with or without
9 modification, are permitted provided that the following conditions are met:
11 1. Redistributions of source code must retain the above copyright notice,
12 this list of conditions and the following disclaimer.
13 2. Redistributions in binary form must reproduce the above copyright
14 notice, this list of conditions and the following disclaimer in the
15 documentation and/or other materials provided with the distribution.
17 THIS SOFTWARE IS PROVIDED BY Koine Yuusuke(koinec) ``AS IS'' AND ANY
18 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 DISCLAIMED. IN NO EVENT SHALL Koine Yuusuke(koinec) OR CONTRIBUTORS BE
21 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
27 OF THE POSSIBILITY OF SUCH DAMAGE.
29 DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64*/
31 /* File Info -----------------------------------------------------------
35 ----------------------------------------------------------------------*/
37 #define DRD64_SRC_LIBEDITTEXT_CURSORAPI_EDIT
38 #include"drd64_libedittext.h"
40 #define LOCATION(n) DRD64_ERR_LOCATION( \
41 DRD64_ERROR_MODULE_LIBEDITTEXT, DRD64_ERROR_ARCH_NODEPEND, \
42 DRD64_SRC_LIBEDITTEXT_CURSORAPI_EDIT_SRCID, (n))
44 /***********************************************************************
54 ***********************************************************************/
57 /***********************************************************************
59 ***********************************************************************/
60 #define FUNCID_LibEditText_InsertString 0x01
61 LIBEDITTEXT_API_CURSORAPI_EDIT
63 LibEditText_InsertString(
75 LibEditText_TextInfo *p_tinfo = NULL;
76 LibEditText_Cursor *p_cursor = NULL;
78 if(( NULL == pstr_data ) || ( 0 == dw_size )) {
79 LibBrownie_Error_SetErrorInfo(
80 DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x01 ),
81 LOCATION( FUNCID_LibEditText_InsertString ),
82 errno, (QWord)pstr_data, (QWord)dw_size, __LINE__ );
85 goto goto_LibEditText_InsertString_post;
88 p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
89 if( NULL == p_tinfo ) {
90 LibBrownie_Error_SetErrorInfo(
91 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
92 LOCATION( FUNCID_LibEditText_InsertString ),
93 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
96 goto goto_LibEditText_InsertString_post;
99 p_cursor = LibEditText_CursorInfo_GetCursor( p_tinfo, i_curid );
100 if( NULL == p_cursor ) {
101 LibBrownie_Error_SetErrorInfo(
102 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
103 LOCATION( FUNCID_LibEditText_InsertString ),
104 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
107 goto goto_LibEditText_InsertString_post;
110 pb_pos = (Byte *)pstr_data;
113 for( dw_pos = 0; dw_pos < dw_size; dw_pos++ ) {
114 if( '\n' == *pb_pos ) {
115 i_result = LibEditText_LineEdit_InsertString(
116 p_tinfo, LINFO(p_tinfo, p_cursor->dw_lineid), p_cursor->dw_line,
117 p_cursor->dw_pos, pb_start, dw_len, 0x00 );
118 if( 0x00 != i_result ) {
119 LibBrownie_Error_SetErrorInfo(
120 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x06 ),
121 LOCATION( FUNCID_LibEditText_InsertString ),
122 errno, (QWord)i_result, (QWord)p_cursor->dw_line, __LINE__ );
124 goto goto_LibEditText_InsertString_post;
127 dw_line = LibEditText_LineCtrl_AddLine(
128 p_tinfo, p_cursor->dw_lineid, p_cursor->dw_line, 0, 0x00, 0x00 );
129 if( INVALID_LINE == dw_line ) {
130 LibBrownie_Error_SetErrorInfo(
131 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x04 ),
132 LOCATION( FUNCID_LibEditText_InsertString ),
133 errno, (QWord)p_cursor->dw_lineid, (QWord)p_cursor->dw_line, __LINE__ );
136 goto goto_LibEditText_InsertString_post;
139 i_result = LibEditText_CursorMove_MoveDown( p_tinfo, p_cursor, 1 );
140 if( 0x00 != i_result ) { break; }
142 pb_start = pb_pos + 1;
150 if(( 0x00 == i_result ) && ( 0 < dw_len )) {
151 i_result = LibEditText_LineEdit_InsertString(
152 p_tinfo, LINFO(p_tinfo, p_cursor->dw_lineid), p_cursor->dw_line,
153 p_cursor->dw_pos, pb_start, dw_len, 0x00 );
154 if( 0x00 != i_result ) {
155 LibBrownie_Error_SetErrorInfo(
156 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x05 ),
157 LOCATION( FUNCID_LibEditText_InsertString ),
158 errno, (QWord)i_result, (QWord)p_cursor->dw_line, __LINE__ );
162 goto_LibEditText_InsertString_post:
163 LibEditText_UndoInfo_CommitUndo( p_tinfo, i_result );
169 /***********************************************************************
171 ***********************************************************************/
172 #define FUNCID_LibEditText_InsertChar 0x02
173 LIBEDITTEXT_API_CURSORAPI_EDIT
175 LibEditText_InsertChar(
181 LibEditText_TextInfo *p_tinfo = NULL;
182 LibEditText_Cursor *p_cursor = NULL;
184 p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
185 if( NULL == p_tinfo ) {
186 LibBrownie_Error_SetErrorInfo(
187 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
188 LOCATION( FUNCID_LibEditText_InsertChar ),
189 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
192 goto goto_LibEditText_InsertChar_post;
195 p_cursor = LibEditText_CursorInfo_GetCursor( p_tinfo, i_curid );
196 if( NULL == p_cursor ) {
197 LibBrownie_Error_SetErrorInfo(
198 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
199 LOCATION( FUNCID_LibEditText_InsertChar ),
200 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
203 goto goto_LibEditText_InsertChar_post;
206 if( '\n' == c_char ) {
207 i_result = LibEditText_LineCtrl_SplitLine(
208 p_tinfo, p_cursor->dw_lineid, p_cursor->dw_line, p_cursor->dw_pos );
209 if( 0x00 != i_result ) {
210 LibBrownie_Error_SetErrorInfo(
211 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
212 LOCATION( FUNCID_LibEditText_InsertChar ),
213 errno, (QWord)i_result, (QWord)p_cursor->dw_pos, __LINE__ );
216 goto goto_LibEditText_InsertChar_post;
219 i_result = LibEditText_CursorMove_MoveDown( p_tinfo, p_cursor, 1 );
220 if( 0x00 != i_result ) {
221 LibBrownie_Error_SetErrorInfo(
222 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x05 ),
223 LOCATION( FUNCID_LibEditText_InsertChar ),
224 errno, (QWord)i_result, (QWord)p_cursor, __LINE__ );
228 i_result = LibEditText_LineEdit_InsertString(
229 p_tinfo, LINFO(p_tinfo, p_cursor->dw_lineid), p_cursor->dw_line,
230 p_cursor->dw_pos, (Byte *)&c_char, 1, 0x00 );
231 if( 0x00 != i_result ) {
232 LibBrownie_Error_SetErrorInfo(
233 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x04 ),
234 LOCATION( FUNCID_LibEditText_InsertChar ),
235 errno, (QWord)i_result, (QWord)p_cursor->dw_pos, __LINE__ );
238 goto goto_LibEditText_InsertChar_post;
241 i_result = LibEditText_CursorMove_MoveRight( p_tinfo, p_cursor, 1 );
242 if( 0x00 != i_result ) {
243 LibBrownie_Error_SetErrorInfo(
244 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x06 ),
245 LOCATION( FUNCID_LibEditText_InsertChar ),
246 errno, (QWord)i_result, (QWord)p_cursor, __LINE__ );
250 goto_LibEditText_InsertChar_post:
251 LibEditText_UndoInfo_CommitUndo( p_tinfo, i_result );
257 /***********************************************************************
259 ***********************************************************************/
260 #define FUNCID_LibEditText_InsertLine 0x03
261 LIBEDITTEXT_API_CURSORAPI_EDIT
263 LibEditText_InsertLine(
269 LibEditText_TextInfo *p_tinfo = NULL;
270 LibEditText_Cursor *p_cursor = NULL;
272 p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
273 if( NULL == p_tinfo ) {
274 LibBrownie_Error_SetErrorInfo(
275 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
276 LOCATION( FUNCID_LibEditText_InsertLine ),
277 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
280 goto goto_LibEditText_InsertLine_post;
283 p_cursor = LibEditText_CursorInfo_GetCursor( p_tinfo, i_curid );
284 if( NULL == p_cursor ) {
285 LibBrownie_Error_SetErrorInfo(
286 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
287 LOCATION( FUNCID_LibEditText_InsertLine ),
288 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
291 goto goto_LibEditText_InsertLine_post;
294 dw_line = LibEditText_LineCtrl_PushLine(
295 p_tinfo, p_cursor->dw_lineid, p_cursor->dw_line, 0, 0x00 );
296 if( INVALID_LINE == dw_line ) {
297 LibBrownie_Error_SetErrorInfo(
298 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
299 LOCATION( FUNCID_LibEditText_InsertLine ),
300 errno, (QWord)p_cursor->dw_lineid, (QWord)p_cursor->dw_line, __LINE__ );
303 goto goto_LibEditText_InsertLine_post;
306 i_result = LibEditText_CursorMove_MoveUp( p_tinfo, p_cursor, 1 );
307 if( 0x00 > i_result ) {
308 LibBrownie_Error_SetErrorInfo(
309 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x04 ),
310 LOCATION( FUNCID_LibEditText_InsertLine ),
311 errno, (QWord)i_result, (QWord)p_cursor, __LINE__ );
314 goto_LibEditText_InsertLine_post:
315 LibEditText_UndoInfo_CommitUndo( p_tinfo, i_result );
321 /***********************************************************************
323 ***********************************************************************/
324 #define FUNCID_LibEditText_AppendLine 0x04
325 LIBEDITTEXT_API_CURSORAPI_EDIT
327 LibEditText_AppendLine(
333 LibEditText_TextInfo *p_tinfo = NULL;
334 LibEditText_Cursor *p_cursor = NULL;
336 p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
337 if( NULL == p_tinfo ) {
338 LibBrownie_Error_SetErrorInfo(
339 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
340 LOCATION( FUNCID_LibEditText_AppendLine ),
341 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
344 goto goto_LibEditText_AppendLine_post;
347 p_cursor = LibEditText_CursorInfo_GetCursor( p_tinfo, i_curid );
348 if( NULL == p_cursor ) {
349 LibBrownie_Error_SetErrorInfo(
350 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
351 LOCATION( FUNCID_LibEditText_AppendLine ),
352 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
355 goto goto_LibEditText_AppendLine_post;
358 dw_line = LibEditText_LineCtrl_AddLine(
359 p_tinfo, p_cursor->dw_lineid, p_cursor->dw_line, 0, 0x00, 0x00 );
360 if( INVALID_LINE == dw_line ) {
361 LibBrownie_Error_SetErrorInfo(
362 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
363 LOCATION( FUNCID_LibEditText_AppendLine ),
364 errno, (QWord)p_cursor->dw_lineid, (QWord)p_cursor->dw_line, __LINE__ );
367 goto goto_LibEditText_AppendLine_post;
370 i_result = LibEditText_CursorMove_MoveDown( p_tinfo, p_cursor, 1 );
371 if( 0x00 > i_result ) {
372 LibBrownie_Error_SetErrorInfo(
373 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x04 ),
374 LOCATION( FUNCID_LibEditText_AppendLine ),
375 errno, (QWord)i_result, (QWord)p_cursor, __LINE__ );
378 goto_LibEditText_AppendLine_post:
379 LibEditText_UndoInfo_CommitUndo( p_tinfo, i_result );
385 /***********************************************************************
387 ***********************************************************************/
388 #define FUNCID_LibEditText_BackSpace 0x05
389 LIBEDITTEXT_API_CURSORAPI_EDIT
391 LibEditText_BackSpace(
397 LibEditText_TextInfo *p_tinfo = NULL;
398 LibEditText_Cursor *p_cursor = NULL;
399 LibEditText_LineInfo *p_line = NULL;
401 p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
402 if( NULL == p_tinfo ) {
403 LibBrownie_Error_SetErrorInfo(
404 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
405 LOCATION( FUNCID_LibEditText_BackSpace ),
406 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
409 goto goto_LibEditText_BackSpace_post;
412 p_cursor = LibEditText_CursorInfo_GetCursor( p_tinfo, i_curid );
413 if( NULL == p_cursor ) {
414 LibBrownie_Error_SetErrorInfo(
415 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
416 LOCATION( FUNCID_LibEditText_BackSpace ),
417 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
420 goto goto_LibEditText_BackSpace_post;
423 p_line = LINFO(p_tinfo, p_cursor->dw_lineid);
424 assert( NULL != p_line );
426 pb_data = p_tinfo->pb_text + p_line->dw_start + p_cursor->dw_pos;
428 if( 0 == p_cursor->dw_pos ) {
429 if( 0 < p_cursor->dw_line ) {
430 i_result = LibEditText_CursorMove_MoveUp( p_tinfo, p_cursor, 1 );
431 if( 0x00 != i_result ) {
432 LibBrownie_Error_SetErrorInfo(
433 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x10 ),
434 LOCATION( FUNCID_LibEditText_BackSpace ),
435 errno, (QWord)i_result, (QWord)p_cursor->dw_line, __LINE__ );
438 goto goto_LibEditText_BackSpace_post;
441 i_result = LibEditText_CursorMove_MoveEnd( p_tinfo, p_cursor );
442 if( 0x00 != i_result ) {
443 LibBrownie_Error_SetErrorInfo(
444 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x11 ),
445 LOCATION( FUNCID_LibEditText_BackSpace ),
446 errno, (QWord)i_result, (QWord)p_cursor->dw_line, __LINE__ );
449 goto goto_LibEditText_BackSpace_post;
452 i_result = LibEditText_LineCtrl_JoinLine(
453 p_tinfo, LINFO(p_tinfo, p_cursor->dw_lineid), p_cursor->dw_line );
454 if( 0x00 != i_result ) {
455 LibBrownie_Error_SetErrorInfo(
456 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x12 ),
457 LOCATION( FUNCID_LibEditText_BackSpace ),
458 errno, (QWord)i_result, (QWord)p_cursor->dw_line, __LINE__ );
465 i_result = LibEditText_CursorMove_MoveLeft( p_tinfo, p_cursor, 1 );
466 if( 0x00 != i_result ) {
467 LibBrownie_Error_SetErrorInfo(
468 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x21 ),
469 LOCATION( FUNCID_LibEditText_BackSpace ),
470 errno, (QWord)i_result, (QWord)p_cursor->dw_pos, __LINE__ );
473 goto goto_LibEditText_BackSpace_post;
476 i_result = LibEditText_LineEdit_DeleteString(
477 p_tinfo, p_line, p_cursor->dw_line, p_cursor->dw_pos, 1, 0x00 );
478 if( 0x00 != i_result ) {
479 LibBrownie_Error_SetErrorInfo(
480 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x22 ),
481 LOCATION( FUNCID_LibEditText_BackSpace ),
482 errno, (QWord)i_result, (QWord)p_cursor->dw_pos, __LINE__ );
488 goto_LibEditText_BackSpace_post:
489 LibEditText_UndoInfo_CommitUndo( p_tinfo, i_result );
495 /***********************************************************************
497 ***********************************************************************/
498 #define FUNCID_LibEditText_DeleteString 0x06
499 LIBEDITTEXT_API_CURSORAPI_EDIT
501 LibEditText_DeleteString(
509 LibEditText_TextInfo *p_tinfo = NULL;
510 LibEditText_Cursor *p_cursor = NULL;
511 LibEditText_LineInfo *p_line = NULL;
513 p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
514 if( NULL == p_tinfo ) {
515 LibBrownie_Error_SetErrorInfo(
516 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
517 LOCATION( FUNCID_LibEditText_DeleteString ),
518 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
521 goto goto_LibEditText_DeleteString_post;
524 p_cursor = LibEditText_CursorInfo_GetCursor( p_tinfo, i_curid );
525 if( NULL == p_cursor ) {
526 LibBrownie_Error_SetErrorInfo(
527 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
528 LOCATION( FUNCID_LibEditText_DeleteString ),
529 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
532 goto goto_LibEditText_DeleteString_post;
535 p_line = LINFO(p_tinfo, p_cursor->dw_lineid);
536 assert( NULL != p_line );
538 dw_nowpos = p_cursor->dw_pos;
540 while( 0 < dw_size ) {
541 dw_len = p_line->dw_strlen - dw_nowpos;
543 if( 0 == dw_len ) { break; }
544 if( dw_size < dw_len ) { dw_len = dw_size; }
547 i_result = LibEditText_LineEdit_DeleteString(
548 p_tinfo, LINFO(p_tinfo, p_cursor->dw_lineid),
549 p_cursor->dw_line, dw_nowpos, dw_len, 0x00 );
550 if( 0x00 != i_result ) {
551 LibBrownie_Error_SetErrorInfo(
552 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
553 LOCATION( FUNCID_LibEditText_DeleteString ),
554 errno, (QWord)i_result, (QWord)dw_len, __LINE__ );
557 goto goto_LibEditText_DeleteString_post;
563 goto_LibEditText_DeleteString_post:
564 LibEditText_UndoInfo_CommitUndo( p_tinfo, i_result );
570 /***********************************************************************
572 ***********************************************************************/
573 #define FUNCID_LibEditText_DeleteChar 0x07
574 LIBEDITTEXT_API_CURSORAPI_EDIT
576 LibEditText_DeleteChar(
582 LibEditText_TextInfo *p_tinfo = NULL;
583 LibEditText_Cursor *p_cursor = NULL;
584 LibEditText_LineInfo *p_line = NULL;
586 p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
587 if( NULL == p_tinfo ) {
588 LibBrownie_Error_SetErrorInfo(
589 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
590 LOCATION( FUNCID_LibEditText_DeleteChar ),
591 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
594 goto goto_LibEditText_DeleteChar_post;
597 p_cursor = LibEditText_CursorInfo_GetCursor( p_tinfo, i_curid );
598 if( NULL == p_cursor ) {
599 LibBrownie_Error_SetErrorInfo(
600 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
601 LOCATION( FUNCID_LibEditText_DeleteChar ),
602 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
605 goto goto_LibEditText_DeleteChar_post;
608 p_line = LINFO(p_tinfo, p_cursor->dw_lineid);
609 assert( NULL != p_line );
611 if( 0 == p_line->dw_strlen ) {
613 goto goto_LibEditText_DeleteChar_post;
616 pb_data = p_tinfo->pb_text + p_line->dw_start + p_cursor->dw_pos;
617 if( '\n' == *pb_data ) {
618 i_result = LibEditText_LineCtrl_JoinLine(
619 p_tinfo, LINFO(p_tinfo, p_cursor->dw_lineid), p_cursor->dw_line );
622 i_result = LibEditText_LineEdit_DeleteString(
623 p_tinfo, p_line, p_cursor->dw_line, p_cursor->dw_pos, 1, 0x00 );
626 if( 0x00 != i_result ) {
627 LibBrownie_Error_SetErrorInfo(
628 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
629 LOCATION( FUNCID_LibEditText_DeleteChar ),
630 errno, (QWord)i_result, (QWord)(*pb_data), __LINE__ );
633 goto_LibEditText_DeleteChar_post:
634 LibEditText_UndoInfo_CommitUndo( p_tinfo, i_result );
640 /***********************************************************************
642 ***********************************************************************/
643 #define FUNCID_LibEditText_DeleteLine 0x08
644 LIBEDITTEXT_API_CURSORAPI_EDIT
646 LibEditText_DeleteLine(
651 LibEditText_TextInfo *p_tinfo = NULL;
652 LibEditText_Cursor *p_cursor = NULL;
654 p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
655 if( NULL == p_tinfo ) {
656 LibBrownie_Error_SetErrorInfo(
657 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
658 LOCATION( FUNCID_LibEditText_DeleteLine ),
659 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
662 goto goto_LibEditText_DeleteLine_post;
665 p_cursor = LibEditText_CursorInfo_GetCursor( p_tinfo, i_curid );
666 if( NULL == p_cursor ) {
667 LibBrownie_Error_SetErrorInfo(
668 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
669 LOCATION( FUNCID_LibEditText_DeleteLine ),
670 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
673 goto goto_LibEditText_DeleteLine_post;
676 i_result = LibEditText_LineCtrl_DeleteLine(
677 p_tinfo, LINFO(p_tinfo, p_cursor->dw_lineid), p_cursor->dw_line, 0x00 );
678 if( 0x00 != i_result ) {
679 LibBrownie_Error_SetErrorInfo(
680 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
681 LOCATION( FUNCID_LibEditText_DeleteLine ),
682 errno, (QWord)i_result, (QWord)p_cursor->dw_line, __LINE__ );
685 goto_LibEditText_DeleteLine_post:
686 LibEditText_UndoInfo_CommitUndo( p_tinfo, i_result );
692 /***********************************************************************
694 ***********************************************************************/
695 #define FUNCID_LibEditText_JoinLine 0x09
696 LIBEDITTEXT_API_CURSORAPI_EDIT
698 LibEditText_JoinLine(
703 LibEditText_TextInfo *p_tinfo = NULL;
704 LibEditText_Cursor *p_cursor = NULL;
706 p_tinfo = LibEditText_System_GetTextInfo( i_tinfoid );
707 if( NULL == p_tinfo ) {
708 LibBrownie_Error_SetErrorInfo(
709 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x01 ),
710 LOCATION( FUNCID_LibEditText_JoinLine ),
711 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
714 goto goto_LibEditText_JoinLine_post;
717 p_cursor = LibEditText_CursorInfo_GetCursor( p_tinfo, i_curid );
718 if( NULL == p_cursor ) {
719 LibBrownie_Error_SetErrorInfo(
720 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x02 ),
721 LOCATION( FUNCID_LibEditText_JoinLine ),
722 errno, (QWord)i_tinfoid, (QWord)i_curid, __LINE__ );
725 goto goto_LibEditText_JoinLine_post;
728 i_result = LibEditText_LineCtrl_JoinLine(
729 p_tinfo, LINFO(p_tinfo, p_cursor->dw_lineid), p_cursor->dw_line );
730 if( 0x00 != i_result ) {
731 LibBrownie_Error_SetErrorInfo(
732 DRD64_ERROR( DRD64_ERROR_PTN_CALLFUNC, 0x01, 0x03 ),
733 LOCATION( FUNCID_LibEditText_JoinLine ),
734 errno, (QWord)i_result, (QWord)p_cursor->dw_line, __LINE__ );
737 goto_LibEditText_JoinLine_post:
738 LibEditText_UndoInfo_CommitUndo( p_tinfo, i_result );
744 /* EOF of drd64_.c ----------------------------------- */