Ticket #34066: patch-bugfixes.diff
File patch-bugfixes.diff, 41.9 KB (added by florian@…, 13 years ago) |
---|
-
configure.ac
old new 33 33 DOCYEAR="2012" 34 34 GSHHS_VERSION=2.2.0 35 35 SVN_VERSION=0 36 dnl see whether subversion is installed 37 AC_PATH_PROG([SVNVERSIONCOMMAND], [svnversion], []) 38 dnl use svnversion to record the current repository revision only if 39 dnl subversion is installed and we are in a working copy 40 if test "$SVN_VERSION" != "0" && test -x "$SVNVERSIONCOMMAND"; then 41 SVN_VERSION_STRING=`"$SVNVERSIONCOMMAND" -n '.'` 42 if test "$SVN_VERSION_STRING" == "exported" || \ 43 test "$SVN_VERSION_STRING" == "Unversioned directory"; then 44 SVN_VERSION=0 45 fi 46 fi 36 47 dnl 37 48 dnl ----------------------------------------------------------------- 38 49 dnl Specify the minimal supplement directories … … 82 93 AC_SUBST(FTPSITE) 83 94 AC_SUBST(GSHHS_VERSION) 84 95 AC_SUBST(SVN_VERSION) 96 AC_SUBST(SVN_VERSION_STRING) 85 97 AC_SUBST(GMT_MAJOR_VERSION) 86 98 AC_SUBST(GMT_MINOR_VERSION) 87 99 AC_SUBST(GMT_RELEASE_VERSION) -
src/gmt_plot.c
old new 4193 4193 /* First crudely estimate the boundingbox coordinates */ 4194 4194 4195 4195 if (GMT_ps.overlay && (fp = fopen (info, "r")) != NULL) { /* Must get previous boundingbox values */ 4196 fscanf (fp, "%d %d %lf %lf %lf %lf %lf %lf\n", &(new->portrait), &(new->clip_level), &orig_x0, &orig_y0, &old_x0, &old_y0, &old_x1, &old_y1);4196 (void)fscanf (fp, "%d %d %lf %lf %lf %lf %lf %lf\n", &(new->portrait), &(new->clip_level), &orig_x0, &orig_y0, &old_x0, &old_y0, &old_x1, &old_y1); 4197 4197 fclose (fp); 4198 4198 x0 = orig_x0; 4199 4199 y0 = orig_y0; -
src/gmt_version.c
old new 25 25 26 26 #include "gmt.h" 27 27 28 char *GMT_version ()29 {30 static char text[GMT_LONG_TEXT];31 28 #if SVN_VERSION 32 int svn_revision = 33 #include "gmt_svn_revision.h" 34 ; 35 sprintf (text, PACKAGE_VERSION "-%d" GMT_VER_64, svn_revision); 29 #define SVN_SUFFIX "_r" SVN_VERSION_STRING 36 30 #else 37 sprintf (text, PACKAGE_VERSION GMT_VER_64); 31 #define SVN_SUFFIX "" 38 32 #endif 33 34 char *GMT_version () 35 { 36 static char text[GMT_LONG_TEXT]; 37 sprintf (text, PACKAGE_VERSION SVN_SUFFIX GMT_VER_64); 39 38 return (text); 40 39 } -
src/gmt_version.h.in
old new 1 /* @configure_input@ */ 2 1 3 #define SVN_VERSION @SVN_VERSION@ 4 #define SVN_VERSION_STRING "@SVN_VERSION_STRING@" 2 5 #define PACKAGE_VERSION "@PACKAGE_VERSION@" 3 6 #if SVN_VERSION 4 7 #define GMT_STRING "@PACKAGE_STRING@ (SVN)" -
src/mgd77/mgd77.c
old new 2110 2110 2111 2111 int MGD77_Write_File_asc (char *file, struct MGD77_CONTROL *F, struct MGD77_DATASET *S) /* Will write all MGD77 records in current file */ 2112 2112 { 2113 int err ;2113 int err = 0; 2114 2114 2115 2115 if (MGD77_Open_File (file, F, MGD77_WRITE_MODE)) return (-1); 2116 2116 switch (F->format) { … … 2298 2298 GMT_LONG pos = 0; 2299 2299 GMT_cal_rd rata_die; 2300 2300 char line[BUFSIZ], p[BUFSIZ], r_date[9]; 2301 double tz, secs, r_time ;2301 double tz, secs, r_time = 0.0; 2302 2302 2303 2303 if (!(fgets (line, BUFSIZ, F->fp))) return (MGD77_ERROR_READ_ASC_DATA); /* End of file? */ 2304 2304 GMT_chop (line); /* Get rid of CR or LF */ -
src/pshistogram.c
old new 340 340 z_project.view_elevation = Ctrl->E.elevation; 341 341 F.cumulative = Ctrl->Q.active; 342 342 F.center_box = Ctrl->F.active; 343 if (Ctrl->I.active ) gmtdefs.verbose = TRUE;343 if (Ctrl->I.active && Ctrl->I.mode == 0) gmtdefs.verbose = TRUE; 344 344 if (!Ctrl->I.active && !project_info.region_supplied) automatic = TRUE; 345 345 346 346 if (Ctrl->C.active) GMT_read_cpt (Ctrl->C.file); -
src/pslegend.c
old new 620 620 fprintf (fpo, "\n"); 621 621 622 622 if (!Ctrl->S.active) { /* Add auto-delete command at the end of the script and then execute it */ 623 int err = 0; 623 624 if (fpo != stdout) fclose (fpo); 624 625 if (gmtdefs.verbose) fprintf (stderr, "%s: Executing and removing legend script\n", GMT_program); 625 626 #ifdef WIN32 626 system (script);627 err = system (script); 627 628 #else 628 629 sprintf (sub, "sh %s", script); 629 system (sub);630 err = system (sub); 630 631 #endif 631 632 remove (script); 633 if (err) fprintf (stderr, "%s: System call return with non-zero status %d\n", GMT_program, err); 632 634 } 633 635 else if (fpo != stdout) 634 636 fclose (fpo); -
src/xgrid/xGridEdit.c
old new 25 25 26 26 /**** Local procedures ****/ 27 27 28 static void usage ( ); /* String argv[] */29 static void quitGridEdit ( ); /* Widget w, void * callData, void * clientData */28 static void usage (String argv[]); 29 static void quitGridEdit (Widget w, void * callData, void * clientData); 30 30 31 static void usage (argv) 32 String argv[]; 31 static void usage (String argv[]) 33 32 { 34 33 printf("Usage: %s <grid file name>\n", argv[0]); 35 34 } 36 35 37 static void quitGridEdit (w, call, client) 38 Widget w; 39 void * call; 40 void * client; 36 static void quitGridEdit (Widget w __attribute__((unused)), 37 void *call __attribute__((unused)), 38 void *client __attribute__((unused))) 41 39 { 42 40 /* There may be more than one callback on the Quit button, and 43 41 the order of execution is undefined. We therefore can't -
src/xgrid/xgrid_Canvas.c
old new 22 22 23 23 /**** Methods for Canvas. ****/ 24 24 25 static void CanvasRealize (self, mask, attributes) 26 Widget self; 27 XtValueMask * mask; 28 XSetWindowAttributes * attributes; 25 static void CanvasRealize (Widget self, XtValueMask *mask, XSetWindowAttributes *attributes) 29 26 { 30 27 WidgetClass super; 31 28 … … 36 33 XtCallCallbackList(self, ((CanvasWidget)self)->canvas.realize_callback, NULL); 37 34 } 38 35 39 static void CanvasResize (self) 40 Widget self; 36 static void CanvasResize (Widget self) 41 37 { 42 38 XRectangle bounds; 43 39 … … 50 46 ((CanvasWidget)self)->canvas.resize_callback, &bounds); 51 47 } 52 48 53 static void CanvasExpose (self, event, region) 54 Widget self; 55 XEvent * event; 56 Region region; 49 static void CanvasExpose (Widget self, XEvent *event __attribute__((unused)), Region region) 57 50 { 58 51 XtCallCallbackList(self, 59 52 ((CanvasWidget)self)->canvas.expose_callback, region); 60 53 } 61 54 62 static XtGeometryResult CanvasQueryGeometry (self, request, reply) 63 Widget self; 64 XtWidgetGeometry * request; 65 XtWidgetGeometry * reply; 55 static XtGeometryResult CanvasQueryGeometry (Widget self, XtWidgetGeometry *request, 56 XtWidgetGeometry *reply) 66 57 { 67 58 XtGeometryHandler instMethod; 68 59 … … 117 108 118 109 /**** Convenience functions ****/ 119 110 120 XFontStruct * XtCanvasFont (self) 121 CanvasWidget self; 111 XFontStruct * XtCanvasFont (Widget self) 122 112 { 123 113 XtCheckSubclass(self, canvasWidgetClass, "XtCanvasFont"); 124 return self->canvas.font;114 return ((CanvasWidget)self)->canvas.font; 125 115 } 126 116 127 void * XtCanvasData (self) 128 CanvasWidget self; 117 void * XtCanvasData (Widget self) 129 118 { 130 119 XtCheckSubclass(self, canvasWidgetClass, "XtCanvasData"); 131 return self->canvas.data;120 return ((CanvasWidget)self)->canvas.data; 132 121 } 133 -
src/xgrid/xgrid_Canvas.h
old new 76 76 77 77 /**** Convenience functions ****/ 78 78 79 extern XFontStruct * XtCanvasFont ( ); /* Widget w */80 extern void * XtCanvasData ( ); /* Widget w */79 extern XFontStruct * XtCanvasFont (Widget w); 80 extern void * XtCanvasData (Widget w); 81 81 82 82 #endif /* _Canvas_h */ -
src/xgrid/xgrid_GMTgrid.c
old new 17 17 #include "xgrid_utility.h" 18 18 #include "xgrid_GMTgrid.h" 19 19 20 static void clear (grid) 21 GMTGrid * grid; 20 static void clear (GMTGrid *grid) 22 21 { 23 22 grid->methods.width = 0; 24 23 grid->methods.height = 0; … … 48 47 memset(grid->header.remark, 0, sizeof(grid->header.remark)); 49 48 } 50 49 51 static void readFromFile (G MTGrid *grid, String fileName, int *status)50 static void readFromFile (Grid *_grid, String fileName, int *status) 52 51 { 52 GMTGrid *grid = (GMTGrid *)_grid; 53 53 if ((*status = GMT_read_grd_info (fileName, &grid->header))) 54 54 return; 55 55 … … 66 66 return; 67 67 } 68 68 69 static void writeToFile (grid, fileName, status) 70 GMTGrid * grid; 71 String fileName; 72 int * status; 69 static void writeToFile (Grid *_grid, String fileName, int *status) 73 70 { 71 GMTGrid *grid = (GMTGrid *)_grid; 74 72 *status = GMT_write_grd (fileName, &grid->header, grid->value, 0.0, 0.0, 0.0, 75 73 0.0, GMT_pad, FALSE); 76 74 } 77 75 78 static void dispose (grid) 79 GMTGrid * grid; 76 static void dispose (Grid *_grid) 80 77 { 78 GMTGrid *grid = (GMTGrid *)_grid; 81 79 free(grid->value); 82 80 grid->value = NULL; 83 81 } 84 82 85 83 #if 0 86 static void dumpGrid (grid) 87 GMTGrid * grid; 84 static void dumpGrid (GMTGrid *grid) 88 85 { 89 86 int outer, inner; 90 87 GridPoint gPt; … … 115 112 } 116 113 #endif 117 114 118 static void getIndexes (grid, coord, index) 119 GMTGrid * grid; 120 GridPoint * coord; 121 XPoint * index; 115 static void getIndexes (Grid *_grid, GridPoint *coord, XPoint *index) 122 116 { 123 117 int column, row; 118 GMTGrid *grid = (GMTGrid *)_grid; 124 119 125 120 column = (int)((coord->x - grid->header.x_min) / grid->header.x_inc); 126 121 row = (int)((coord->y - grid->header.y_min) / grid->header.y_inc); … … 129 124 index->y = grid->header.ny - row; 130 125 } 131 126 132 static void getCoords (grid, index, coord) 133 GMTGrid * grid; 134 XPoint * index; 135 GridPoint * coord; 127 static void getCoords (Grid *_grid, XPoint *index, GridPoint *coord) 136 128 { 129 GMTGrid *grid = (GMTGrid *)_grid; 137 130 coord->x = grid->header.x_min + index->x * grid->header.x_inc; 138 131 coord->y = grid->header.y_max - index->y * grid->header.y_inc; 139 132 } 140 133 141 static void set (grid, xIndex, yIndex, value) 142 GMTGrid * grid; 143 int xIndex; 144 int yIndex; 145 GridValue value; 134 static void set (Grid *_grid, int xIndex, int yIndex, GridValue value) 146 135 { 136 GMTGrid *grid = (GMTGrid *)_grid; 147 137 grid->value[yIndex * grid->header.nx + xIndex] = value; 148 138 } 149 139 150 static GridValue get (grid, xIndex, yIndex) 151 GMTGrid * grid; 152 int xIndex; 153 int yIndex; 140 static GridValue get (Grid *_grid, int xIndex, int yIndex) 154 141 { 142 GMTGrid *grid = (GMTGrid *)_grid; 155 143 156 144 /* Original Version had "grid->header.ny": should be "grid->header.nx */ 157 145 /* Fixed 8/4/93 by J. Lillibrige @ NOAA/NOS to eliminate core dumps! */ -
src/xgrid/xgrid_Panner.c
old new 6 6 #define Min(a,b) ((a)<(b)?(a):(b)) 7 7 #define Max(a,b) ((a)>(b)?(a):(b)) 8 8 9 #include "xgrid_PannerP.h"10 9 #include <stddef.h> 11 10 11 #include "xgrid_utility.h" 12 13 #include "xgrid_PannerP.h" 14 12 15 static XtResource resources[] = { 13 16 #define offset(field) XtOffset(PannerWidget, panner.field) 14 17 { XtNcanvas, XtCCanvas, XtRWidget, sizeof(Widget), … … 45 48 /**** Methods for Panner. ****/ 46 49 47 50 /* At initialisation, create our two scrollbar widgets */ 48 static void PannerInitialize (Widget request, Widget result, ArgList args, Cardinal *nargs) 51 static void PannerInitialize (Widget request __attribute__((unused)), 52 Widget result, ArgList args __attribute__((unused)), 53 Cardinal *nargs __attribute__((unused))) 49 54 { 50 55 Widget bar; 51 56 PanScrollRec *horizontal = &((PannerWidget)result)->panner.horizontal; … … 85 90 /* If range or position changed, recalculate appearance 86 91 of scrollbars. Don't bother checking for width, height 87 92 resources because the resize method will catch those. */ 88 static Boolean PannerSetValues (Widget old, Widget request, Widget new, ArgList args, Cardinal *nargs) 93 static Boolean PannerSetValues (Widget old, Widget request __attribute__((unused)), 94 Widget new, ArgList args __attribute__((unused)), 95 Cardinal *nargs __attribute__((unused))) 89 96 { 90 97 PannerWidget oldp, newp; 91 98 … … 136 143 recalculateBar(&(self->panner.vertical)); 137 144 } 138 145 139 static void recalculateBar (bar) 140 PanScrollRec * bar; 146 static void recalculateBar (PanScrollRec * bar) 141 147 { 142 148 float top, size; 143 149 … … 227 233 2. You can't scroll past the bottom of the data, 228 234 ie the thumb is always fully visible ****/ 229 235 230 static void jumpProc (bar, data, fraction) 231 Widget bar; 232 PanScrollRec * data; 233 float * fraction; 236 static void jumpProc (Widget bar, PanScrollRec *data, float *fraction) 234 237 { 235 238 float thumbSize, scaleFrac; 236 239 int previous; … … 266 269 to the position of the cursor in the bar. 267 270 ****/ 268 271 269 static void scrollProc (bar, data, position) 270 Widget bar; 271 PanScrollRec * data; 272 int position; 272 static void scrollProc (Widget bar, PanScrollRec *data, int position) 273 273 { 274 274 int distance; 275 275 Position previous; … … 299 299 300 300 /**** Convenience functions ****/ 301 301 302 void XtSetPannerCanvas (self, canvas) 303 PannerWidget self; 304 Widget canvas; 302 void XtSetPannerCanvas (Widget self, Widget canvas) 305 303 { 306 304 XtCheckSubclass(self, pannerWidgetClass, "XtSetPannerCanvas"); 307 XtVaSetValues( (Widget)self, XtNcanvas, canvas, NULL);305 XtVaSetValues(self, XtNcanvas, canvas, NULL); 308 306 } 309 307 310 int XtPannerXPosition (self) 311 PannerWidget self; 308 int XtPannerXPosition (Widget self) 312 309 { 313 310 XtCheckSubclass(self, pannerWidgetClass, "XtPannerXPosition"); 314 return self->panner.horizontal.position;311 return ((PannerWidget)self)->panner.horizontal.position; 315 312 } 316 313 317 int XtPannerYPosition (self) 318 PannerWidget self; 314 int XtPannerYPosition (Widget self) 319 315 { 320 316 XtCheckSubclass(self, pannerWidgetClass, "XtPannerYPosition"); 321 return self->panner.vertical.position;317 return ((PannerWidget)self)->panner.vertical.position; 322 318 } 323 319 324 void XtSetPannerXPosition (self, position) 325 PannerWidget self; 326 int position; 320 void XtSetPannerXPosition (Widget self, int position) 327 321 { 328 322 XtCheckSubclass(self, pannerWidgetClass, "XtSetPannerXPosition"); 329 XtVaSetValues( (Widget)self, XtNxPosition, position, NULL);323 XtVaSetValues(self, XtNxPosition, position, NULL); 330 324 } 331 325 332 void XtSetPannerYPosition (self, position) 333 PannerWidget self; 334 int position; 326 void XtSetPannerYPosition (Widget self, int position) 335 327 { 336 328 XtCheckSubclass(self, pannerWidgetClass, "XtSetPannerYPosition"); 337 XtVaSetValues( (Widget)self, XtNyPosition, position, NULL);329 XtVaSetValues(self, XtNyPosition, position, NULL); 338 330 } 339 331 340 void XtSetPannerXRange (self, range) 341 PannerWidget self; 342 int range; 332 void XtSetPannerXRange (Widget self, int range) 343 333 { 344 334 XtCheckSubclass(self, pannerWidgetClass, "XtSetPannerXRange"); 345 XtVaSetValues( (Widget)self, XtNxRange, range, NULL);335 XtVaSetValues(self, XtNxRange, range, NULL); 346 336 } 347 337 348 void XtSetPannerYRange (self, range) 349 PannerWidget self; 350 int range; 338 void XtSetPannerYRange (Widget self, int range) 351 339 { 352 340 XtCheckSubclass(self, pannerWidgetClass, "XtSetPannerYRange"); 353 XtVaSetValues( (Widget)self, XtNyRange, range, NULL);341 XtVaSetValues(self, XtNyRange, range, NULL); 354 342 } 355 -
src/xgrid/xgrid_Panner.h
old new 84 84 85 85 /* Convenience functions */ 86 86 87 extern void XtSetPannerCanvas ( ); /* Widget w, Widget canvas*/87 extern void XtSetPannerCanvas (Widget, Widget canvas); /* */ 88 88 89 extern int XtPannerXPosition ( ); /* Widget w*/90 extern int XtPannerYPosition ( ); /* Widget w */89 extern int XtPannerXPosition (Widget); /* */ 90 extern int XtPannerYPosition (Widget); /* Widget w */ 91 91 92 extern void XtSetPannerXPosition ( ); /* Widget w, int x */93 extern void XtSetPannerYPosition ( ); /* Widget w, int y */94 extern void XtSetPannerXRange ( ); /* Widget w, int x */95 extern void XtSetPannerYRange ( ); /* Widget w, int y */92 extern void XtSetPannerXPosition (Widget, int); /* Widget w, int x */ 93 extern void XtSetPannerYPosition (Widget, int); /* Widget w, int y */ 94 extern void XtSetPannerXRange (Widget, int); /* Widget w, int x */ 95 extern void XtSetPannerYRange (Widget, int); /* Widget w, int y */ 96 96 97 97 #endif /* _Panner_h */ -
src/xgrid/xgrid_Xutility.c
old new 14 14 15 15 #include "xgrid_Xutility.h" 16 16 17 Dimension XtWidth (w) 18 Widget w; 17 Dimension XtWidth (Widget w) 19 18 { 20 19 return w->core.width; 21 20 } 22 21 23 Dimension XtHeight (w) 24 Widget w; 22 Dimension XtHeight (Widget w) 25 23 { 26 24 return w->core.height; 27 25 } 28 26 29 Widget XtShell (w) 30 Widget w; 27 Widget XtShell (Widget w) 31 28 { 32 29 while (w != NULL && !XtIsSubclass(w, shellWidgetClass)) 33 30 w = XtParent(w); … … 36 33 37 34 /**** Wait until all windows redrawn ****/ 38 35 39 void WaitNoExposes (w) 40 Widget w; 36 void WaitNoExposes (Widget w) 41 37 { 42 38 XEvent event; 43 39 Display * display; … … 56 52 57 53 /**** Highlight things ****/ 58 54 59 void InvertWidget (w) 60 Widget w; 55 void InvertWidget (Widget w) 61 56 { 62 57 Pixel foreground, background; 63 58 -
src/xgrid/xgrid_Xutility.h
old new 4 4 5 5 #define XSetPoint(pt, xVal, yVal) (pt).x = (xVal); (pt).y = (yVal) 6 6 7 extern Dimension XtWidth (); 8 /* Widget w */ 7 extern Dimension XtWidth (Widget); /* Widget w */ 9 8 10 extern Dimension XtHeight (); 11 /* Widget w */ 9 extern Dimension XtHeight (Widget); /* Widget w */ 12 10 13 extern Widget XtShell (); 14 /* Widget w */ 11 extern Widget XtShell (Widget); /* Widget w */ 15 12 16 extern void WaitNoExposes (); 17 /* Widget w */ 13 extern void WaitNoExposes (Widget); /* Widget w */ 18 14 19 extern void InvertWidget (); 20 /* Widget w */ 15 extern void InvertWidget (Widget); /* Widget w */ 21 16 22 17 #endif -
src/xgrid/xgrid_controls.c
old new 21 21 22 22 static Widget quitButton; 23 23 24 Widget createControlBar (name, parent, args, nargs) 25 String name; 26 Widget parent; 27 Arg args[]; 28 int nargs; 24 Widget createControlBar (String name, Widget parent, Arg args[], int nargs) 29 25 { 30 26 Widget result; 31 27 Arg list[32]; … … 54 50 chooses to quit. Such callbacks must NOT call exit because 55 51 the order in which callbacks are called is undefined. */ 56 52 57 void addQuitCallback (callback, clientData) 58 XtCallbackProc callback; 59 void * clientData; 53 void addQuitCallback (XtCallbackProc callback, void *clientData) 60 54 { 61 55 XtAddCallback(quitButton, XtNcallback, callback, clientData); 62 56 } 63 -
src/xgrid/xgrid_controls.h
old new 2 2 #ifndef _controls_ 3 3 #define _controls_ 4 4 5 extern Widget createControlBar ( );5 extern Widget createControlBar (String name, Widget parent, Arg args[], int nargs); 6 6 /* String name, Widget parent, Arg args[], int nargs */ 7 7 8 extern void addQuitCallback ( );8 extern void addQuitCallback (XtCallbackProc callback, void * clientData); 9 9 /* XtCallbackProc callback, void * clientData */ 10 10 11 11 #endif -
src/xgrid/xgrid_grid.h
old new 27 27 28 28 /**** Grid methods ****/ 29 29 30 typedef void (* GridProc) (); /* Grid * grid, ... */31 typedef GridValue (* GridFunc) (); /* Grid * grid, ... */32 33 30 /**** Grid data structure ****/ 34 31 35 typedef struct {32 typedef struct _Grid_s { 36 33 int width; 37 34 int height; 38 35 int coordType; /* Nodes or pixels */ 39 36 /**** Methods ****/ 40 /* dispose (Grid * grid ) */ 41 GridProc dispose; 42 /* readFromFile (Grid * grid, String fileName, int * status) */ 43 GridProc readFromFile; 44 /* writeToFile (Grid * grid, String fileName, int * status) */ 45 GridProc writeToFile; 46 /* getIndexes (Grid * grid, GridPoint * coords, XPoint * indexes) */ 47 GridProc getIndexes; 48 /* getCoords (Grid * grid, XPoint * indexes, GridPoint * coords) */ 49 GridProc getCoords; 50 /* set (Grid * grid, int xIndex, int yIndex, GridValue value) */ 51 GridProc set; 52 /* get (Grid * grid, int xIndex, int yIndex) */ 53 GridFunc get; 37 void (*dispose) (struct _Grid_s * grid ); 38 void (*readFromFile) (struct _Grid_s *grid, String fileName, int * status); 39 void (*writeToFile) (struct _Grid_s * grid, String fileName, int * status); 40 void (*getIndexes) (struct _Grid_s * grid, GridPoint * coords, XPoint * indexes); 41 void (*getCoords) (struct _Grid_s * grid, XPoint * indexes, GridPoint * coords); 42 void (*set) (struct _Grid_s *grid, int xIndex, int yIndex, GridValue value); 43 GridValue (*get) (struct _Grid_s * grid, int xIndex, int yIndex); 54 44 } Grid; 55 45 56 46 /**** Convenience macros to make code cleaner ****/ -
src/xgrid/xgrid_messages.c
old new 16 16 17 17 Widget messageWidget = NULL; 18 18 19 Widget createMessageLine (name, parent, args, nargs) 20 String name; 21 Widget parent; 22 Arg args[]; 23 int nargs; 19 Widget createMessageLine (String name, Widget parent, Arg args[], int nargs) 24 20 { 25 21 Widget result; 26 22 Arg list[32]; … … 40 36 return result; 41 37 } 42 38 43 void setMessageLine (newMessage) 44 String newMessage; 39 void setMessageLine (String newMessage) 45 40 { 46 41 if (messageWidget != NULL) 47 42 XtVaSetValues(messageWidget, XtNlabel, newMessage, NULL); 48 43 } 49 -
src/xgrid/xgrid_messages.h
old new 4 4 5 5 extern Widget messageWidget; 6 6 7 extern Widget createMessageLine (); 8 /* String name, Widget parent, Arg args[], int nargs */ 7 extern Widget createMessageLine (String name, Widget parent, Arg args[], int nargs); 9 8 10 extern void setMessageLine (); 11 /* String newMessage */ 9 extern void setMessageLine (String newMessage); 12 10 #endif 13 11 -
src/xgrid/xgrid_textInput.c
old new 76 76 static Widget inputField; 77 77 static Widget undoButton; 78 78 79 Widget createTextInputArea (parent) 80 Widget parent; 81 { 79 Widget createTextInputArea (Widget parent) { 82 80 Widget label; 83 81 84 82 undoButton = XtVaCreateManagedWidget("undo", commandWidgetClass, parent, … … 113 111 114 112 } 115 113 116 void setViewForInput (data) 117 TextViewData * data; 118 { 114 void setViewForInput (TextViewData *data) { 119 115 theView = data; 120 116 clearInputSelection(); 121 117 clearUndo(); … … 138 134 XtSetSensitive(undoButton, False); 139 135 } 140 136 141 void setInputSelection (col, row) 142 int col; 143 int row; 144 { 137 void setInputSelection (int col, int row) { 145 138 char str[64]; 146 139 147 140 selection.col = col; … … 158 151 XawTextSetInsertionPoint(inputField, strlen(str)); 159 152 } 160 153 161 static void Beep (w, event, params, nparams) 162 Widget w; 163 XEvent * event; 164 String * params; 165 Cardinal * nparams; 166 { 154 static void Beep (Widget w, 155 XEvent * event __attribute__((unused)), 156 String * params __attribute__((unused)), 157 Cardinal * nparams __attribute__((unused))) { 167 158 XBell(XtDisplay(w), 100); 168 159 } 169 160 170 static void EnterNewValue (w, event, params, nparams) 171 Widget w; 172 XEvent * event; 173 String * params; 174 Cardinal * nparams; 161 static void EnterNewValue (Widget w __attribute__((unused)), 162 XEvent * event __attribute__((unused)), 163 String * params __attribute__((unused)), 164 Cardinal * nparams __attribute__((unused))) 175 165 { 176 166 GridValue newValue; 177 167 String field; … … 198 188 gridHasChanged = True; 199 189 } 200 190 201 static void undoNewValue (w, clientData, callData) 202 Widget w; 203 void * clientData; 204 void * callData; 191 static void undoNewValue (Widget w __attribute__((unused)), 192 void * clientData __attribute__((unused)), 193 void * callData __attribute__((unused))) 205 194 { 206 195 XPoint index; 207 196 GridPoint coord; -
src/xgrid/xgrid_textInput.h
old new 1 1 #ifndef _TEXTINPUT_ 2 2 #define _TEXTINPUT_ 3 3 4 extern Widget createTextInputArea (); /* Widget parent */ 4 #include "xgrid_textView.h" 5 5 6 extern void setViewForInput (); /* TextViewData * data*/6 extern Widget createTextInputArea (Widget parent); /* */ 7 7 8 extern void clearInputSelection (); /* void */ 9 extern void setInputSelection (); /* int col, int row */ 8 extern void setViewForInput (TextViewData * data); /* */ 9 10 extern void clearInputSelection (void); /* */ 11 extern void setInputSelection (int col, int row); /* */ 10 12 11 13 #endif 12 14 -
src/xgrid/xgrid_textView.c
old new 43 43 44 44 /**** Local procedures ****/ 45 45 46 static void handleRealize (); /* Widget w, TextViewData * data, void * call */ 47 static void handleExpose (); /* Widget w, void * data, Region area */ 48 static void createContexts (); /* Widget w, TextViewData * data */ 49 50 static void scrollHorizontal (); /* Widget w, TextViewData * data, int x */ 51 static void scrollVertical (); /* Widget w, TextViewData * data, int y */ 52 53 static void redrawValues (); /* Widget w, 54 Position left, Position top, 55 Dimension width, Dimension height */ 56 57 static void highlightCell (); /* Widget w, TextViewData * data, CellInfo * cell */ 58 static void lowlightCell (); /* Widget w, CellInfo * cell */ 59 60 static void CursorMovement (); /* Widget w, XEvent * event, 61 String * params, Cardinal * nparams */ 62 static void ClearMessage (); /* Widget w, XEvent * event, 63 String * params, Cardinal * nparams */ 64 static void SelectValue (); /* Widget w, XEvent * event, 65 String * params, Cardinal * nparams */ 46 static void handleRealize (Widget w, XtPointer, XtPointer); 47 static void handleExpose (Widget w, XtPointer, XtPointer); 48 static void createContexts (Widget w, TextViewData * data); 49 50 static void scrollHorizontal (Widget w, XtPointer, XtPointer); 51 static void scrollVertical (Widget w, XtPointer, XtPointer); 52 53 static void redrawValues (Widget w, Position left, Position top, Dimension width, Dimension height); 54 55 static void highlightCell (Widget w, TextViewData * data, CellInfo * cell); 56 static void lowlightCell (Widget w, CellInfo * cell); 57 58 static void CursorMovement (Widget w, XEvent * event, String * params, Cardinal * nparams); 59 static void ClearMessage (Widget w, XEvent * event, String * params, Cardinal * nparams); 60 static void SelectValue (Widget w, XEvent * event, String * params, Cardinal * nparams); 66 61 67 62 static XtResource ViewResourceList[] = { 68 63 { XtNgrid, XtCGrid, XtRPointer, sizeof(XtPointer), … … 93 88 94 89 /**** Initialization ****/ 95 90 96 Widget createTextView (name, parent, args, nargs) 97 String name; 98 Widget parent; 99 Arg args[]; 100 int nargs; 91 Widget createTextView (String name, 92 Widget parent, 93 Arg args[], 94 int nargs) 101 95 { 102 96 Widget result; 103 97 TextViewData * data; … … 138 132 return result; 139 133 } 140 134 141 void setTextViewGrid (view, grid) 142 Widget view; 143 Grid * grid; 135 void setTextViewGrid (Widget view, Grid * grid) 144 136 { 145 137 TextViewData * data; 146 138 … … 153 145 XClearArea(XtDisplay(view), XtWindow(view), 0, 0, 0, 0, True); 154 146 } 155 147 156 void recalculateDisplayParameters (view) 157 Widget view; 148 void recalculateDisplayParameters (Widget view) 158 149 { 159 150 TextViewData * data; 160 151 XFontStruct * font; … … 187 178 } 188 179 } 189 180 190 void redrawGridValue (view, col, row) 191 Widget view; 192 int col; 193 int row; 181 void redrawGridValue (Widget view, int col, int row) 194 182 { 195 183 TextViewData * data; 196 184 int x, y; … … 206 194 window has been created, so do that when we 207 195 are realized. ****/ 208 196 209 static void createContexts (view, data) 210 Widget view; 211 TextViewData * data; 197 static void createContexts (Widget view, TextViewData *data) 212 198 { 213 199 XFontStruct * font; 214 200 XGCValues gcv; … … 239 225 GCForeground | GCBackground | GCFont, &gcv); 240 226 } 241 227 242 static void handleRealize (w, data, call) 243 Widget w; 244 TextViewData * data; 245 void * call; 228 static void handleRealize (Widget w, 229 XtPointer client_data, 230 XtPointer call_data __attribute__((unused))) 246 231 { 247 createContexts(w, data);232 createContexts(w, client_data); 248 233 recalculateDisplayParameters(w); 249 setViewForInput( data);234 setViewForInput(client_data); 250 235 } 251 236 252 237 /**** Expose event handling ****/ 253 238 254 static void handleExpose (w, data, area) 255 Widget w; 256 void * data; 257 Region area; 239 static void handleExpose (Widget w, 240 XtPointer client_data __attribute__((unused)), 241 XtPointer call_data) 258 242 { 259 243 XRectangle bbox; 260 244 245 Region area = call_data; 261 246 XClipBox(area, &bbox); 262 247 redrawValues(w, bbox.x, bbox.y, bbox.width, bbox.height); 263 248 } 264 249 265 static void redrawValues (w, left, top, width, height) 266 Widget w; 267 Position left; 268 Position top; 269 Dimension width; 270 Dimension height; 250 static void redrawValues (Widget w, 251 Position left, 252 Position top, 253 Dimension width, 254 Dimension height) 271 255 { 272 256 TextViewData * data; 273 257 int x, y; … … 331 315 #define XIndex(x) (((x) + data->xOffset) / data->cellWidth) 332 316 #define YIndex(y) (((y) + data->yOffset) / data->cellHeight) 333 317 334 static void scrollHorizontal (w, data, x) 335 Widget w; 336 TextViewData * data; 337 int x; 318 static void scrollHorizontal (Widget w __attribute__((unused)), 319 XtPointer client_data, 320 XtPointer call_data) 338 321 { 339 322 Widget canvas; 340 323 Dimension width, height; … … 343 326 XPoint index1, index2; 344 327 GridPoint grid1, grid2; 345 328 329 TextViewData *data = client_data; 330 int x = (int)call_data; 331 346 332 canvas = data->canvas; 347 333 width = XtWidth(canvas); 348 334 height = XtHeight(canvas); … … 377 363 setMessageLine(msg); 378 364 } 379 365 380 static void scrollVertical (w, data, y) 381 Widget w; 382 TextViewData * data; 383 int y; 366 static void scrollVertical (Widget w __attribute__((unused)), 367 XtPointer client_data, 368 XtPointer call_data) 384 369 { 385 370 Widget canvas; 386 371 Dimension width, height; … … 389 374 XPoint index1, index2; 390 375 GridPoint grid1, grid2; 391 376 377 TextViewData *data = client_data; 378 int y = (int)call_data; 379 392 380 canvas = data->canvas; 393 381 width = XtWidth(canvas); 394 382 height = XtHeight(canvas); … … 429 417 430 418 /**** Event handling ****/ 431 419 432 static void highlightCell (w, data, cell) 433 Widget w; 434 TextViewData * data; 435 CellInfo * cell; 420 static void highlightCell (Widget w, 421 TextViewData * data, 422 CellInfo * cell) 436 423 { 437 424 XDrawRectangle(XtDisplay(w), XtWindow(w), data->valueGC, 438 425 cell->bounds.x + 1, cell->bounds.y + 1, 439 426 cell->bounds.width - 2, cell->bounds.height - 2); 440 427 } 441 428 442 static void lowlightCell (w, cell) 443 Widget w; 444 CellInfo * cell; 429 static void lowlightCell (Widget w, 430 CellInfo * cell) 445 431 { 446 432 redrawValues(w, cell->bounds.x, cell->bounds.y, 447 433 cell->bounds.width, cell->bounds.height); 448 434 } 449 435 450 static void CursorMovement (w, event, params, nparams) 451 Widget w; 452 XEvent * event; 453 String * params; 454 Cardinal * nparams; 436 static void CursorMovement (Widget w, 437 XEvent * event, 438 String * params __attribute__((unused)), 439 Cardinal * nparams __attribute__((unused))) 455 440 { 456 441 TextViewData * data; 457 442 char msg[256]; … … 480 465 } 481 466 482 467 483 static void ClearMessage (w, event, params, nparams) 484 Widget w; 485 XEvent * event; 486 String * params; 487 Cardinal * nparams; 468 static void ClearMessage (Widget w, 469 XEvent * event __attribute__((unused)), 470 String * params __attribute__((unused)), 471 Cardinal * nparams __attribute__((unused))) 488 472 { 489 473 lowlightCell(w, &cellUnderMouse); 490 474 setMessageLine(""); 491 475 } 492 476 493 static void SelectValue (w, event, params, nparams) 494 Widget w; 495 XEvent * event; 496 String * params; 497 Cardinal * nparams; 477 static void SelectValue (Widget w __attribute__((unused)), 478 XEvent * event __attribute__((unused)), 479 String * params __attribute__((unused)), 480 Cardinal * nparams __attribute__((unused))) 498 481 { 499 482 /* All the actual input is handled in textInput.c */ 500 483 setInputSelection(cellUnderMouse.index.x, cellUnderMouse.index.y); 501 484 } 502 -
src/xgrid/xgrid_textView.h
old new 45 45 #endif 46 46 #define XtCPrecision "Precision" 47 47 48 extern Widget createTextView (); 49 /* String name, Widget parent, Arg args[], int nargs */ 48 extern Widget createTextView (String name, Widget parent, Arg args[], int nargs); 50 49 51 extern void setTextViewGrid (); 52 /* Widget view, Grid * grid */ 50 extern void setTextViewGrid (Widget view, Grid * grid); 53 51 54 extern void recalculateDisplayParameters (); 55 /* Widget view */ 52 extern void recalculateDisplayParameters (Widget view); 56 53 57 extern void redrawGridValue (); 58 /* Widget view, int col, int row */ 54 extern void redrawGridValue (Widget view, int col, int row); 59 55 #endif 60 -
src/xgrid/xgrid_utility.c
old new 6 6 7 7 #include "xgrid_utility.h" 8 8 9 FILE * CheckOpen (fileName, access) 10 String fileName; 11 String access; 9 FILE * CheckOpen (String fileName, String access) 12 10 { 13 11 FILE * result; 14 char 12 char msg[256]; 15 13 16 14 result = fopen(fileName, access); 17 15 if (result == NULL) { … … 21 19 return result; 22 20 } 23 21 24 void CheckReadLine (file, line, maxLength) 25 FILE * file; 26 char line[]; 27 int maxLength; 22 void CheckReadLine (FILE *file, char line[], int maxLength) 28 23 { 29 24 char * result; 30 25 … … 33 28 XtError("Null returned by fgets"); 34 29 } 35 30 36 void Trace (message) 37 String message; 38 { 31 void Trace (String message) { 39 32 fprintf(stderr, "%s\n", message); 40 33 fflush(stderr); 41 34 } 42 -
src/xgrid/xgrid_utility.h
old new 12 12 #define RoundUp(n, unit) ((((n) + (unit) - 1) / (unit)) * (unit)) 13 13 #define RoundDown(n, unit) (((n) / (unit)) * (unit)) 14 14 15 extern FILE * CheckOpen (); 16 /* String fileName, String access */ 15 extern FILE * CheckOpen (String fileName, String access); 17 16 18 extern void CheckReadLine (); 19 /* FILE * file, char line[], int maxLength */ 17 extern void CheckReadLine (FILE * file, char line[], int maxLength); 20 18 21 extern void Trace (); 22 /* String message */ 19 extern void Trace (String message); 20 21 #ifndef __GNUC__ 22 #define __attribute__(x) 23 #endif 23 24 24 25 #endif 25 26 -
src/xgrid/xgrid_view.c
old new 38 38 39 39 /**** Local procedures ****/ 40 40 41 static void getBaseName ( ); /* String fileName, String baseName */42 static void saveChanges ( ); /* Widget w, ViewData * view, void * callData */43 static void doSave ( ); /* Widget w, ViewData * view, void * callData */44 static void doDiscard ( ); /* Widget w, ViewData * view, void * callData */41 static void getBaseName (String fileName, String baseName); 42 static void saveChanges (Widget w, XtPointer view, XtPointer callData); 43 static void doSave (Widget w, XtPointer view, XtPointer callData); 44 static void doDiscard (Widget w, XtPointer view, XtPointer callData); 45 45 46 static void getBaseName(fileName, baseName) 47 String fileName; 48 String baseName; 46 static void getBaseName (String fileName, String baseName) 49 47 { 50 48 String slash, stop; 51 49 … … 62 60 *stop = '\0'; 63 61 } 64 62 65 Widget createView (fileName, parent, args, nargs) 66 String fileName; 67 Widget parent; 68 Arg args[]; 69 int nargs; 63 Widget createView (String fileName, 64 Widget parent, 65 Arg args[], 66 int nargs) 70 67 { 71 68 Widget result; 72 69 char widgetName[255]; … … 78 75 strcpy(theView.fileName, fileName); 79 76 theView.grid = CreateGMTGrid(); 80 77 Trace("Reading grid file..."); 81 ReadGridFromFile( theView.grid, fileName, &err);78 ReadGridFromFile((Grid *)theView.grid, fileName, &err); 82 79 if (err) { 83 80 sprintf(msg, "Unable to read file %s: C error code %d", fileName, err); 84 81 XtError(msg); … … 109 106 return result; 110 107 } 111 108 112 void createFileCommands (parent) 113 Widget parent; 109 void createFileCommands (Widget parent) 114 110 { 115 111 Widget save; 116 112 … … 124 120 /**** When the user quits, be nice and offer to save 125 121 any changes made in a popup dialog ****/ 126 122 127 static void saveChanges (w, view, callData) 128 Widget w; 129 ViewData * view; 130 void * callData; 123 static void saveChanges (Widget w, 124 XtPointer client_data, 125 XtPointer callData __attribute__((unused))) 131 126 { 132 127 Widget dialog; 133 128 XtAppContext app; 134 129 XEvent event; 135 130 131 ViewData *view = client_data; 132 136 133 if (! gridHasChanged) 137 134 return; 138 135 … … 161 158 } 162 159 } 163 160 164 static void doSave (w, view, callData) 165 Widget w; 166 ViewData * view; 167 void * callData; 161 static void doSave (Widget w, 162 XtPointer client_data, 163 XtPointer callData __attribute__((unused))) 168 164 { 169 165 String saveName; 170 166 int err; 171 167 char msg[256]; 172 168 169 ViewData *view = client_data; 170 173 171 saveName = XawDialogGetValueString(XtParent(w)); 174 172 strcpy(view->fileName, saveName); 175 WriteGridToFile( view->grid, view->fileName, &err);173 WriteGridToFile((Grid *)view->grid, view->fileName, &err); 176 174 if (err) { 177 175 sprintf(msg, "Unable to save file %s: C error code %d", saveName, err); 178 176 setMessageLine(msg); … … 187 185 } 188 186 } 189 187 190 static void doDiscard (w, view, callData) 191 Widget w; 192 ViewData * view; 193 void * callData; 188 static void doDiscard (Widget w __attribute__((unused)), 189 XtPointer view __attribute__((unused)), 190 XtPointer callData __attribute__((unused))) 194 191 { 195 192 XtPopdown(saveChangesPopup); 196 193 XtDestroyWidget(saveChangesPopup); 197 194 /* MUST do this, otherwise save dialog loops forever */ 198 195 saveChangesPopup = NULL; 199 196 } 200 201 -
src/xgrid/xgrid_view.h
old new 10 10 Widget canvas; 11 11 } ViewData; 12 12 13 extern Widget createView (); 14 /* String fileName, Widget parent, Arg args[], int nargs */ 13 extern Widget createView (String fileName, Widget parent, Arg args[], int nargs); 15 14 16 extern void createFileCommands (); 17 /* Widget parent */ 15 extern void createFileCommands (Widget parent); 18 16 19 17 /* Anything which changes the grid must set this flag */ 20 18 -
src/xyz2grd.c
old new 456 456 float value; 457 457 458 458 grd.node_offset = 0; 459 fgets (line, BUFSIZ, fp);459 (void)fgets (line, BUFSIZ, fp); 460 460 GMT_chop (line); /* Rid the world of CR/LF */ 461 461 if (sscanf (line, "%*s %d", &grd.nx) != 1) { 462 462 fprintf (stderr, "%s: Error decoding ncols record\n", GMT_program); 463 463 exit (EXIT_FAILURE); 464 464 } 465 fgets (line, BUFSIZ, fp);465 (void)fgets (line, BUFSIZ, fp); 466 466 GMT_chop (line); /* Rid the world of CR/LF */ 467 467 if (sscanf (line, "%*s %d", &grd.ny) != 1) { 468 468 fprintf (stderr, "%s: Error decoding ncols record\n", GMT_program); 469 469 exit (EXIT_FAILURE); 470 470 } 471 fgets (line, BUFSIZ, fp); GMT_str_tolower (line);471 (void)fgets (line, BUFSIZ, fp); GMT_str_tolower (line); 472 472 GMT_chop (line); /* Rid the world of CR/LF */ 473 473 if (sscanf (line, "%*s %lf", &grd.x_min) != 1) { 474 474 fprintf (stderr, "%s: Error decoding xll record\n", GMT_program); 475 475 exit (EXIT_FAILURE); 476 476 } 477 477 if (!strncmp (line, "xllcorner", (size_t)9)) grd.node_offset = 1; /* Pixel grid */ 478 fgets (line, BUFSIZ, fp); GMT_str_tolower (line);478 (void)fgets (line, BUFSIZ, fp); GMT_str_tolower (line); 479 479 GMT_chop (line); /* Rid the world of CR/LF */ 480 480 if (sscanf (line, "%*s %lf", &grd.y_min) != 1) { 481 481 fprintf (stderr, "%s: Error decoding yll record\n", GMT_program); 482 482 exit (EXIT_FAILURE); 483 483 } 484 484 if (!strncmp (line, "yllcorner", (size_t)9)) grd.node_offset = 1; /* Pixel grid */ 485 fgets (line, BUFSIZ, fp);485 (void)fgets (line, BUFSIZ, fp); 486 486 GMT_chop (line); /* Rid the world of CR/LF */ 487 487 if (sscanf (line, "%*s %lf", &grd.x_inc) != 1) { 488 488 fprintf (stderr, "%s: Error decoding cellsize record\n", GMT_program); … … 500 500 501 501 a = (float *) GMT_memory (VNULL, (size_t)nm, sizeof (float), GMT_program); 502 502 if (!Ctrl->E.set) { /* Only read if not specified in -E */ 503 fgets (line, BUFSIZ, fp);503 (void)fgets (line, BUFSIZ, fp); 504 504 GMT_chop (line); /* Rid the world of CR/LF */ 505 505 if (sscanf (line, "%*s %lf", &Ctrl->E.nodata) != 1) { 506 506 fprintf (stderr, "%s: Error decoding nodata_value record\n", GMT_program); -
src/mgd77/mgd77.c
854 854 case 3: strcpy (P->Parameters_Surveyed_Code, word); break; 855 855 case 4: strncpy (P->File_Creation_Year, word, 4); 856 856 strncpy (P->File_Creation_Month, &word[4], 2); 857 strncpy (P->File_Creation_Day, &word[6], 4); break;857 strncpy (P->File_Creation_Day, &word[6], 2); break; 858 858 case 5: strcpy (P->Source_Institution, word); break; 859 859 case 6: strcpy (P->Country, word); break; 860 860 case 7: strcpy (P->Platform_Name, word); break; … … 865 865 case 12: strcpy (P->Funding, word); break; 866 866 case 13: strncpy (P->Survey_Departure_Year, word, 4); 867 867 strncpy (P->Survey_Departure_Month, &word[4], 2); 868 strncpy (P->Survey_Departure_Day, &word[6], 4); break;868 strncpy (P->Survey_Departure_Day, &word[6], 2); break; 869 869 case 14: strcpy (P->Port_of_Departure, word); break; 870 870 case 15: strncpy (P->Survey_Arrival_Year, word, 4); 871 871 strncpy (P->Survey_Arrival_Month, &word[4], 2); 872 strncpy (P->Survey_Arrival_Day, &word[6], 4); break;872 strncpy (P->Survey_Arrival_Day, &word[6], 2); break; 873 873 case 16: strcpy (P->Port_of_Arrival, word); break; 874 874 case 17: strcpy (P->Navigation_Instrumentation, word); break; 875 875 case 18: strcpy (P->Geodetic_Datum_Position_Determination_Method, word); break; -
ChangeLog
old new 2 2 $Id: ChangeLog 9744 2012-03-28 02:46:50Z pwessel $ 3 3 ----------------------------------------------------------------------------------------- 4 4 5 2012-04-08 pwessel 6 * xgrid/*: Now works again, thanks to Lloyd Parkes! 7 8 2012-04-02 fwobbe 9 * configure.ac, gmt_version.h.in, gmt_version.c, GNUmakefile: Set 10 svnversion in configure.ac. Fallback solution if tree 11 was exported from svn and does not contain metadata. 12 Needed for svn 1.7 trees. 13 5 14 ----------------------------------------------------------------------------------------- 6 15 2012-04-01 pwessel 7 16 * GMT 4.5.8 finalized and released -
ChangeLog
2 2 $Id$ 3 3 ----------------------------------------------------------------------------------------- 4 4 5 2012-04-15 pwessel 6 * mgd77/mgd77.c: Copied 4 rather than 2 characters into day field. 7 5 8 2012-04-08 pwessel 6 9 * xgrid/*: Now works again, thanks to Lloyd Parkes! 7 10