patch 7.4.1979
Problem:    Getting value of binary option is wrong. (Kent Sibilev)
Solution:   Fix type cast.  Add a test.
diff --git a/src/testdir/test_expr.vim b/src/testdir/test_expr.vim
index f44e216..067dbf2 100644
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -106,3 +106,26 @@
   " The failure is only visible using valgrind.
   call assert_fails('echo "\<C-">')
 endfunc
+
+func Test_option_value()
+  " boolean
+  set bri
+  call assert_equal(1, &bri)
+  set nobri
+  call assert_equal(0, &bri)
+
+  " number
+  set ts=1
+  call assert_equal(1, &ts)
+  set ts=8
+  call assert_equal(8, &ts)
+
+  " string
+  exe "set cedit=\<Esc>"
+  call assert_equal("\<Esc>", &cedit)
+  set cpo=
+  call assert_equal("", &cpo)
+  set cpo=abcdefgi
+  call assert_equal("abcdefgi", &cpo)
+  set cpo&vim
+endfunc