Sophie

Sophie

distrib > Mandriva > current > i586 > media > contrib-release-src > by-pkgid > 99cdded80b546df978a72ec9b7009237 > files > 5

xpaint-2.8.19-3mdv2010.1.src.rpm

diff -rc xpaint-2.8.19/app-defaults/XPaint.ad.in xpaint-2.8.19.2/app-defaults/XPaint.ad.in
*** xpaint-2.8.19/app-defaults/XPaint.ad.in	2010-04-09 17:00:05.642875433 +0200
--- xpaint-2.8.19.2/app-defaults/XPaint.ad.in	2010-04-08 15:51:21.000000000 +0200
***************
*** 352,359 ****
  xpaint*toolbox*canvas.label:		Canvas
  xpaint*toolbox*canvas*new.label:			New Canvas
  xpaint*toolbox*canvas*new-size.label:		New With Size...
! xpaint*toolbox*canvas*open.label:			Open Image...
! xpaint*toolbox*canvas*loaded.label:			Loaded files...
  xpaint*toolbox*canvas*magnifier.label:			Magnifier...
  xpaint*toolbox*canvas*screenshot.label:		Take Screenshot...
  xpaint*toolbox*canvas*about.label:		About...
--- 352,359 ----
  xpaint*toolbox*canvas.label:		Canvas
  xpaint*toolbox*canvas*new.label:			New Canvas
  xpaint*toolbox*canvas*new-size.label:		New With Size...
! xpaint*toolbox*canvas*open.label:			File Browser...
! xpaint*toolbox*canvas*loaded.label:			List of Loaded Files...
  xpaint*toolbox*canvas*magnifier.label:			Magnifier...
  xpaint*toolbox*canvas*screenshot.label:		Take Screenshot...
  xpaint*toolbox*canvas*about.label:		About...
***************
*** 492,497 ****
--- 492,498 ----
  !  Canvas area menu pulldowns
  !
  Canvas*menu*file.label:			File
+ Canvas*menu*file*open.label:		Open Image
  Canvas*menu*file*save.label:		Save
  Canvas*menu*file*saveas.label:		Save As...
  Canvas*menu*file*saveregion.label:	Save Region...
***************
*** 693,698 ****
--- 694,700 ----
  !Popup File Menu
  *paintBox*popup-menu.File.label:		File
  *paintBox*popup-menu.File-right.label:		File
+ *paintBox*popup-menu.File-right*open.label:		Open Image...
  *paintBox*popup-menu.File-right*save.label:		Save
  *paintBox*popup-menu.File-right*saveas.label:		Save As...
  *paintBox*popup-menu.File-right*saveregion.label:	Save Region...
diff -rc xpaint-2.8.19/app-defaults/XPaint_es.ad.in xpaint-2.8.19.2/app-defaults/XPaint_es.ad.in
*** xpaint-2.8.19/app-defaults/XPaint_es.ad.in	2010-04-09 17:00:05.642875433 +0200
--- xpaint-2.8.19.2/app-defaults/XPaint_es.ad.in	2010-04-08 15:56:31.000000000 +0200
***************
*** 354,360 ****
  xpaint*toolbox*canvas.label:			Lienzos
  xpaint*toolbox*canvas*new.label:			Nuevo Lienzo
  xpaint*toolbox*canvas*new-size.label:		Lienzo de dimensiones específicas...
! xpaint*toolbox*canvas*open.label:			Abrir Imagen...
  xpaint*toolbox*canvas*loaded.label:			Archivos Cargados...
  xpaint*toolbox*canvas*magnifier.label:			Lupa...
  xpaint*toolbox*canvas*screenshot.label:		Captura de Pantalla...
--- 354,360 ----
  xpaint*toolbox*canvas.label:			Lienzos
  xpaint*toolbox*canvas*new.label:			Nuevo Lienzo
  xpaint*toolbox*canvas*new-size.label:		Lienzo de dimensiones específicas...
! xpaint*toolbox*canvas*open.label:			Selector de Archivos...
  xpaint*toolbox*canvas*loaded.label:			Archivos Cargados...
  xpaint*toolbox*canvas*magnifier.label:			Lupa...
  xpaint*toolbox*canvas*screenshot.label:		Captura de Pantalla...
***************
*** 491,496 ****
--- 491,497 ----
  !  Canvas area menu pulldowns
  !
  Canvas*menu*file.label:			Archivo
+ Canvas*menu*file*open.label:		Abrir Imagen
  Canvas*menu*file*save.label:		Guardar
  Canvas*menu*file*saveas.label:		Guardar como...
  Canvas*menu*file*saveregion.label:	Guardar Región...
***************
*** 690,695 ****
--- 691,697 ----
  !Popup File Menu
  *paintBox*popup-menu.File.label:			Archivo
  *paintBox*popup-menu.File-right.label:			Archivo
+ *paintBox*popup-menu.File-right.open.label:		Abrir Imagen...
  *paintBox*popup-menu.File-right.save.label:		Guardar
  *paintBox*popup-menu.File-right.saveas.label:		Guardar como...
  *paintBox*popup-menu.File-right.saveregion.label:	Guardar Región...
diff -rc xpaint-2.8.19/app-defaults/XPaint_fr.ad.in xpaint-2.8.19.2/app-defaults/XPaint_fr.ad.in
*** xpaint-2.8.19/app-defaults/XPaint_fr.ad.in	2010-04-09 17:00:05.642875433 +0200
--- xpaint-2.8.19.2/app-defaults/XPaint_fr.ad.in	2010-04-08 23:23:46.000000000 +0200
***************
*** 352,359 ****
  xpaint*toolbox*canvas.label:			Canevas
  xpaint*toolbox*canvas*new.label:			Nouveau Canevas
  xpaint*toolbox*canvas*new-size.label:		Canevas de taille spécifiée...
! xpaint*toolbox*canvas*open.label:			Ouvrir Image...
! xpaint*toolbox*canvas*loaded.label:			Fichiers chargés...
  xpaint*toolbox*canvas*magnifier.label:			Loupe...
  xpaint*toolbox*canvas*screenshot.label:		Capture d'Ecran...
  xpaint*toolbox*canvas*about.label:		A Propos...
--- 352,359 ----
  xpaint*toolbox*canvas.label:			Canevas
  xpaint*toolbox*canvas*new.label:			Nouveau Canevas
  xpaint*toolbox*canvas*new-size.label:		Canevas de taille spécifiée...
! xpaint*toolbox*canvas*open.label:			Sélecteur de Fichiers...
! xpaint*toolbox*canvas*loaded.label:			Fichiers déjà chargés...
  xpaint*toolbox*canvas*magnifier.label:			Loupe...
  xpaint*toolbox*canvas*screenshot.label:		Capture d'Ecran...
  xpaint*toolbox*canvas*about.label:		A Propos...
***************
*** 492,497 ****
--- 492,498 ----
  !  Canvas area menu pulldowns
  !
  Canvas*menu*file.label:			Fichier
+ Canvas*menu*file*open.label:		Ouvrir Image...
  Canvas*menu*file*save.label:		Sauvegarder
  Canvas*menu*file*saveas.label:		Sauvegarder sous...
  Canvas*menu*file*saveregion.label:	Sauvegarder Région...
***************
*** 687,692 ****
--- 688,694 ----
  !Popup File Menu
  *paintBox*popup-menu.File.label:			Fichier
  *paintBox*popup-menu.File-right.label:			Fichier
+ *paintBox*popup-menu.File-right.open.label:		Ouvrir Image...
  *paintBox*popup-menu.File-right.save.label:		Sauvegarder
  *paintBox*popup-menu.File-right.saveas.label:		Sauvegarder sous...
  *paintBox*popup-menu.File-right.saveregion.label:	Sauvegarder Région...
diff -rc xpaint-2.8.19/Doc/Operator.doc xpaint-2.8.19.2/Doc/Operator.doc
*** xpaint-2.8.19/Doc/Operator.doc	2005-04-10 10:02:48.000000000 +0200
--- xpaint-2.8.19.2/Doc/Operator.doc	2010-04-09 08:09:36.000000000 +0200
***************
*** 1,6 ****
  This is a "rough" document, but hopefully if you are interested in
  adding a new paint operator to xpaint, it should make a good 
! staring point.
  
  The interface to add new functions is as follows, all operations have
  two functions named (where OP == Function name, ## == concatination):
--- 1,7 ----
+ \*text:900 2250*\\
  This is a "rough" document, but hopefully if you are interested in
  adding a new paint operator to xpaint, it should make a good 
! starting point.
  
  The interface to add new functions is as follows, all operations have
  two functions named (where OP == Function name, ## == concatination):
diff -rc xpaint-2.8.19/Doc/TextFormat.doc xpaint-2.8.19.2/Doc/TextFormat.doc
*** xpaint-2.8.19/Doc/TextFormat.doc	2010-04-05 10:58:35.000000000 +0200
--- xpaint-2.8.19.2/Doc/TextFormat.doc	2010-04-09 07:46:38.000000000 +0200
***************
*** 1,4 ****
! \*text:1500 2121*\\
  \*font:Liberation-24:style=Bold*\\*color:red*\\
  Use of enriched text files as input of Xpaint
  \*font:Liberation-18*\\*color:black*\\
--- 1,4 ----
! \*text:1500 2121*\\*zoom:-2*\\
  \*font:Liberation-24:style=Bold*\\*color:red*\\
  Use of enriched text files as input of Xpaint
  \*font:Liberation-18*\\*color:black*\\
diff -rc xpaint-2.8.19/fileBrowser.c xpaint-2.8.19.2/fileBrowser.c
*** xpaint-2.8.19/fileBrowser.c	2010-04-09 17:00:05.642875433 +0200
--- xpaint-2.8.19.2/fileBrowser.c	2010-04-09 07:45:10.000000000 +0200
***************
*** 71,78 ****
  #endif
  #endif				/* _Xconst */
  
- #define LOADED 4
- 
  typedef struct {
      Widget shell, pane, name, program, cclog;
      int mode;
--- 71,76 ----
***************
*** 86,91 ****
--- 84,90 ----
  extern int file_numpages;
  extern int file_force;
  extern int file_bbox;
+ extern int file_specified_zoom;
  
  void *
  GetFileNameGetLastId()
***************
*** 207,213 ****
      Widget paint = (Widget) paintArg;
  
      if (PwRegionGet(paint, NULL, NULL))
! 	GetFileName(paint, 1, NULL, saveRegionFileCallback, NULL);
      else
  	Notice(paint, msgText[NO_REGION_SELECTED_PRESENTLY]);
  }
--- 206,212 ----
      Widget paint = (Widget) paintArg;
  
      if (PwRegionGet(paint, NULL, NULL))
! 	GetFileName(paint, BROWSER_SAVE, NULL, saveRegionFileCallback, NULL);
      else
  	Notice(paint, msgText[NO_REGION_SELECTED_PRESENTLY]);
  }
***************
*** 228,234 ****
      if (strcmp(name, msgText[DEFAULT_TITLE]) == 0 || strcmp(nm, name) == 0)
  	name = NULL;
  
!     GetFileName(paint, 1, name, saveFileCallback, NULL);
  }
  
  void 
--- 227,233 ----
      if (strcmp(name, msgText[DEFAULT_TITLE]) == 0 || strcmp(nm, name) == 0)
  	name = NULL;
  
!     GetFileName(paint, BROWSER_SAVE, name, saveFileCallback, NULL);
  }
  
  void 
***************
*** 262,268 ****
  	    return;
  	}
      }
!     GetFileName(paint, 1, name, saveFileCallback, NULL);
  }
  
  /*
--- 261,267 ----
  	    return;
  	}
      }
!     GetFileName(paint, BROWSER_SAVE, name, saveFileCallback, NULL);
  }
  
  /*
***************
*** 391,402 ****
      XtVaGetValues(l->cwd_w, XtNx, &x, NULL);
      if (l->home) {
          XtMoveWidget(l->home, 5, height-84);
!         XtMoveWidget(l->root, 30, height-84);
!         XtMoveWidget(l->dot, 55, height-84);
!         XtMoveWidget(l->hidden, 80, height-84);
          if (l->ongoing) {
              XtVaGetValues(l->hidden, XtNwidth, &width1, NULL);
!             XtMoveWidget(l->ongoing, 80+width1+3, height-84);
  	}
          XtMoveWidget(l->cwd_w, x, height-52);
          XtMoveWidget(l->info, x, height-30);
--- 390,401 ----
      XtVaGetValues(l->cwd_w, XtNx, &x, NULL);
      if (l->home) {
          XtMoveWidget(l->home, 5, height-84);
!         XtMoveWidget(l->root, 29, height-84);
!         XtMoveWidget(l->dot, 53, height-84);
!         XtMoveWidget(l->hidden, 77, height-84);
          if (l->ongoing) {
              XtVaGetValues(l->hidden, XtNwidth, &width1, NULL);
!             XtMoveWidget(l->ongoing, 80+width1, height-84);
  	}
          XtMoveWidget(l->cwd_w, x, height-52);
          XtMoveWidget(l->info, x, height-30);
***************
*** 537,543 ****
      Widget sb;
      Boolean state;
  
!     if (arg->browserType == LOADED) {
          emptyList(arg);
          fileCount = Global.numfiles;
          list = (String *) XtCalloc(sizeof(String *), fileCount+2);
--- 536,542 ----
      Widget sb;
      Boolean state;
  
!     if (arg->browserType == BROWSER_LOADED) {
          emptyList(arg);
          fileCount = Global.numfiles;
          list = (String *) XtCalloc(sizeof(String *), fileCount+2);
***************
*** 648,654 ****
      XawListChange(arg->list, list, i, 0, True);
      XtVaSetValues(arg->info, XtNlabel, infoStr, NULL);
  
!     if (arg->browserType != LOADED || arg->isToRefresh) {
          XtVaSetValues(arg->name, XtNstring, "", NULL);
          if ((sb = XtNameToWidget(arg->vport, "vertical")) != None) {
  	    float top = 0.0;
--- 647,653 ----
      XawListChange(arg->list, list, i, 0, True);
      XtVaSetValues(arg->info, XtNlabel, infoStr, NULL);
  
!     if (arg->browserType != BROWSER_LOADED || arg->isToRefresh) {
          XtVaSetValues(arg->name, XtNstring, "", NULL);
          if ((sb = XtNameToWidget(arg->vport, "vertical")) != None) {
  	    float top = 0.0;
***************
*** 719,727 ****
  	*cp = '\0';
  	if (stat(file, &statbuf) >= 0 && (statbuf.st_mode & S_IFDIR) != 0 &&
              !ongoing) {
! 	    if (arg->browserType != LOADED || arg->isToRefresh) 
                  setCWD(arg, file);
!             if (arg->browserType != LOADED)
                  browserResized(arg->parent, arg, NULL, False);
  	}
  	*cp = '/';
--- 718,726 ----
  	*cp = '\0';
  	if (stat(file, &statbuf) >= 0 && (statbuf.st_mode & S_IFDIR) != 0 &&
              !ongoing) {
! 	    if (arg->browserType != BROWSER_LOADED || arg->isToRefresh) 
                  setCWD(arg, file);
!             if (arg->browserType != BROWSER_LOADED)
                  browserResized(arg->parent, arg, NULL, False);
  	}
  	*cp = '/';
***************
*** 730,736 ****
      arg->isToRefresh = False;
      arg->oldwidth = 0;
  
!     if (arg->browserType == LOADED) {
          char *dpistr, *pagestr, *zoomstr, *alphastr, *bboxstr;
          Widget paint = GetNonDirtyCanvas();
          XtVaGetValues(arg->dpi, XtNstring, &dpistr, NULL);
--- 729,735 ----
      arg->isToRefresh = False;
      arg->oldwidth = 0;
  
!     if (arg->browserType == BROWSER_LOADED) {
          char *dpistr, *pagestr, *zoomstr, *alphastr, *bboxstr;
          Widget paint = GetNonDirtyCanvas();
          XtVaGetValues(arg->dpi, XtNstring, &dpistr, NULL);
***************
*** 764,776 ****
      } else {
  	if (ongoing) {
              Widget paint = GetNonDirtyCanvas();
-             int oldzoom = Global.default_zoom;
              if (paint) {
! 	        XtVaGetValues(paint, XtNzoom, &zoom, NULL);
                  Global.default_zoom = zoom;
  	        loadPrescribedFile(paint, file);
                  setZoomButtonLabel(paint, zoom);
!                 Global.default_zoom = oldzoom;
                  return;
  	    }
          } else
--- 763,778 ----
      } else {
  	if (ongoing) {
              Widget paint = GetNonDirtyCanvas();
              if (paint) {
! 	        if (file_specified_zoom)
! 		    zoom = file_specified_zoom;
!                 else
! 	            XtVaGetValues(paint, XtNzoom, &zoom, NULL);
                  Global.default_zoom = zoom;
  	        loadPrescribedFile(paint, file);
+                 AddFileToGlobalList(file);
                  setZoomButtonLabel(paint, zoom);
!                 Global.default_zoom = zoom_prev;
                  return;
  	    }
          } else
***************
*** 803,808 ****
--- 805,812 ----
              AddFileToGlobalList(file);
  	} else {
  	    Image *image = f(file);
+ 	    if (file_specified_zoom)
+ 	        Global.default_zoom = file_specified_zoom;
  	    if (image == NULL)
  		Notice(w, msgText[UNABLE_TO_OPEN_INPUT_FILE], file, 
                            RWGetMsg());
***************
*** 1047,1053 ****
      *ptr = '\0';
      ++ptr;
      if (strcmp(ptr, "image.c")) return;
!     GetFileName(w, 2, NULL, createLXPCallback, arg);
      free(dir);
  }
  
--- 1051,1057 ----
      *ptr = '\0';
      ++ptr;
      if (strcmp(ptr, "image.c")) return;
!     GetFileName(w, BROWSER_SIMPLESAVE, NULL, createLXPCallback, arg);
      free(dir);
  }
  
***************
*** 1071,1077 ****
              arg->okFunc = GraphicOpenFile;
  	okCallback(bar, argArg, NULL);
      } else {
!         if (arg->browserType == LOADED) {
              static char value[2];
              Global.numpage = 1;
              *value = '1'; value[1] = '\0';
--- 1075,1081 ----
              arg->okFunc = GraphicOpenFile;
  	okCallback(bar, argArg, NULL);
      } else {
!         if (arg->browserType == BROWSER_LOADED) {
              static char value[2];
              Global.numpage = 1;
              *value = '1'; value[1] = '\0';
***************
*** 1165,1171 ****
  				   NULL);
      arg->list = list;
  
!     if (arg->browserType != LOADED) {
          arg->home = XtVaCreateManagedWidget("home",
  				  commandWidgetClass, form,
  				  XtNlabel, "~",
--- 1169,1175 ----
  				   NULL);
      arg->list = list;
  
!     if (arg->browserType != BROWSER_LOADED) {
          arg->home = XtVaCreateManagedWidget("home",
  				  commandWidgetClass, form,
  				  XtNlabel, "~",
***************
*** 1180,1186 ****
  				  XtNlabel, "/",
                                    XtNfromVert, vport,
                                    XtNfromHoriz, arg->home,
!                                   XtNhorizDistance, 4,
                                    XtNvertDistance, 0,
                                    XtNwidth, 20,
                                    XtNheight, 20,
--- 1184,1190 ----
  				  XtNlabel, "/",
                                    XtNfromVert, vport,
                                    XtNfromHoriz, arg->home,
!                                   XtNhorizDistance, 3,
                                    XtNvertDistance, 0,
                                    XtNwidth, 20,
                                    XtNheight, 20,
***************
*** 1190,1196 ****
  				  XtNlabel, ".",
                                    XtNfromVert, vport,
                                    XtNfromHoriz, arg->root,
!                                   XtNhorizDistance, 4,
                                    XtNvertDistance, 0,
                                    XtNwidth, 20,
                                    XtNheight, 20,
--- 1194,1200 ----
  				  XtNlabel, ".",
                                    XtNfromVert, vport,
                                    XtNfromHoriz, arg->root,
!                                   XtNhorizDistance, 3,
                                    XtNvertDistance, 0,
                                    XtNwidth, 20,
                                    XtNheight, 20,
***************
*** 1199,1219 ****
  				  toggleWidgetClass, form,
                                    XtNfromVert, vport,
                                    XtNfromHoriz, arg->dot,
!                                   XtNhorizDistance, 4,
                                    XtNvertDistance, 0,
                                    XtNheight, 20,
  				  NULL);
!         if (arg->browserType)
! 	    arg->ongoing = None;
!         else
              arg->ongoing = XtVaCreateManagedWidget("ongoing",
  				  toggleWidgetClass, form,
                                    XtNfromVert, vport,
                                    XtNfromHoriz, arg->hidden,
!                                   XtNhorizDistance, 4,
                                    XtNvertDistance, 0,
                                    XtNheight, 20,
  				  NULL);
      }
  
      cwd = XtVaCreateManagedWidget("cwd",
--- 1203,1224 ----
  				  toggleWidgetClass, form,
                                    XtNfromVert, vport,
                                    XtNfromHoriz, arg->dot,
!                                   XtNhorizDistance, 3,
                                    XtNvertDistance, 0,
                                    XtNheight, 20,
  				  NULL);
!         if (arg->browserType <= BROWSER_MULTIREAD)
              arg->ongoing = XtVaCreateManagedWidget("ongoing",
  				  toggleWidgetClass, form,
                                    XtNfromVert, vport,
                                    XtNfromHoriz, arg->hidden,
!                                   XtNhorizDistance, 3,
                                    XtNvertDistance, 0,
                                    XtNheight, 20,
+ 				  XtNstate, (arg->browserType==BROWSER_MULTIREAD),
  				  NULL);
+         else
+ 	    arg->ongoing = None;
      }
  
      cwd = XtVaCreateManagedWidget("cwd",
***************
*** 1255,1261 ****
  
      arg->first = True;
  
!     if (arg->browserType != LOADED) XtSetKeyboardFocus(form, arg->name);
  
      setCWD(arg, doDirname(arg, NULL));
      return form;
--- 1260,1266 ----
  
      arg->first = True;
  
!     if (arg->browserType != BROWSER_LOADED) XtSetKeyboardFocus(form, arg->name);
  
      setCWD(arg, doDirname(arg, NULL));
      return form;
***************
*** 1277,1283 ****
      
      
      shell = XtVisCreatePopupShell("filebrowser",
! 				  ((mode==LOADED)?
  				   topLevelShellWidgetClass:
                                     transientShellWidgetClass),
                                    GetToplevel(w),
--- 1282,1288 ----
      
      
      shell = XtVisCreatePopupShell("filebrowser",
! 				  ((mode==BROWSER_LOADED)?
  				   topLevelShellWidgetClass:
                                     transientShellWidgetClass),
                                    GetToplevel(w),
***************
*** 1364,1370 ****
      arg->isRead = True;
      arg->numformat = k;
  
!     if (arg->browserType == LOADED) {
          arg->refresh = XtVaCreateManagedWidget("refresh",
  				       commandWidgetClass, browser,
  				       XtNborderWidth, 0,
--- 1369,1375 ----
      arg->isRead = True;
      arg->numformat = k;
  
!     if (arg->browserType == BROWSER_LOADED) {
          arg->refresh = XtVaCreateManagedWidget("refresh",
  				       commandWidgetClass, browser,
  				       XtNborderWidth, 0,
***************
*** 1653,1659 ****
      AddDestroyCallback(shell,
  		       (DestroyCallbackFunc) cancelCallback, (XtPointer) arg);
  
!     if (arg->browserType != LOADED)
          XtSetKeyboardFocus(form, arg->name);
      XtInstallAccelerators(arg->name, okButton);
  
--- 1658,1664 ----
      AddDestroyCallback(shell,
  		       (DestroyCallbackFunc) cancelCallback, (XtPointer) arg);
  
!     if (arg->browserType != BROWSER_LOADED)
          XtSetKeyboardFocus(form, arg->name);
      XtInstallAccelerators(arg->name, okButton);
  
***************
*** 1864,1871 ****
  
      for (cur = argList; cur != NULL; cur = cur->next)
  	if (cur->parent == w &&
! 	    (cur->browserType == 0 ||
! 	     cur->browserType == 1))
  	    break;
  
      if (cur == NULL)
--- 1869,1876 ----
  
      for (cur = argList; cur != NULL; cur = cur->next)
  	if (cur->parent == w &&
! 	    (cur->browserType >= BROWSER_READ &&
! 	     cur->browserType <= BROWSER_SAVE))
  	    break;
  
      if (cur == NULL)
***************
*** 1890,1916 ****
      memset(cur, 0, sizeof(arg_t));
      cur->parent = p;
      cur->browserType = type;
-     /*
-     cur->isLoaded = False;
-     cur->isToRefresh = False;
-     */
  
      switch (type) {
!     case 0:
!         shell = buildOpenBrowser(w, cur, 250, 380, 0);
  	break;
!     case 1:
          shell = buildSaveBrowser(w, cur);
  	break;
!     case 2:
! 	shell = buildSimpleBrowser(w, cur, True);
! 	break;
!     case 3:
  	shell = buildSimpleBrowser(w, cur, False);
  	break;
!     case LOADED:
!         shell = buildOpenBrowser(w, cur, 300, 300, LOADED);
!         break;
      }
  
      cur->next = argList;	/* Add cur to front of list */
--- 1895,1920 ----
      memset(cur, 0, sizeof(arg_t));
      cur->parent = p;
      cur->browserType = type;
  
      switch (type) {
!     case BROWSER_READ:
!         shell = buildOpenBrowser(w, cur, 250, 380, BROWSER_READ);
  	break;
!     case BROWSER_MULTIREAD:
!         shell = buildOpenBrowser(w, cur, 250, 380, BROWSER_MULTIREAD);
!         break;
!     case BROWSER_LOADED:
!         shell = buildOpenBrowser(w, cur, 300, 300, BROWSER_LOADED);
!         break;
!     case BROWSER_SAVE:
          shell = buildSaveBrowser(w, cur);
  	break;
!     case BROWSER_SIMPLEREAD:
  	shell = buildSimpleBrowser(w, cur, False);
  	break;
!     case BROWSER_SIMPLESAVE:
! 	shell = buildSimpleBrowser(w, cur, True);
! 	break;
      }
  
      cur->next = argList;	/* Add cur to front of list */
***************
*** 1933,1943 ****
      Widget shell, *widget;
      int i, j, im;
  
!     if (type == LOADED) {
          /* if (!Global.numfiles) return; */
          /* Check whether "loaded files" browser is already popped up */
          for (arg = argList; arg != NULL; arg = arg->next)
! 	    if (arg->browserType == LOADED) {
                  XWindowAttributes win_attributes;
                  XGetWindowAttributes(XtDisplay(arg->bbox), 
                                       XtWindow(arg->bbox), &win_attributes);
--- 1937,1947 ----
      Widget shell, *widget;
      int i, j, im;
  
!     if (type == BROWSER_LOADED) {
          /* if (!Global.numfiles) return; */
          /* Check whether "loaded files" browser is already popped up */
          for (arg = argList; arg != NULL; arg = arg->next)
! 	    if (arg->browserType == BROWSER_LOADED) {
                  XWindowAttributes win_attributes;
                  XGetWindowAttributes(XtDisplay(arg->bbox), 
                                       XtWindow(arg->bbox), &win_attributes);
diff -rc xpaint-2.8.19/fontSelect.c xpaint-2.8.19.2/fontSelect.c
*** xpaint-2.8.19/fontSelect.c	2010-04-05 16:43:17.000000000 +0200
--- xpaint-2.8.19.2/fontSelect.c	2010-04-09 07:30:06.000000000 +0200
***************
*** 834,840 ****
     char buf[256];
     *buf = '\0';
     if (getcwd(buf, 256)) strcat(buf, "/");
!    GetFileName(GetShell(w), 3, 
                 buf, (XtCallbackProc) loadFileCallbackOK, argArg);
  }
  
--- 834,840 ----
     char buf[256];
     *buf = '\0';
     if (getcwd(buf, 256)) strcat(buf, "/");
!    GetFileName(GetShell(w), BROWSER_SIMPLEREAD, 
                 buf, (XtCallbackProc) loadFileCallbackOK, argArg);
  }
  
***************
*** 873,879 ****
     char buf[256];
     *buf = '\0';
     if (getcwd(buf, 256)) strcat(buf, "/");
!    GetFileName(GetShell(w), 2, 
                 buf, (XtCallbackProc) saveFileCallbackOK, argArg);
  }
  
--- 873,879 ----
     char buf[256];
     *buf = '\0';
     if (getcwd(buf, 256)) strcat(buf, "/");
!    GetFileName(GetShell(w), BROWSER_SIMPLESAVE, 
                 buf, (XtCallbackProc) saveFileCallbackOK, argArg);
  }
  
***************
*** 967,973 ****
     char buf[256];
     *buf = '\0';
     if (getcwd(buf, 256)) strcat(buf, "/");
!    GetFileName(GetShell(w), 2, 
                 buf, (XtCallbackProc) saveFileCallbackOK, argArg);
  }
  
--- 967,973 ----
     char buf[256];
     *buf = '\0';
     if (getcwd(buf, 256)) strcat(buf, "/");
!    GetFileName(GetShell(w), BROWSER_SIMPLESAVE, 
                 buf, (XtCallbackProc) saveFileCallbackOK, argArg);
  }
  
diff -rc xpaint-2.8.19/graphic.c xpaint-2.8.19.2/graphic.c
*** xpaint-2.8.19/graphic.c	2010-04-09 17:00:05.642875433 +0200
--- xpaint-2.8.19.2/graphic.c	2010-04-08 23:20:25.000000000 +0200
***************
*** 227,249 ****
  
  static PaintMenuItem fileMenu[] =
  {
! #define FILE_SAVE 0
      MI_SIMPLE("save"),
! #define FILE_SAVEAS 1
      MI_SIMPLE("saveas"),
! #define FILE_SAVE_REGION 2
      MI_SIMPLE("saveregion"),
! #define FILE_LOAD_MEMORY 3
      MI_SIMPLE("load-mem"),
! #define FILE_REVERT 4
      MI_SIMPLE("revert"),
! #define FILE_LOADED 5
      MI_SIMPLE("loaded"),
! #define FILE_PRINT 6
      MI_SIMPLE("print"),
! #define FILE_EXTERN 7
      MI_SIMPLE("extern"),
! #define FILE_CLOSE 8
      MI_SIMPLE("close"),
  };
  
--- 227,251 ----
  
  static PaintMenuItem fileMenu[] =
  {
! #define FILE_OPEN 0
!     MI_SIMPLE("open"),
! #define FILE_SAVE 1
      MI_SIMPLE("save"),
! #define FILE_SAVEAS 2
      MI_SIMPLE("saveas"),
! #define FILE_SAVE_REGION 3
      MI_SIMPLE("saveregion"),
! #define FILE_LOAD_MEMORY 4
      MI_SIMPLE("load-mem"),
! #define FILE_REVERT 5
      MI_SIMPLE("revert"),
! #define FILE_LOADED 6
      MI_SIMPLE("loaded"),
! #define FILE_PRINT 7
      MI_SIMPLE("print"),
! #define FILE_EXTERN 8
      MI_SIMPLE("extern"),
! #define FILE_CLOSE 9
      MI_SIMPLE("close"),
  };
  
***************
*** 518,540 ****
  static PaintMenuItem popupFileMenu[] =
  {
      MI_SEPARATOR(),
! #define P_FILE_SAVE 1
      MI_SIMPLE("save"),
! #define P_FILE_SAVEAS 2
      MI_SIMPLE("saveas"),
! #define P_FILE_SAVE_REGION 3
      MI_SIMPLE("saveregion"),
! #define P_FILE_LOAD_MEMORY 4
      MI_SIMPLE("load-mem"),
! #define P_FILE_REVERT 5
      MI_SIMPLE("revert"),
! #define P_FILE_LOADED 6
      MI_SIMPLE("loaded"),
! #define P_FILE_PRINT 7
      MI_SIMPLE("print"),
! #define P_FILE_EXTERN 8
      MI_SIMPLE("extern"),
! #define P_FILE_CLOSE 9
      MI_SIMPLE("close"),
  };
  
--- 520,544 ----
  static PaintMenuItem popupFileMenu[] =
  {
      MI_SEPARATOR(),
! #define P_FILE_OPEN 1
!     MI_SIMPLE("open"),
! #define P_FILE_SAVE 2
      MI_SIMPLE("save"),
! #define P_FILE_SAVEAS 3
      MI_SIMPLE("saveas"),
! #define P_FILE_SAVE_REGION 4
      MI_SIMPLE("saveregion"),
! #define P_FILE_LOAD_MEMORY 5
      MI_SIMPLE("load-mem"),
! #define P_FILE_REVERT 6
      MI_SIMPLE("revert"),
! #define P_FILE_LOADED 7
      MI_SIMPLE("loaded"),
! #define P_FILE_PRINT 8
      MI_SIMPLE("print"),
! #define P_FILE_EXTERN 9
      MI_SIMPLE("extern"),
! #define P_FILE_CLOSE 10
      MI_SIMPLE("close"),
  };
  
***************
*** 1049,1055 ****
  static void
  loadedCallback(Widget w, XtPointer paintArg, XtPointer junk2)
  {
!     GetFileName(Global.toplevel, 4, NULL, GraphicOpenFile, NULL);
  }
  
  static void
--- 1053,1059 ----
  static void
  loadedCallback(Widget w, XtPointer paintArg, XtPointer junk2)
  {
!     GetFileName(Global.toplevel, BROWSER_LOADED, NULL, GraphicOpenFile, NULL);
  }
  
  static void
***************
*** 2176,2226 ****
          StateSetBusy(False);
  	Notice(Global.toplevel, msgText[UNABLE_TO_OPEN_INPUT_FILE], file, RWGetMsg());
      }
- 
- #if 0  /* old way : close canvas - and reopen a new one - quite clumsy ! */
-     void *v;
-     char *file;
-     Image * image;
-     RWreadFunc f;
-     Widget paint, top;
-     int zoom, snap_x, snap_y;
-     Boolean snapon;
-     Pixel background;
-     WidgetList wlist;
- 
-     XtVaGetValues(w,
- 		  XtNzoom, &zoom, 
-                   XtNsnapX, &snap_x, XtNsnapY, &snap_y, XtNsnapOn, &snapon,
- 		  XtNbackground, &background, XtNmenuwidgets, &wlist,
- 		  XtNfilename, &file,
- 		  NULL);
-     if ((file == NULL) || (*file == 0))
- 	return;
- 
-     StateSetBusy(True);
- 
-     top = GetToplevel(w);
-     workProcDone = 0;
-     workProcId = XtAppAddWorkProc(Global.appContext, workProc, (XtPointer) w);
- 
-     if ((v = ReadMagic(file)) != NULL)
- 	paint = GraphicOpenFileZoom(top, file, v, zoom);
-     else {
- 	StateSetBusy(False);
- 	Notice(top, msgText[UNABLE_TO_OPEN_INPUT_FILE], file, RWGetMsg());
- 	return;
-     }
- 
-     XtVaSetValues(paint, 
-                   XtNsnapOn, snapon, XtNsnapX, snap_x, XtNsnapY, snap_y,
- 		  XtNbackground, background, XtNdirty, False, NULL);
- 
-     StateSetBusy(False);
-     XtVaGetValues(paint, XtNmenuwidgets, &wlist, NULL);
-     if (!wlist) return;
-     MenuCheckItem(wlist[W_SELECTOR_SNAP], snapon);
-     MenuCheckItem(wlist[W_TOPMENU+W_SELECTOR_SNAP], snapon);
- #endif
  }
  
  static int xorig = 0;
--- 2180,2185 ----
***************
*** 4528,4534 ****
  void 
  loadMemory(Widget w, XtPointer junk, XtPointer junk2)
  {
!     GetFileName(GetShell(w), 0, NULL, 
                  (XtCallbackProc) loadMemoryCallback, NULL);
  }
  
--- 4487,4493 ----
  void 
  loadMemory(Widget w, XtPointer junk, XtPointer junk2)
  {
!     GetFileName(GetShell(w), BROWSER_READ, NULL, 
                  (XtCallbackProc) loadMemoryCallback, NULL);
  }
  
***************
*** 5233,5240 ****
      XtManageChild(paintbox);
      XtManageChild(viewport);
  
!     ADDCALLBACK(fileMenu, FILE_SAVEAS, paint, StdSaveAsFile);
      ADDCALLBACK(fileMenu, FILE_SAVE, paint, StdSaveFile);
      ccpAddSaveRegion(fileMenu[FILE_SAVE_REGION].widget, paint);
      ADDCALLBACK(fileMenu, FILE_LOAD_MEMORY, info, loadMemory);
      ADDCALLBACK(fileMenu, FILE_REVERT, paint, revertCallback);
--- 5192,5200 ----
      XtManageChild(paintbox);
      XtManageChild(viewport);
  
!     ADDCALLBACK(fileMenu, FILE_OPEN, paint, StdOpenFile);
      ADDCALLBACK(fileMenu, FILE_SAVE, paint, StdSaveFile);
+     ADDCALLBACK(fileMenu, FILE_SAVEAS, paint, StdSaveAsFile);
      ccpAddSaveRegion(fileMenu[FILE_SAVE_REGION].widget, paint);
      ADDCALLBACK(fileMenu, FILE_LOAD_MEMORY, info, loadMemory);
      ADDCALLBACK(fileMenu, FILE_REVERT, paint, revertCallback);
***************
*** 5570,5576 ****
  	    EnableRevert((Widget) paint);
              XtVaSetValues((Widget)paint, XtNdirty, False, NULL);
              if (file_isSpecialImage) {
!                 GetFileName(Global.toplevel, 4, NULL, NULL, NULL);
                  SetEditable((Widget)paint,
                              !(alpha && Global.alpha_mode>=2),
                              (alpha!=NULL && Global.alpha_mode==0));
--- 5530,5536 ----
  	    EnableRevert((Widget) paint);
              XtVaSetValues((Widget)paint, XtNdirty, False, NULL);
              if (file_isSpecialImage) {
!                 GetFileName(Global.toplevel, BROWSER_LOADED, NULL, NULL, NULL);
                  SetEditable((Widget)paint,
                              !(alpha && Global.alpha_mode>=2),
                              (alpha!=NULL && Global.alpha_mode==0));
***************
*** 5600,5624 ****
   * 2: Create new (blank) canvas, querying for size
   */
  void
! GraphicCreate(Widget wid, int value)
  {
      switch (value) {
      case 0:
! 	graphicCreate(makeGraphicShell(wid), 
                        Global.default_width, Global.default_height, 
                        Global.default_zoom, None, None, NULL);
  	break;
      case 1:
!         WHZSizeSelect(wid, NULL, 1);
  	break;
      case 2:
! 	GetFileName(GetToplevel(wid), 0, NULL, GraphicOpenFile, NULL);
  	break;
      case 3:
! 	GetFileName(GetToplevel(wid), 4, NULL, GraphicOpenFile, NULL);
          break;
      case 4:
!         StartMagnifier(wid);
          break;
      }
  }
--- 5560,5586 ----
   * 2: Create new (blank) canvas, querying for size
   */
  void
! GraphicCreate(Widget w, int value)
  {
      switch (value) {
      case 0:
! 	graphicCreate(makeGraphicShell(w), 
                        Global.default_width, Global.default_height, 
                        Global.default_zoom, None, None, NULL);
  	break;
      case 1:
!         WHZSizeSelect(w, NULL, 1);
  	break;
      case 2:
! 	GetFileName(GetToplevel(w), BROWSER_MULTIREAD, 
!                     NULL, GraphicOpenFile, NULL);
  	break;
      case 3:
! 	GetFileName(GetToplevel(w), BROWSER_LOADED, 
!                     NULL, GraphicOpenFile, NULL);
          break;
      case 4:
!         StartMagnifier(w);
          break;
      }
  }
***************
*** 6428,6433 ****
--- 6390,6402 ----
  }
  
  void 
+ StdOpenFile(Widget w, XtPointer paintArg, XtPointer junk)
+ {
+     GetFileName(GetToplevel(w), BROWSER_READ, 
+                 NULL, GraphicOpenFile, NULL);
+ }
+ 
+ void 
  StdWriteText(Widget w, XtPointer infoArg, XtPointer junk)
  {
      LocalInfo * info = (LocalInfo *) infoArg; 
***************
*** 7168,7173 ****
--- 7137,7143 ----
          XtAddEventHandler(paint, KeyPressMask,
  		          False, (XtEventHandler) selectKeyPress, NULL);
  
+     ADDCALLBACK(popupFileMenu, P_FILE_OPEN, paint, StdOpenFile);
      ADDCALLBACK(popupFileMenu, P_FILE_SAVE, paint, StdSaveFile);
      ADDCALLBACK(popupFileMenu, P_FILE_SAVEAS, paint, StdSaveAsFile);
      ccpAddSaveRegion(popupFileMenu[P_FILE_SAVE_REGION].widget, paint);
diff -rc xpaint-2.8.19/iprocess.c xpaint-2.8.19.2/iprocess.c
*** xpaint-2.8.19/iprocess.c	2010-03-25 20:10:16.000000000 +0100
--- xpaint-2.8.19.2/iprocess.c	2010-04-07 23:04:18.000000000 +0200
***************
*** 1952,1958 ****
     *buf = '\0';
     if (getcwd(buf, 256)) strcat(buf, "/");
     Global.explore = True;
!    GetFileName(GetShell(w), 3, 
                 buf, (XtCallbackProc) loadFileCallbackOK, wlArg);
     Global.explore = False;
  }
--- 1952,1958 ----
     *buf = '\0';
     if (getcwd(buf, 256)) strcat(buf, "/");
     Global.explore = True;
!    GetFileName(GetShell(w), BROWSER_SIMPLEREAD, 
                 buf, (XtCallbackProc) loadFileCallbackOK, wlArg);
     Global.explore = False;
  }
***************
*** 1994,2000 ****
     if (getcwd(buf, 256)) strcat(buf, "/");
     Global.explore = True;
     if (!info->scriptfile || !info->scriptfile[0])
!       GetFileName(GetShell(w), 2, 
                 buf, (XtCallbackProc) saveFileCallbackOK, wlArg);
     else
        saveFileCallbackOK(w, wlArg, info->scriptfile);
--- 1994,2000 ----
     if (getcwd(buf, 256)) strcat(buf, "/");
     Global.explore = True;
     if (!info->scriptfile || !info->scriptfile[0])
!       GetFileName(GetShell(w), BROWSER_SIMPLESAVE, 
                 buf, (XtCallbackProc) saveFileCallbackOK, wlArg);
     else
        saveFileCallbackOK(w, wlArg, info->scriptfile);
***************
*** 2008,2014 ****
     *buf = '\0';
     if (getcwd(buf, 256)) strcat(buf, "/");
     Global.explore = True;
!    GetFileName(GetShell(w), 2, 
                 buf, (XtCallbackProc) saveFileCallbackOK, wlArg);
     Global.explore = False;
  }
--- 2008,2014 ----
     *buf = '\0';
     if (getcwd(buf, 256)) strcat(buf, "/");
     Global.explore = True;
!    GetFileName(GetShell(w), BROWSER_SIMPLESAVE, 
                 buf, (XtCallbackProc) saveFileCallbackOK, wlArg);
     Global.explore = False;
  }
***************
*** 2031,2037 ****
     sprintf(directory, "%s/c_scripts/%s/", GetShareDir(),
  	              predefMenu[info->mode].name);
  
!    GetFileName(GetShell(w), 3, directory, 
        (XtCallbackProc) loadFileCallbackOK, wlArg);
     Global.explore = False;
  }
--- 2031,2037 ----
     sprintf(directory, "%s/c_scripts/%s/", GetShareDir(),
  	              predefMenu[info->mode].name);
  
!    GetFileName(GetShell(w), BROWSER_SIMPLEREAD, directory, 
        (XtCallbackProc) loadFileCallbackOK, wlArg);
     Global.explore = False;
  }
diff -rc xpaint-2.8.19/main.c xpaint-2.8.19.2/main.c
*** xpaint-2.8.19/main.c	2010-04-09 17:00:05.642875433 +0200
--- xpaint-2.8.19.2/main.c	2010-04-09 08:12:35.000000000 +0200
***************
*** 61,66 ****
--- 61,67 ----
  char *routine;
  
  extern int magnifier_closing_down;
+ extern int file_specified_zoom;
  extern char *fontNames[];
  
  extern void BrushInit(Widget toplevel);
***************
*** 401,412 ****
  processFile(char *file)
  {
      void *v;
  
      StateSetBusy(True);
  
!     if ((v = ReadMagic(file)) != NULL)
!         GraphicOpenFile(Global.toplevel, file, v);
!     else
  	Notice(Global.toplevel, msgText[UNABLE_TO_OPEN_INPUT_FILE],
  	       file, RWGetMsg());
  
--- 402,415 ----
  processFile(char *file)
  {
      void *v;
+     int zoom = Global.default_zoom;
  
      StateSetBusy(True);
  
!     if ((v = ReadMagic(file)) != NULL) {
!         if (file_specified_zoom) zoom = file_specified_zoom;
!         GraphicOpenFileZoom(Global.toplevel, file, v, zoom);
!     } else
  	Notice(Global.toplevel, msgText[UNABLE_TO_OPEN_INPUT_FILE],
  	       file, RWGetMsg());
  
diff -rc xpaint-2.8.19/misc.h xpaint-2.8.19.2/misc.h
*** xpaint-2.8.19/misc.h	2010-04-09 17:00:05.652875600 +0200
--- xpaint-2.8.19.2/misc.h	2010-04-07 23:18:20.000000000 +0200
***************
*** 78,84 ****
  extern void FatbitsEditDestroy(Widget paint);
  extern void FatbitsEdit(Widget paint);
  
! /* fileName.c */
  extern void *GetFileNameGetLastId(void);
  extern void StdSaveRegionFile(Widget w, XtPointer paintArg, XtPointer junk);
  extern void StdSaveAsFile(Widget w, XtPointer paintArg, XtPointer junk);
--- 78,84 ----
  extern void FatbitsEditDestroy(Widget paint);
  extern void FatbitsEdit(Widget paint);
  
! /* fileBrowser.c */
  extern void *GetFileNameGetLastId(void);
  extern void StdSaveRegionFile(Widget w, XtPointer paintArg, XtPointer junk);
  extern void StdSaveAsFile(Widget w, XtPointer paintArg, XtPointer junk);
***************
*** 191,196 ****
--- 191,197 ----
  extern void RemoveFileFromGlobalList(char * file);
  extern void setWriteTextSensitive(Widget w, Boolean bool);
  extern void StdWriteText(Widget w, XtPointer infoArg, XtPointer junk);
+ extern void StdOpenFile(Widget w, XtPointer paintArg, XtPointer junk);
  
  /* pattern.c */
  extern void PatternEdit(Widget w, Pixel *pixels,
diff -rc xpaint-2.8.19/operation.c xpaint-2.8.19.2/operation.c
*** xpaint-2.8.19/operation.c	2010-04-09 17:00:05.652875600 +0200
--- xpaint-2.8.19.2/operation.c	2010-04-07 22:21:37.000000000 +0200
***************
*** 1255,1319 ****
      }
  }
  
- #if 0
- static PaintMenuItem lineMenu[] =
- {
- #if 0
-     MI_FLAGCB("0", MF_CHECK | MF_GROUP1, lineWidth, NULL),
- #endif
-     MI_FLAGCB("1", MF_CHECK | MF_GROUP1, lineWidth, NULL),
-     MI_FLAGCB("2", MF_CHECK | MF_GROUP1, lineWidth, NULL),
-     MI_FLAGCB("4", MF_CHECK | MF_GROUP1, lineWidth, NULL),
-     MI_FLAGCB("6", MF_CHECK | MF_GROUP1, lineWidth, NULL),
-     MI_FLAGCB("8", MF_CHECK | MF_GROUP1, lineWidth, NULL),
- #define LW_SELECT	5
-     MI_FLAGCB("select", MF_CHECK | MF_GROUP1, lineWidth, NULL),
- };
- 
- static PaintMenuItem fontMenu[] =
- {
-     MI_FLAGCB("Times 8", MF_CHECK | MF_GROUP1,
- 	      fontSet, "-*-times-medium-r-normal-*-*-80-*-*-p-*-*-*"),
-     MI_FLAGCB("Times 12", MF_CHECK | MF_GROUP1,
- 	      fontSet, "-*-times-medium-r-normal-*-*-120-*-*-p-*-*-*"),
-     MI_FLAGCB("Times 18", MF_CHECK | MF_GROUP1,
- 	      fontSet, "-*-times-medium-r-normal-*-*-180-*-*-p-*-*-*"),
-     MI_FLAGCB("Times Bold 12", MF_CHECK | MF_GROUP1,
- 	      fontSet, "-*-times-bold-r-normal-*-*-120-*-*-p-*-*-*"),
-     MI_FLAGCB("Times Italic 12", MF_CHECK | MF_GROUP1,
- 	      fontSet, "-*-times-bold-i-normal-*-*-120-*-*-p-*-*-*"),
-     MI_FLAGCB("Lucida 12", MF_CHECK | MF_GROUP1,
- 	      fontSet, "-*-lucida-medium-r-normal-*-*-120-*-*-p-*-*-*"),
-     MI_FLAGCB("Helvetica 12", MF_CHECK | MF_GROUP1,
- 	    fontSet, "-*-helvetica-medium-r-normal-*-*-120-*-*-p-*-*-*"),
-     MI_FLAGCB("Helvetica Bold 12", MF_CHECK | MF_GROUP1,
- 	      fontSet, "-*-helvetica-bold-r-normal-*-*-120-*-*-p-*-*-*"),
- #ifndef __NetBSD__
-     MI_FLAGCB("Fixed 12", MF_CHECK | MF_GROUP1,
- 	      fontSet, "-*-fixed-medium-r-normal-*-*-120-*-*-m-*-*-*"),
- #else
-     MI_FLAGCB("Sony 16", MF_CHECK | MF_GROUP1,
- 	      fontSet, "-*-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1"),
-     MI_FLAGCB("Sony 24", MF_CHECK | MF_GROUP1,
- 	      fontSet, "-*-fixed-medium-r-normal--24-170-100-100-c-120-iso8859-1");
- #endif
-     MI_FLAGCB("Courier 12", MF_CHECK | MF_GROUP1,
- 	      fontSet, "-*-courier-medium-r-normal-*-*-120-*-*-m-*-*-*"),
-     MI_SEPARATOR(),
- #define FM_SELECT	11
-     MI_FLAGCB("select", MF_CHECK | MF_GROUP1, fontSet, NULL),
- };
- #endif
- 
- #if 0
- static PaintMenuItem otherMenu[] =
- {
-     MI_SIMPLECB("brushSelect", BrushSelect, NULL),
- #define SP_SELECT	1
-     MI_SIMPLECB("sprayEdit", sprayMenuCallback, NULL),
- };
- #endif
- 
  static PaintMenuItem canvasMenu[] =
  {
      MI_SIMPLECB("new", GraphicCreate, 0),
--- 1255,1260 ----
diff -rc xpaint-2.8.19/pattern.c xpaint-2.8.19.2/pattern.c
*** xpaint-2.8.19/pattern.c	2010-04-05 16:46:12.000000000 +0200
--- xpaint-2.8.19.2/pattern.c	2010-04-07 23:06:56.000000000 +0200
***************
*** 483,489 ****
  void
  saveConfigCallback(Widget w, LocalInfo * info, XtPointer junk)
  {
!     GetFileName(Global.patternshell, 2, ".XPaintrc",
  		(XtCallbackProc) saveConfigOkCallback, (XtPointer) info);
  }
  
--- 483,489 ----
  void
  saveConfigCallback(Widget w, LocalInfo * info, XtPointer junk)
  {
!     GetFileName(Global.patternshell, BROWSER_SIMPLESAVE, ".XPaintrc",
  		(XtCallbackProc) saveConfigOkCallback, (XtPointer) info);
  }
  
***************
*** 510,516 ****
  void
  loadConfigCallback(Widget w, LocalInfo * info, XtPointer junk)
  {
!     GetFileName(Global.patternshell, 3, ".XPaintrc",
  		(XtCallbackProc) loadConfigOkCallback, (XtPointer) info);
  }
  
--- 510,516 ----
  void
  loadConfigCallback(Widget w, LocalInfo * info, XtPointer junk)
  {
!     GetFileName(Global.patternshell, BROWSER_SIMPLEREAD, ".XPaintrc",
  		(XtCallbackProc) loadConfigOkCallback, (XtPointer) info);
  }
  
***************
*** 1400,1406 ****
  static void 
  readCallback(Widget w, XtPointer paint, XtPointer junk)
  {
!     GetFileName((Widget) paint, 0, NULL, readFileCallback, NULL);
  }
  
  static void 
--- 1400,1406 ----
  static void 
  readCallback(Widget w, XtPointer paint, XtPointer junk)
  {
!     GetFileName((Widget) paint, BROWSER_READ, NULL, readFileCallback, NULL);
  }
  
  static void 
diff -rc xpaint-2.8.19/rw/readWritePS.c xpaint-2.8.19.2/rw/readWritePS.c
*** xpaint-2.8.19/rw/readWritePS.c	2010-04-05 15:36:57.000000000 +0200
--- xpaint-2.8.19.2/rw/readWritePS.c	2010-04-09 07:48:44.000000000 +0200
***************
*** 61,66 ****
--- 61,67 ----
  extern int file_numpages;
  extern int file_force;
  extern int file_bbox;
+ extern int file_specified_zoom;
  extern int paper_sizes[15][2];
  
  extern void * xmalloc(size_t n);
***************
*** 674,680 ****
      static char * last_rad = NULL;
      static int  last_type = 0;
      char buffer[2048];
!     char *sc, *dc;
      FILE *fp;
      int wth, hth, type_doc;
      int i, j;
--- 675,681 ----
      static char * last_rad = NULL;
      static int  last_type = 0;
      char buffer[2048];
!     char *sc, *dc, *ptr;
      FILE *fp;
      int wth, hth, type_doc;
      int i, j;
***************
*** 750,758 ****
         hth = 2172;
         if (!strncmp(buffer, "\\*text:", 7)) {
  	   sscanf(buffer+7, "%d %d*", &wth, &hth);
         }
-        if (wth<=0) wth = 1536;
-        if (hth<=0) hth = 2172;
  
         /* initialize pixmap and data structures */
         sprintf(buffer, "%d %d", wth, hth);
--- 751,762 ----
         hth = 2172;
         if (!strncmp(buffer, "\\*text:", 7)) {
  	   sscanf(buffer+7, "%d %d*", &wth, &hth);
+            if (wth<=0) wth = 1536;
+            if (hth<=0) hth = 2172;
+            ptr = strstr(buffer, "\\*zoom:");
+            if (ptr)
+ 	       file_specified_zoom=atoi(ptr+7);
         }
  
         /* initialize pixmap and data structures */
         sprintf(buffer, "%d %d", wth, hth);
diff -rc xpaint-2.8.19/rw/rwTable.c xpaint-2.8.19.2/rw/rwTable.c
*** xpaint-2.8.19/rw/rwTable.c	2010-04-05 17:53:48.000000000 +0200
--- xpaint-2.8.19.2/rw/rwTable.c	2010-04-09 07:27:03.000000000 +0200
***************
*** 148,153 ****
--- 148,154 ----
  int file_force = 1;
  int file_bbox = 1;
  int file_transparent = 0;
+ int file_specified_zoom = 0;
  
  RWwriteFunc
  RWtableGetWriterFromSuffix(char *suffix)
***************
*** 175,180 ****
--- 176,182 ----
      file_isSpecialImage = 0;
      file_transparent = 0;
      file_numpages = 1;
+     file_specified_zoom = 0;
  
      for (i = 0; i < FMT_NUMBER; i++) {
  	if (RWtable[i].read == NULL || RWtable[i].test == NULL)
diff -rc xpaint-2.8.19/xpaint.h xpaint-2.8.19.2/xpaint.h
*** xpaint-2.8.19/xpaint.h	2010-04-05 16:30:47.000000000 +0200
--- xpaint-2.8.19.2/xpaint.h	2010-04-07 23:12:33.000000000 +0200
***************
*** 45,50 ****
--- 45,53 ----
  #define NULL 0
  #endif				/* AIXV3 */
  
+ enum {BROWSER_READ=0, BROWSER_MULTIREAD, BROWSER_LOADED, 
+       BROWSER_SAVE, BROWSER_SIMPLEREAD, BROWSER_SIMPLESAVE};
+ 
  extern char *routine;
  
  typedef struct {