Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6805185
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T19:33:22+00:00 2026-05-26T19:33:22+00:00

I am trying to get text in a selection to be passed to the

  • 0

I am trying to get text in a selection to be passed to the function
find_max_eq_filter originally. The function I am trying to modify had an
“s” parameter which I assume is the selection text. I want to change the
function to allow a parameter that is passed by the user. Could someone
clue me in how to do this?

    _command void align_equals() name_info(','VSARG2_MARK|VSARG2_REQUIRES_EDITORCTL)
    {

       if ( _select_type() != "LINE" && _select_type() != "BLOCK" ) {
          message("A LINE or BLOCK selection is required for this function");
          return;
       }

       gMaxEqCol = 0;

       _str character = prompt(prmt1, 'What do you wish to align?'); /* I want to ask the user for an input string */
       filter_selection(find_max_eq_filter(s, character));  /* Here I want to pass the selection with the string taken from the user. */

       if (gMaxEqCol == 0) {
          // no equal signs
          return;
       }

       filter_selection(align_eq_filter);
       _free_selection("");
    }


    static _str find_max_eq_filter(s, _str toalign)
    {
       _str inputStr = expand_tabs(s)
       int equalsPos = pos(toalign, inputStr, 1, "");
       if ( equalsPos > gMaxEqCol  ) {
          gMaxEqCol = equalsPos;
       }

       return s;
    }

filter_selection(find_max_eq_filter);

Any help appreciated,

Ted

PS. you want to reproduce what I am doing so I’ll have to paste the whole thing:

     #include "slick.sh"

     static int gMaxEqCol;
     static _str gUsrStr;

     static _str find_max_char_filter(s)
     {
        _str inputStr = expand_tabs(s);
        int equalsPos = pos(gUsrStr, inputStr, 1, "");
        if ( equalsPos > gMaxEqCol  ) {
           gMaxEqCol = equalsPos;
        }

        return s;
     }

     static _str align_char_filter(s)
     {
        if (gMaxEqCol <= 0 || length(s) == 0) {
           return s;
        }

        _str expandedStr = expand_tabs(s);

        int equalsPos  = pos(gUsrStr, expandedStr, 1, "");
        if (equalsPos == 0) {
           return s;
        }

        _str prefix    = substr(expandedStr, 1, equalsPos - 1);
        _str postfix   = substr(expandedStr,equalsPos);

        while (equalsPos < gMaxEqCol ) {
           prefix = prefix :+ ' ';
           ++equalsPos;
        }

        return prefix :+ postfix;
     }

     _command void align_chars() name_info(','VSARG2_MARK|VSARG2_REQUIRES_EDITORCTL)
     {

        if ( _select_type() != "LINE" && _select_type() != "BLOCK" ) {
           message("A LINE or BLOCK selection is required for this function");
           return;
        }

        gMaxEqCol = 0;
        _str prmpt1 = "";
        gUsrStr   = prompt(prmpt1, "Please enter a string: ");
        filter_selection(find_max_char_filter);

        if (gMaxEqCol == 0) {
           // no equal signs
           return;
        }
        filter_selection(align_char_filter);
        _free_selection("");
     }

So this is my problem, I want to change gUsrStr to be a parameter of the helper functions instead of having a global variable for it. However, when I try to do that it breaks. Also, I do not quite understand the first argument of the prompt function. What is it suppposed to be? Is it a default value in case the user does not enter anything?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T19:33:22+00:00Added an answer on May 26, 2026 at 7:33 pm

    You are not posting the relevant part,
    I think you should post the header of the calling function …

    But I’ll try my hand at a partial answer, then update if you update the question …

    Does it have any of these tags?
    VSARG2_REQUIRES_AB_SELECTION, or VSARG2_REQUIRES_SELECTION (or really anything with REQUIRE and SELECTION – if so try to remove them

    Are there any select_active() checks? follow those or disable them

    Also are you trying to invoke it interactively or just from another slick-c code?

    Many years ago I figured some of this out when I wrote narrow.e, allowing me to emulate emacs’ narrow-to-region. I used it to base my answer (narrow.e is posted here for the full example).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am trying to get text input from the keyboard in Java 6. I
I'm trying to get edit text to behave in this way: User can input
I'm trying to get the plain text from a word document. Specifically, the xpath
I've trying to get some vertical text on a little test webpage after reading
I am trying to get a input text area and a submit button attached
I'm trying to get all the text from a txt file into a string,
I'm trying to figure out how to get text to print sideways in a
I am trying to get the value of the text in the input fields.
I'm trying to get a window's XUL text as a String in Javascript. I
i'm trying to get Color information that i've stored in a text file and

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.