[Bug 1702767] Re: pname (Process name) completion script fails to handle wine generated path names

Ubuntu Foundations Team Bug Bot 1702767 at bugs.launchpad.net
Fri Jul 7 00:24:06 UTC 2017


The attachment "Possible fix for pname completion (doesn't handle spaces
in process name but I haven't seen spaces in yet in exes)" seems to be a
patch.  If it isn't, please remove the "patch" flag from the attachment,
remove the "patch" tag, and if you are a member of the ~ubuntu-
reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by
~brian-murray, for any issues please contact him.]

** Tags added: patch

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to bash-completion in Ubuntu.
https://bugs.launchpad.net/bugs/1702767

Title:
  pname (Process name) completion script fails to handle wine generated
  path names

Status in bash-completion package in Ubuntu:
  New

Bug description:
  I'm playing The Witcher 3 in wine. The game plays mostly fine except
  it deadlocks when trying to exit. To clear the deadlocked memory hog
  process I need to kill it manually. I tried to use killall with tab
  completion to clear the process but then I noticed pname completion
  function in /usr/share/bash-completion/bash_completion doesn't handle
  windows paths at all.

  There is two problems in windows names:
  1. It may use backslashes (but wine supports also unix paths if application is launched from terminal)
  2. There is often spaces in the directory path

  Attached possible fix is fairly simple addition to sed replace script
  to handle windows names first before anything else. It only handles
  .exe files but script could be modified to handle other extensions
  like -e "s:.*[\\\\\/]\([^ ]*\\.\\(exe\\|bat\\)\\):\\1:". But I didn't
  want to add any other extensions because I haven't seen them used.

  The possible fix still has a weakness if command line arguments
  include filenames with exe extension. I just don't see how to write a
  simple script that handles spaces in directory path and arguments
  having exe extension. If wanting to handle the extension in argument
  list corner case it could be done using multi step completion
  involving parsing /proc/<pid>/cmdline that has list of null terminate
  strings making it much simpler to separate arguments from directory
  path. Too bad ps tool doesn't already offer option to display that
  information instead of /proc/<pid>/comm that truncates long command
  names.

  I tried to use single quotes to reduces backslashes but that didn't
  work in completion script. That forced me to choose double quotes and
  doubled backslashes.

  I tested the patch in my system completion script directly. killall
  completion now allows me to complete both windows and native process
  names without any issues yet.

  ProblemType: Bug
  DistroRelease: Ubuntu 17.04
  Package: bash-completion 1:2.1-4.3ubuntu1
  ProcVersionSignature: Ubuntu 4.10.0-26.30-generic 4.10.17
  Uname: Linux 4.10.0-26-generic x86_64
  NonfreeKernelModules: nvidia_uvm nvidia_drm nvidia_modeset nvidia
  ApportVersion: 2.20.4-0ubuntu4.1
  Architecture: amd64
  CurrentDesktop: LXDE
  Date: Thu Jul  6 23:12:43 2017
  InstallationDate: Installed on 2037-12-25 (-7476 days ago)
  InstallationMedia: Lubuntu 16.04 LTS "Xenial Xerus" - Release amd64 (20160420.1)
  PackageArchitecture: all
  SourcePackage: bash-completion
  UpgradeStatus: Upgraded to zesty on 2017-06-06 (30 days ago)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/bash-completion/+bug/1702767/+subscriptions



More information about the foundations-bugs mailing list