~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to client/drizzle.cc

MergedĀ fromĀ Toru.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1037
1037
  prompt_counter=0;
1038
1038
 
1039
1039
  outfile[0]=0;      // no (default) outfile
1040
 
  my_stpcpy(pager, "stdout");  // the default, if --pager wasn't given
 
1040
  strcpy(pager, "stdout");  // the default, if --pager wasn't given
1041
1041
  {
1042
1042
    char *tmp=getenv("PAGER");
1043
1043
    if (tmp && strlen(tmp))
1044
1044
    {
1045
1045
      default_pager_set= 1;
1046
 
      my_stpcpy(default_pager, tmp);
 
1046
      strcpy(default_pager, tmp);
1047
1047
    }
1048
1048
  }
1049
1049
  if (!isatty(0) || !isatty(1))
1468
1468
  case OPT_DELIMITER:
1469
1469
    if (argument == disabled_my_option)
1470
1470
    {
1471
 
      my_stpcpy(delimiter, DEFAULT_DELIMITER);
 
1471
      strcpy(delimiter, DEFAULT_DELIMITER);
1472
1472
    }
1473
1473
    else
1474
1474
    {
1514
1514
      {
1515
1515
        default_pager_set= 1;
1516
1516
        strncpy(pager, argument, sizeof(pager) - 1);
1517
 
        my_stpcpy(default_pager, pager);
 
1517
        strcpy(default_pager, pager);
1518
1518
      }
1519
1519
      else if (default_pager_set)
1520
 
        my_stpcpy(pager, default_pager);
 
1520
        strcpy(pager, default_pager);
1521
1521
      else
1522
1522
        opt_nopager= 1;
1523
1523
    }
1607
1607
  pagpoint= getenv("PAGER");
1608
1608
  if (!((char*) (pagpoint)))
1609
1609
  {
1610
 
    my_stpcpy(pager, "stdout");
 
1610
    strcpy(pager, "stdout");
1611
1611
    opt_nopager= 1;
1612
1612
  }
1613
1613
  else
1614
 
    my_stpcpy(pager, pagpoint);
1615
 
  my_stpcpy(default_pager, pager);
 
1614
    strcpy(pager, pagpoint);
 
1615
  strcpy(default_pager, pager);
1616
1616
 
1617
1617
  opt_max_allowed_packet= *drizzle_params->p_max_allowed_packet;
1618
1618
  opt_net_buffer_length= *drizzle_params->p_net_buffer_length;
1625
1625
 
1626
1626
  if (status.batch) /* disable pager and outfile in this case */
1627
1627
  {
1628
 
    my_stpcpy(default_pager, "stdout");
1629
 
    my_stpcpy(pager, "stdout");
 
1628
    strcpy(default_pager, "stdout");
 
1629
    strcpy(pager, "stdout");
1630
1630
    opt_nopager= 1;
1631
1631
    default_pager_set= 0;
1632
1632
    opt_outfile= 0;
2595
2595
    put_info(_("Note that all text commands must be first on line and end with ';'"),INFO_INFO,0,0);
2596
2596
  for (i = 0; commands[i].name; i++)
2597
2597
  {
2598
 
    end= my_stpcpy(buff, commands[i].name);
 
2598
    end= strcpy(buff, commands[i].name);
 
2599
    end+= strlen(commands[i].name);
2599
2600
    for (j= (int)strlen(commands[i].name); j < 10; j++)
2600
 
      end= my_stpcpy(end, " ");
 
2601
      end= strcpy(end, " ")+1;
2601
2602
    if (commands[i].func)
2602
2603
      tee_fprintf(stdout, "%s(\\%c) %s\n", buff,
2603
2604
                  commands[i].cmd_char, _(commands[i].doc));
2708
2709
    {
2709
2710
      if (!drizzle_num_rows(result) && ! quick && !column_types_flag)
2710
2711
      {
2711
 
        my_stpcpy(buff, _("Empty set"));
 
2712
        strcpy(buff, _("Empty set"));
2712
2713
      }
2713
2714
      else
2714
2715
      {
2730
2731
      }
2731
2732
    }
2732
2733
    else if (drizzle_affected_rows(&drizzle) == ~(uint64_t) 0)
2733
 
      my_stpcpy(buff,_("Query OK"));
 
2734
      strcpy(buff,_("Query OK"));
2734
2735
    else
2735
2736
      sprintf(buff, ngettext("Query OK, %ld row affected",
2736
2737
                             "Query OK, %ld rows affected",
2742
2743
    {
2743
2744
      *pos++= ',';
2744
2745
      *pos++= ' ';
2745
 
      pos=int10_to_str(warnings, pos, 10);
2746
 
      pos=my_stpcpy(pos, " warning");
 
2746
      pos= int10_to_str(warnings, pos, 10);
 
2747
      pos= strcpy(pos, " warning")+8;
2747
2748
      if (warnings != 1)
2748
2749
        *pos++= 's';
2749
2750
    }
2750
 
    my_stpcpy(pos, time_buff);
 
2751
    strcpy(pos, time_buff);
2751
2752
    put_info(buff,INFO_RESULT,0,0);
2752
2753
    if (drizzle_info(&drizzle))
2753
2754
      put_info(drizzle_info(&drizzle),INFO_RESULT,0,0);
2862
2863
  char *s=buf;
2863
2864
  *s=0;
2864
2865
#define ff2s_check_flag(X)                                              \
2865
 
  if (f & X ## _FLAG) { s=my_stpcpy(s, # X " "); f &= ~ X ## _FLAG; }
 
2866
  if (f & X ## _FLAG) { s=strcpy(s, # X " ")+strlen(# X " "); \
 
2867
                        f &= ~ X ## _FLAG; }
2866
2868
  ff2s_check_flag(NOT_NULL);
2867
2869
  ff2s_check_flag(PRI_KEY);
2868
2870
  ff2s_check_flag(UNIQUE_KEY);
3346
3348
    {
3347
3349
      tee_fprintf(stdout, "Default pager wasn't set, using stdout.\n");
3348
3350
      opt_nopager=1;
3349
 
      my_stpcpy(pager, "stdout");
 
3351
      strcpy(pager, "stdout");
3350
3352
      PAGER= stdout;
3351
3353
      return 0;
3352
3354
    }
3353
 
    my_stpcpy(pager, default_pager);
 
3355
    strcpy(pager, default_pager);
3354
3356
  }
3355
3357
  else
3356
3358
  {
3360
3362
                                my_iscntrl(charset_info,end[-1])))
3361
3363
      end--;
3362
3364
    end[0]=0;
3363
 
    my_stpcpy(pager, pager_name);
3364
 
    my_stpcpy(default_pager, pager_name);
 
3365
    strcpy(pager, pager_name);
 
3366
    strcpy(default_pager, pager_name);
3365
3367
  }
3366
3368
  opt_nopager=0;
3367
3369
  tee_fprintf(stdout, "PAGER set to '%s'\n", pager);
3372
3374
static int
3373
3375
com_nopager(string *, const char *)
3374
3376
{
3375
 
  my_stpcpy(pager, "stdout");
 
3377
  strcpy(pager, "stdout");
3376
3378
  opt_nopager=1;
3377
3379
  PAGER= stdout;
3378
3380
  tee_fprintf(stdout, "PAGER set to stdout\n");
3694
3696
    if (*ptr == '\\' && ptr[1]) // escaped character
3695
3697
    {
3696
3698
      // Remove the backslash
3697
 
      my_stpcpy(ptr, ptr+1);
 
3699
      strcpy(ptr, ptr+1);
3698
3700
    }
3699
3701
    else if ((!quoted && *ptr == ' ') || (quoted && *ptr == qtype))
3700
3702
    {
4043
4045
  if (sec >= 3600.0*24)
4044
4046
  {
4045
4047
    tmp=(uint32_t) floor(sec/(3600.0*24));
4046
 
    sec-=3600.0*24*tmp;
4047
 
    buff=int10_to_str((long) tmp, buff, 10);
4048
 
    buff=my_stpcpy(buff,tmp > 1 ? " days " : " day ");
 
4048
    sec-= 3600.0*24*tmp;
 
4049
    buff= int10_to_str((long) tmp, buff, 10);
 
4050
 
 
4051
    if (tmp > 1)
 
4052
      buff= strcpy(buff," days ")+6;
 
4053
    else
 
4054
      buff= strcpy(buff," day ")+5;
 
4055
 
4049
4056
  }
4050
4057
  if (sec >= 3600.0)
4051
4058
  {
4052
4059
    tmp=(uint32_t) floor(sec/3600.0);
4053
4060
    sec-=3600.0*tmp;
4054
4061
    buff=int10_to_str((long) tmp, buff, 10);
4055
 
    buff=my_stpcpy(buff,tmp > 1 ? " hours " : " hour ");
 
4062
 
 
4063
    if (tmp > 1)
 
4064
      buff= strcpy(buff, " hours ")+7;
 
4065
    else
 
4066
      buff= strcpy(buff, " hour ")+6;
4056
4067
  }
4057
4068
  if (sec >= 60.0)
4058
4069
  {
4059
4070
    tmp=(uint32_t) floor(sec/60.0);
4060
4071
    sec-=60.0*tmp;
4061
4072
    buff=int10_to_str((long) tmp, buff, 10);
4062
 
    buff=my_stpcpy(buff," min ");
 
4073
    buff= strcpy(buff," min ")+5;
4063
4074
  }
4064
4075
  if (part_second)
4065
4076
    sprintf(buff,"%.2f sec",sec);
4080
4091
  buff[0]=' ';
4081
4092
  buff[1]='(';
4082
4093
  end_timer(start_time,buff+2);
4083
 
  my_stpcpy(strchr(buff, '\0'),")");
 
4094
  strcpy(strchr(buff, '\0'),")");
4084
4095
}
4085
4096
 
4086
4097
static const char * construct_prompt()