Known Problems fixed in GPS 4.0.1

- F926-007: Potential issue with empty debugger data windows
  Problem:    If GPS is closed while a debug session is still running and the
              data window (canvas) is open, the next time GPS will be launched
              the data window will be part of the desktop and right clicking
              on it might cause unexpected behavior.
  Workaround: Either terminate the debug session before closing GPS
              or make sure to close the data window after starting GPS,
              or avoid right clicking on the data window until a debug session
              is started.

- F922-006 Conflict with /usr/lib64 libraries under x86-64 GNU Linux
  Problem:    Under some x86-64 GNU Linux distributions, some Gtk+ libraries
              installed under /usr/lib64 may conflict with those needed by
              GPS.
  Workaround: Move those conflicting libraries (e.g. libpangocairo-1.0.so.0)
              out of /usr/lib64.

- F915-009 Smart completion not working with some constructs
  Problem:    In some cases the smart completion will not work properly. This
              happens in particular for subprograms that have several
              parameters of the same type specified altogether and
              comma-separated e.g.
                procedure Complete (S1, S2 : String);
              In this case the smart completion window will not list the
              parameters correctly.
  Workaround: Use the Edit/Complete Identifier menu instead or rewrite the
              subprogram profile giving each parameter its type e.g.
                 procedure Complete (S1 : String; S2 : String);

- F912-009 Crash after a compilation with long output
  Problem:    When a build yields a lot of errors (thousands of lines), GPS
              might crash when parsing the output.
  Workaround: Use the command line to reduce the number of errors, or disable
              the "Automatic code fixing" in GPS by adding a line
              "MODULE.CODEFIX=no" in the file .gps/traces.cfg, or from the
              command line: gps --traceoff=MODULE.CODEFIX

- F911-020 Firefox does not handle the links of the generated python doc
  Problem:    On windows, the generated documentation will contain links of the
              form "file://C:\home\.gps\/generated_doc/a_file.html". This kind
              of links is not handled by Firefox.
  Workaround: The files are correctly generated and can be manually opened in
              Firefox.

- F908-007 Automatic completion wrong in consoles
  Problem:    In interactive consoles (such as the GPS Shell console or the
              Python console), the Tab completion sometimes completes with
              a prefix longer than the longer common prefix.
  Workaround: Type the complete command manually

- F906-010 Cannot set max line length for pretty printing beyond 100
  Problem:    The handling of -M pretty printer switch does not allow
              a value above 100 while gnatpp accepts up to 256.
  Workaround: Type the parameter manually in the command line at the bottom
              of the switch editor, or edit gnatpp.xml and change 100 to 256

- F904-002 Jumping on the wrong editor after build errors
  Problem:    If there are other items in the Locations View (such as search
              results), when compiling a file that contains errors, GPS might
              jump to one of the other items in the Location View instead of
              jumping on the first line of the Builder results category.
  Workaround: Click manually on the first entry in the Builder results

- F830-003 Editor highlighting not refreshed when doing parallel compilations
  Problem:    Launch a compilation by pressing F4 for example. While the
              compilation is on going compile a file by pressing Shift+F4.
              You discover that there is an error in the file. There is an
              entry in the Locations window and the corresponding line is
              highlighted in the editor. Fix the error and recompile the file.
              The entry in the Locations windows has not disappeared and the
              corresponding line in the editor remains highlighted.
  Workaround: Right click on the entry in the Locations window and select the
              'Remove File' contextual menu.

- F825-008 Hang when connecting to a remote host asking for a user name
  Problem:    When connecting to a remote host using a remote connection tool
              that asks for a user name, GPS hangs without prompting for this
              user name.
  Workaround: Enter the user name in the host's advanced configuration

- F828-007 Metrics tree is empty
  Problem:    When querying metrics through the menu Tools->Metrics or using
              the corresponding shell commands, the metrics are computed but
              the metrics viewer remains empty.
  Workaround: Use the command-line to read the output of the gnat metric tool.

- F822-018 Crash when using the search dialog
  Problem:    GPS may crash when searching for all occurences of a pattern
              using the the "Find All" button in the search dialog.
  Workaround: Use the "References" contextual menu instead

- F821-007 Edit->Refill deletes 1 letter words at end of lines
  Problem:    If you call this menu on a line that ends with a 1 letter word,
              that word is deleted during the refill
  Workaround: Either do the refill manually, or add two random letters at the
              end of the line and delete them after the refill

- F821-001 Remote browsing on LynxOS does not work
  Problem:    Browsing a remote LynxOS machine using the file selector or the
              directory selector does not work: no file is shown.
  Workaround: Directly specify the full file path in the file entry

- F818-007 GPS hangs when loading default.gpr with syntax errors
  Problem:    When launching GPS with a file named default.gpr containing
              syntax errors, GPS will hangs, trying to reload this file
              indefinitely.
  Workaround: Fix the error in default.gpr before starting GPS

- F816-015 Crash on user input when running an executable
  Problem:    If you run, through Build->Run, an executable that expects to
              read input interactively, GPS crashed when you press Enter in
              the console.
  Workaround: Use an external terminal when running the process, which can
              be done from the dialog open before spawning the executable

- F811-014 Debugger external execution window still active in remote mode
  Problem:    The preference 'external execution window' is taken into account
              even in remote mode, but is unsupported and thus leads to errors.
  Workaround: Make sure that the preference is unset before launching a
              remote debugging session.

- F810-007 Crash when displaying tooltips in editors containing non-ASCII text
  Problem:    If you are using non-ASCII text in your source files, in
              particular for the comments associated with entities, then GPS
              will crash when displaying the tooltip when you leave the mouse
              on top of such an entity.
  Workaround: Disable the Editor/Tooltips preference

- F808-015 GPS.EditorView.set_read_only has inverted logic
  Problem:    If you pass True to this function, the buffer is made writable
              instead of read-only, and the opposite for False
  Workaround: Swap True for False

- F808-010 GPS.Project.get_tool_switches_as_string returns empty string
  Problem:    If you use the above shell function, an empty string is always
              returned. In particular, the SPARK plug-in is affected by this
              problem.
  Workaround: use GPS.Project.get_tool_switches_as_list instead

- F807-022 Notebook tabs not displayed properly
  Problem:    When there are multiple pages in a notebook, the active tab
              might not be displayed properly.
  Workaround: Click on any of the open tabs to refresh the display.

- F807-005 Unwanted scrolling in the Smart Completion window.
  Problem:    When pressing the Down arrow on the Smart Completion window,
              pressing Down on the last item jumps to the first item in the
              list.
  Workaround: Use the mouse and the scrollbar to reach the bottom of the list

- F807-004 Smart Completion window blinking when there is no completion.
  Problem:    When calling Smart Completion at a location where GPS finds
              no completion, the Smart Completion window might appear and
              then disappear immediately.
  Workaround: The window can be safely ignored

- F803-004 Remote paths translation not saved
  Problem: In the remote configuration dialog, if a path is incorrectly entered
           then the path is not saved, and no warning is shown to the user.
  Workaround: Make sure the entered paths are correct

- F724-012 Cannot paste in external applications
  Problem: If you select and copy some text in GPS, this text cannot be
           pasted in other applications afterward (except when using the
           Ctrl-C shortcut, and this shortcut hasn't been redefined).
  Workaround: Use Ctrl-C to copy, or do a cut then a paste instead of a copy

- F721-015 Intermittent crash in remote mode when using rsync
  Problem:    When using directory synchronization with rsync in remote mode,
              GPS sometimes crash.
  Workaround: Use direct disk access (e.g. nfs) instead of rsync

- EB18-016 Wrong highlighting of keywords on non Ada/C/C++ files
  Problem:    Keywords in the source editor for some languages (e.g. python,
              perl) are highlighted one character too long.
  Workaround: This is only a display glitch which can be ignored

Known Problems fixed in GPS 4.0.0

- F713-006 Crash when creating an extending project
  Problem:    When creating an extending project using the project wizard,
              if the file corresponding to the extending project already
              exists, GPS might crash when pressing the Apply button.
  Workaround: Remove or rename the existing extended project file.

- F630-024 GPS hangs with C++ files
  Problem:    Let's consider a C++ class named 'foo' containing an entity
              named 'foo' as well (a constructor for example). GPS hangs when
              getting the full name of the entity 'foo'. At least 'calls (in
              tree)', 'calls (in browser)', 'is called by (in browser)' and
              the tooltip over the entity 'foo' are affected.
  Workaound:  No known workaround

- F628-001 Instabilities with the clipboard view
  Problem:    Trying to paste an entry from the clipboard view by double
              clicking on it when no source editor is open may cause some
              instabilities.
  Workaround: Make sure at least one source editor is open before double
              clicking on a clipboard entry.

- F612-025 VCS not passing full pathnames
  Problem:    When Absolute_Names is set to True the VCS actions are not
              receiving the full pathname for the file to handle.
  Workaround: No known workaround

- F612-010 Line number not refreshed after "Go to line"
  Problem:    If you change the current line in editor with the "Go to line"
              dialog, the line number is not refreshed in the editor's status
              bar until you move the cursor
  Workaround: Move the cursor one character to the left or right to force a
              refresh

- F606-012 generic_cvs_annotate crashes GPS
  Problem:    Using the generic_cvs_annotate shell function may crash GPS.
  Workaround: Bind a key shortcut to the VCS/Annotate action instead

- F602-022 GPS hangs when doing some VCS comparisons
  Problem:    GPS hangs when using the VCS interface (and CVS in particular)
              to compare a given file against HEAD or any other specific
              revision (or tag) under some special circumstances: the file
              has to be part of a project which is spread over several
              directories. Furthermore, there should be another file with the
              same name under another directory of the project. This may
              also appear when using the following layout, project/prj2/README
              being the file to compare and /project/prj.gpr being the
              currently loaded and depending on prj1.gpr and prj2.gpr.
                 /project/prj1/prj1.gpr
                              /README
                         /prj2/prj2.gpr
                              /README
                         /prj.gpr
              In fact all VCS operations done on project/prj2/README are
              actually executed on /project/prj1/README.
  Workaround: Rename either one of the files before comparing the other

- F516-004 Cross references into multi-unit source files in Ada
  Problem:    If you have used gnatname so that you can use source files
              containing several Ada units, GPS is not able to do
              cross-references inside these files
  Woraround:  After each compilation, select Build->Load xref in memory

- F530-004 Goto type declaration wrong on predefined types
  Problem:    When the contextual menu 'Goto type declaration of XXX' is
              invoked, if XXX is of a predefined type GPS opens an empty file
              named either '<case_insensitive_predefined>' or
              '<case_sensitive_predefined>'.
  Workaround: Simply ignore this file and close it

- F515-015 GPS cannot start on untrusted X server configuration
  Problem:    When using a X server configured in untrusted mode
              (e.g. when using ssh -X), GPS will fail to start with an error
              message of the form:

              The program 'gps_exe' received an X Window System error.
              This probably reflects a bug in the program.
              The error was 'BadWindow (invalid Window parameter)'.

  Workaround: Configure your X server to use the trusted mode (e.g. use
              ssh -Y instead of ssh -X).

- F512-005 Unexpected crashes when closing editors from Comparison or shell
  Problem:    When closing editors created with Visual Comparison, or when
              using GPS shell commands to close editors, in some particular
              cases GPS might crash.
  Workaround: No known workaround

- F505-004 Contextual menu items in Task Manager not working the first time
  Problem:    When the Task Manager doesn't have the focus, the contextual
              menu items might not work the first time they are clicked.
  Workaround: Give the focus to the Task Manager before clicking, or click on
              corresponding progress bars, or click twice.

- F502-040 C/C++ cross-references and read-only object directories
  Problem:    No error is reported when the object directory of a project is
              read-only and you are trying to generate the C/C++ xref info.
  Workaround: GPS really expects all object directories to be writable, since
              this is where it puts a lot of temporary files.

- F502-040 Generating C/C++ cross-references leaves zombie processes
  Problem:    If you update the C/C++ cross-references, it happens that some
              zombie dbimp processes are left
  Workaround: These processes do not occupy any CPU cycle, and are properly
              destroyed when GPS exits

- F502-037    Resizing MDI windows can cause GPS to freeze.
  Problem:    When resizing a GPS window causes a window of the "interactive
              console" category (such as the Messages window, the debugger
              console, the shell console, execution windows, etc) to be resized
              to a small width, GPS might freeze.
  Workaround: Make sure no window of this type is resized to a small width.

- F501-002 Some VCS functions not available through the VCS menu
  Problem:    If GPS is started with no open source editor selecting a file
              in the project or the VCS explorer will not be sufficient to
               be able to access VCS actions through the main VCS menu.
              There is a similar problem with directories.
  Workaround: Display a contextual menu by right clicking on a file or
              directory entry. VCS actions are always available though the VCS
              contextual submenu. Doing this will also enable them in the main
              VCS menu.

- F427-012 Wrong indentation of generic subprogram parameters
  Problem:    The following kind of Ada construct is not properly handled by
              GPS:
              generic
                 with procedure P is <>;
  Workaround: Fix the indentation manually

- F425-013 Crash when quiting while build is running
  Problem:    GPS crashes when it is closed while processing a build command
  Workaround: Interrupt first on going builds from the task manager dialog
              displayed when exiting GPS.

- F405-011 Outline view lost after a search
  Problem:    When doing a search in a source editor the outline view is
              cleared right after the search dialog pops up (only in the case
              it is a floating window).
  Workaound:  Once the search dialog has been closed give the focus (by
              clicking) to another window in the GPS dektop and then give it
              back to the current source editor.

- F403-006 Freeze when file modified externally
  Problem:    Under some conditions, when a file is modified outside GPS,
              and you e.g.  move the GPS main window before the 'file changed
              on disk' dialog is displayed, GPS freezes the desktop.
  Workaround: First click on GPS before moving it. If GPS freezes, use
              alt-tab or ctrl-alt-del to unlock your desktop (under Windows),
              use switch to another desktop under other OSes.

- F403-003 Typing 'q' in the debugger console crashes GPS under unix
  Problem:    Once a debug session is started, typing 'q', 'qu', or 'qui' in
              in the debugger console crashes GPS under non Windows platforms.
  Workaround: Type 'quit' instead of using an abreviation

- F329-018 Crash when getting characters at wrong locations
  Problem:    The GPS shell functions that manipulate GPS.EditorLocation
              instances may crash GPS when they do not point a valid position
              in the buffer (e.g. GPS.EditorBuffer.get_chars).
  Workaround: Avoid invalid positions when using EditorLocation instances

- F327-002 Project's Source_File attribute and shared directories
  Problem:    When two or more projects share the same source directories,
              and use the Source_Files attribute to avoid conflicts, GPS
              incorrectly loads the list of sources for languages other
              than Ada, and some sources will appear as shared among these
              projects.
  Workaround: Use different source directories if possible

- F324-010 User consoles not accepting input
  Problem:    It is not possible to enter any data into a user created console
  Workaround: Initialize the console with the title "Python", e.g:
              GPS.Console.__init__ (self, "Python", [...])

- F324-014 Wrong subprogram box with nested subprograms
  Problem:    When invoking the 'subprogram box' action in a subprogram that
              has a nested one above in the code the box is always generated for
              this nested subprogram.
  Workaround: Put the cursor above all nested subprograms in the subprogram
              block you want a box to be generated for.

- F322-010 Cannot open GNAT run-time files under Windows
  Problem:    Under Windows, using GPS 3.1.3, if you install GPS and GNAT
              under the same directory, GPS is not be able to display the
              GNAT version and find GNAT run-time files.
  Workaround: Install GPS under another location, or specify gnatls.exe as
              the Gnatlist project property.

- F321-010 Using the file selector on Windows changes the working directory
  Problem:    If opening a file in a different directory than the working
              directory, doing so with the Windows' file selector changes the
              working directory
  Workaround: Select back the working directory using the 'Change Dir' menu
              function.

- F317-003 Auto-saved file not deleted when saving into a new name
  Problem:    If a file creates an auto-saved file and then is saved into an
              other name, the auto-saved file is not removed. As a consequence,
              when the original file is re-opened, GPS tries to retreived
              and auto-saved file.
  Workaround: The auto-saved file has to be manually deleted before the
              re-opening of the original file.

- F308-037 Infinite loop when displying a tooltip
  Problem:    GPS may fall in an infinite loop when displying a tooltip. The
              problem occurs when GPS tries to extract the comments associated
              with an entity whose declaration belongs to the first block of
              code in a file (without any blank line in between) and when this
              block of code is on the second line of a file (the first line
              must be blank).
  Workaround: Disable the tooltips using Preferences/Editor facility

- F223-020 Changing order of source dirs has no effect
  Problem:    In the project properties editor, if you change the order of
              the source directories through the Up and Down buttons, without
              modifying or adding any directory, the change is not saved in
              the project.
  Workaround: Edit the project file manually (available through the contextual
              menu on a project node in the Project View).

- F223-004 Cannot display complex variant record in debugger
  Problem:    When trying to display under the debugger a complex data mixing
              arrays, enumerations and variant records, GPS will sometimes
              display instead 'Unknown variable'.
  Workaround: Use the tooltip, or 'print variable' instead of 'graph display'

- F221-022 Consoles with spaces in their names
  Problem:    When you create, from python, a new console with a space or
              other XML special characters in its name, GPS will report a
              failure loading one of its internal files (history) on the
              next startup
  Workaround: remove the incorrect line in the $HOME/.gps/history file, and
              do not use spaces in the name for the console.

- F220-009 Relative paths in project properties on Windows
  Problem:    On Windows, using the system file selection dialog will change
              the current directory. As a result, if you edit the project
              properties when using relative paths, and if you select, for
              any of the attributes, a file through this dialog, this will
              break the list of source files for this project
  Workaround: Use the GPS dialog to select files (see the preferences), or
              use absolute paths in the project properties editor.

- F216-019: Instabilities of the visual file comparison
  Problem:    The visual file comparison might be unstable. In particular
              this can happen when selecting some text including either the
              first or the last line of a file used in a visual diff and right
              clicking to see the contextual menu.
              The underlying problem also causes some troubles to the
              GPS.Editor.get_chars function from the shell API.
 Workaround:  Use the activity patch generation, or command line comparison
              tools (e.g. diff, cvs diff).

- F216-011 Outline view not refreshed properly
  Problem:    It sometimes happens that the outline view indicates there are
              no entities even though an editor is selected. This generally
              happens either on startup when the welcome dialog is used to
              select a project or when a floating search window has
              just been used
  Workaround: click in another window, and then back in the editor to force
              a refresh.

- F209-004 Incorrect display and setting of array indexed by enum in debugger
  Problem:    In the debugger, when displaying graphically the contents of
              an array indexed by an enumeration, GPS will compute bounds
              off by one, causing confusion when e.g. modifying the contents
              of some elements of the array.
  Workaround: Modifying/display the array in the debugger console

- F208-020 Recomputing a visual diff misbehaving
  Problem:    The contextual menu Visual Diff/Recompute is not doing all its
              processing.
  Workaround: Close the visual diff and reopen it either using the VCS module
              or the Tools/Visual Diff menus.

- F208-014 No undo/redo for visual diff's
  Problem:    The undo/redo icons and corresponding menus do not work for on
              of the file used in a visual diff.
  Workaound:  Make sure the editor is writable and eventually give the focus
              (by clicking) to another editor and then back to the previous
              one.

- F131-018 Cannot launch external process when name contains spaces
  Problem:    When using the Process API in GPS shell or Python, it is not
              possible to launch processes using their full paths when this
              path contains spaces.
  Workaround: Put the executable in your PATH and launch it using its base
              name, or move the executable to a PATH that doesn't contain
              spaces.

- F128-007 Project view: No direct response on expand sub item
  Problem:    Expanding a category needs two consecutive clicks.
  Workaround: Click two times on the category to expand it

- F120-025 Python menu doesn't properly reload scripts
  Problem:    If you have added Python as a supported language in your
              project, GPS creates a python menu every time you edit a
              python file. This menu contains a "Reload" entry, which has no
              effect on the python console in fact.
  Workaround: Manually type "import ..." or "reload (...)" in the python
              console.

- F119-004 Recovered files are marked as 'unmodified'
  Problem:    When recovering a file from its backup, GPS opens it marked
              'unmodified', and it is not possible to save it directly (you
              have to edit it first).
  Workaround: Edit the file (adding a character and removing it is enough)

- F118-002 GPS Code fix fails when formal is access procedure
  Problem:    With an access to procedure parameter in the Ada 05 fashion,
              fixing a non conformant subprogram profile would give a wrong
              result.
  Workaround: Fix the code manually

- F106-014 GPS auto-casing does not support unicode characters
  Problem:    GPS was not properly changing the case of identifiers with
              unicode characters (like the Greek letter Pi for example).
  Workaround: Disable the auto-casing in the preferences or press ctrl-q
              before the space as this disable the auto-casing of last word.

- F104-007 GPS split MDI when opening log files
  Problem:    The log files are opened by splitting the MDI when using the
              Edit log file VCS command. When using the command
              Commit (via revision log) the MDI is not split, the file is
              placed with the consoles if possible. For consistency, this is
              now the new behavior for the Edit log file.
  Workaround: Move the log editor manually

- F103-012 Loading new project breaks the desktop
  Problem:    If you load a project through the menu Project->Recent or
              Project->Load, the desktop is improperly updated, and some
              windows have unexpected sizes
  Workaround: Use the -P command line parameter to GPS to specify the
              project directly on the command line.

- EC29-001 Stripping blanks incompatible with UTF-8 characters
  Problem:    When the preference "Strip blanks" is enabled, UTF-8 characters
              might be lost or corrupted when saving the file.
  Workaround: Disable the "Strip blanks" preference when working in UTF-8

- EC02-015 Search/Replace and Undo/Redo not working on files containing TABs
  Problem:    When using "Replace All" functionality on files containing TABs,
              this might corrupt the lines containing text being replaced,
              also breaking Undo/Redo on the files
  Workaround: Search and replace each occurrence manually in files containing
              TABs. You can use keyboard shortcuts for "Search next" and
              "Paste" to make the work easier.

- EB16-002 Wrong parenthesis highlighting
  Problem:    Parentheses in comments are taken into account when doing the
              highlighting of matching parenthesis.
  Workaround: Use the search dialog to find the next/previous parenthesis

- D802-017 Focus is not given to editors
  Problem:    In some cases, when starting GPS, the focus can't be given to
              the editor, and it's impossible to edit any file.
  Workaround: Select a window outside GPS, and then go back to GPS.
