Skip to content

Typing text in Ruby, Javascript and C/C++ not always works #189

@eldipa

Description

@eldipa

Describe the bug
+type (+input) is an experimental feature and Javascript and C/C++ don't support them because the interpreters don't disable the echoing.

But these languages could still use +type if the example that uses +type it also uses +pass, discarding the output as a workaround for the echoing problem.

However this not always works and worst, Ruby, which does not have an echoing problem, it is also buggy.

Here are the test cases:

Ruby (it should not require +pass):

  >> print "num: "; gets     # byexample: +type  Does Not Work
  num: [42]
  => "42\n"

  >> gets        # byexample: +type  It Works
  [it works!]
  => "it works!\n"

C/C++ (it requires +pass):

  ?: int n;
  ?: std::cout << "num: " << std::flush; std::cin >> n;    // byexample: +type +pass It Works
  num: [42]
  ?: n
  (int) 42

  ?: std::string what;
  ?: getline(std::cin, what);    // byexample: +type +pass Hungs! A Newline is Missing!
  [it works!]
  ?: what
  (std::string &) "it works!"

Javascript (it requires +pass):

  > const readline = require('readline');
  > const rl = readline.createInterface({
  .   input: process.stdin,
  .   terminal: false
  . });

  > var num;
  > rl.question('num: ', (n) => {             // byexample: +input +pass
  .   num = n;
  . });
  num: [42]

  > num
  42

byexample version
byexample 10.1.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugout of sync between the code and the docs; something that should be fixed in the near future

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions