Index: ChangeLog
===================================================================
--- ChangeLog	(revision 1692)
+++ ChangeLog	(working copy)
@@ -8,6 +8,17 @@
 gcalctool change history.
 =========================
 
+2007-10-02 Rich Burridge <rich.burridge@sun.com>
+
+    * help/C/gcalctool.xml:
+      gcalctool/calctool.h:
+      gcalctool/ce_tokeniser.l:
+      Fix for bug #439087 – Gcalctool can't handle small physic constants 
+      like the Boltzmann constant. The number of significant places has
+      been increased to 99 and the number of displayable digits has been
+      increased to 150. The online help has been adjust to reflect these
+      changes.
+
 2007-10-01 Rich Burridge <rich.burridge@sun.com>
 
     * gcalctool/Makefile.am:
Index: help/C/gcalctool.xml
===================================================================
--- help/C/gcalctool.xml	(revision 1692)
+++ help/C/gcalctool.xml	(working copy)
@@ -1223,7 +1223,7 @@
     <!-- ==== End of Figure ==== -->
     <sect3 id="gcalctool-set-acc"> 
       <title>To Set the Accuracy</title> 
-      <para>To set the accuracy of the display area and of the memory registers, click <guibutton>Acc</guibutton>, then select from the popup menu the accuracy level that you require. The current accuracy level is indicated by a preceding black circle in the popup menu. Up to 30  significant places can be displayed. The default accuracy is 9 significant places. </para>
+      <para>To set the accuracy of the display area and of the memory registers, click <guibutton>Acc</guibutton>, then select from the popup menu the accuracy level that you require. The current accuracy level is indicated by a preceding black circle in the popup menu. Up to 99 significant places can be displayed. The default accuracy is 9 significant places. </para>
 <para>To set the accuracy level above 9, select <guilabel>Other (9) ...</guilabel>, then choose the accuracy level you require in the <guilabel>Set Precision</guilabel> popup.</para>
       <para>By default, trailing zeroes are not shown. To display trailing zeroes, click <guibutton>Acc</guibutton> then select <guilabel>Show Trailing Zeroes</guilabel> from the popup menu, or choose <menuchoice> <guimenu>View</guimenu> <guimenuitem>Show Trailing Zeroes</guimenuitem> </menuchoice>. A preceding check mark in the <guibutton>Acc</guibutton> popup menu or <guimenu>View</guimenu> menu indicates that the <guilabel>Show Trailing Zeroes</guilabel> option has been selected. To hide trailing zeroes, choose <menuchoice> <guimenu>View</guimenu> <guimenuitem>Show Trailing Zeroes</guimenuitem> </menuchoice> again.</para>
       <para>The examples in the following table show how the accuracy setting affects <replaceable>x</replaceable> in the display area, when you use decimal base, with the <guimenuitem>Show Trailing Zeroes</guimenuitem> option selected, for the <literal>1 / 8 = <replaceable>x</replaceable></literal> calculation: </para>
Index: gcalctool/calctool.h
===================================================================
--- gcalctool/calctool.h	(revision 1692)
+++ gcalctool/calctool.h	(working copy)
@@ -32,7 +32,7 @@
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
-#define MP_SIZE      150     /* Size of the multiple precision values. */
+#define MP_SIZE      1000     /* Size of the multiple precision values. */
 
 #define FCLOSE       (void) fclose     /* To make lint happy. */
 #define FPRINTF      (void) fprintf
@@ -176,7 +176,7 @@
 #endif /*lint*/
 #endif /*LINT_CAST*/
 
-#define MAX_DIGITS     40         /* Maximum displayable number of digits. */
+#define MAX_DIGITS     150         /* Maximum displayable number of digits. */
 #define MAX_LOCALIZED  (MAX_DIGITS * (1 + MB_LEN_MAX) + MB_LEN_MAX)
 
 /* Maximum number of various graphics pieces. */
@@ -187,7 +187,7 @@
 #define MAXLINE        512        /* Length of character strings. */
 #endif /*MAXLINE*/
 
-#define MAXACC         30    /* Max. number of digits after numeric point. */
+#define MAXACC         99     /* Max. number of digits after numeric point. */
 #define MAXBASES       4          /* Maximum number of numeric bases. */
 #define MAXCONFUN      10         /* Maximum number of constants/functions. */
 #define MAXDISPMODES   3          /* Maximum number of display modes. */
Index: gcalctool/ce_tokeniser.l
===================================================================
--- gcalctool/ce_tokeniser.l	(revision 1692)
+++ gcalctool/ce_tokeniser.l	(working copy)
@@ -102,35 +102,35 @@
 
 {DEC_NUM}{EXP}{DEC_NUM} {
 if (v->base == HEX) REJECT;
-if (strlen(yytext) > 40) parser_state.error = -PARSER_ERR_TOO_LONG_NUMBER;
+if (strlen(yytext) > 150) parser_state.error = -PARSER_ERR_TOO_LONG_NUMBER;
 make_exp(yytext, celval.int_t);
 return tNUMBER;
 }
 
 {BIN_NUM} {
 if (v->base != BIN) REJECT;
-if (strlen(yytext) > 40) parser_state.error = -PARSER_ERR_TOO_LONG_NUMBER;
+if (strlen(yytext) > 150) parser_state.error = -PARSER_ERR_TOO_LONG_NUMBER;
 MPstr_to_num(yytext, v->base, celval.int_t);
 return tNUMBER;
 }
 
 {OCT_NUM} {
 if (v->base != OCT) REJECT;
-if (strlen(yytext) > 40) parser_state.error = -PARSER_ERR_TOO_LONG_NUMBER;
+if (strlen(yytext) > 150) parser_state.error = -PARSER_ERR_TOO_LONG_NUMBER;
 MPstr_to_num(yytext, v->base, celval.int_t);
 return tNUMBER;
 }
 
 {DEC_NUM} {
 if (v->base != DEC) REJECT;
-if (strlen(yytext) > 40) parser_state.error = -PARSER_ERR_TOO_LONG_NUMBER;
+if (strlen(yytext) > 150) parser_state.error = -PARSER_ERR_TOO_LONG_NUMBER;
 MPstr_to_num(yytext, v->base, celval.int_t);
 return tNUMBER;
 }
 
 {HEX_NUM} {
 if (v->base != HEX) REJECT;
-if (strlen(yytext) > 40) parser_state.error = -PARSER_ERR_TOO_LONG_NUMBER;
+if (strlen(yytext) > 150) parser_state.error = -PARSER_ERR_TOO_LONG_NUMBER;
 MPstr_to_num(yytext, v->base, celval.int_t);
 return tNUMBER;
 }
