From: Ton v. O. <tvo...@us...> - 2006-09-12 00:42:07
|
Update of /cvsroot/easycalc/easycalc In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv4997 Modified Files: calc.c calc.h calcrsc.h clie.c grcalc.c grtable.c lstedit.c main.c mtxedit.c prefs.c varmgr.c Log Message: Changed type of certain sizes from Int16 to UInt16. Added a lot of missing error checking for memory allocation errors (mainly for lists and database items, matrices still need to be done). Added new alert for error messages. Index: calc.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/calc.c,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** calc.c 25 Aug 2006 00:29:01 -0000 1.31 --- calc.c 12 Sep 2006 00:41:59 -0000 1.32 *************** *** 319,322 **** --- 319,331 ---- } + void alertErrorMessage(CError err) + { + Char *txt; + + txt = print_error(err); + FrmCustomAlert(altErrorMsg, txt, NULL, NULL); + MemPtrFree(txt); + } + void ChangeForm(Int16 formID) { Index: clie.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/clie.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** clie.c 2 Aug 2006 16:23:27 -0000 1.5 --- clie.c 12 Sep 2006 00:41:59 -0000 1.6 *************** *** 9,12 **** --- 9,13 ---- #include <PalmOS.h> + #include "konvert.h" #include "calc.h" #include "clie.h" Index: varmgr.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/varmgr.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** varmgr.c 6 Aug 2006 01:09:15 -0000 1.20 --- varmgr.c 12 Sep 2006 00:41:59 -0000 1.21 *************** *** 385,395 **** * others - same as for varmgr_edit * ! * RETURN: Nothing * ***********************************************************************/ ! static void varmgr_edit_init(FormPtr frm,char *varname,char *title,rpntype type, Boolean editname,const char *parameter) IFACE; ! static void varmgr_edit_init(FormPtr frm,char *varname,char *title,rpntype type, Boolean editname,const char *parameter) --- 385,396 ---- * others - same as for varmgr_edit * ! * RETURN: true - OK ! * false - Error occured, i.e. out of memory * ***********************************************************************/ ! static Boolean varmgr_edit_init(FormPtr frm,char *varname,char *title,rpntype type, Boolean editname,const char *parameter) IFACE; ! static Boolean varmgr_edit_init(FormPtr frm,char *varname,char *title,rpntype type, Boolean editname,const char *parameter) *************** *** 429,432 **** --- 430,437 ---- if (!err) { fmtvalue = display_default(item,true); + if (!fmtvalue) { + rpn_delete(item); + return false; + } if (StrLen(fmtvalue) > 100) FldSetMaxChars(varfield,StrLen(fmtvalue)+20); *************** *** 456,460 **** else FrmSetFocus(frm,FrmGetObjectIndex(frm,varEditField)); ! } /*********************************************************************** --- 461,466 ---- else FrmSetFocus(frm,FrmGetObjectIndex(frm,varEditField)); ! ! return true; } /*********************************************************************** *************** *** 662,682 **** VgaFormModify(frm, vgaFormModify160To240); #endif ! varmgr_edit_init(frm,myvarname,title,type,editname,parameter); ! ! FrmSetEventHandler(frm,varmgr_edit_handler); ! do { ! button = FrmDoDialog(frm); ! if (button==varEditCancel) ! break; ! if (varmgr_edit_save(frm,myvarname,title,type,editname)) ! break; ! }while(1); StrCopy(parameter_name,oldparam); FrmDeleteForm(frm); if (button == varEditOK) ! return true; else ! return false; } --- 668,690 ---- VgaFormModify(frm, vgaFormModify160To240); #endif ! if (varmgr_edit_init(frm,myvarname,title,type,editname,parameter)) { ! FrmSetEventHandler(frm,varmgr_edit_handler); ! do { ! button = FrmDoDialog(frm); ! if (button==varEditCancel) ! break; ! if (varmgr_edit_save(frm,myvarname,title,type,editname)) ! break; ! }while(1); ! } ! else ! button = varEditCancel; StrCopy(parameter_name,oldparam); FrmDeleteForm(frm); if (button == varEditOK) ! return true; else ! return false; } Index: grtable.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/grtable.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** grtable.c 3 Aug 2006 15:29:01 -0000 1.20 --- grtable.c 12 Sep 2006 00:41:59 -0000 1.21 *************** *** 26,32 **** #include "segment.h" #include "calc.h" #include "display.h" - #include "konvert.h" #include "calcDB.h" #include "stack.h" --- 26,32 ---- #include "segment.h" + #include "konvert.h" #include "calc.h" #include "display.h" #include "calcDB.h" #include "stack.h" Index: calc.h =================================================================== RCS file: /cvsroot/easycalc/easycalc/calc.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** calc.h 6 Aug 2006 01:09:15 -0000 1.8 --- calc.h 12 Sep 2006 00:41:59 -0000 1.9 *************** *** 28,31 **** --- 28,32 ---- void GotHardKey(void); Int16 chooseForm(Int16 button); + void alertErrorMessage(CError err); void ChangeForm(Int16 formID); void wait_draw(void); Index: calcrsc.h =================================================================== RCS file: /cvsroot/easycalc/easycalc/calcrsc.h,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** calcrsc.h 25 Aug 2006 00:29:01 -0000 1.57 --- calcrsc.h 12 Sep 2006 00:41:59 -0000 1.58 *************** *** 17,20 **** --- 17,21 ---- #define altGuessNotFound 1010 #define altGraphBadVal 1011 + #define altErrorMsg 1012 #define altAnsProblem 1013 #define altBadParameter 1015 Index: grcalc.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/grcalc.c,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** grcalc.c 6 Aug 2006 01:09:15 -0000 1.17 --- grcalc.c 12 Sep 2006 00:41:59 -0000 1.18 *************** *** 25,28 **** --- 25,29 ---- #include "calcrsc.h" #include "segment.h" + #include "konvert.h" #include "calc.h" #include "grcalc.h" Index: lstedit.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/lstedit.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** lstedit.c 2 Aug 2006 17:43:55 -0000 1.14 --- lstedit.c 12 Sep 2006 00:41:59 -0000 1.15 *************** *** 28,33 **** #include "calcrsc.h" #include "lstedit.h" - #include "calc.h" #include "konvert.h" #include "slist.h" #include "stack.h" --- 28,33 ---- #include "calcrsc.h" #include "lstedit.h" #include "konvert.h" + #include "calc.h" #include "slist.h" #include "stack.h" *************** *** 160,166 **** * ***********************************************************************/ ! static void lstedit_save_lists(void) PARSER; ! static void lstedit_save_lists(void) { --- 160,166 ---- * ***********************************************************************/ ! static CError lstedit_save_lists(void) PARSER; ! static CError lstedit_save_lists(void) { *************** *** 168,181 **** Trpn item; CodeStack *stack; stack = stack_new(1); for (i=0;i<LIST_COUNT;i++) if (StrLen(listPrefs.list[i])) { ! stack_add_val(stack,&loadedList[i],list); ! item = stack_pop(stack); ! db_write_variable(listPrefs.list[i],item); ! rpn_delete(item); } stack_delete(stack); } --- 168,185 ---- Trpn item; CodeStack *stack; + CError err = c_noerror; stack = stack_new(1); for (i=0;i<LIST_COUNT;i++) if (StrLen(listPrefs.list[i])) { ! err = stack_add_val(stack,&loadedList[i],list); ! if (!err) { ! item = stack_pop(stack); ! err = db_write_variable(listPrefs.list[i],item); ! rpn_delete(item); ! } } stack_delete(stack); + return err; } *************** *** 593,596 **** --- 597,601 ---- char loct1[MAX_RSCLEN],loct2[MAX_RSCLEN],loct3[MAX_RSCLEN]; Int16 i; + CError err; lname = listPrefs.list[controlId - popList1]; *************** *** 630,637 **** lstedit_tbl_deselect(GetObjectPtr(tblList)); } else if (i == 2 && StrLen(lname)) { char text[MAX_FUNCNAME+1]; if (varmgr_get_varstring(text,"List Name")) { StrCopy(lname,text); ! lstedit_save_lists(); } } else if (i == 1 && StrLen(lname)) { --- 635,647 ---- lstedit_tbl_deselect(GetObjectPtr(tblList)); } else if (i == 2 && StrLen(lname)) { + /* Save as */ char text[MAX_FUNCNAME+1]; if (varmgr_get_varstring(text,"List Name")) { StrCopy(lname,text); ! err = lstedit_save_lists(); ! if (err) { ! alertErrorMessage(err); ! i = noListSelection; ! } } } else if (i == 1 && StrLen(lname)) { *************** *** 655,659 **** loadedList[controlId - popList1] = list_new(1); loadedList[controlId - popList1]->item[0] = cplx; ! lstedit_save_lists(); tblSelection.offscreen = true; --- 665,673 ---- loadedList[controlId - popList1] = list_new(1); loadedList[controlId - popList1]->item[0] = cplx; ! err = lstedit_save_lists(); ! if (err) { ! alertErrorMessage(err); ! i = noListSelection; ! } tblSelection.offscreen = true; *************** *** 755,758 **** --- 769,773 ---- || (event->data.keyDown.chr == '.' \ || event->data.keyDown.chr == ','))) { + handled = true; col = tblSelection.col; if (col == -1) *************** *** 764,769 **** --- 779,790 ---- List *lst; Int16 i; + CError err; lst = list_new(loadedList[col-1]->size+1); + if (!lst) { + alertErrorMessage(c_memory); + break; + } + for (i=0;i<lst->size-1;i++) lst->item[i]=loadedList[col-1]->item[i]; *************** *** 772,776 **** loadedList[col-1] = lst; ! lstedit_save_lists(); lstedit_upd_maxlines(); --- 793,801 ---- loadedList[col-1] = lst; ! err = lstedit_save_lists(); ! if (err) { ! alertErrorMessage(err); ! break; ! } lstedit_upd_maxlines(); *************** *** 784,788 **** lstedit_update_scrollbar(); } - handled = true; } break; --- 809,812 ---- *************** *** 805,812 **** cplx.imag = 0.0; if (varmgr_get_complex(&cplx,"List value")) { ! List *lst; Int16 i; lst = list_new(loadedList[col-1]->size+1); for (i=0;i<row;i++) lst->item[i]=loadedList[col-1]->item[i]; --- 829,842 ---- cplx.imag = 0.0; if (varmgr_get_complex(&cplx,"List value")) { ! List *lst, *oldlst; Int16 i; + CError err; lst = list_new(loadedList[col-1]->size+1); + if (!lst) { + alertErrorMessage(c_memory); + break; + } + for (i=0;i<row;i++) lst->item[i]=loadedList[col-1]->item[i]; *************** *** 814,820 **** for (i=row;i<loadedList[col-1]->size;i++) lst->item[i+1] = loadedList[col-1]->item[i]; ! list_delete(loadedList[col-1]); loadedList[col-1] = lst; ! lstedit_save_lists(); lstedit_upd_maxlines(); --- 844,858 ---- for (i=row;i<loadedList[col-1]->size;i++) lst->item[i+1] = loadedList[col-1]->item[i]; ! /* list_delete(loadedList[col-1]); */ ! oldlst = loadedList[col-1]; loadedList[col-1] = lst; ! err = lstedit_save_lists(); ! if (err) { ! alertErrorMessage(err); ! loadedList[col-1] = oldlst; /* restore original one */ ! list_delete(lst); ! } ! else ! list_delete(loadedList[col-1]); lstedit_upd_maxlines(); *************** *** 840,844 **** --tblSelection.row; ! lstedit_save_lists(); lstedit_upd_maxlines(); --- 878,882 ---- --tblSelection.row; ! lstedit_save_lists(); /* should succeed since list gets smaller */ lstedit_upd_maxlines(); *************** *** 858,862 **** if (varmgr_get_complex(&loadedList[col - 1]->item[row], "List value")) { ! lstedit_save_lists(); row -= firstLine; if (! tblSelection.offscreen) { --- 896,900 ---- if (varmgr_get_complex(&loadedList[col - 1]->item[row], "List value")) { ! lstedit_save_lists(); /* should succeed since no change in list size */ row -= firstLine; if (! tblSelection.offscreen) { Index: prefs.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/prefs.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** prefs.c 23 Aug 2006 17:55:55 -0000 1.14 --- prefs.c 12 Sep 2006 00:41:59 -0000 1.15 *************** *** 25,28 **** --- 25,29 ---- #include "calcrsc.h" + #include "konvert.h" #include "calc.h" #include "prefs.h" Index: mtxedit.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/mtxedit.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** mtxedit.c 2 Aug 2006 17:43:55 -0000 1.18 --- mtxedit.c 12 Sep 2006 00:41:59 -0000 1.19 *************** *** 30,38 **** #include "calcrsc.h" #include "calc.h" #include "defuns.h" #include "segment.h" #include "mtxedit.h" - #include "konvert.h" #include "matrix.h" #include "cmatrix.h" --- 30,38 ---- #include "calcrsc.h" + #include "konvert.h" #include "calc.h" #include "defuns.h" #include "segment.h" #include "mtxedit.h" #include "matrix.h" #include "cmatrix.h" Index: main.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/main.c,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** main.c 21 Aug 2006 13:43:47 -0000 1.66 --- main.c 12 Sep 2006 00:41:59 -0000 1.67 *************** *** 35,38 **** --- 35,39 ---- #include <TxtGlue.h> + #include "konvert.h" #include "calc.h" #include "clie.h" |