[PATCH 2/5] riched20: Use cell ptrs in the append table row function.
Huw Davies
huw at codeweavers.com
Thu Oct 29 05:49:12 CDT 2020
Signed-off-by: Huw Davies <huw at codeweavers.com>
---
dlls/riched20/table.c | 35 ++++++++++++++++-------------------
1 file changed, 16 insertions(+), 19 deletions(-)
diff --git a/dlls/riched20/table.c b/dlls/riched20/table.c
index 40eef4bbd13..cc2ebb8ed50 100644
--- a/dlls/riched20/table.c
+++ b/dlls/riched20/table.c
@@ -429,16 +429,14 @@ ME_Paragraph* table_append_row( ME_TextEditor *editor, ME_Paragraph *table_row )
{
WCHAR endl = '\r', tab = '\t';
ME_Run *run;
- PARAFORMAT2 *pFmt;
int i;
- assert(table_row);
if (!editor->bEmulateVersion10) /* v4.1 */
{
- ME_DisplayItem *insertedCell, *cell;
- ME_Paragraph *para, *prev_table_end;
+ ME_Cell *new_cell, *cell;
+ ME_Paragraph *para, *prev_table_end, *new_row_start;
- cell = ME_FindItemFwd( para_get_di( table_row_start( table_row ) ), diCell );
+ cell = table_row_first_cell( table_row );
prev_table_end = table_row_end( table_row );
para = para_next( prev_table_end );
run = para_first_run( para );
@@ -446,38 +444,37 @@ ME_Paragraph* table_append_row( ME_TextEditor *editor, ME_Paragraph *table_row )
editor->pCursors[0].pRun = run_get_di( run );
editor->pCursors[0].nOffset = 0;
editor->pCursors[1] = editor->pCursors[0];
- para = table_insert_row_start( editor, editor->pCursors );
- insertedCell = ME_FindItemFwd( para_get_di( para ), diCell );
+ new_row_start = table_insert_row_start( editor, editor->pCursors );
+ new_cell = table_row_first_cell( new_row_start );
/* Copy cell properties */
- insertedCell->member.cell.nRightBoundary = cell->member.cell.nRightBoundary;
- insertedCell->member.cell.border = cell->member.cell.border;
- while (cell->member.cell.next_cell)
+ new_cell->nRightBoundary = cell->nRightBoundary;
+ new_cell->border = cell->border;
+ while (cell_next( cell ))
{
- cell = cell->member.cell.next_cell;
+ cell = cell_next( cell );
para = table_insert_cell( editor, editor->pCursors );
- insertedCell = ME_FindItemBack( para_get_di( para ), diCell );
+ new_cell = para_cell( para );
/* Copy cell properties */
- insertedCell->member.cell.nRightBoundary = cell->member.cell.nRightBoundary;
- insertedCell->member.cell.border = cell->member.cell.border;
+ new_cell->nRightBoundary = cell->nRightBoundary;
+ new_cell->border = cell->border;
};
para = table_insert_row_end( editor, editor->pCursors );
para->fmt = prev_table_end->fmt;
/* return the table row start for the inserted paragraph */
- return para_next( &ME_FindItemFwd( cell, diParagraph )->member.para );
+ return new_row_start;
}
else /* v1.0 - 3.0 */
{
run = para_end_run( table_row );
- pFmt = &table_row->fmt;
- assert(pFmt->dwMask & PFM_TABLE && pFmt->wEffects & PFE_TABLE);
+ assert( para_in_table( table_row ) );
editor->pCursors[0].pPara = para_get_di( table_row );
editor->pCursors[0].pRun = run_get_di( run );
editor->pCursors[0].nOffset = 0;
editor->pCursors[1] = editor->pCursors[0];
ME_InsertTextFromCursor( editor, 0, &endl, 1, run->style );
run = &editor->pCursors[0].pRun->member.run;
- for (i = 0; i < pFmt->cTabCount; i++)
- ME_InsertTextFromCursor(editor, 0, &tab, 1, run->style);
+ for (i = 0; i < table_row->fmt.cTabCount; i++)
+ ME_InsertTextFromCursor( editor, 0, &tab, 1, run->style );
return para_next( table_row );
}
--
2.23.0
More information about the wine-devel
mailing list