/**************************************************************
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 *
 *************************************************************/

#include "../inc/helpid.hrc"

hidspecial HID_AUTOCORR_HELP_ACORSENTWORD   { HelpID =  HID_AUTOCORR_HELP_ACORSENTWORD;};
hidspecial HID_AUTOCORR_HELP_ACORSENTWORDENEMDASH   { HelpID =  HID_AUTOCORR_HELP_ACORSENTWORDENEMDASH;};
hidspecial HID_AUTOCORR_HELP_ACORWORD       { HelpID =  HID_AUTOCORR_HELP_ACORWORD;};
hidspecial HID_AUTOCORR_HELP_ACORWORDENEMDASH       { HelpID =  HID_AUTOCORR_HELP_ACORWORDENEMDASH;};
hidspecial HID_AUTOCORR_HELP_CHGFRACTIONSYMBOL  { HelpID =  HID_AUTOCORR_HELP_CHGFRACTIONSYMBOL;};
hidspecial HID_AUTOCORR_HELP_CHGORDINALNUMBER   { HelpID =  HID_AUTOCORR_HELP_CHGORDINALNUMBER;};
hidspecial HID_AUTOCORR_HELP_CHGQUOTES          { HelpID =  HID_AUTOCORR_HELP_CHGQUOTES;};
hidspecial HID_AUTOCORR_HELP_CHGSGLQUOTES       { HelpID =  HID_AUTOCORR_HELP_CHGSGLQUOTES;};
hidspecial HID_AUTOCORR_HELP_CHGTOENEMDASH      { HelpID =  HID_AUTOCORR_HELP_CHGTOENEMDASH;};
hidspecial HID_AUTOCORR_HELP_CHGWEIGHTUNDERL    { HelpID =  HID_AUTOCORR_HELP_CHGWEIGHTUNDERL;};
hidspecial HID_AUTOCORR_HELP_INGNOREDOUBLESPACE { HelpID =  HID_AUTOCORR_HELP_INGNOREDOUBLESPACE;};
hidspecial HID_AUTOCORR_HELP_SENT           { HelpID =  HID_AUTOCORR_HELP_SENT;};
hidspecial HID_AUTOCORR_HELP_SENTENEMDASH           { HelpID =  HID_AUTOCORR_HELP_SENTENEMDASH;};
hidspecial HID_AUTOCORR_HELP_SENTWORD       { HelpID =  HID_AUTOCORR_HELP_SENTWORD;};
hidspecial HID_AUTOCORR_HELP_SENTWORDENEMDASH       { HelpID =  HID_AUTOCORR_HELP_SENTWORDENEMDASH;};
hidspecial HID_AUTOCORR_HELP_SETINETATTR        { HelpID =  HID_AUTOCORR_HELP_SETINETATTR;};
hidspecial HID_AUTOCORR_HELP_WORD           { HelpID =  HID_AUTOCORR_HELP_WORD;};
hidspecial HID_AUTOCORR_HELP_WORDENEMDASH           { HelpID =  HID_AUTOCORR_HELP_WORDENEMDASH;};
