]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Added option to not clip error output.
authoricculus <icculus@noemail.net>
Sun, 14 Feb 2010 05:42:46 +0000 (05:42 +0000)
committericculus <icculus@noemail.net>
Sun, 14 Feb 2010 05:42:46 +0000 (05:42 +0000)
This is useful for IDEs and other tools that benefit from full path
information, so they can jump directly to the error line in the source code.

FossilOrigin-Name: 90602030d18152a934644db119a291aa38fe3fd4

manifest
manifest.uuid
tool/lemon.c

index 765c370c6d63fbf8fc560fa7ab4387095345d951..5b43a9b78726de31053caf0809b7032ed9109874 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,8 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-C Delete\soutput\sfiles\sif\sthis\sis\sa\sfailed\srun.\n\nOtherwise,\sthe\sfail\swill\sstop\sa\sMakefile\sfrom\sprogressing,\sbut\sif\syou\nimmediately\srun\sthe\sbuild\sagain,\sMake\swill\sthink\sthe\soutput\sfiles\sare\sup\sto\ndate,\ssince\sthey\sare\snewer\s(albeit\sincomplete/incorrect).
-D 2010-02-14T05:34:43
+C Added\soption\sto\snot\sclip\serror\soutput.\n\nThis\sis\suseful\sfor\sIDEs\sand\sother\stools\sthat\sbenefit\sfrom\sfull\spath\ninformation,\sso\sthey\scan\sjump\sdirectly\sto\sthe\serror\sline\sin\sthe\ssource\scode.
+D 2010-02-14T05:42:46
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -765,7 +765,7 @@ F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
 F tool/fragck.tcl 5265a95126abcf6ab357f7efa544787e5963f439
 F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4
 F tool/genfkey.test 4196a8928b78f51d54ef58e99e99401ab2f0a7e5
-F tool/lemon.c 83edd1726151a939d0e5f4d30d1775b53196a42e
+F tool/lemon.c 60833e52e7c986825a91a1a9440ea381a52371d3
 F tool/lempar.c 01ca97f87610d1dac6d8cd96ab109ab1130e76dc
 F tool/mkkeywordhash.c d2e6b4a5965e23afb80fbe74bb54648cd371f309
 F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
@@ -790,24 +790,24 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P d8bab8cf0bc3fbd4c489c31a65d724dda2944d83
-R f18701bb0bf4342a5fa49e46ec7b784c
+P e38c08d9cdeb0476ac1a77cd3f29f547a8205835
+R 0ec3cc8a3bc5426a1993604d587cfb49
 U icculus
-Z 9daac77a325dba22777be0affa01d6ac
+Z 310d228fc0294b29df79c19a914fe71b
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG/MacGPG2 v2.0.14 (Darwin)
 
-iQIcBAEBAgAGBQJLd4t3AAoJEDDcKcGyC63VLIsP/15NDKg2Ow3n6Mzn9T43RYF3
-+qMDlBmmS80bYCLjVwuJNTU2EDTEw5/qCrcpnS3pqPtBwObVrA934v9Q9wZFMY/a
-zhrNgnduUl/KIvYQkdJWgi8GFUn7zOJzkeZeZnW2Qx0QIlN+cNRucpnrG292CnWK
-9Xa/jHD6eiv1Zdi4mhkcP/bISERHQk7Wf5KoCZOw7K/yHECnc2dV8jnzk19gGzBV
-Z9MHC6WwSwuPGulizlvG/huIn53aWLAXnWr3IMnKOHdMii0eTvRfUu7KQN80zi54
-CBolUPlV3aJt14DvZm+FRqxnoZ0NW67MjwlU1dL/zxnciVXZhJyE4DDfYkAia341
-2QVRuKu8KurxWfR7hFDtCKX9MvGpmeyAGUN//njr7mZl/dgIS/h1tJmIW2qQ5aAv
-S71Q0Pos6wTFuhDptpC/vJWQjb+2fuxU4WjTXpUXYq0UuObUjBu0CIZPG/q3tQOT
-JB0iSqWCBY3twHh7K1koUK4tQDE75ILLSTxxXDdWls3bAdSadGUF4lgnXNaCtElc
-3N8vuzr8YfssaLWqENp6pNIKLJNJUiRk4DxFuQfOxoCi1iHT0JLZqe1FSdjaZJWK
-YXzv0N/fhbqQ/EZyqcLro3lMU6iWCZTvemp/fjFCp5rcm9czvsFcHLODoKL5YqkN
-wxWpwAcL7ybFSMVfhJRE
-=otDK
+iQIcBAEBAgAGBQJLd41aAAoJEDDcKcGyC63VC6UQAJRDMs5WYQeGahDExVPgqFHz
+tLeFk8NmVjI7TGj501MLMu///UwrYCJf7uj1QjQYAXiV4ngGWJx7DarJBrvQq7yp
+ERboRwCD9O9hV8lZVfyin76+oPUAYla8d3TjjTElnzqktxrGDSn1VrG6rdg9xJnG
+YclgE8T7/B8QzoQkwuB7Mqcx4TYXaaLRiMTVHzHiUsayIBz/euhCmxNEuvsF4tEE
+4yV699Qo/apcBE8ije/K6cpaY4L5fj8ggaBjzaqSfa1NoyzTu/EF03Rcd2lGv0Hl
+H1/Ybh7PHwgck1SQFb7N0uTybS/LIOgtRgIezOEnNWj9Mwz1FUcOoPuJegEsnxrP
+3Zr+ipMd78ji9u3zT7MSAxqHkOO1E0jtzBQ8rDMbArXIeCUG4BktUs5bbHX+aLjv
+MxCSDy5QIxzrRb/WwUvj0UJJC7VE2llFFzhm7DQnJDoOGj7UnvbfTPr5uGrWIzjb
+jvp1iEKGhfH9mkHKxWMlAj4tQNvSZs7vT3l+Zqx8w8z7WrhAvOhKM3ZsIbZskCQG
+r2rhCU96aWpFaTf1VNuViWuaLCnv1sERT0ouE433U7ZsXI9aOWTj5Gfmp7Q+sZu1
+nP4mPCmPxnLdJTvPIwdDPeZOGIR3w+OhlpmDHHs/iYGBi0HerDQD9qPdGsWenEet
+gokY96RIp/jIYz6khYdG
+=b2pX
 -----END PGP SIGNATURE-----
index e88807a700ccf0fe738fdaee35a9bc3a22c4e932..7c7dc4d6d44ccb842b810daa70d7582996a4bc35 100644 (file)
@@ -1 +1 @@
-e38c08d9cdeb0476ac1a77cd3f29f547a8205835
\ No newline at end of file
+90602030d18152a934644db119a291aa38fe3fd4
\ No newline at end of file
index 4a3bfa1871d568b3638802825c2d00aec09ac381..5c96a67324e78f88a072b1efc5a4d5f6451b490b 100644 (file)
@@ -1372,6 +1372,7 @@ int max;
 #define ERRMSGSIZE  10000 /* Hope this is big enough.  No way to error check */
 #define LINEWIDTH      79 /* Max width of any output line */
 #define PREFIXLIMIT    30 /* Max width of the prefix on each line */
+static int noerrorclipping = 0;
 void ErrorMsg(const char *filename, int lineno, const char *format, ...){
   char errmsg[ERRMSGSIZE];
   char prefix[PREFIXLIMIT+10];
@@ -1381,33 +1382,41 @@ void ErrorMsg(const char *filename, int lineno, const char *format, ...){
   va_list ap;
   int end, restart, base;
 
-  va_start(ap, format);
-  /* Prepare a prefix to be prepended to every output line */
-  if( lineno>0 ){
-    sprintf(prefix,"%.*s:%d: ",PREFIXLIMIT-10,filename,lineno);
+  if( noerrorclipping ) {
+    fprintf(stderr, "%s:%d: ", filename, lineno);
+    va_start(ap, format);
+    vfprintf(stderr,format,ap);
+    va_end(ap);
+    fprintf(stderr, "\n");
   }else{
-    sprintf(prefix,"%.*s: ",PREFIXLIMIT-10,filename);
-  }
-  prefixsize = lemonStrlen(prefix);
-  availablewidth = LINEWIDTH - prefixsize;
-
-  /* Generate the error message */
-  vsprintf(errmsg,format,ap);
-  va_end(ap);
-  errmsgsize = lemonStrlen(errmsg);
-  /* Remove trailing '\n's from the error message. */
-  while( errmsgsize>0 && errmsg[errmsgsize-1]=='\n' ){
-     errmsg[--errmsgsize] = 0;
-  }
+    va_start(ap, format);
+    /* Prepare a prefix to be prepended to every output line */
+    if( lineno>0 ){
+      sprintf(prefix,"%.*s:%d: ",PREFIXLIMIT-10,filename,lineno);
+    }else{
+      sprintf(prefix,"%.*s: ",PREFIXLIMIT-10,filename);
+    }
+    prefixsize = lemonStrlen(prefix);
+    availablewidth = LINEWIDTH - prefixsize;
+
+    /* Generate the error message */
+    vsprintf(errmsg,format,ap);
+    va_end(ap);
+    errmsgsize = lemonStrlen(errmsg);
+    /* Remove trailing '\n's from the error message. */
+    while( errmsgsize>0 && errmsg[errmsgsize-1]=='\n' ){
+      errmsg[--errmsgsize] = 0;
+    }
 
-  /* Print the error message */
-  base = 0;
-  while( errmsg[base]!=0 ){
-    end = restart = findbreak(&errmsg[base],0,availablewidth);
-    restart += base;
-    while( errmsg[restart]==' ' ) restart++;
-    fprintf(stdout,"%s%.*s\n",prefix,end,&errmsg[base]);
-    base = restart;
+    /* Print the error message */
+    base = 0;
+    while( errmsg[base]!=0 ){
+      end = restart = findbreak(&errmsg[base],0,availablewidth);
+      restart += base;
+      while( errmsg[restart]==' ' ) restart++;
+      fprintf(stdout,"%s%.*s\n",prefix,end,&errmsg[base]);
+      base = restart;
+    }
   }
 }
 /**************** From the file "main.c" ************************************/
@@ -1472,6 +1481,7 @@ char **argv;
   static int nolinenosflag = 0;
   static struct s_options options[] = {
     {OPT_FLAG, "b", (char*)&basisflag, "Print only the basis in report."},
+    {OPT_FLAG, "e", (char*)&noerrorclipping, "Don't clip error output."},
     {OPT_FLAG, "c", (char*)&compress, "Don't compress the action table."},
     {OPT_FSTR, "D", (char*)handle_D_option, "Define an %ifdef macro."},
     {OPT_FSTR, "T", (char*)handle_T_option, "Specify a template file."},