prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  resize-cols-input missing from Column -> Resize menu
  **Small description**
  resize-cols-input is missing from the Column -> Resize menu
  
  **Expected result**
  when I go to the menu under Column -> Resize, I expect resize-cols-input (gz_) to be given as an option
  
  **Additional context**
  checked against v2.11
  
  (Submitting pull request to fix this now.)
  
  
  
  </issue>
  <code>
  [start of visidata/features/layout.py]
  1 from visidata import VisiData, vd, Column, Sheet, Fanout
  2 
  3 @Column.api
  4 def setWidth(self, w):
  5     if self.width != w:
  6         if self.width == 0 or w == 0:  # hide/unhide
  7             vd.addUndo(setattr, self, '_width', self.width)
  8     self._width = w
  9 
  10 
  11 @Column.api
  12 def toggleWidth(self, width):
  13     'Change column width to either given `width` or default value.'
  14     if self.width != width:
  15         self.width = width
  16     else:
  17         self.width = int(self.sheet.options.default_width)
  18 
  19 
  20 @Column.api
  21 def toggleVisibility(self):
  22     if self.height == 1:
  23         self.height = self.sheet.options.default_height
  24     else:
  25         self.height = 1
  26 
  27 @VisiData.api
  28 def unhide_cols(vd, cols, rows):
  29     'sets appropriate width if column was either hidden (0) or unseen (None)'
  30     for c in cols:
  31         c.setWidth(abs(c.width or 0) or c.getMaxWidth(rows))
  32 
  33 
  34 Sheet.addCommand('_', 'resize-col-max', 'cursorCol.toggleWidth(cursorCol.getMaxWidth(visibleRows))', 'toggle width of current column between full and default width'),
  35 Sheet.addCommand('z_', 'resize-col-input', 'width = int(input("set width= ", value=cursorCol.width)); cursorCol.setWidth(width)', 'adjust width of current column to N')
  36 Sheet.addCommand('g_', 'resize-cols-max', 'for c in visibleCols: c.setWidth(c.getMaxWidth(visibleRows))', 'toggle widths of all visible columns between full and default width'),
  37 Sheet.addCommand('gz_', 'resize-cols-input', 'width = int(input("set width= ", value=cursorCol.width)); Fanout(visibleCols).setWidth(width)', 'adjust widths of all visible columns to N')
  38 
  39 Sheet.addCommand('-', 'hide-col', 'cursorCol.hide()', 'Hide current column')
  40 Sheet.addCommand('z-', 'resize-col-half', 'cursorCol.setWidth(cursorCol.width//2)', 'reduce width of current column by half'),
  41 
  42 Sheet.addCommand('gv', 'unhide-cols', 'unhide_cols(columns, visibleRows)', 'Show all columns')
  43 Sheet.addCommand('v', 'visibility-sheet', 'for c in visibleCols: c.toggleVisibility()')
  44 Sheet.addCommand('zv', 'visibility-col', 'cursorCol.toggleVisibility()')
  45 
  46 vd.addMenuItems('''
  47     Column > Hide > hide-col
  48     Column > Unhide all > unhide-cols
  49     Column > Resize > half > resize-col-half
  50     Column > Resize > current column to max > resize-col-max
  51     Column > Resize > current column to input > resize-col-input
  52     Column > Resize > all columns max > resize-cols-max
  53 ''')
  54
  [end of visidata/features/layout.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/visidata/features/layout.py b/visidata/features/layout.py
  --- a/visidata/features/layout.py
  +++ b/visidata/features/layout.py
  @@ -50,4 +50,5 @@
       Column > Resize > current column to max > resize-col-max
       Column > Resize > current column to input > resize-col-input
       Column > Resize > all columns max > resize-cols-max
  +    Column > Resize > all columns to input > resize-cols-input
   ''')
  
verification_info: {"golden_diff": "diff --git a/visidata/features/layout.py b/visidata/features/layout.py\n--- a/visidata/features/layout.py\n+++ b/visidata/features/layout.py\n@@ -50,4 +50,5 @@\n     Column > Resize > current column to max > resize-col-max\n     Column > Resize > current column to input > resize-col-input\n     Column > Resize > all columns max > resize-cols-max\n+    Column > Resize > all columns to input > resize-cols-input\n ''')\n", "issue": "resize-cols-input missing from Column -> Resize menu\n**Small description**\r\nresize-cols-input is missing from the Column -> Resize menu\r\n\r\n**Expected result**\r\nwhen I go to the menu under Column -> Resize, I expect resize-cols-input (gz_) to be given as an option\r\n\r\n**Additional context**\r\nchecked against v2.11\r\n\r\n(Submitting pull request to fix this now.)\r\n\r\n\n", "before_files": [{"content": "from visidata import VisiData, vd, Column, Sheet, Fanout\n\n@Column.api\ndef setWidth(self, w):\n    if self.width != w:\n        if self.width == 0 or w == 0:  # hide/unhide\n            vd.addUndo(setattr, self, '_width', self.width)\n    self._width = w\n\n\n@Column.api\ndef toggleWidth(self, width):\n    'Change column width to either given `width` or default value.'\n    if self.width != width:\n        self.width = width\n    else:\n        self.width = int(self.sheet.options.default_width)\n\n\n@Column.api\ndef toggleVisibility(self):\n    if self.height == 1:\n        self.height = self.sheet.options.default_height\n    else:\n        self.height = 1\n\n@VisiData.api\ndef unhide_cols(vd, cols, rows):\n    'sets appropriate width if column was either hidden (0) or unseen (None)'\n    for c in cols:\n        c.setWidth(abs(c.width or 0) or c.getMaxWidth(rows))\n\n\nSheet.addCommand('_', 'resize-col-max', 'cursorCol.toggleWidth(cursorCol.getMaxWidth(visibleRows))', 'toggle width of current column between full and default width'),\nSheet.addCommand('z_', 'resize-col-input', 'width = int(input(\"set width= \", value=cursorCol.width)); cursorCol.setWidth(width)', 'adjust width of current column to N')\nSheet.addCommand('g_', 'resize-cols-max', 'for c in visibleCols: c.setWidth(c.getMaxWidth(visibleRows))', 'toggle widths of all visible columns between full and default width'),\nSheet.addCommand('gz_', 'resize-cols-input', 'width = int(input(\"set width= \", value=cursorCol.width)); Fanout(visibleCols).setWidth(width)', 'adjust widths of all visible columns to N')\n\nSheet.addCommand('-', 'hide-col', 'cursorCol.hide()', 'Hide current column')\nSheet.addCommand('z-', 'resize-col-half', 'cursorCol.setWidth(cursorCol.width//2)', 'reduce width of current column by half'),\n\nSheet.addCommand('gv', 'unhide-cols', 'unhide_cols(columns, visibleRows)', 'Show all columns')\nSheet.addCommand('v', 'visibility-sheet', 'for c in visibleCols: c.toggleVisibility()')\nSheet.addCommand('zv', 'visibility-col', 'cursorCol.toggleVisibility()')\n\nvd.addMenuItems('''\n    Column > Hide > hide-col\n    Column > Unhide all > unhide-cols\n    Column > Resize > half > resize-col-half\n    Column > Resize > current column to max > resize-col-max\n    Column > Resize > current column to input > resize-col-input\n    Column > Resize > all columns max > resize-cols-max\n''')\n", "path": "visidata/features/layout.py"}]}